From c43bb3a9b6edd9a3ed03c1dbc7b6d00581dbeedc Mon Sep 17 00:00:00 2001 From: zjmletang Date: Tue, 8 Oct 2024 17:21:50 +0800 Subject: [PATCH 1/2] Add aws-sdk-s3 to Gemfile and regenerate related RBI files Signed-off-by: Zhang JianMing zhangjianming.zjm@alibaba-inc.com --- Gemfile | 1 + Gemfile.lock | 18 + sorbet/rbi/gems/aws-eventstream@1.3.0.rbi | 380 + sorbet/rbi/gems/aws-partitions@1.986.0.rbi | 694 + sorbet/rbi/gems/aws-sdk-core@3.209.1.rbi | 19273 +++++++++++ sorbet/rbi/gems/aws-sdk-kms@1.94.0.rbi | 11717 +++++++ sorbet/rbi/gems/aws-sdk-s3@1.167.0.rbi | 32884 +++++++++++++++++++ sorbet/rbi/gems/aws-sigv4@1.10.0.rbi | 655 + sorbet/rbi/gems/jmespath@1.6.2.rbi | 1921 ++ 9 files changed, 67543 insertions(+) create mode 100644 sorbet/rbi/gems/aws-eventstream@1.3.0.rbi create mode 100644 sorbet/rbi/gems/aws-partitions@1.986.0.rbi create mode 100644 sorbet/rbi/gems/aws-sdk-core@3.209.1.rbi create mode 100644 sorbet/rbi/gems/aws-sdk-kms@1.94.0.rbi create mode 100644 sorbet/rbi/gems/aws-sdk-s3@1.167.0.rbi create mode 100644 sorbet/rbi/gems/aws-sigv4@1.10.0.rbi create mode 100644 sorbet/rbi/gems/jmespath@1.6.2.rbi diff --git a/Gemfile b/Gemfile index 1359bb04..cba814ba 100644 --- a/Gemfile +++ b/Gemfile @@ -5,6 +5,7 @@ source 'https://rubygems.org' ruby '>= 3.1.0' gem 'activesupport' +gem 'aws-sdk-s3' gem 'csv' gem 'curb' gem 'dotenv' diff --git a/Gemfile.lock b/Gemfile.lock index f82a90f3..b95e661c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -26,6 +26,22 @@ GEM addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) ast (2.4.2) + aws-eventstream (1.3.0) + aws-partitions (1.986.0) + aws-sdk-core (3.209.1) + aws-eventstream (~> 1, >= 1.3.0) + aws-partitions (~> 1, >= 1.651.0) + aws-sigv4 (~> 1.9) + jmespath (~> 1, >= 1.6.1) + aws-sdk-kms (1.94.0) + aws-sdk-core (~> 3, >= 3.207.0) + aws-sigv4 (~> 1.5) + aws-sdk-s3 (1.167.0) + aws-sdk-core (~> 3, >= 3.207.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.5) + aws-sigv4 (1.10.0) + aws-eventstream (~> 1, >= 1.0.2) base64 (0.2.0) bigdecimal (3.1.8) builder (3.3.0) @@ -57,6 +73,7 @@ GEM httpclient (2.8.3) i18n (1.14.5) concurrent-ruby (~> 1.0) + jmespath (1.6.2) json (2.7.2) jwt (2.8.1) base64 @@ -191,6 +208,7 @@ PLATFORMS DEPENDENCIES activesupport + aws-sdk-s3 code-scanning-rubocop csv curb diff --git a/sorbet/rbi/gems/aws-eventstream@1.3.0.rbi b/sorbet/rbi/gems/aws-eventstream@1.3.0.rbi new file mode 100644 index 00000000..51f02ec5 --- /dev/null +++ b/sorbet/rbi/gems/aws-eventstream@1.3.0.rbi @@ -0,0 +1,380 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for types exported from the `aws-eventstream` gem. +# Please instead update this file by running `bin/tapioca gem aws-eventstream`. + + +# source://aws-eventstream//lib/aws-eventstream/decoder.rb#7 +module Aws + class << self + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#93 + def config; end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#96 + def config=(config); end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#155 + def eager_autoload!(*args); end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#148 + def empty_connection_pools!; end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#105 + def partition(partition_name); end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#110 + def partitions; end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#86 + def shared_config; end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#125 + def use_bundled_cert!; end + end +end + +# source://aws-eventstream//lib/aws-eventstream/decoder.rb#8 +module Aws::EventStream; end + +# This class provides method for decoding binary inputs into +# single or multiple messages (Aws::EventStream::Message). +# +# * {#decode} - decodes messages from an IO like object responds +# to #read that containing binary data, returning decoded +# Aws::EventStream::Message along the way or wrapped in an enumerator +# +# ## Examples +# +# decoder = Aws::EventStream::Decoder.new +# +# # decoding from IO +# decoder.decode(io) do |message| +# message.headers +# # => { ... } +# message.payload +# # => StringIO / Tempfile +# end +# +# # alternatively +# message_pool = decoder.decode(io) +# message_pool.next +# # => Aws::EventStream::Message +# +# * {#decode_chunk} - decodes a single message from a chunk of data, +# returning message object followed by boolean(indicating eof status +# of data) in an array object +# +# ## Examples +# +# # chunk containing exactly one message data +# message, chunk_eof = decoder.decode_chunk(chunk_str) +# message +# # => Aws::EventStream::Message +# chunk_eof +# # => true +# +# # chunk containing a partial message +# message, chunk_eof = decoder.decode_chunk(chunk_str) +# message +# # => nil +# chunk_eof +# # => true +# # chunk data is saved at decoder's message_buffer +# +# # chunk containing more that one data message +# message, chunk_eof = decoder.decode_chunk(chunk_str) +# message +# # => Aws::EventStream::Message +# chunk_eof +# # => false +# # extra chunk data is saved at message_buffer of the decoder +# +# source://aws-eventstream//lib/aws-eventstream/decoder.rb#63 +class Aws::EventStream::Decoder + include ::Enumerable + + # @option options + # @param options [Hash] The initialization options. + # @return [Decoder] a new instance of Decoder + # + # source://aws-eventstream//lib/aws-eventstream/decoder.rb#83 + def initialize(options = T.unsafe(nil)); end + + # Decodes messages from a binary stream + # + # @param io [IO#read] An IO-like object + # that responds to `#read` + # @return [Enumerable, nil] Returns a new Enumerable + # containing decoded messages if no block is given + # @yieldparam message [Message] + # + # source://aws-eventstream//lib/aws-eventstream/decoder.rb#96 + def decode(io, &block); end + + # Decodes a single message from a chunk of string + # + # @param chunk [String] A chunk of string to be decoded, + # chunk can contain partial event message to multiple event messages + # When not provided, decode data from #message_buffer + # @return [Array] Returns single decoded message + # and boolean pair, the boolean flag indicates whether this chunk + # has been fully consumed, unused data is tracked at #message_buffer + # + # source://aws-eventstream//lib/aws-eventstream/decoder.rb#114 + def decode_chunk(chunk = T.unsafe(nil)); end + + private + + # source://aws-eventstream//lib/aws-eventstream/decoder.rb#163 + def decode_context(content, header_length); end + + # source://aws-eventstream//lib/aws-eventstream/decoder.rb#130 + def decode_message(raw_message); end + + # @raise [Errors::PreludeChecksumError] + # + # source://aws-eventstream//lib/aws-eventstream/decoder.rb#155 + def decode_prelude(prelude); end + + # source://aws-eventstream//lib/aws-eventstream/decoder.rb#171 + def extract_headers(buffer); end + + # source://aws-eventstream//lib/aws-eventstream/decoder.rb#201 + def extract_payload(encoded); end + + # exposed via object.send for testing + # + # source://aws-eventstream//lib/aws-eventstream/decoder.rb#122 + def message_buffer; end + + # source://aws-eventstream//lib/aws-eventstream/decoder.rb#207 + def payload_stringio(encoded); end + + # source://aws-eventstream//lib/aws-eventstream/decoder.rb#211 + def payload_tempfile(encoded); end + + # source://aws-eventstream//lib/aws-eventstream/decoder.rb#124 + def wrap_as_enumerator(decoded_message); end +end + +# 4 bytes message crc checksum +# +# source://aws-eventstream//lib/aws-eventstream/decoder.rb#76 +Aws::EventStream::Decoder::CRC32_LENGTH = T.let(T.unsafe(nil), Integer) + +# source://aws-eventstream//lib/aws-eventstream/decoder.rb#67 +Aws::EventStream::Decoder::ONE_MEGABYTE = T.let(T.unsafe(nil), Integer) + +# bytes of prelude part, including 4 bytes of +# total message length, headers length and crc checksum of prelude +# +# source://aws-eventstream//lib/aws-eventstream/decoder.rb#72 +Aws::EventStream::Decoder::PRELUDE_LENGTH = T.let(T.unsafe(nil), Integer) + +# This class provides #encode method for encoding +# Aws::EventStream::Message into binary. +# +# * {#encode} - encode Aws::EventStream::Message into binary +# when output IO-like object is provided, binary string +# would be written to IO. If not, the encoded binary string +# would be returned directly +# +# ## Examples +# +# message = Aws::EventStream::Message.new( +# headers: { +# "foo" => Aws::EventStream::HeaderValue.new( +# value: "bar", type: "string" +# ) +# }, +# payload: "payload" +# ) +# encoder = Aws::EventsStream::Encoder.new +# file = Tempfile.new +# +# # encode into IO ouput +# encoder.encode(message, file) +# +# # get encoded binary string +# encoded_message = encoder.encode(message) +# +# file.read == encoded_message +# # => true +# +# source://aws-eventstream//lib/aws-eventstream/encoder.rb#38 +class Aws::EventStream::Encoder + # Encodes Aws::EventStream::Message to output IO when + # provided, else return the encoded binary string + # + # @param message [Aws::EventStream::Message] + # @param io [IO#write, nil] An IO-like object that + # responds to `#write`, encoded message will be + # written to this IO when provided + # @return [nil, String] when output IO is provided, + # encoded message will be written to that IO, nil + # will be returned. Else, encoded binary string is + # returned. + # + # source://aws-eventstream//lib/aws-eventstream/encoder.rb#63 + def encode(message, io = T.unsafe(nil)); end + + # Encodes headers part of an Aws::EventStream::Message + # into String + # + # @param message [Aws::EventStream::Message] + # @return [String] + # + # source://aws-eventstream//lib/aws-eventstream/encoder.rb#110 + def encode_headers(message); end + + # Encodes an Aws::EventStream::Message + # into String + # + # @param message [Aws::EventStream::Message] + # @return [String] + # + # source://aws-eventstream//lib/aws-eventstream/encoder.rb#79 + def encode_message(message); end + + private + + # source://aws-eventstream//lib/aws-eventstream/encoder.rb#135 + def encode_prelude(total_length, headers_length); end +end + +# Maximum header length allowed (after encode) 128kb +# +# source://aws-eventstream//lib/aws-eventstream/encoder.rb#45 +Aws::EventStream::Encoder::MAX_HEADERS_LENGTH = T.let(T.unsafe(nil), Integer) + +# Maximum payload length allowed (after encode) 16mb +# +# source://aws-eventstream//lib/aws-eventstream/encoder.rb#48 +Aws::EventStream::Encoder::MAX_PAYLOAD_LENGTH = T.let(T.unsafe(nil), Integer) + +# bytes of total overhead in a message, including prelude +# and 4 bytes total message crc checksum +# +# source://aws-eventstream//lib/aws-eventstream/encoder.rb#42 +Aws::EventStream::Encoder::OVERHEAD_LENGTH = T.let(T.unsafe(nil), Integer) + +# source://aws-eventstream//lib/aws-eventstream/errors.rb#5 +module Aws::EventStream::Errors; end + +# source://aws-eventstream//lib/aws-eventstream/errors.rb#41 +class Aws::EventStream::Errors::EventHeadersLengthExceedError < ::RuntimeError + # @return [EventHeadersLengthExceedError] a new instance of EventHeadersLengthExceedError + # + # source://aws-eventstream//lib/aws-eventstream/errors.rb#42 + def initialize(*args); end +end + +# source://aws-eventstream//lib/aws-eventstream/errors.rb#35 +class Aws::EventStream::Errors::EventPayloadLengthExceedError < ::RuntimeError + # @return [EventPayloadLengthExceedError] a new instance of EventPayloadLengthExceedError + # + # source://aws-eventstream//lib/aws-eventstream/errors.rb#36 + def initialize(*args); end +end + +# Raise when insufficient bytes of a message is received +# +# source://aws-eventstream//lib/aws-eventstream/errors.rb#17 +class Aws::EventStream::Errors::IncompleteMessageError < ::RuntimeError + # @return [IncompleteMessageError] a new instance of IncompleteMessageError + # + # source://aws-eventstream//lib/aws-eventstream/errors.rb#18 + def initialize(*args); end +end + +# source://aws-eventstream//lib/aws-eventstream/errors.rb#29 +class Aws::EventStream::Errors::MessageChecksumError < ::RuntimeError + # @return [MessageChecksumError] a new instance of MessageChecksumError + # + # source://aws-eventstream//lib/aws-eventstream/errors.rb#30 + def initialize(*args); end +end + +# source://aws-eventstream//lib/aws-eventstream/errors.rb#23 +class Aws::EventStream::Errors::PreludeChecksumError < ::RuntimeError + # @return [PreludeChecksumError] a new instance of PreludeChecksumError + # + # source://aws-eventstream//lib/aws-eventstream/errors.rb#24 + def initialize(*args); end +end + +# Raised when reading bytes exceed buffer total bytes +# +# source://aws-eventstream//lib/aws-eventstream/errors.rb#8 +class Aws::EventStream::Errors::ReadBytesExceedLengthError < ::RuntimeError + # @return [ReadBytesExceedLengthError] a new instance of ReadBytesExceedLengthError + # + # source://aws-eventstream//lib/aws-eventstream/errors.rb#9 + def initialize(target_byte, total_len); end +end + +# source://aws-eventstream//lib/aws-eventstream/header_value.rb#6 +class Aws::EventStream::HeaderValue + # @return [HeaderValue] a new instance of HeaderValue + # + # source://aws-eventstream//lib/aws-eventstream/header_value.rb#8 + def initialize(options); end + + # @return [String] type of the header value + # complete type list see Aws::EventStream::Types + # + # source://aws-eventstream//lib/aws-eventstream/header_value.rb#19 + def type; end + + # Returns the value of attribute value. + # + # source://aws-eventstream//lib/aws-eventstream/header_value.rb#15 + def value; end + + private + + # source://aws-eventstream//lib/aws-eventstream/header_value.rb#40 + def format_timestamp(value); end + + # source://aws-eventstream//lib/aws-eventstream/header_value.rb#32 + def format_uuid(value); end + + # source://aws-eventstream//lib/aws-eventstream/header_value.rb#23 + def format_value(value); end +end + +# source://aws-eventstream//lib/aws-eventstream/message.rb#5 +class Aws::EventStream::Message + # @return [Message] a new instance of Message + # + # source://aws-eventstream//lib/aws-eventstream/message.rb#7 + def initialize(options); end + + # @return [Hash] headers of a message + # + # source://aws-eventstream//lib/aws-eventstream/message.rb#13 + def headers; end + + # @return [IO] payload of a message, size not exceed 16MB. + # StringIO is returned for <= 1MB payload + # Tempfile is returned for > 1MB payload + # + # source://aws-eventstream//lib/aws-eventstream/message.rb#18 + def payload; end +end + +# Message Header Value Types +# +# source://aws-eventstream//lib/aws-eventstream/types.rb#7 +module Aws::EventStream::Types + class << self + # pack/unpack pattern, byte size, type idx + # + # source://aws-eventstream//lib/aws-eventstream/types.rb#25 + def pattern; end + + # source://aws-eventstream//lib/aws-eventstream/types.rb#9 + def types; end + end +end diff --git a/sorbet/rbi/gems/aws-partitions@1.986.0.rbi b/sorbet/rbi/gems/aws-partitions@1.986.0.rbi new file mode 100644 index 00000000..0e2b6c0d --- /dev/null +++ b/sorbet/rbi/gems/aws-partitions@1.986.0.rbi @@ -0,0 +1,694 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for types exported from the `aws-partitions` gem. +# Please instead update this file by running `bin/tapioca gem aws-partitions`. + + +# source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#3 +module Aws + class << self + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#93 + def config; end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#96 + def config=(config); end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#155 + def eager_autoload!(*args); end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#148 + def empty_connection_pools!; end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#105 + def partition(partition_name); end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#110 + def partitions; end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#86 + def shared_config; end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#125 + def use_bundled_cert!; end + end +end + +# A {Partition} is a group of AWS {Region} and {Service} objects. You +# can use a partition to determine what services are available in a region, +# or what regions a service is available in. +# +# ## Partitions +# +# **AWS accounts are scoped to a single partition**. You can get a partition +# by name. Valid partition names include: +# +# * `"aws"` - Public AWS partition +# * `"aws-cn"` - AWS China +# * `"aws-us-gov"` - AWS GovCloud +# +# To get a partition by name: +# +# aws = Aws::Partitions.partition('aws') +# +# You can also enumerate all partitions: +# +# Aws::Partitions.each do |partition| +# puts partition.name +# end +# +# ## Regions +# +# A {Partition} is divided up into one or more regions. For example, the +# "aws" partition contains, "us-east-1", "us-west-1", etc. You can get +# a region by name. Calling {Partition#region} will return an instance +# of {Region}. +# +# region = Aws::Partitions.partition('aws').region('us-west-2') +# region.name +# #=> "us-west-2" +# +# You can also enumerate all regions within a partition: +# +# Aws::Partitions.partition('aws').regions.each do |region| +# puts region.name +# end +# +# Each {Region} object has a name, description and a list of services +# available to that region: +# +# us_west_2 = Aws::Partitions.partition('aws').region('us-west-2') +# +# us_west_2.name #=> "us-west-2" +# us_west_2.description #=> "US West (Oregon)" +# us_west_2.partition_name "aws" +# us_west_2.services #=> # true/false +# +# The service name should be the service's module name as used by +# the AWS SDK for Ruby. To find the complete list of supported +# service names, see {Partition#services}. +# +# Its also possible to enumerate every service for every region in +# every partition. +# +# Aws::Partitions.partitions.each do |partition| +# partition.regions.each do |region| +# region.services.each do |service_name| +# puts "#{partition.name} -> #{region.name} -> #{service_name}" +# end +# end +# end +# +# ## Services +# +# A {Partition} has a list of services available. You can get a +# single {Service} by name: +# +# Aws::Partitions.partition('aws').service('DynamoDB') +# +# You can also enumerate all services in a partition: +# +# Aws::Partitions.partition('aws').services.each do |service| +# puts service.name +# end +# +# Each {Service} object has a name, and information about regions +# that service is available in. +# +# service.name #=> "DynamoDB" +# service.partition_name #=> "aws" +# service.regions #=> # false +# service.partition_region #=> "aws-global" +# +# Its also possible to enumerate every region for every service in +# every partition. +# +# Aws::Partitions.partitions.each do |partition| +# partition.services.each do |service| +# service.regions.each do |region_name| +# puts "#{partition.name} -> #{region_name} -> #{service.name}" +# end +# end +# end +# +# ## Service Names +# +# {Service} names are those used by the the AWS SDK for Ruby. They +# correspond to the service's module. +# +# source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#4 +module Aws::Partitions + extend ::Enumerable + + class << self + # @api private For internal use only. + # @param new_partitions [Hash] + # + # source://aws-partitions//lib/aws-partitions.rb#191 + def add(new_partitions); end + + # @api private For internal use only. + # + # source://aws-partitions//lib/aws-partitions.rb#205 + def clear; end + + # @api private + # @return [Hash] + # + # source://aws-partitions//lib/aws-partitions.rb#232 + def default_metadata; end + + # @api private + # @return [PartitionList] + # + # source://aws-partitions//lib/aws-partitions.rb#212 + def default_partition_list; end + + # @api private + # @return [Hash] + # + # source://aws-partitions//lib/aws-partitions.rb#222 + def defaults; end + + # @return [Enumerable] + # + # source://aws-partitions//lib/aws-partitions.rb#136 + def each(&block); end + + # @api private For Internal use only + # @param partition_metadata [Hash] + # + # source://aws-partitions//lib/aws-partitions.rb#200 + def merge_metadata(partition_metadata); end + + # Return the partition with the given name. A partition describes + # the services and regions available in that partition. + # + # aws = Aws::Partitions.partition('aws') + # + # puts "Regions available in the aws partition:\n" + # aws.regions.each do |region| + # puts region.name + # end + # + # puts "Services available in the aws partition:\n" + # aws.services.each do |services| + # puts services.name + # end + # + # @param name [String] The name of the partition to return. + # Valid names include "aws", "aws-cn", and "aws-us-gov". + # @raise [ArgumentError] Raises an `ArgumentError` if a partition is + # not found with the given name. The error message contains a list + # of valid partition names. + # @return [Partition] + # + # source://aws-partitions//lib/aws-partitions.rb#163 + def partition(name); end + + # Returns an array with every partitions. A partition describes + # the services and regions available in that partition. + # + # Aws::Partitions.partitions.each do |partition| + # + # puts "Regions available in #{partition.name}:\n" + # partition.regions.each do |region| + # puts region.name + # end + # + # puts "Services available in #{partition.name}:\n" + # partition.services.each do |service| + # puts service.name + # end + # end + # + # @return [Enumerable] Returns an enumerable of all + # known partitions. + # + # source://aws-partitions//lib/aws-partitions.rb#185 + def partitions; end + + # @api private For internal use only. + # @return [Hash] Returns a map of service module names + # to their id as used in the endpoints.json document. + # + # source://aws-partitions//lib/aws-partitions.rb#243 + def service_ids; end + end +end + +# @api private +# +# source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#6 +class Aws::Partitions::EndpointProvider + # Intentionally marked private. The format of the endpoint rules + # is an implementation detail. + # + # @api private + # @return [EndpointProvider] a new instance of EndpointProvider + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#31 + def initialize(rules); end + + # @api private Use the static class methods instead. + # @option variants + # @option variants + # @param region [String] The region used to fetch the partition. + # @param service [String] Used only if dualstack is true. Used to find a + # DNS suffix for a specific service. + # @param variants [Hash] Endpoint variants such as 'fips' or 'dualstack' + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#73 + def dns_suffix_for(region, service, variants); end + + # @api private Use the static class methods instead. + # @option variants + # @option variants + # @param region [String] The region for the client. + # @param service [String] The endpoint prefix for the service, e.g. + # "monitoring" for cloudwatch. + # @param sts_regional_endpoints [String] [STS only] Whether to use + # `legacy` (global endpoint for legacy regions) or `regional` mode for + # using regional endpoint for supported regions except 'aws-global' + # @param variants [Hash] Endpoint variants such as 'fips' or 'dualstack' + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#46 + def resolve(region, service, sts_regional_endpoints, variants); end + + # @api private Use the static class methods instead. + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#51 + def signing_region(region, service, sts_regional_endpoints); end + + # @api private Use the static class methods instead. + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#57 + def signing_service(region, service); end + + private + + # returns a callable that takes a region + # and returns true if the service is global + # + # @api private + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#178 + def build_is_global_fn(sts_regional_endpoints = T.unsafe(nil)); end + + # @api private + # @return [Boolean] + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#83 + def configured_variants?(variants); end + + # @api private + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#192 + def credential_scope(region, service, is_global_fn); end + + # @api private + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#238 + def default_partition; end + + # @api private + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#125 + def endpoint_for(region, service, is_global_fn, variants); end + + # @api private + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#141 + def endpoint_no_variants_for(region, service, is_global_fn); end + + # @api private + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#133 + def endpoint_with_variants_for(region, service, variants); end + + # @api private + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#87 + def fetch_variant(cfg, tags); end + + # @api private + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#212 + def get_partition(region_or_partition); end + + # @api private + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#219 + def partition_containing_region(region); end + + # @api private + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#234 + def partition_matching_name(partition_name); end + + # @api private + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#225 + def partition_matching_region(region); end + + # @api private + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#92 + def resolve_variant(region, service, config_variants); end + + # @api private + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#117 + def validate_variant!(config_variants, resolved_variant); end + + # @api private + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#171 + def warn_deprecation(service, region); end + + class << self + # @api private + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#256 + def dns_suffix_for(region, service = T.unsafe(nil), variants = T.unsafe(nil)); end + + # @api private + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#244 + def resolve(region, service, sts_endpoint = T.unsafe(nil), variants = T.unsafe(nil)); end + + # @api private + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#248 + def signing_region(region, service, sts_regional_endpoints = T.unsafe(nil)); end + + # @api private + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#252 + def signing_service(region, service); end + + private + + # @api private + # + # source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#262 + def default_provider; end + end +end + +# When sts_regional_endpoint is set to `legacy`, the endpoint +# pattern stays global for the following regions: +# +# @api private +# +# source://aws-partitions//lib/aws-partitions/endpoint_provider.rb#9 +Aws::Partitions::EndpointProvider::STS_LEGACY_REGIONS = T.let(T.unsafe(nil), Array) + +# source://aws-partitions//lib/aws-partitions/partition.rb#5 +class Aws::Partitions::Partition + # @api private + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Partition] a new instance of Partition + # + # source://aws-partitions//lib/aws-partitions/partition.rb#10 + def initialize(options = T.unsafe(nil)); end + + # @return [Metadata] The metadata for the partition. + # + # source://aws-partitions//lib/aws-partitions/partition.rb#25 + def metadata; end + + # @return [String] The partition name, e.g. "aws", "aws-cn", "aws-us-gov". + # + # source://aws-partitions//lib/aws-partitions/partition.rb#19 + def name; end + + # @param region_name [String] The name of the region, e.g. "us-east-1". + # @raise [ArgumentError] Raises `ArgumentError` for unknown region name. + # @return [Region] + # + # source://aws-partitions//lib/aws-partitions/partition.rb#30 + def region(region_name); end + + # @param region_name [String] The name of the region, e.g. "us-east-1". + # @return [Boolean] true if the region is in the partition. + # + # source://aws-partitions//lib/aws-partitions/partition.rb#47 + def region?(region_name); end + + # @return [String] The regex representing the region format. + # + # source://aws-partitions//lib/aws-partitions/partition.rb#22 + def region_regex; end + + # @return [Array] + # + # source://aws-partitions//lib/aws-partitions/partition.rb#41 + def regions; end + + # @param service_name [String] The service module name. + # @raise [ArgumentError] Raises `ArgumentError` for unknown service name. + # @return [Service] + # + # source://aws-partitions//lib/aws-partitions/partition.rb#54 + def service(service_name); end + + # @param service_name [String] The service module name. + # @return [Boolean] true if the service is in the partition. + # + # source://aws-partitions//lib/aws-partitions/partition.rb#71 + def service?(service_name); end + + # @return [Array] + # + # source://aws-partitions//lib/aws-partitions/partition.rb#65 + def services; end + + class << self + # @api private + # + # source://aws-partitions//lib/aws-partitions/partition.rb#77 + def build(partition); end + + private + + # @param partition [Hash] + # @return [Hash] + # + # source://aws-partitions//lib/aws-partitions/partition.rb#90 + def build_regions(partition); end + + # @param partition [Hash] + # @return [Hash] + # + # source://aws-partitions//lib/aws-partitions/partition.rb#102 + def build_services(partition); end + end +end + +# source://aws-partitions//lib/aws-partitions/partition_list.rb#5 +class Aws::Partitions::PartitionList + include ::Enumerable + + # @return [PartitionList] a new instance of PartitionList + # + # source://aws-partitions//lib/aws-partitions/partition_list.rb#9 + def initialize; end + + # @api private + # @param partition [Partition] + # + # source://aws-partitions//lib/aws-partitions/partition_list.rb#37 + def add_partition(partition); end + + # Removed all partitions. + # + # @api private + # + # source://aws-partitions//lib/aws-partitions/partition_list.rb#80 + def clear; end + + # @return [Enumerator] + # + # source://aws-partitions//lib/aws-partitions/partition_list.rb#14 + def each(&block); end + + # @api private + # @param partitions_metadata [Partition] + # + # source://aws-partitions//lib/aws-partitions/partition_list.rb#47 + def merge_metadata(partitions_metadata); end + + # @param partition_name [String] + # @return [Partition] + # + # source://aws-partitions//lib/aws-partitions/partition_list.rb#20 + def partition(partition_name); end + + # @return [Array] + # + # source://aws-partitions//lib/aws-partitions/partition_list.rb#31 + def partitions; end + + private + + # source://aws-partitions//lib/aws-partitions/partition_list.rb#86 + def build_metadata_regions(partition_name, metadata_regions, existing = T.unsafe(nil)); end + + class << self + # @api private + # + # source://aws-partitions//lib/aws-partitions/partition_list.rb#104 + def build(partitions); end + end +end + +# source://aws-partitions//lib/aws-partitions/region.rb#7 +class Aws::Partitions::Region + # @api private + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Region] a new instance of Region + # + # source://aws-partitions//lib/aws-partitions/region.rb#14 + def initialize(options = T.unsafe(nil)); end + + # @return [String] A short description of this region. + # + # source://aws-partitions//lib/aws-partitions/region.rb#25 + def description; end + + # @return [String] The name of this region, e.g. "us-east-1". + # + # source://aws-partitions//lib/aws-partitions/region.rb#22 + def name; end + + # @return [String] The partition this region exists in, e.g. "aws", + # "aws-cn", "aws-us-gov". + # + # source://aws-partitions//lib/aws-partitions/region.rb#29 + def partition_name; end + + # @return [Set] The list of services available in this region. + # Service names are the module names as used by the AWS SDK + # for Ruby. + # + # source://aws-partitions//lib/aws-partitions/region.rb#34 + def services; end + + class << self + # @api private + # + # source://aws-partitions//lib/aws-partitions/region.rb#39 + def build(region_name, region, partition); end + + private + + # source://aws-partitions//lib/aws-partitions/region.rb#50 + def region_services(region_name, partition); end + + # @return [Boolean] + # + # source://aws-partitions//lib/aws-partitions/region.rb#61 + def service_in_region?(svc, region_name); end + end +end + +# source://aws-partitions//lib/aws-partitions/service.rb#7 +class Aws::Partitions::Service + # @api private + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Service] a new instance of Service + # + # source://aws-partitions//lib/aws-partitions/service.rb#15 + def initialize(options = T.unsafe(nil)); end + + # @return [Set] The Dualstack compatible regions this service is + # available in. Regions are scoped to the partition. + # + # source://aws-partitions//lib/aws-partitions/service.rb#42 + def dualstack_regions; end + + # @return [Set] The FIPS compatible regions this service is + # available in. Regions are scoped to the partition. + # + # source://aws-partitions//lib/aws-partitions/service.rb#38 + def fips_regions; end + + # @return [String] The name of this service. The name is the module + # name as used by the AWS SDK for Ruby. + # + # source://aws-partitions//lib/aws-partitions/service.rb#27 + def name; end + + # @return [String] The partition name, e.g "aws", "aws-cn", "aws-us-gov". + # + # source://aws-partitions//lib/aws-partitions/service.rb#30 + def partition_name; end + + # @return [String, nil] The global patition endpoint for this service. + # May be `nil`. + # + # source://aws-partitions//lib/aws-partitions/service.rb#46 + def partition_region; end + + # Returns `false` if the service operates with a single global + # endpoint for the current partition, returns `true` if the service + # is available in multiple regions. + # + # Some services have both a partition endpoint and regional endpoints. + # + # @return [Boolean] + # + # source://aws-partitions//lib/aws-partitions/service.rb#55 + def regionalized?; end + + # @return [Set] The regions this service is available in. + # Regions are scoped to the partition. + # + # source://aws-partitions//lib/aws-partitions/service.rb#34 + def regions; end + + class << self + # @api private + # + # source://aws-partitions//lib/aws-partitions/service.rb#62 + def build(service_name, service, partition); end + + private + + # source://aws-partitions//lib/aws-partitions/service.rb#97 + def partition_region(service); end + + # source://aws-partitions//lib/aws-partitions/service.rb#76 + def regions(service, partition); end + + # source://aws-partitions//lib/aws-partitions/service.rb#82 + def variant_regions(variant_name, service, partition); end + end +end diff --git a/sorbet/rbi/gems/aws-sdk-core@3.209.1.rbi b/sorbet/rbi/gems/aws-sdk-core@3.209.1.rbi new file mode 100644 index 00000000..acb5e59d --- /dev/null +++ b/sorbet/rbi/gems/aws-sdk-core@3.209.1.rbi @@ -0,0 +1,19273 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for types exported from the `aws-sdk-core` gem. +# Please instead update this file by running `bin/tapioca gem aws-sdk-core`. + + +# utility classes +# +# source://aws-sdk-core//lib/aws-sdk-core/deprecations.rb#3 +module Aws + class << self + # @return [Hash] Returns a hash of default configuration options shared + # by all constructed clients. + # + # source://aws-sdk-core//lib/aws-sdk-core.rb#93 + def config; end + + # @param config [Hash] + # + # source://aws-sdk-core//lib/aws-sdk-core.rb#96 + def config=(config); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core.rb#155 + def eager_autoload!(*args); end + + # Close any long-lived connections maintained by the SDK's internal + # connection pool. + # + # Applications that rely heavily on the `fork()` system call on POSIX systems + # should call this method in the child process directly after fork to ensure + # there are no race conditions between the parent + # process and its children + # for the pooled TCP connections. + # + # Child processes that make multi-threaded calls to the SDK should block on + # this call before beginning work. + # + # @return [nil] + # + # source://aws-sdk-core//lib/aws-sdk-core.rb#148 + def empty_connection_pools!; end + + # @see (Aws::Partitions.partition) + # + # source://aws-sdk-core//lib/aws-sdk-core.rb#105 + def partition(partition_name); end + + # @see (Aws::Partitions.partitions) + # + # source://aws-sdk-core//lib/aws-sdk-core.rb#110 + def partitions; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core.rb#86 + def shared_config; end + + # The SDK ships with a ca certificate bundle to use when verifying SSL + # peer certificates. By default, this cert bundle is *NOT* used. The + # SDK will rely on the default cert available to OpenSSL. This ensures + # the cert provided by your OS is used. + # + # For cases where the default cert is unavailable, e.g. Windows, you + # can call this method. + # + # Aws.use_bundled_cert! + # + # @return [String] Returns the path to the bundled cert. + # + # source://aws-sdk-core//lib/aws-sdk-core.rb#125 + def use_bundled_cert!; end + end +end + +# Create and provide access to components of Amazon Resource Names (ARN). +# +# You can create an ARN and access it's components like the following: +# +# arn = Aws::ARN.new( +# partition: 'aws', +# service: 's3', +# region: 'us-west-2', +# account_id: '12345678910', +# resource: 'foo/bar' +# ) +# # => # +# +# arn.to_s +# # => "arn:aws:s3:us-west-2:12345678910:foo/bar" +# +# arn.partition +# # => 'aws' +# arn.service +# # => 's3' +# arn.resource +# # => foo/bar +# +# # Note: parser available for parsing resource details +# @see Aws::ARNParser#parse_resource +# +# @see https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-arns +# +# source://aws-sdk-core//lib/aws-sdk-core/arn.rb#31 +class Aws::ARN + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] + # @return [ARN] a new instance of ARN + # + # source://aws-sdk-core//lib/aws-sdk-core/arn.rb#39 + def initialize(options = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/arn.rb#57 + def account_id; end + + # Return the ARN as JSON + # + # @return [Hash] + # + # source://aws-sdk-core//lib/aws-sdk-core/arn.rb#95 + def as_json(_options = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/arn.rb#48 + def partition; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/arn.rb#54 + def region; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/arn.rb#60 + def resource; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/arn.rb#51 + def service; end + + # Return the ARN as a hash + # + # @return [Hash] + # + # source://aws-sdk-core//lib/aws-sdk-core/arn.rb#82 + def to_h; end + + # Return the ARN format in string + # + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/arn.rb#75 + def to_s; end + + # Validates ARN contains non-empty required components. + # Region and account_id can be optional. + # + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/arn.rb#66 + def valid?; end +end + +# source://aws-sdk-core//lib/aws-sdk-core/arn_parser.rb#4 +module Aws::ARNParser + class << self + # Checks whether a String could be a ARN or not. An ARN starts with 'arn:' + # and has at least 6 segments separated by a colon (:). + # + # @param str [String] + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/arn_parser.rb#36 + def arn?(str); end + + # Parse a string with an ARN format into an {Aws::ARN} object. + # `InvalidARNError` would be raised when encountering a parsing error or the + # ARN object contains invalid components (nil/empty). + # + # @param arn_str [String] + # @raise [Aws::Errors::InvalidARNError] + # @return [Aws::ARN] + # @see https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-arns + # + # source://aws-sdk-core//lib/aws-sdk-core/arn_parser.rb#13 + def parse(arn_str); end + end +end + +# An auto-refreshing credential provider that assumes a role via +# {Aws::STS::Client#assume_role}. +# +# role_credentials = Aws::AssumeRoleCredentials.new( +# client: Aws::STS::Client.new(...), +# role_arn: "linked::account::arn", +# role_session_name: "session-name" +# ) +# ec2 = Aws::EC2::Client.new(credentials: role_credentials) +# +# If you omit `:client` option, a new {Aws::STS::Client} object will be +# constructed with additional options that were provided. +# +# @see Aws::STS::Client#assume_role +# +# source://aws-sdk-core//lib/aws-sdk-core/assume_role_credentials.rb#20 +class Aws::AssumeRoleCredentials + include ::Aws::CredentialProvider + include ::Aws::RefreshingCredentials + + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [AssumeRoleCredentials] a new instance of AssumeRoleCredentials + # + # source://aws-sdk-core//lib/aws-sdk-core/assume_role_credentials.rb#41 + def initialize(options = T.unsafe(nil)); end + + # @return [Hash] + # + # source://aws-sdk-core//lib/aws-sdk-core/assume_role_credentials.rb#60 + def assume_role_params; end + + # @return [STS::Client] + # + # source://aws-sdk-core//lib/aws-sdk-core/assume_role_credentials.rb#57 + def client; end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/assume_role_credentials.rb#76 + def parse_account_id(resp); end + + # source://aws-sdk-core//lib/aws-sdk-core/assume_role_credentials.rb#64 + def refresh; end + + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/assume_role_credentials.rb#84 + def assume_role_options; end + end +end + +# An auto-refreshing credential provider that assumes a role via +# {Aws::STS::Client#assume_role_with_web_identity}. +# +# role_credentials = Aws::AssumeRoleWebIdentityCredentials.new( +# client: Aws::STS::Client.new(...), +# role_arn: "linked::account::arn", +# web_identity_token_file: "/path/to/token/file", +# role_session_name: "session-name" +# ... +# ) +# ec2 = Aws::EC2::Client.new(credentials: role_credentials) +# +# If you omit `:client` option, a new {Aws::STS::Client} object will be +# constructed with additional options that were provided. +# +# @see Aws::STS::Client#assume_role_with_web_identity +# +# source://aws-sdk-core//lib/aws-sdk-core/assume_role_web_identity_credentials.rb#24 +class Aws::AssumeRoleWebIdentityCredentials + include ::Aws::CredentialProvider + include ::Aws::RefreshingCredentials + + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] + # @return [AssumeRoleWebIdentityCredentials] a new instance of AssumeRoleWebIdentityCredentials + # + # source://aws-sdk-core//lib/aws-sdk-core/assume_role_web_identity_credentials.rb#46 + def initialize(options = T.unsafe(nil)); end + + # @return [STS::Client] + # + # source://aws-sdk-core//lib/aws-sdk-core/assume_role_web_identity_credentials.rb#68 + def client; end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/assume_role_web_identity_credentials.rb#94 + def _session_name; end + + # source://aws-sdk-core//lib/aws-sdk-core/assume_role_web_identity_credentials.rb#87 + def _token_from_file(path); end + + # source://aws-sdk-core//lib/aws-sdk-core/assume_role_web_identity_credentials.rb#98 + def parse_account_id(resp); end + + # source://aws-sdk-core//lib/aws-sdk-core/assume_role_web_identity_credentials.rb#72 + def refresh; end + + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/assume_role_web_identity_credentials.rb#106 + def assume_role_web_identity_options; end + end +end + +# source://aws-sdk-core//lib/aws-sdk-core/async_client_stubs.rb#4 +module Aws::AsyncClientStubs + include ::Aws::ClientStubs + + # source://aws-sdk-core//lib/aws-sdk-core/async_client_stubs.rb#43 + def send_events; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/async_client_stubs.rb#9 + def setup_stubbing; end +end + +# source://aws-sdk-core//lib/aws-sdk-core/async_client_stubs.rb#53 +class Aws::AsyncClientStubs::StubStream + # @return [StubStream] a new instance of StubStream + # + # source://aws-sdk-core//lib/aws-sdk-core/async_client_stubs.rb#55 + def initialize; end + + # source://aws-sdk-core//lib/aws-sdk-core/async_client_stubs.rb#77 + def close; end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/async_client_stubs.rb#73 + def closed?; end + + # source://aws-sdk-core//lib/aws-sdk-core/async_client_stubs.rb#63 + def data(bytes, options = T.unsafe(nil)); end + + # Returns the value of attribute send_events. + # + # source://aws-sdk-core//lib/aws-sdk-core/async_client_stubs.rb#59 + def send_events; end + + # Sets the attribute send_events + # + # @param value the value to set the attribute send_events to. + # + # source://aws-sdk-core//lib/aws-sdk-core/async_client_stubs.rb#59 + def send_events=(_arg0); end + + # Returns the value of attribute state. + # + # source://aws-sdk-core//lib/aws-sdk-core/async_client_stubs.rb#61 + def state; end +end + +# source://aws-sdk-core//lib/aws-sdk-core/binary/decode_handler.rb#4 +module Aws::Binary; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/binary/decode_handler.rb#7 +class Aws::Binary::DecodeHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/decode_handler.rb#9 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/decode_handler.rb#24 + def attach_eventstream_listeners(context, rules); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/decode_handler.rb#18 + def eventstream?(ctx); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/binary/encode_handler.rb#7 +class Aws::Binary::EncodeHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/encode_handler.rb#9 + def call(context); end + + private + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/encode_handler.rb#36 + def eventstream_input?(ctx); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/encode_handler.rb#25 + def signer_for(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/binary/event_builder.rb#6 +class Aws::Binary::EventBuilder + include ::Seahorse::Model::Shapes + + # @api private + # @param serializer_class [Class] + # @param rules [Seahorse::Model::ShapeRef] (of eventstream member) + # @return [EventBuilder] a new instance of EventBuilder + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_builder.rb#12 + def initialize(serializer_class, rules); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_builder.rb#17 + def apply(event_type, params); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_builder.rb#24 + def _event_stream_message(event_ref, params); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_builder.rb#116 + def build_payload_members(payload_ref, params); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_builder.rb#87 + def content_type(shape); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_builder.rb#103 + def header_value_type(shape, value); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/binary/event_parser.rb#6 +class Aws::Binary::EventParser + include ::Seahorse::Model::Shapes + + # @api private + # @param parser_class [Class] + # @param rules [Seahorse::Model::ShapeRef] (of eventstream member) + # @param error_refs [Array] array of errors ShapeRef + # @param output_ref [Seahorse::Model::ShapeRef] + # @return [EventParser] a new instance of EventParser + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_parser.rb#14 + def initialize(parser_class, rules, error_refs, output_ref); end + + # Parse raw event message into event struct + # based on its ShapeRef + # + # @api private + # @return [Struct] Event Struct + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_parser.rb#25 + def apply(raw_event); end + + private + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_parser.rb#125 + def eventpayload_streaming?(ref); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_parser.rb#31 + def parse(raw_event); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_parser.rb#60 + def parse_error_event(raw_event); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_parser.rb#70 + def parse_event(raw_event); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_parser.rb#51 + def parse_exception(raw_event); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_parser.rb#129 + def parse_payload(body, rules); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/binary/event_stream_decoder.rb#8 +class Aws::Binary::EventStreamDecoder + # that registered with callbacks for processing events when they arrive + # + # @api private + # @param protocol [String] + # @param rules [ShapeRef] ShapeRef of the eventstream member + # @param output_ref [ShapeRef] ShapeRef of output shape + # @param error_refs [Array] array of ShapeRefs for errors + # @param event_stream_handler [EventStream|nil] A Service EventStream object + # @return [EventStreamDecoder] a new instance of EventStreamDecoder + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_stream_decoder.rb#16 + def initialize(protocol, rules, output_ref, error_refs, io, event_stream_handler = T.unsafe(nil)); end + + # @api private + # @return [Array] events Array of arrived event objects + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_stream_decoder.rb#25 + def events; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_stream_decoder.rb#27 + def write(chunk); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_stream_decoder.rb#39 + def emit_event(raw_event); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_stream_decoder.rb#55 + def extract_stream_class(type_class); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_stream_decoder.rb#45 + def parser_class(protocol); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/binary/event_stream_encoder.rb#8 +class Aws::Binary::EventStreamEncoder + # @api private + # @param protocol [String] + # @param rules [ShapeRef] ShapeRef of the eventstream member + # @param input_ref [ShapeRef] ShapeRef of the input shape + # @param signer [Aws::Sigv4::Signer] + # @return [EventStreamEncoder] a new instance of EventStreamEncoder + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_stream_encoder.rb#14 + def initialize(protocol, rules, input_ref, signer); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_stream_encoder.rb#27 + def encode(event_type, params); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_stream_encoder.rb#25 + def prior_signature; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_stream_encoder.rb#25 + def prior_signature=(_arg0); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_stream_encoder.rb#23 + def rules; end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/binary/event_stream_encoder.rb#44 + def serializer_class(protocol); end +end + +# source://aws-sdk-core//lib/aws-sdk-core.rb#79 +Aws::CORE_GEM_VERSION = T.let(T.unsafe(nil), String) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor.rb#5 +module Aws::Cbor + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor.rb#74 + def decode(bytes); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor.rb#70 + def encode(data); end + + # @api private + # @return [Class] Returns the default engine. + # One of: + # + # * {CborEngine} + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor.rb#65 + def engine; end + + # @api private + # @param engine [Symbol, Class] Must be one of the following values: + # + # * :cbor + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor.rb#56 + def engine=(engine); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor.rb#79 + def set_default_engine; end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor.rb#91 + def load_engine(name); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor.rb#97 + def try_load_engine(name); end + end +end + +# Pure Ruby implementation of CBOR encode and decode +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor/cbor_engine.rb#9 +module Aws::Cbor::CborEngine + class << self + # source://aws-sdk-core//lib/aws-sdk-core/cbor/cbor_engine.rb#14 + def decode(bytes); end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/cbor_engine.rb#10 + def encode(data); end + end +end + +# Pure Ruby implementation of CBOR Decoder +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#6 +class Aws::Cbor::Decoder + # @return [Decoder] a new instance of Decoder + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#7 + def initialize(bytes); end + + # @raise [ExtraBytesError] + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#12 + def decode; end + + private + + # high level, generic decode. Based on the next type. Consumes and returns + # the next item as a ruby object. + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#31 + def decode_item; end + + # @raise [OutOfBytesError] + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#303 + def peek(n_bytes); end + + # low level streaming interface + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#83 + def peek_type; end + + # returns only the length of the array, caller must read the correct number of values after this + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#142 + def read_array; end + + # A decimal fraction or a bigfloat is represented as a tagged array + # that contains exactly two integer numbers: + # an exponent e and a mantissa m + # See: https://www.rfc-editor.org/rfc/rfc8949.html#name-decimal-fractions-and-bigfl + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#265 + def read_big_decimal; end + + # tag type 2 or 3 + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#244 + def read_bignum(tag_value); end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#131 + def read_binary_string; end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#182 + def read_boolean; end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#113 + def read_break_stop_code; end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#281 + def read_count(add_info); end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#238 + def read_double; end + + # returns nothing but consumes and checks the type/info. + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#160 + def read_end_indefinite_collection; end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#233 + def read_float; end + + # 16 bit IEEE 754 half-precision floats + # Support decoding only + # format: + # sign - 1 bit + # exponent - 5 bits + # precision - 10 bits + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#210 + def read_half; end + + # return a tuple of major_type, add_info + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#276 + def read_info; end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#118 + def read_integer; end + + # returns only the length of the array, caller must read the correct number of key value pairs after this + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#165 + def read_map; end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#194 + def read_nil; end + + # @raise [Error] + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#176 + def read_reserved_undefined; end + + # returns nothing but consumes and checks the type/info. + # Caller must keep reading until encountering the stop sequence + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#149 + def read_start_indefinite_array; end + + # returns nothing but consumes and checks the type/info. + # Caller must keep reading until encountering the stop sequence + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#155 + def read_start_indefinite_map; end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#136 + def read_string; end + + # returns only the tag, caller must interpret the tag and read another value as appropriate + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#171 + def read_tag; end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#199 + def read_undefined; end + + # @raise [OutOfBytesError] + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#294 + def take(n_bytes); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#23 +Aws::Cbor::Decoder::FIVE_BIT_MASK = T.let(T.unsafe(nil), Integer) + +# source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#27 +Aws::Cbor::Decoder::TAG_TYPE_BIGDEC = T.let(T.unsafe(nil), Integer) + +# source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#25 +Aws::Cbor::Decoder::TAG_TYPE_BIGNUM = T.let(T.unsafe(nil), Integer) + +# source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#24 +Aws::Cbor::Decoder::TAG_TYPE_EPOCH = T.let(T.unsafe(nil), Integer) + +# source://aws-sdk-core//lib/aws-sdk-core/cbor/decoder.rb#26 +Aws::Cbor::Decoder::TAG_TYPE_NEG_BIGNUM = T.let(T.unsafe(nil), Integer) + +# Pure ruby implementation of CBOR encoder. +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#8 +class Aws::Cbor::Encoder + # @return [Encoder] a new instance of Encoder + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#9 + def initialize; end + + # generic method for adding generic Ruby data based on its type + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#19 + def add(value); end + + # @return the encoded bytes in CBOR format for all added data + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#14 + def bytes; end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#167 + def add_auto_float(value); end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#140 + def add_auto_integer(value); end + + # A decimal fraction or a bigfloat is represented as a tagged array + # that contains exactly two integer numbers: + # an exponent e and a mantissa m + # decimal fractions are always represented with a base of 10 + # See: https://www.rfc-editor.org/rfc/rfc8949.html#name-decimal-fractions-and-bigfl + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#123 + def add_big_decimal(value); end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#104 + def add_bignum(value); end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#184 + def add_boolean(value); end + + # Encoding MUST already be Encoding::BINARY + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#189 + def add_byte_string(value); end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#163 + def add_double(value); end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#159 + def add_float(value); end + + # streaming style, lower level interface + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#93 + def add_integer(value); end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#180 + def add_nil; end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#194 + def add_string(value); end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#223 + def add_tag(tag); end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#227 + def add_time(value); end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#233 + def bignum_to_bytes(value); end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#218 + def end_indefinite_collection; end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#74 + def head(major_type, value); end + + # caller is responsible for adding length values + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#201 + def start_array(length); end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#205 + def start_indefinite_array; end + + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#214 + def start_indefinite_map; end + + # caller is responsible for adding length key/value pairs + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#210 + def start_map(length); end +end + +# 111_ 11011 - Major type 7 (Float) + value: 26 +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#65 +Aws::Cbor::Encoder::DOUBLE_BYTES = T.let(T.unsafe(nil), Integer) + +# 111_11010 - Major type 7 (Float) + value: 26 +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#64 +Aws::Cbor::Encoder::FLOAT_BYTES = T.let(T.unsafe(nil), Integer) + +# 100_00000 - Major Type 4 (Array) +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#59 +Aws::Cbor::Encoder::MAJOR_TYPE_ARRAY = T.let(T.unsafe(nil), Integer) + +# 010_00000 - Major Type 2 (Byte String) +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#57 +Aws::Cbor::Encoder::MAJOR_TYPE_BYTE_STR = T.let(T.unsafe(nil), Integer) + +# 101_00000 - Major Type 5 (Map) +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#60 +Aws::Cbor::Encoder::MAJOR_TYPE_MAP = T.let(T.unsafe(nil), Integer) + +# 001_00000 - Major Type 1 - negative int +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#56 +Aws::Cbor::Encoder::MAJOR_TYPE_NEGATIVE_INT = T.let(T.unsafe(nil), Integer) + +# 111_00000 - Major type 7 (111) + 5 bit 0 +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#62 +Aws::Cbor::Encoder::MAJOR_TYPE_SIMPLE = T.let(T.unsafe(nil), Integer) + +# 011_00000 - Major Type 3 (Text String) +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#58 +Aws::Cbor::Encoder::MAJOR_TYPE_STR = T.let(T.unsafe(nil), Integer) + +# 110_00000 - Major type 6 (Tag) +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#61 +Aws::Cbor::Encoder::MAJOR_TYPE_TAG = T.let(T.unsafe(nil), Integer) + +# 000_00000 - Major Type 0 - unsigned int +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#55 +Aws::Cbor::Encoder::MAJOR_TYPE_UNSIGNED_INT = T.let(T.unsafe(nil), Integer) + +# 2^64 +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#72 +Aws::Cbor::Encoder::MAX_INTEGER = T.let(T.unsafe(nil), Integer) + +# source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#69 +Aws::Cbor::Encoder::TAG_BIGNUM_BASE = T.let(T.unsafe(nil), Integer) + +# source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#70 +Aws::Cbor::Encoder::TAG_TYPE_BIGDEC = T.let(T.unsafe(nil), Integer) + +# https://www.rfc-editor.org/rfc/rfc8949.html#tags +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor/encoder.rb#68 +Aws::Cbor::Encoder::TAG_TYPE_EPOCH = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor.rb#22 +class Aws::Cbor::Error < ::StandardError; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor.rb#36 +class Aws::Cbor::ExtraBytesError < ::Aws::Cbor::Error + # @api private + # @return [ExtraBytesError] a new instance of ExtraBytesError + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor.rb#37 + def initialize(pos, size); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor.rb#24 +class Aws::Cbor::OutOfBytesError < ::Aws::Cbor::Error + # @api private + # @return [OutOfBytesError] a new instance of OutOfBytesError + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor.rb#25 + def initialize(n, left); end +end + +# CBOR Tagged data (Major type 6). +# A Tag consists of a tag number and a value. +# In the extended generic data model, a tag number's definition +# describes the additional semantics conveyed with the tag number. +# # @!method initialize(*args) +# @option args [Integer] :tag The tag number. +# @option args [Object] :value The tag's content. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor.rb#20 +class Aws::Cbor::Tagged < ::Struct + # The tag number. + # + # @return [Integer] + def tag; end + + # The tag number. + # + # @return [Integer] + def tag=(_); end + + # The tag's content. + # + # @return [Object] + def value; end + + # The tag's content. + # + # @return [Object] + def value=(_); end + + class << self + def [](*_arg0); end + def inspect; end + def keyword_init?; end + def members; end + def new(*_arg0); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor.rb#44 +class Aws::Cbor::UnexpectedAdditionalInformationError < ::Aws::Cbor::Error + # @api private + # @return [UnexpectedAdditionalInformationError] a new instance of UnexpectedAdditionalInformationError + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor.rb#45 + def initialize(add_info); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor.rb#42 +class Aws::Cbor::UnexpectedBreakCodeError < ::Aws::Cbor::Error; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/cbor.rb#30 +class Aws::Cbor::UnknownTypeError < ::Aws::Cbor::Error + # @api private + # @return [UnknownTypeError] a new instance of UnknownTypeError + # + # source://aws-sdk-core//lib/aws-sdk-core/cbor.rb#31 + def initialize(type); end +end + +# setup autoloading for ClientSideMonitoring module +# +# source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring.rb#5 +module Aws::ClientSideMonitoring; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/publisher.rb#9 +class Aws::ClientSideMonitoring::Publisher + # @api private + # @return [Publisher] a new instance of Publisher + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/publisher.rb#13 + def initialize(opts = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/publisher.rb#11 + def agent_host; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/publisher.rb#25 + def agent_host=(value); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/publisher.rb#10 + def agent_port; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/publisher.rb#19 + def agent_port=(value); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/publisher.rb#31 + def publish(request_metrics); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/publisher.rb#38 + def send_datagram(msg); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#6 +class Aws::ClientSideMonitoring::RequestMetrics + # @api private + # @return [RequestMetrics] a new instance of RequestMetrics + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#22 + def initialize(opts = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#54 + def add_call_attempt(attempt); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#7 + def api_call; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#7 + def api_call_attempts; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#33 + def build_call_attempt(opts = T.unsafe(nil)); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#58 +class Aws::ClientSideMonitoring::RequestMetrics::ApiCall + # @api private + # @return [ApiCall] a new instance of ApiCall + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#65 + def initialize(service, api, client_id, version, timestamp, region); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#59 + def api; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#59 + def attempt_count; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#59 + def client_id; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#74 + def complete(opts = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#59 + def final_aws_exception; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#59 + def final_aws_exception_message; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#59 + def final_http_status_code; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#59 + def final_sdk_exception; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#59 + def final_sdk_exception_message; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#59 + def latency; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#59 + def max_retries_exceeded; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#59 + def region; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#59 + def service; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#59 + def timestamp; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#91 + def to_json(*a); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#59 + def user_agent; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#59 + def version; end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#115 + def _truncate(document); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#126 +class Aws::ClientSideMonitoring::RequestMetrics::ApiCallAttempt + # @api private + # @return [ApiCallAttempt] a new instance of ApiCallAttempt + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#133 + def initialize(service, api, client_id, version, timestamp, fqdn, region, user_agent, access_key, session_token); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#127 + def access_key; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#127 + def api; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def aws_exception; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def aws_exception=(_arg0); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def aws_exception_msg; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def aws_exception_msg=(_arg0); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#127 + def client_id; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def fqdn; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def fqdn=(_arg0); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def http_status_code; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def http_status_code=(_arg0); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def region; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def region=(_arg0); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def request_latency; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def request_latency=(_arg0); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def sdk_exception; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def sdk_exception=(_arg0); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def sdk_exception_msg; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def sdk_exception_msg=(_arg0); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#127 + def service; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#127 + def session_token; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#127 + def timestamp; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#157 + def to_json(*a); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#127 + def user_agent; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#127 + def version; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def x_amz_id_2; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def x_amz_id_2=(_arg0); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def x_amz_request_id; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def x_amz_request_id=(_arg0); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def x_amzn_request_id; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#129 + def x_amzn_request_id=(_arg0); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#186 + def _truncate(document); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/client_side_monitoring/request_metrics.rb#9 +Aws::ClientSideMonitoring::RequestMetrics::FIELD_MAX_LENGTH = T.let(T.unsafe(nil), Hash) + +# This module provides the ability to specify the data and/or errors to +# return when a client is using stubbed responses. Pass +# `:stub_responses => true` to a client constructor to enable this +# behavior. +# +# Also allows you to see the requests made by the client by reading the +# api_requests instance variable +# +# source://aws-sdk-core//lib/aws-sdk-core/client_stubs.rb#14 +module Aws::ClientStubs + # Allows you to access all of the requests that the stubbed client has made. + # + # @option options + # @param options [Hash] The options for the api requests. + # @raise [NotImplementedError] Raises `NotImplementedError` when the client + # is not stubbed. + # @return [Array] Returns an array of the api requests made. Each request + # object contains the :operation_name, :params, and :context. + # + # source://aws-sdk-core//lib/aws-sdk-core/client_stubs.rb#196 + def api_requests(options = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_stubs.rb#235 + def next_stub(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/client_stubs.rb#17 + def setup_stubbing; end + + # Generates and returns stubbed response data from the named operation. + # + # s3 = Aws::S3::Client.new + # s3.stub_data(:list_buckets) + # #=> #> + # + # In addition to generating default stubs, you can provide data to + # apply to the response stub. + # + # s3.stub_data(:list_buckets, buckets:[{name:'aws-sdk'}]) + # #=> #], + # owner=#> + # + # @param operation_name [Symbol] + # @param data [Hash] + # @return [Structure] Returns a stubbed response data structure. The + # actual class returned will depend on the given `operation_name`. + # + # source://aws-sdk-core//lib/aws-sdk-core/client_stubs.rb#230 + def stub_data(operation_name, data = T.unsafe(nil)); end + + # Configures what data / errors should be returned from the named operation + # when response stubbing is enabled. + # + # ## Basic usage + # + # When you enable response stubbing, the client will generate fake + # responses and will not make any HTTP requests. + # + # client = Aws::S3::Client.new(stub_responses: true) + # client.list_buckets + # #=> # + # + # You can provide stub data that will be returned by the client. + # + # # stub data in the constructor + # client = Aws::S3::Client.new(stub_responses: { + # list_buckets: { buckets: [{name: 'my-bucket' }] }, + # get_object: { body: 'data' }, + # }) + # + # client.list_buckets.buckets.map(&:name) #=> ['my-bucket'] + # client.get_object(bucket:'name', key:'key').body.read #=> 'data' + # + # You can also specify the stub data using {#stub_responses} + # + # client = Aws::S3::Client.new(stub_responses: true) + # client.stub_responses(:list_buckets, { + # buckets: [{ name: 'my-bucket' }] + # }) + # + # client.list_buckets.buckets.map(&:name) + # #=> ['my-bucket'] + # + # With a Resource class {#stub_responses} on the corresponding client: + # + # s3 = Aws::S3::Resource.new(stub_responses: true) + # s3.client.stub_responses(:list_buckets, { + # buckets: [{ name: 'my-bucket' }] + # }) + # + # s3.buckets.map(&:name) + # #=> ['my-bucket'] + # + # Lastly, default stubs can be configured via `Aws.config`: + # + # Aws.config[:s3] = { + # stub_responses: { + # list_buckets: { buckets: [{name: 'my-bucket' }] } + # } + # } + # + # Aws::S3::Client.new.list_buckets.buckets.map(&:name) + # #=> ['my-bucket'] + # + # Aws::S3::Resource.new.buckets.map(&:name) + # #=> ['my-bucket'] + # + # ## Dynamic Stubbing + # + # In addition to creating static stubs, it's also possible to generate + # stubs dynamically based on the parameters with which operations were + # called, by passing a `Proc` object: + # + # s3 = Aws::S3::Resource.new(stub_responses: true) + # s3.client.stub_responses(:put_object, -> (context) { + # s3.client.stub_responses(:get_object, content_type: context.params[:content_type]) + # }) + # + # The yielded object is an instance of {Seahorse::Client::RequestContext}. + # + # ## Stubbing Errors + # + # When stubbing is enabled, the SDK will default to generate + # fake responses with placeholder values. You can override the data + # returned. You can also specify errors it should raise. + # + # # simulate service errors, give the error code + # client.stub_responses(:get_object, 'NotFound') + # client.get_object(bucket:'aws-sdk', key:'foo') + # #=> raises Aws::S3::Errors::NotFound + # + # # to simulate other errors, give the error class, you must + # # be able to construct an instance with `.new` + # client.stub_responses(:get_object, Timeout::Error) + # client.get_object(bucket:'aws-sdk', key:'foo') + # #=> raises new Timeout::Error + # + # # or you can give an instance of an error class + # client.stub_responses(:get_object, RuntimeError.new('custom message')) + # client.get_object(bucket:'aws-sdk', key:'foo') + # #=> raises the given runtime error object + # + # ## Stubbing HTTP Responses + # + # As an alternative to providing the response data, you can provide + # an HTTP response. + # + # client.stub_responses(:get_object, { + # status_code: 200, + # headers: { 'header-name' => 'header-value' }, + # body: "...", + # }) + # + # To stub a HTTP response, pass a Hash with all three of the following + # keys set: + # + # * **`:status_code`** - - The HTTP status code + # * **`:headers`** - Hash - A hash of HTTP header keys and values + # * **`:body`** - - The HTTP response body. + # + # ## Stubbing Multiple Responses + # + # Calling an operation multiple times will return similar responses. + # You can configure multiple stubs and they will be returned in sequence. + # + # client.stub_responses(:head_object, [ + # 'NotFound', + # { content_length: 150 }, + # ]) + # + # client.head_object(bucket:'aws-sdk', key:'foo') + # #=> raises Aws::S3::Errors::NotFound + # + # resp = client.head_object(bucket:'aws-sdk', key:'foo') + # resp.content_length #=> 150 + # + # @param operation_name [Symbol] + # @param stubs [Mixed] One or more responses to return from the named + # operation. + # @raise [RuntimeError] Raises a runtime error when called + # on a client that has not enabled response stubbing via + # `:stub_responses => true`. + # @return [void] + # + # source://aws-sdk-core//lib/aws-sdk-core/client_stubs.rb#177 + def stub_responses(operation_name, *stubs); end + + private + + # This method converts the given stub data and converts it to a + # HTTP response (when possible). This enables the response stubbing + # plugin to provide a HTTP response that triggers all normal events + # during response handling. + # + # source://aws-sdk-core//lib/aws-sdk-core/client_stubs.rb#259 + def apply_stubs(operation_name, stubs); end + + # source://aws-sdk-core//lib/aws-sdk-core/client_stubs.rb#267 + def convert_stub(operation_name, stub); end + + # source://aws-sdk-core//lib/aws-sdk-core/client_stubs.rb#301 + def data_to_http_resp(operation_name, data); end + + # source://aws-sdk-core//lib/aws-sdk-core/client_stubs.rb#250 + def default_stub(operation_name); end + + # source://aws-sdk-core//lib/aws-sdk-core/client_stubs.rb#293 + def hash_to_http_resp(data); end + + # source://aws-sdk-core//lib/aws-sdk-core/client_stubs.rb#285 + def http_response_stub(operation_name, data); end + + # source://aws-sdk-core//lib/aws-sdk-core/client_stubs.rb#308 + def protocol_helper; end + + # source://aws-sdk-core//lib/aws-sdk-core/client_stubs.rb#281 + def service_error_stub(error_code); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/credential_provider.rb#4 +module Aws::CredentialProvider + # @return [Credentials] + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider.rb#7 + def credentials; end + + # @return [Time] + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider.rb#10 + def expiration; end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider.rb#13 + def set?; end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#5 +class Aws::CredentialProviderChain + # @api private + # @return [CredentialProviderChain] a new instance of CredentialProviderChain + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#6 + def initialize(config = T.unsafe(nil)); end + + # @api private + # @return [CredentialProvider, nil] + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#11 + def resolve; end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#144 + def assume_role_credentials(options); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#150 + def assume_role_web_identity_credentials(options); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#179 + def assume_role_with_profile(options, profile_name); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#114 + def determine_profile_name(options); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#94 + def env_credentials(_options); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#107 + def envar(keys); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#169 + def instance_profile_credentials(options); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#125 + def process_credentials(options); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#21 + def providers; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#118 + def shared_credentials(options); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#135 + def sso_credentials(options); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#43 + def static_credentials(options); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#71 + def static_profile_assume_role_credentials(options); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#54 + def static_profile_assume_role_web_identity_credentials(options); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#77 + def static_profile_credentials(options); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#85 + def static_profile_process_credentials(options); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/credential_provider_chain.rb#63 + def static_profile_sso_credentials(options); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/credentials.rb#4 +class Aws::Credentials + # @option kwargs + # @param access_key_id [String] + # @param secret_access_key [String] + # @param session_token [String] (nil) + # @param kwargs [Hash] + # @return [Credentials] a new instance of Credentials + # + # source://aws-sdk-core//lib/aws-sdk-core/credentials.rb#11 + def initialize(access_key_id, secret_access_key, session_token = T.unsafe(nil), **kwargs); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/credentials.rb#20 + def access_key_id; end + + # @return [String, nil] + # + # source://aws-sdk-core//lib/aws-sdk-core/credentials.rb#29 + def account_id; end + + # @return [Credentials] + # + # source://aws-sdk-core//lib/aws-sdk-core/credentials.rb#32 + def credentials; end + + # Removing the secret access key from the default inspect string. + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/credentials.rb#47 + def inspect; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/credentials.rb#23 + def secret_access_key; end + + # @return [String, nil] + # + # source://aws-sdk-core//lib/aws-sdk-core/credentials.rb#26 + def session_token; end + + # @return [Boolean] Returns `true` if the access key id and secret + # access key are both set. + # + # source://aws-sdk-core//lib/aws-sdk-core/credentials.rb#38 + def set?; end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-defaults/defaults_mode_config_resolver.rb#5 +class Aws::DefaultsModeConfigResolver + # @api private + # @return [DefaultsModeConfigResolver] a new instance of DefaultsModeConfigResolver + # + # source://aws-sdk-core//lib/aws-defaults/defaults_mode_config_resolver.rb#22 + def initialize(sdk_defaults, cfg); end + + # option_name should be the symbolized ruby name to resolve + # returns the ruby appropriate value or nil if none are resolved + # + # @api private + # + # source://aws-sdk-core//lib/aws-defaults/defaults_mode_config_resolver.rb#31 + def resolve(option_name); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-defaults/defaults_mode_config_resolver.rb#65 + def application_current_region; end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-defaults/defaults_mode_config_resolver.rb#102 + def env_mobile?; end + + # @api private + # + # source://aws-sdk-core//lib/aws-defaults/defaults_mode_config_resolver.rb#52 + def resolve_auto_mode; end + + # @api private + # + # source://aws-sdk-core//lib/aws-defaults/defaults_mode_config_resolver.rb#88 + def resolve_for_mode(name, mode); end + + # @api private + # + # source://aws-sdk-core//lib/aws-defaults/defaults_mode_config_resolver.rb#44 + def resolved_mode; end +end + +# mappings from Ruby SDK configuration names to the +# sdk defaults option names and (optional) scale modifiers +# +# @api private +# +# source://aws-sdk-core//lib/aws-defaults/defaults_mode_config_resolver.rb#13 +Aws::DefaultsModeConfigResolver::CFG_OPTIONS = T.let(T.unsafe(nil), Hash) + +# A defaults mode determines how certain default configuration options are resolved in the SDK. +# +# *Note*: For any mode other than `'legacy'` the vended default values might change as best practices may +# evolve. As a result, it is encouraged to perform testing when upgrading the SDK if you are using a mode other than +# `'legacy'`. While the `'legacy'` defaults mode is specific to Ruby, +# other modes are standardized across all of the AWS SDKs. +# +# The defaults mode can be configured: +# +# * Directly on a client via `:defaults_mode` +# +# * On a configuration profile via the "defaults_mode" profile file property. +# +# * Globally via the "AWS_DEFAULTS_MODE" environment variable. +# +# +# #defaults START - documentation +# The following `:default_mode` values are supported: +# +# * `'standard'` - +# The STANDARD mode provides the latest recommended default values +# that should be safe to run in most scenarios +# +# Note that the default values vended from this mode might change as +# best practices may evolve. As a result, it is encouraged to perform +# tests when upgrading the SDK +# +# * `'in-region'` - +# The IN\_REGION mode builds on the standard mode and includes +# optimization tailored for applications which call AWS services from +# within the same AWS region +# +# Note that the default values vended from this mode might change as +# best practices may evolve. As a result, it is encouraged to perform +# tests when upgrading the SDK +# +# * `'cross-region'` - +# The CROSS\_REGION mode builds on the standard mode and includes +# optimization tailored for applications which call AWS services in a +# different region +# +# Note that the default values vended from this mode might change as +# best practices may evolve. As a result, it is encouraged to perform +# tests when upgrading the SDK +# +# * `'mobile'` - +# The MOBILE mode builds on the standard mode and includes +# optimization tailored for mobile applications +# +# Note that the default values vended from this mode might change as +# best practices may evolve. As a result, it is encouraged to perform +# tests when upgrading the SDK +# +# * `'auto'` - +# The AUTO mode is an experimental mode that builds on the standard +# mode. The SDK will attempt to discover the execution environment to +# determine the appropriate settings automatically. +# +# Note that the auto detection is heuristics-based and does not +# guarantee 100% accuracy. STANDARD mode will be used if the execution +# environment cannot be determined. The auto detection might query +# [EC2 Instance Metadata service][1], which might introduce latency. +# Therefore we recommend choosing an explicit defaults\_mode instead +# if startup latency is critical to your application +# +# * `'legacy'` - +# The LEGACY mode provides default settings that vary per SDK and were +# used prior to establishment of defaults\_mode +# +# Based on the provided mode, the SDK will vend sensible default values +# tailored to the mode for the following settings: +# +# * `:retry_mode` - +# A retry mode specifies how the SDK attempts retries. See [Retry +# Mode][2] +# +# * `:sts_regional_endpoints` - +# Specifies how the SDK determines the AWS service endpoint that it +# uses to talk to the AWS Security Token Service (AWS STS). See +# [Setting STS Regional endpoints][3] +# +# * `:s3_us_east_1_regional_endpoint` - +# Specifies how the SDK determines the AWS service endpoint that it +# uses to talk to the Amazon S3 for the us-east-1 region +# +# * `:http_open_timeout` - +# The amount of time after making an initial connection attempt on a +# socket, where if the client does not receive a completion of the +# connect handshake, the client gives up and fails the operation +# +# * `:ssl_timeout` - +# The maximum amount of time that a TLS handshake is allowed to take +# from the time the CLIENT HELLO message is sent to ethe time the +# client and server have fully negotiated ciphers and exchanged keys +# +# All options above can be configured by users, and the overridden value will take precedence. +# +# [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html +# [2]: https://docs.aws.amazon.com/sdkref/latest/guide/setting-global-retry_mode.html +# [3]: https://docs.aws.amazon.com/sdkref/latest/guide/setting-global-sts_regional_endpoints.html +# +# #defaults END - documentation +# +# source://aws-sdk-core//lib/aws-defaults/default_configuration.rb#109 +module Aws::DefaultsModeConfiguration; end + +# #defaults START - configuration +# +# @api private +# +# source://aws-sdk-core//lib/aws-defaults/default_configuration.rb#112 +Aws::DefaultsModeConfiguration::SDK_DEFAULT_CONFIGURATION = T.let(T.unsafe(nil), Hash) + +# A utility module that provides a class method that wraps +# a method such that it generates a deprecation warning when called. +# Given the following class: +# +# class Example +# +# def do_something +# end +# +# end +# +# If you want to deprecate the `#do_something` method, you can extend +# this module and then call `deprecated` on the method (after it +# has been defined). +# +# class Example +# +# extend Aws::Deprecations +# +# def do_something +# end +# +# def do_something_else +# end +# +# deprecated :do_something +# +# end +# +# The `#do_something` method will continue to function, but will +# generate a deprecation warning when called. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/deprecations.rb#38 +module Aws::Deprecations + # @api private + # @option options + # @option options + # @option options + # @param method [Symbol] The name of the deprecated method. + # @param options [Hash] a customizable set of options + # + # source://aws-sdk-core//lib/aws-sdk-core/deprecations.rb#50 + def deprecated(method, options = T.unsafe(nil)); end +end + +# A client that can query version 2 of the EC2 Instance Metadata +# +# source://aws-sdk-core//lib/aws-sdk-core/ec2_metadata.rb#8 +class Aws::EC2Metadata + # Creates a client that can query version 2 of the EC2 Instance Metadata + # service (IMDS). + # + # @note Customers using containers may need to increase their hop limit + # to access IMDSv2. + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] + # @return [EC2Metadata] a new instance of EC2Metadata + # @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html#instance-metadata-transition-to-version-2 + # + # source://aws-sdk-core//lib/aws-sdk-core/ec2_metadata.rb#57 + def initialize(options = T.unsafe(nil)); end + + # Fetches a given metadata category using a String path, and returns the + # result as a String. A path starts with the API version (usually + # "/latest/"). See the instance data categories for possible paths. + # + # @example Fetching the instance ID + # + # ec2_metadata = Aws::EC2Metadata.new + # ec2_metadata.get('/latest/meta-data/instance-id') + # => "i-023a25f10a73a0f79" + # @example Fetching and parsing JSON meta-data + # + # require 'json' + # data = ec2_metadata.get('/latest/dynamic/instance-identity/document') + # JSON.parse(data) + # => {"accountId"=>"012345678912", ... } + # @example Fetching and parsing directory listings + # + # listing = ec2_metadata.get('/latest/meta-data') + # listing.split(10.chr) + # => ["ami-id", "ami-launch-index", ...] + # @note This implementation always returns a String and will not parse any + # responses. Parsable responses may include JSON objects or directory + # listings, which are strings separated by line feeds (ASCII 10). + # @note Unlike other services, IMDS does not have a service API model. This + # means that we cannot confidently generate code with methods and + # response structures. This implementation ensures that new IMDS features + # are always supported by being deployed to the instance and does not + # require code changes. + # @param path [String] The full path to the metadata. + # @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html + # @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-identity-documents.html + # + # source://aws-sdk-core//lib/aws-sdk-core/ec2_metadata.rb#110 + def get(path); end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/ec2_metadata.rb#213 + def backoff(backoff); end + + # source://aws-sdk-core//lib/aws-sdk-core/ec2_metadata.rb#137 + def fetch_token; end + + # source://aws-sdk-core//lib/aws-sdk-core/ec2_metadata.rb#145 + def http_get(connection, path, token); end + + # source://aws-sdk-core//lib/aws-sdk-core/ec2_metadata.rb#163 + def http_put(connection, ttl); end + + # source://aws-sdk-core//lib/aws-sdk-core/ec2_metadata.rb#184 + def open_connection; end + + # source://aws-sdk-core//lib/aws-sdk-core/ec2_metadata.rb#124 + def resolve_endpoint(endpoint, endpoint_mode); end + + # source://aws-sdk-core//lib/aws-sdk-core/ec2_metadata.rb#194 + def retry_errors(options = T.unsafe(nil), &_block); end +end + +# Path for PUT request for token +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/ec2_metadata.rb#11 +Aws::EC2Metadata::METADATA_TOKEN_PATH = T.let(T.unsafe(nil), String) + +# The requested metadata path does not exist. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/ec2_metadata.rb#24 +class Aws::EC2Metadata::MetadataNotFoundError < ::RuntimeError; end + +# The request is not allowed or IMDS is turned off. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/ec2_metadata.rb#28 +class Aws::EC2Metadata::RequestForbiddenError < ::RuntimeError; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/ec2_metadata.rb#222 +class Aws::EC2Metadata::Token + # @api private + # @return [Token] a new instance of Token + # + # source://aws-sdk-core//lib/aws-sdk-core/ec2_metadata.rb#223 + def initialize(options = T.unsafe(nil)); end + + # [Boolean] Returns true if the token expired. + # + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/ec2_metadata.rb#233 + def expired?; end + + # [String] Returns the token value. + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/ec2_metadata.rb#230 + def value; end +end + +# Token has expired, and the request can be retried with a new token. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/ec2_metadata.rb#20 +class Aws::EC2Metadata::TokenExpiredError < ::RuntimeError; end + +# Raised when the PUT request is not valid. This would be thrown if +# `token_ttl` is not an Integer. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/ec2_metadata.rb#16 +class Aws::EC2Metadata::TokenRetrievalError < ::RuntimeError; end + +# An auto-refreshing credential provider that loads credentials from +# instances running in containers. +# +# ecs_credentials = Aws::ECSCredentials.new(retries: 3) +# ec2 = Aws::EC2::Client.new(credentials: ecs_credentials) +# +# source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#13 +class Aws::ECSCredentials + include ::Aws::CredentialProvider + include ::Aws::RefreshingCredentials + + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] + # @return [ECSCredentials] a new instance of ECSCredentials + # + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#67 + def initialize(options = T.unsafe(nil)); end + + # @return [Integer] The number of times to retry failed attempts to + # fetch credentials from the instance metadata service. Defaults to 0. + # + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#85 + def retries; end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#173 + def backoff(backoff); end + + # Verify that the IP address is a link-local address from ECS or EKS. + # ECS container host (IPv4 `169.254.170.2`) + # EKS container host (IPv4 `169.254.170.23`, IPv6 `fd00:ec2::23`) + # + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#162 + def ecs_or_eks_ip?(ip_address); end + + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#215 + def fetch_authorization_token; end + + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#223 + def fetch_authorization_token_file(path); end + + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#199 + def get_credentials; end + + # @raise [Non200Response] + # + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#249 + def http_get(connection, path); end + + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#109 + def initialize_full_uri(endpoint); end + + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#102 + def initialize_relative_uri(options, path); end + + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#89 + def initialize_uri(options, credential_path, endpoint); end + + # loopback? method is available in Ruby 2.5+ + # Replicate the logic here. + # loopback (IPv4 127.0.0.0/8, IPv6 ::1/128) + # + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#148 + def ip_loopback?(ip_address); end + + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#239 + def open_connection; end + + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#181 + def refresh; end + + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#265 + def retry_errors(error_classes, options = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#258 + def set_authorization_token(request); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#141 + def valid_ip_address?(ip_address); end + + # @raise [InvalidTokenError] + # + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#231 + def validate_authorization_token!(token); end + + # Validate that the full URI is using a loopback address if scheme is http. + # + # @raise [ArgumentError] + # + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#126 + def validate_full_uri!(full_uri); end + + # @raise [ArgumentError] + # + # source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#119 + def validate_full_uri_scheme!(full_uri); end +end + +# Raised when the token file is invalid. +# +# source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#24 +class Aws::ECSCredentials::InvalidTokenError < ::RuntimeError; end + +# These are the errors we trap when attempting to talk to the +# instance metadata service. Any of these imply the service +# is not present, no responding or some other non-recoverable +# error. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#31 +Aws::ECSCredentials::NETWORK_ERRORS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#18 +class Aws::ECSCredentials::Non200Response < ::RuntimeError; end + +# Raised when the token file cannot be read. +# +# source://aws-sdk-core//lib/aws-sdk-core/ecs_credentials.rb#21 +class Aws::ECSCredentials::TokenFileReadError < ::RuntimeError; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/eager_loader.rb#7 +class Aws::EagerLoader + # @api private + # @return [EagerLoader] a new instance of EagerLoader + # + # source://aws-sdk-core//lib/aws-sdk-core/eager_loader.rb#9 + def initialize; end + + # @api private + # @param klass_or_module [Module] + # @return [self] + # + # source://aws-sdk-core//lib/aws-sdk-core/eager_loader.rb#18 + def load(klass_or_module); end + + # @api private + # @return [Set] + # + # source://aws-sdk-core//lib/aws-sdk-core/eager_loader.rb#14 + def loaded; end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/structure.rb#88 +class Aws::EmptyStructure < ::Struct + include ::Aws::Structure +end + +# a LRU cache caching endpoints data +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#6 +class Aws::EndpointCache + # @api private + # @return [EndpointCache] a new instance of EndpointCache + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#14 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @param key [String] + # @return [Endpoint] + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#34 + def [](key); end + + # @api private + # @param key [String] + # @param value [Hash] + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#48 + def []=(key, value); end + + # remove entry only + # + # @api private + # @param key [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#82 + def delete(key); end + + # kill the old polling thread and remove it from pool + # + # @api private + # @param key [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#90 + def delete_polling_thread(key); end + + # extract the key to be used in the cache from request context + # + # @api private + # @param ctx [RequestContext] + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#109 + def extract_key(ctx); end + + # checking whether an unexpired endpoint key exists in cache + # + # @api private + # @param key [String] + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#64 + def key?(key); end + + # @api private + # @return [Integer] Max size limit of cache + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#24 + def max_entries; end + + # @api private + # @return [Integer] Max count of polling threads + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#27 + def max_threads; end + + # return [Hash] Polling threads pool + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#30 + def pool; end + + # kill all polling threads + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#135 + def stop_polling!; end + + # checking whether an polling thread exist for the key + # + # @api private + # @param key [String] + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#76 + def threads_key?(key); end + + # update cache with requests (using service endpoint operation) + # to fetch endpoint list (with identifiers when available) + # + # @api private + # @param key [String] + # @param ctx [RequestContext] + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#99 + def update(key, ctx); end + + # update polling threads pool + # param [String] key + # param [Thread] thread + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#126 + def update_polling_pool(key, thread); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#164 + def _endpoint_operation_identifier(ctx); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#142 + def _request_endpoint(ctx); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#172 +class Aws::EndpointCache::Endpoint + # @api private + # @return [Endpoint] a new instance of Endpoint + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#177 + def initialize(options); end + + # [String] valid URI address (with path) + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#184 + def address; end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#186 + def expired?; end +end + +# default endpoint cache time, 1 minute +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#175 +Aws::EndpointCache::Endpoint::CACHE_PERIOD = T.let(T.unsafe(nil), Integer) + +# default cache entries limit +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#9 +Aws::EndpointCache::MAX_ENTRIES = T.let(T.unsafe(nil), Integer) + +# default max threads pool size +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoint_cache.rb#12 +Aws::EndpointCache::MAX_THREADS = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoints/rule.rb#4 +module Aws::Endpoints + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints.rb#30 + def resolve_auth_scheme(context, endpoint); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints.rb#96 + def default_api_auth(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints.rb#71 + def default_auth_scheme(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints.rb#127 + def legacy_default_api_authtype(context); end + + # Legacy auth resolution - looks for deprecated signatureVersion + # and authType traits. + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints.rb#108 + def legacy_default_auth_scheme(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints.rb#45 + def merge_signing_defaults(auth_scheme, config); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints.rb#101 + def s3_or_s3v4_signature_version?(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints.rb#66 + def sigv4_name(config); end + end +end + +# This class is deprecated. It is used by the Runtime endpoint +# resolution approach. It has been replaced by a code generated +# approach in each service gem. It can be removed in a new +# major version. It has to exist because +# old service gems can use a new core version. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoints/condition.rb#11 +class Aws::Endpoints::Condition + # @api private + # @return [Condition] a new instance of Condition + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/condition.rb#12 + def initialize(fn:, argv:, assign: T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/condition.rb#19 + def argv; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/condition.rb#20 + def assign; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/condition.rb#22 + def assigned; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/condition.rb#18 + def fn; end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/condition.rb#24 + def match?(parameters, assigns); end + + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/condition.rb#30 + def from_json(conditions_json); end + end +end + +# source://aws-sdk-core//lib/aws-sdk-core/endpoints/endpoint.rb#5 +class Aws::Endpoints::Endpoint + # @return [Endpoint] a new instance of Endpoint + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/endpoint.rb#6 + def initialize(url:, properties: T.unsafe(nil), headers: T.unsafe(nil), metadata: T.unsafe(nil)); end + + # Returns the value of attribute headers. + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/endpoint.rb#15 + def headers; end + + # Returns the value of attribute metadata. + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/endpoint.rb#16 + def metadata; end + + # Returns the value of attribute properties. + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/endpoint.rb#14 + def properties; end + + # Returns the value of attribute url. + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/endpoint.rb#13 + def url; end +end + +# This class is deprecated. It is used by the Runtime endpoint +# resolution approach. It has been replaced by a code generated +# approach in each service gem. It can be removed in a new +# major version. It has to exist because +# old service gems can use a new core version. # @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoints/endpoint_rule.rb#10 +class Aws::Endpoints::EndpointRule < ::Aws::Endpoints::Rule + # @return [EndpointRule] a new instance of EndpointRule + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/endpoint_rule.rb#11 + def initialize(conditions:, endpoint:, type: T.unsafe(nil), documentation: T.unsafe(nil)); end + + # Returns the value of attribute conditions. + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/endpoint_rule.rb#20 + def conditions; end + + # Returns the value of attribute documentation. + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/endpoint_rule.rb#22 + def documentation; end + + # Returns the value of attribute endpoint. + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/endpoint_rule.rb#21 + def endpoint; end + + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/endpoint_rule.rb#24 + def match(parameters, assigned = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/endpoint_rule.rb#34 + def resolved_endpoint(parameters, assigns); end + + # Returns the value of attribute type. + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/endpoint_rule.rb#19 + def type; end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/endpoint_rule.rb#48 + def resolve_headers(parameters, assigns); end + + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/endpoint_rule.rb#57 + def resolve_properties(obj, parameters, assigns); end +end + +# This class is deprecated. It is used by the Runtime endpoint +# resolution approach. It has been replaced by a code generated +# approach in each service gem. It can be removed in a new +# major version. It has to exist because +# old service gems can use a new core version. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoints/error_rule.rb#11 +class Aws::Endpoints::ErrorRule < ::Aws::Endpoints::Rule + # @api private + # @return [ErrorRule] a new instance of ErrorRule + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/error_rule.rb#12 + def initialize(conditions:, type: T.unsafe(nil), error: T.unsafe(nil), documentation: T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/error_rule.rb#20 + def conditions; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/error_rule.rb#22 + def documentation; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/error_rule.rb#21 + def error; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/error_rule.rb#24 + def match(parameters, assigned = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/error_rule.rb#19 + def type; end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/error_rule.rb#36 + def resolved_error(parameters, assigns); end +end + +# This class is deprecated. It is used by the Runtime endpoint +# resolution approach. It has been replaced by a code generated +# approach in each service gem. It can be removed in a new +# major version. It has to exist because +# old service gems can use a new core version. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoints/function.rb#11 +class Aws::Endpoints::Function + # @api private + # @return [Function] a new instance of Function + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/function.rb#12 + def initialize(fn:, argv:); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/function.rb#18 + def argv; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/function.rb#20 + def call(parameters, assigns); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/function.rb#17 + def fn; end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/function.rb#67 + def build_argv(argv_json); end +end + +# generic matcher functions for service endpoints +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoints/matchers.rb#9 +module Aws::Endpoints::Matchers + class << self + # getAttr(value: Object | Array, path: string) Document + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/matchers.rb#26 + def attr(value, path); end + + # aws.parseArn(value: string) Option + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/matchers.rb#108 + def aws_parse_arn(value); end + + # aws.partition(value: string) Option + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/matchers.rb#96 + def aws_partition(value); end + + # aws.isVirtualHostableS3Bucket(value: string, allowSubDomains: bool) bool + # + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/matchers.rb#120 + def aws_virtual_hostable_s3_bucket?(value, allow_sub_domains = T.unsafe(nil)); end + + # booleanEquals(value1: bool, value2: bool) bool + # + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/matchers.rb#65 + def boolean_equals?(value1, value2); end + + # not(value: bool) bool + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/matchers.rb#21 + def not(bool); end + + # parseUrl(value: string) Option + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/matchers.rb#75 + def parse_url(value); end + + # isSet(value: Option) bool + # + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/matchers.rb#16 + def set?(value); end + + # stringEquals(value1: string, value2: string) bool + # + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/matchers.rb#60 + def string_equals?(value1, value2); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/matchers.rb#47 + def substring(input, start, stop, reverse); end + + # uriEncode(value: string) string + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/matchers.rb#70 + def uri_encode(value); end + + # isValidHostLabel(value: string, allowSubDomains: bool) bool + # + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/matchers.rb#82 + def valid_host_label?(value, allow_sub_domains = T.unsafe(nil)); end + end +end + +# Regex that extracts anything in square brackets +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoints/matchers.rb#11 +Aws::Endpoints::Matchers::BRACKET_REGEX = T.let(T.unsafe(nil), Regexp) + +# This class is deprecated. It is used by the Runtime endpoint +# resolution approach. It has been replaced by a code generated +# approach in each service gem. It can be removed in a new +# major version. It has to exist because +# old service gems can use a new core version. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoints/reference.rb#11 +class Aws::Endpoints::Reference + # @api private + # @return [Reference] a new instance of Reference + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/reference.rb#12 + def initialize(ref:); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/reference.rb#16 + def ref; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/reference.rb#18 + def resolve(parameters, assigns); end +end + +# This class is deprecated. It is used by the Runtime endpoint +# resolution approach. It has been replaced by a code generated +# approach in each service gem. It can be removed in a new +# major version. It has to exist because +# old service gems can use a new core version. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoints/rule.rb#11 +class Aws::Endpoints::Rule + # Resolves a value that is a function, reference, or template string. + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/rule.rb#13 + def resolve_value(value, parameters, assigns); end +end + +# This class is deprecated. It is used by the Runtime endpoint +# resolution approach. It has been replaced by a code generated +# approach in each service gem. It can be removed in a new +# major version. It has to exist because +# old service gems can use a new core version. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoints/rule_set.rb#11 +class Aws::Endpoints::RuleSet + # @api private + # @return [RuleSet] a new instance of RuleSet + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/rule_set.rb#12 + def initialize(version:, service_id:, parameters:, rules:); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/rule_set.rb#21 + def parameters; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/rule_set.rb#22 + def rules; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/rule_set.rb#20 + def service_id; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/rule_set.rb#19 + def version; end + + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/rule_set.rb#24 + def rules_from_json(rules_json); end + end +end + +# This class is deprecated. It is used by the Runtime endpoint +# resolution approach. It has been replaced by a code generated +# approach in each service gem. It can be removed in a new +# major version. It has to exist because +# old service gems can use a new core version. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoints/rules_provider.rb#9 +class Aws::Endpoints::RulesProvider + # @api private + # @return [RulesProvider] a new instance of RulesProvider + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/rules_provider.rb#10 + def initialize(rule_set); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/rules_provider.rb#14 + def resolve_endpoint(parameters); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/rules_provider.rb#28 + def resolve_rules(parameters); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoints.rb#22 +Aws::Endpoints::SUPPORTED_AUTH_TRAITS = T.let(T.unsafe(nil), Array) + +# This class is deprecated. It is used by the Runtime endpoint +# resolution approach. It has been replaced by a code generated +# approach in each service gem. It can be removed in a new +# major version. It has to exist because +# old service gems can use a new core version. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoints/templater.rb#13 +module Aws::Endpoints::Templater + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/templater.rb#15 + def resolve(string, parameters, assigns); end + + private + + # Checks both parameters and assigns hash for the referenced value + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/templater.rb#45 + def extract_value(key, parameters, assigns); end + + # Replaces the captured value with values from parameters or assign + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/templater.rb#27 + def replace(capture, parameters, assigns); end + end +end + +# This class is deprecated. It is used by the Runtime endpoint +# resolution approach. It has been replaced by a code generated +# approach in each service gem. It can be removed in a new +# major version. It has to exist because +# old service gems can use a new core version. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoints/tree_rule.rb#11 +class Aws::Endpoints::TreeRule + # @api private + # @return [TreeRule] a new instance of TreeRule + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/tree_rule.rb#12 + def initialize(conditions:, rules:, type: T.unsafe(nil), documentation: T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/tree_rule.rb#20 + def conditions; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/tree_rule.rb#22 + def documentation; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/tree_rule.rb#21 + def error; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/tree_rule.rb#24 + def match(parameters, assigned = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/tree_rule.rb#19 + def type; end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/tree_rule.rb#36 + def resolve_rules(parameters, assigns); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/endpoints/url.rb#9 +class Aws::Endpoints::URL + # @api private + # @raise [ArgumentError] + # @return [URL] a new instance of URL + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/url.rb#10 + def initialize(url); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/url.rb#31 + def as_json(_options = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/url.rb#26 + def authority; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/url.rb#29 + def is_ip; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/url.rb#28 + def normalized_path; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/url.rb#27 + def path; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/url.rb#25 + def scheme; end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/url.rb#43 + def _authority(url, uri); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/endpoints/url.rb#52 + def _is_ip(authority); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/error_handler.rb#4 +class Aws::ErrorHandler < ::Seahorse::Client::Handler + private + + # source://aws-sdk-core//lib/aws-sdk-core/error_handler.rb#18 + def build_error(context, code, message, data); end + + # source://aws-sdk-core//lib/aws-sdk-core/error_handler.rb#8 + def error(context); end + + # source://aws-sdk-core//lib/aws-sdk-core/error_handler.rb#23 + def http_status_error(context); end + + # source://aws-sdk-core//lib/aws-sdk-core/error_handler.rb#27 + def http_status_error_code(context); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#4 +module Aws::Errors; end + +# Various plugins perform client-side checksums of responses. +# This error indicates a checksum failed. +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#163 +class Aws::Errors::ChecksumError < ::RuntimeError; end + +# Raised when a client is constructed with Assume Role credentials, but +# the profile has both source_profile and credential_source. +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#179 +class Aws::Errors::CredentialSourceConflictError < ::RuntimeError; end + +# This module is mixed into another module, providing dynamic +# error classes. Error classes all inherit from {ServiceError}. +# +# # creates and returns the class +# Aws::S3::Errors::MyNewErrorClass +# +# Since the complete list of possible AWS errors returned by services +# is not known, this allows us to create them as needed. This also +# allows users to rescue errors by class without them being concrete +# classes beforehand. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#346 +module Aws::Errors::DynamicErrors + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#353 + def const_missing(constant); end + + # Given the name of a service and an error code, this method + # returns an error class (that extends {ServiceError}. + # + # Aws::S3::Errors.error_class('NoSuchBucket').new + # #=> # + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#364 + def error_class(error_code); end + + private + + # Convert an error code to an error class name/constant. + # This requires filtering non-safe characters from the constant + # name and ensuring it begins with an uppercase letter. + # + # @api private + # @param error_code [String] + # @return [Symbol] Returns a symbolized constant name for the given + # `error_code`. + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#385 + def error_class_constant(error_code); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#407 + def error_const_set?(constant); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#394 + def set_error_constant(constant); end + + class << self + # @api private + # @private + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#348 + def extended(submodule); end + end +end + +# Rasied when endpoint discovery failed for operations +# that requires endpoints from endpoint discovery +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#73 +class Aws::Errors::EndpointDiscoveryError < ::RuntimeError + # @return [EndpointDiscoveryError] a new instance of EndpointDiscoveryError + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#74 + def initialize(*args); end +end + +# Error event in an event stream which has event_type :error +# error code and error message can be retrieved when available. +# +# example usage: +# +# client.stream_foo(name: 'bar') do |event| +# stream.on_error_event do |event| +# puts "Error #{event.error_code}: #{event.error_message}" +# raise event +# end +# end +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#119 +class Aws::Errors::EventError < ::RuntimeError + # @return [EventError] a new instance of EventError + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#121 + def initialize(event_type, code, message); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#131 + def error_code; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#134 + def error_message; end + + # @return [Symbol] + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#128 + def event_type; end +end + +# Raise when EventStream Builder failed to build +# an event message with parameters provided +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#105 +class Aws::Errors::EventStreamBuilderError < ::RuntimeError; end + +# Raised when EventStream Parser failed to parse +# a raw event message +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#101 +class Aws::Errors::EventStreamParserError < ::RuntimeError; end + +# Raised when ARN string input doesn't follow the standard: +# https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-arns +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#140 +class Aws::Errors::InvalidARNError < ::RuntimeError; end + +# Raised when the partition of the ARN region is different than the +# partition of the :region configured on the service client. +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#153 +class Aws::Errors::InvalidARNPartitionError < ::RuntimeError + # @return [InvalidARNPartitionError] a new instance of InvalidARNPartitionError + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#154 + def initialize(*args); end +end + +# Raised when the region from the ARN string is different from the :region +# configured on the service client. +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#144 +class Aws::Errors::InvalidARNRegionError < ::RuntimeError + # @return [InvalidARNRegionError] a new instance of InvalidARNRegionError + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#145 + def initialize(*args); end +end + +# Raised when a client is constructed with Assume Role credentials using +# a credential_source, and that source type is unsupported. +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#175 +class Aws::Errors::InvalidCredentialSourceError < ::RuntimeError; end + +# Raised when a credentials provider process returns a JSON +# payload with either invalid version number or malformed contents +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#208 +class Aws::Errors::InvalidProcessCredentialsPayload < ::RuntimeError; end + +# Raised when a client is contsructed and the region is not valid. +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#249 +class Aws::Errors::InvalidRegionError < ::ArgumentError + # @return [InvalidRegionError] a new instance of InvalidRegionError + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#250 + def initialize(*args); end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#267 + def possible_regions; end +end + +# Raised when a client is constructed and the sigv4a region set is invalid. +# It is invalid when it is empty and/or contains empty strings. +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#241 +class Aws::Errors::InvalidRegionSetError < ::ArgumentError + # @return [InvalidRegionSetError] a new instance of InvalidRegionSetError + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#242 + def initialize(*args); end +end + +# Raised when SSO Credentials are invalid +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#211 +class Aws::Errors::InvalidSSOCredentials < ::RuntimeError; end + +# Raised when SSO Token is invalid +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#214 +class Aws::Errors::InvalidSSOToken < ::RuntimeError; end + +# Raised when InstanceProfileCredentialsProvider or +# EcsCredentialsProvider fails to parse the metadata response after retries +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#55 +class Aws::Errors::MetadataParserError < ::RuntimeError + # @return [MetadataParserError] a new instance of MetadataParserError + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#56 + def initialize(*args); end +end + +# Raised when a client is unable to sign a request because +# the bearer token is not configured or available +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#218 +class Aws::Errors::MissingBearerTokenError < ::RuntimeError + # @return [MissingBearerTokenError] a new instance of MissingBearerTokenError + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#219 + def initialize(*args); end +end + +# Raised when a `streaming` operation has `requiresLength` trait +# enabled but request payload size/length cannot be calculated +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#64 +class Aws::Errors::MissingContentLength < ::RuntimeError + # @return [MissingContentLength] a new instance of MissingContentLength + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#65 + def initialize(*args); end +end + +# Raised when a client is constructed and credentials are not +# set, or the set credentials are empty. +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#187 +class Aws::Errors::MissingCredentialsError < ::RuntimeError + # @return [MissingCredentialsError] a new instance of MissingCredentialsError + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#188 + def initialize(*args); end +end + +# raised when hostLabel member is not provided +# at operation input when endpoint trait is available +# with 'hostPrefix' requirement +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#84 +class Aws::Errors::MissingEndpointHostLabelValue < ::RuntimeError + # @return [MissingEndpointHostLabelValue] a new instance of MissingEndpointHostLabelValue + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#86 + def initialize(name); end +end + +# Raised when a client is constructed and region is not specified. +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#231 +class Aws::Errors::MissingRegionError < ::ArgumentError + # @return [MissingRegionError] a new instance of MissingRegionError + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#232 + def initialize(*args); end +end + +# Raised when :web_identity_token_file parameter is not +# provided or the file doesn't exist when initializing +# AssumeRoleWebIdentityCredentials credential provider +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#197 +class Aws::Errors::MissingWebIdentityTokenFile < ::RuntimeError + # @return [MissingWebIdentityTokenFile] a new instance of MissingWebIdentityTokenFile + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#198 + def initialize(*args); end +end + +# Raised when a client is constructed with Assume Role credentials using +# a credential_source, and that source doesn't provide credentials. +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#183 +class Aws::Errors::NoSourceCredentialsError < ::RuntimeError; end + +# Raised when a client is constructed, where Assume Role credentials are +# expected, and there is no source profile specified. +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#171 +class Aws::Errors::NoSourceProfileError < ::RuntimeError; end + +# Raised when attempting to connect to an endpoint and a `SocketError` +# is received from the HTTP client. This error is typically the result +# of configuring an invalid `:region`. +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#279 +class Aws::Errors::NoSuchEndpointError < ::RuntimeError + # @return [NoSuchEndpointError] a new instance of NoSuchEndpointError + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#281 + def initialize(options = T.unsafe(nil)); end + + # Returns the value of attribute context. + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#308 + def context; end + + # Returns the value of attribute endpoint. + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#310 + def endpoint; end + + # Returns the value of attribute original_error. + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#312 + def original_error; end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#316 + def possible_regions; end +end + +# Raised when a client is constructed and the specified shared +# credentials profile does not exist. +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#167 +class Aws::Errors::NoSuchProfileError < ::RuntimeError; end + +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#6 +class Aws::Errors::NonSupportedRubyVersionError < ::RuntimeError; end + +# Raised when attempting to retry a request +# and no capacity is available to retry (See adaptive retry_mode) +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#327 +class Aws::Errors::RetryCapacityNotAvailableError < ::RuntimeError + # @return [RetryCapacityNotAvailableError] a new instance of RetryCapacityNotAvailableError + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#328 + def initialize(*args); end +end + +# The base class for all errors returned by an Amazon Web Service. +# All ~400 level client errors and ~500 level server errors are raised +# as service errors. This indicates it was an error returned from the +# service and not one generated by the client. +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#12 +class Aws::Errors::ServiceError < ::RuntimeError + # @param context [Seahorse::Client::RequestContext] + # @param message [String, nil] + # @param data [Aws::Structure] + # @return [ServiceError] a new instance of ServiceError + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#17 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#26 + def code; end + + # @return [Seahorse::Client::RequestContext] The context of the request + # that triggered the remote service to return this error. + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#30 + def context; end + + # @return [Aws::Structure] + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#33 + def data; end + + # @return [Aws::Structure] + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#33 + def data=(_arg0); end + + # @api private undocumented + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#43 + def retryable?; end + + # @api private undocumented + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#48 + def throttling?; end + + class << self + # @return [String, nil] + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#38 + def code; end + + # @return [String, nil] + # + # source://aws-sdk-core//lib/aws-sdk-core/errors.rb#38 + def code=(_arg0); end + end +end + +# Raised when attempting to #signal an event before +# making an async request +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#97 +class Aws::Errors::SignalEventError < ::RuntimeError; end + +# Raised when there is a circular reference in chained +# source_profiles +# +# source://aws-sdk-core//lib/aws-sdk-core/errors.rb#228 +class Aws::Errors::SourceProfileCircularReferenceError < ::RuntimeError; end + +# source://aws-sdk-core//lib/aws-sdk-core/event_emitter.rb#4 +class Aws::EventEmitter + # @return [EventEmitter] a new instance of EventEmitter + # + # source://aws-sdk-core//lib/aws-sdk-core/event_emitter.rb#6 + def initialize; end + + # source://aws-sdk-core//lib/aws-sdk-core/event_emitter.rb#31 + def emit(type, params); end + + # Returns the value of attribute encoder. + # + # source://aws-sdk-core//lib/aws-sdk-core/event_emitter.rb#14 + def encoder; end + + # Sets the attribute encoder + # + # @param value the value to set the attribute encoder to. + # + # source://aws-sdk-core//lib/aws-sdk-core/event_emitter.rb#14 + def encoder=(_arg0); end + + # source://aws-sdk-core//lib/aws-sdk-core/event_emitter.rb#20 + def on(type, callback); end + + # source://aws-sdk-core//lib/aws-sdk-core/event_emitter.rb#24 + def signal(type, event); end + + # Returns the value of attribute signal_queue. + # + # source://aws-sdk-core//lib/aws-sdk-core/event_emitter.rb#18 + def signal_queue; end + + # Sets the attribute signal_queue + # + # @param value the value to set the attribute signal_queue to. + # + # source://aws-sdk-core//lib/aws-sdk-core/event_emitter.rb#18 + def signal_queue=(_arg0); end + + # Returns the value of attribute stream. + # + # source://aws-sdk-core//lib/aws-sdk-core/event_emitter.rb#12 + def stream; end + + # Sets the attribute stream + # + # @param value the value to set the attribute stream to. + # + # source://aws-sdk-core//lib/aws-sdk-core/event_emitter.rb#12 + def stream=(_arg0); end + + # Returns the value of attribute validate_event. + # + # source://aws-sdk-core//lib/aws-sdk-core/event_emitter.rb#16 + def validate_event; end + + # Sets the attribute validate_event + # + # @param value the value to set the attribute validate_event to. + # + # source://aws-sdk-core//lib/aws-sdk-core/event_emitter.rb#16 + def validate_event=(_arg0); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/ini_parser.rb#5 +class Aws::IniParser + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/ini_parser.rb#8 + def ini_parse(raw); end + end +end + +# An auto-refreshing credential provider that loads credentials from +# EC2 instances. +# +# instance_credentials = Aws::InstanceProfileCredentials.new +# ec2 = Aws::EC2::Client.new(credentials: instance_credentials) +# +# source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#12 +class Aws::InstanceProfileCredentials + include ::Aws::CredentialProvider + include ::Aws::RefreshingCredentials + + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] + # @return [InstanceProfileCredentials] a new instance of InstanceProfileCredentials + # + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#77 + def initialize(options = T.unsafe(nil)); end + + # @return [Integer] Number of times to retry when retrieving credentials + # from the instance metadata service. Defaults to 0 when resolving from + # the default credential chain ({Aws::CredentialProviderChain}). + # + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#99 + def retries; end + + private + + # token is optional - if nil, uses v1 (insecure) flow + # + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#243 + def _get_credentials(conn, token); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#259 + def _metadata_disabled?; end + + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#141 + def backoff(backoff); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#329 + def empty_credentials?(creds); end + + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#225 + def fetch_token(conn); end + + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#197 + def get_credentials; end + + # GET request fetch profile and credentials + # + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#274 + def http_get(connection, path, token = T.unsafe(nil)); end + + # PUT request fetch token with ttl + # + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#290 + def http_put(connection, path, ttl); end + + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#263 + def open_connection; end + + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#149 + def refresh; end + + # Compute an offset for refresh with jitter + # + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#334 + def refresh_offset; end + + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#131 + def resolve_disable_v1(options); end + + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#112 + def resolve_endpoint(options, endpoint_mode); end + + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#103 + def resolve_endpoint_mode(options); end + + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#309 + def retry_errors(error_classes, options = T.unsafe(nil), &_block); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#255 + def token_set?; end + + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#323 + def warn_expired_credentials; end +end + +# Path base for GET request for profile and credentials +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#42 +Aws::InstanceProfileCredentials::METADATA_PATH_BASE = T.let(T.unsafe(nil), String) + +# Path for PUT request for token +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#46 +Aws::InstanceProfileCredentials::METADATA_TOKEN_PATH = T.let(T.unsafe(nil), String) + +# These are the errors we trap when attempting to talk to the +# instance metadata service. Any of these imply the service +# is not present, no responding or some other non-recoverable +# error. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#30 +Aws::InstanceProfileCredentials::NETWORK_ERRORS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#17 +class Aws::InstanceProfileCredentials::Non200Response < ::RuntimeError; end + +# Token used to fetch IMDS profile and credentials +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#340 +class Aws::InstanceProfileCredentials::Token + # @api private + # @return [Token] a new instance of Token + # + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#341 + def initialize(value, ttl, created_time = T.unsafe(nil)); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#350 + def expired?; end + + # [String] token value + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#348 + def value; end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#23 +class Aws::InstanceProfileCredentials::TokenExpiredError < ::RuntimeError; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/instance_profile_credentials.rb#20 +class Aws::InstanceProfileCredentials::TokenRetrivalError < ::RuntimeError; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/json/builder.rb#6 +module Aws::Json + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/json.rb#46 + def dump(value); end + + # @api private + # @return [Class] Returns the default engine. + # One of: + # + # * {OjEngine} + # * {JsonEngine} + # + # source://aws-sdk-core//lib/aws-sdk-core/json.rb#37 + def engine; end + + # @api private + # @param engine [Symbol, Class] Must be one of the following values: + # + # * :oj + # * :json + # + # source://aws-sdk-core//lib/aws-sdk-core/json.rb#27 + def engine=(engine); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/json.rb#42 + def load(json); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/json.rb#50 + def set_default_engine; end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/json.rb#63 + def load_engine(name); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/json.rb#69 + def try_load_engine(name); end + end +end + +# source://aws-sdk-core//lib/aws-sdk-core/json/builder.rb#7 +class Aws::Json::Builder + include ::Seahorse::Model::Shapes + + # @return [Builder] a new instance of Builder + # + # source://aws-sdk-core//lib/aws-sdk-core/json/builder.rb#11 + def initialize(rules, _options = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/builder.rb#15 + def serialize(params); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/builder.rb#15 + def to_json(params); end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/json/builder.rb#63 + def encode(blob); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/builder.rb#51 + def format(ref, value); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/builder.rb#35 + def list(ref, values); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/builder.rb#42 + def map(ref, values); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/builder.rb#22 + def structure(ref, values); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/builder.rb#67 + def timestamp(ref, value); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/json/error_handler.rb#5 +class Aws::Json::ErrorHandler < ::Aws::ErrorHandler + # source://aws-sdk-core//lib/aws-sdk-core/json/error_handler.rb#7 + def call(context); end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/json/error_handler.rb#82 + def apply_error_headers(rule, context, data); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/json/error_handler.rb#43 + def aws_query_error?(context); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/error_handler.rb#26 + def error_code(json, context); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/error_handler.rb#56 + def error_message(code, json); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/error_handler.rb#16 + def extract_error(body, context); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/error_handler.rb#64 + def parse_error_data(context, body, code); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/error_handler.rb#48 + def remove_prefix(error_code, context); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/json/handler.rb#5 +class Aws::Json::Handler < ::Seahorse::Client::Handler + # @param context [Seahorse::Client::RequestContext] + # @return [Seahorse::Client::Response] + # + # source://aws-sdk-core//lib/aws-sdk-core/json/handler.rb#11 + def call(context); end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/json/handler.rb#80 + def apply_request_id(context); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/handler.rb#27 + def build_body(context); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/handler.rb#20 + def build_request(context); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/handler.rb#71 + def content_type(context); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/handler.rb#39 + def parse_body(context); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/handler.rb#35 + def parse_response(response); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/json/handler.rb#88 + def query_compatible?(context); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/json/handler.rb#84 + def simple_json?(context); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/handler.rb#75 + def target(context); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/json/handler.rb#7 +Aws::Json::Handler::CONTENT_TYPE = T.let(T.unsafe(nil), String) + +# source://aws-sdk-core//lib/aws-sdk-core/json/json_engine.rb#7 +module Aws::Json::JsonEngine + class << self + # source://aws-sdk-core//lib/aws-sdk-core/json/json_engine.rb#15 + def dump(value); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/json_engine.rb#9 + def load(json); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/json.rb#11 +class Aws::Json::ParseError < ::StandardError + # @api private + # @return [ParseError] a new instance of ParseError + # + # source://aws-sdk-core//lib/aws-sdk-core/json.rb#12 + def initialize(error); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/json.rb#17 + def error; end +end + +# source://aws-sdk-core//lib/aws-sdk-core/json/parser.rb#8 +class Aws::Json::Parser + include ::Seahorse::Model::Shapes + + # @param rules [Seahorse::Model::ShapeRef] + # @return [Parser] a new instance of Parser + # + # source://aws-sdk-core//lib/aws-sdk-core/json/parser.rb#13 + def initialize(rules, query_compatible: T.unsafe(nil)); end + + # @param json [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/json/parser.rb#19 + def parse(json, target = T.unsafe(nil)); end + + private + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/json/parser.rb#104 + def flattened_list?(shape); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/json/parser.rb#108 + def flattened_map?(shape); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/parser.rb#63 + def list(ref, values, target = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/parser.rb#71 + def map(ref, values, target = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/parser.rb#81 + def parse_ref(ref, value, target = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/json/parser.rb#27 + def structure(ref, values, target = T.unsafe(nil)); end + + # @param value [String, Integer] + # @return [Time] + # + # source://aws-sdk-core//lib/aws-sdk-core/json/parser.rb#100 + def time(value); end +end + +# A simple thread safe LRU cache +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/lru_cache.rb#6 +class Aws::LRUCache + # @api private + # @option options + # @option options + # @param options [Hash] + # @return [LRUCache] a new instance of LRUCache + # + # source://aws-sdk-core//lib/aws-sdk-core/lru_cache.rb#10 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @param key [String] + # @return [Object] + # + # source://aws-sdk-core//lib/aws-sdk-core/lru_cache.rb#19 + def [](key); end + + # @api private + # @param key [String] + # @param value [Object] + # + # source://aws-sdk-core//lib/aws-sdk-core/lru_cache.rb#32 + def []=(key, value); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/lru_cache.rb#51 + def clear; end + + # @api private + # @param key [String] + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/lru_cache.rb#44 + def key?(key); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/lru_cache.rb#58 +class Aws::LRUCache::Entry + # @api private + # @return [Entry] a new instance of Entry + # + # source://aws-sdk-core//lib/aws-sdk-core/lru_cache.rb#59 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/lru_cache.rb#68 + def expired?; end + + # @api private + # @return [Object] + # + # source://aws-sdk-core//lib/aws-sdk-core/lru_cache.rb#66 + def value; end +end + +# setup autoloading for Log module +# +# source://aws-sdk-core//lib/aws-sdk-core/log.rb#5 +module Aws::Log; end + +# A log formatter generates a string for logging from a response. This +# accomplished with a log pattern string: +# +# pattern = ':operation :http_response_status_code :time' +# formatter = Aws::Log::Formatter.new(pattern) +# formatter.format(response) +# #=> 'get_bucket 200 0.0352' +# +# # Canned Formatters +# +# Instead of providing your own pattern, you can choose a canned log +# formatter. +# +# * {Formatter.default} +# * {Formatter.colored} +# * {Formatter.short} +# +# # Pattern Substitutions +# +# You can put any of these placeholders into you pattern. +# +# * `:region` - The region configured for the client. +# +# * `:client_class` - The name of the client class. +# +# * `:operation` - The name of the client request method. +# +# * `:request_params` - The user provided request parameters. Long +# strings are truncated/summarized if they exceed the +# `:max_string_size`. Other objects are inspected. +# +# * `:time` - The total time in seconds spent on the +# request. This includes client side time spent building +# the request and parsing the response. +# +# * `:retries` - The number of times a client request was retried. +# +# * `:http_request_method` - The http request verb, e.g., `POST`, +# `PUT`, `GET`, etc. +# +# * `:http_request_endpoint` - The request endpoint. This includes +# the scheme, host and port, but not the path. +# +# * `:http_request_scheme` - This is replaced by `http` or `https`. +# +# * `:http_request_host` - The host name of the http request +# endpoint (e.g. 's3.amazon.com'). +# +# * `:http_request_port` - The port number (e.g. '443' or '80'). +# +# * `:http_request_headers` - The http request headers, inspected. +# +# * `:http_request_body` - The http request payload. +# +# * `:http_response_status_code` - The http response status +# code, e.g., `200`, `404`, `500`, etc. +# +# * `:http_response_headers` - The http response headers, inspected. +# +# * `:http_response_body` - The http response body contents. +# +# * `:error_class` +# +# * `:error_message` +# +# source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#73 +class Aws::Log::Formatter + # @option options + # @option options + # @option options + # @param pattern [String] The log format pattern should be a string + # and may contain substitutions. + # @param options [Hash] a customizable set of options + # @return [Formatter] a new instance of Formatter + # + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#93 + def initialize(pattern, options = T.unsafe(nil)); end + + # Given a response, this will format a log message and return it as a + # string according to {#pattern}. + # + # @param response [Seahorse::Client::Response] + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#106 + def format(response); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#111 + def method_missing(method_name, *args); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#100 + def pattern; end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#125 + def _client_class(response); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#195 + def _error_class(response); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#199 + def _error_message(response); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#173 + def _http_request_body(response); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#149 + def _http_request_endpoint(response); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#169 + def _http_request_headers(response); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#157 + def _http_request_host(response); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#165 + def _http_request_method(response); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#161 + def _http_request_port(response); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#153 + def _http_request_scheme(response); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#185 + def _http_response_body(response); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#181 + def _http_response_headers(response); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#177 + def _http_response_status_code(response); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#129 + def _operation(response); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#121 + def _region(response); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#133 + def _request_params(response); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#145 + def _retries(response); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#139 + def _time(response); end + + class << self + # The default log format with ANSI colors. + # + # @example A sample of the colored format (sans the ansi colors). + # + # [ClientClass 200 0.580066 0 retries] list_objects(:bucket_name => 'bucket') + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Formatter] + # + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#249 + def colored(options = T.unsafe(nil)); end + + # The default log format. + # + # @example A sample of the default format. + # + # [ClientClass 200 0.580066 0 retries] list_objects(:bucket_name => 'bucket') + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Formatter] + # + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#212 + def default(options = T.unsafe(nil)); end + + # The short log format. Similar to default, but it does not + # inspect the request params or report on retries. + # + # @example A sample of the short format + # + # [ClientClass 200 0.494532] list_buckets + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Formatter] + # + # source://aws-sdk-core//lib/aws-sdk-core/log/formatter.rb#232 + def short(options = T.unsafe(nil)); end + end +end + +# source://aws-sdk-core//lib/aws-sdk-core/log/param_filter.rb#8 +class Aws::Log::ParamFilter + # end + # + # @return [ParamFilter] a new instance of ParamFilter + # + # source://aws-sdk-core//lib/aws-sdk-core/log/param_filter.rb#22 + def initialize(options = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/param_filter.rb#27 + def filter(values, type); end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/log/param_filter.rb#64 + def filter_array(values, type); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/param_filter.rb#45 + def filter_hash(values, type); end + + # source://aws-sdk-core//lib/aws-sdk-core/log/param_filter.rb#38 + def filter_struct(values, type); end +end + +# DEPRECATED - This must exist for backwards compatibility. Sensitive +# members are now computed for each request/response type. This can be +# removed in a new major version. This list is no longer updated. +# +# A managed list of sensitive parameters that should be filtered from +# logs. This is updated automatically as part of each release. See the +# `tasks/update-sensitive-params.rake` for more information. +# +# begin +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/log/param_filter.rb#19 +Aws::Log::ParamFilter::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/log/param_formatter.rb#8 +class Aws::Log::ParamFormatter + # @api private + # @return [ParamFormatter] a new instance of ParamFormatter + # + # source://aws-sdk-core//lib/aws-sdk-core/log/param_formatter.rb#13 + def initialize(options = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/log/param_formatter.rb#17 + def summarize(value); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/log/param_formatter.rb#64 + def summarize_array(array); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/log/param_formatter.rb#60 + def summarize_file(path); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/log/param_formatter.rb#23 + def summarize_hash(hash); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/log/param_formatter.rb#41 + def summarize_string(str); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/log/param_formatter.rb#35 + def summarize_string_hash(hash); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/log/param_formatter.rb#29 + def summarize_symbol_hash(hash); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/log/param_formatter.rb#49 + def summarize_value(value); end +end + +# String longer than the max string size are truncated +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/log/param_formatter.rb#11 +Aws::Log::ParamFormatter::MAX_STRING_SIZE = T.let(T.unsafe(nil), Integer) + +# Decorates a {Seahorse::Client::Response} with paging convenience methods. +# Some AWS calls provide paged responses to limit the amount of data returned +# with each response. To optimize for latency, some APIs may return an +# inconsistent number of responses per page. You should rely on the values of +# the `next_page?` method or using enumerable methods such as `each` rather +# than the number of items returned to iterate through results. See below for +# examples. +# +# # Paged Responses Are Enumerable +# The simplest way to handle paged response data is to use the built-in +# enumerator in the response object, as shown in the following example. +# +# s3 = Aws::S3::Client.new +# +# s3.list_objects(bucket:'aws-sdk').each do |response| +# puts response.contents.map(&:key) +# end +# +# This yields one response object per API call made, and enumerates objects +# in the named bucket. The SDK retrieves additional pages of data to +# complete the request. +# +# # Handling Paged Responses Manually +# To handle paging yourself, use the response’s `next_page?` method to verify +# there are more pages to retrieve, or use the last_page? method to verify +# there are no more pages to retrieve. +# +# If there are more pages, use the `next_page` method to retrieve the +# next page of results, as shown in the following example. +# +# s3 = Aws::S3::Client.new +# +# # Get the first page of data +# response = s3.list_objects(bucket:'aws-sdk') +# +# # Get additional pages +# while response.next_page? do +# response = response.next_page +# # Use the response data here... +# puts response.contents.map(&:key) +# end +# +# @note Methods such as `to_json` will enumerate all of the responses before +# returning the full response as JSON. +# +# source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#49 +module Aws::PageableResponse + # Yields the current and each following response to the given block. + # + # @return [Enumerable, nil] Returns a new Enumerable if no block is given. + # @yieldparam response [Response] + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#83 + def each(&block); end + + # Yields the current and each following response to the given block. + # Actual implementation is in PageableResponse::Extension + # + # @return [Enumerable, nil] Returns a new Enumerable if no block is given. + # @yieldparam response [Response] + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#83 + def each_page(&block); end + + # Returns `true` if there are no more results. Calling {#next_page} + # when this method returns `false` will raise an error. + # + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#64 + def last_page?; end + + # @return [Seahorse::Client::Response] + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#76 + def next_page(params = T.unsafe(nil)); end + + # Returns `true` if there are more results. Calling {#next_page} will + # return the next response. + # + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#71 + def next_page?; end + + # @return [Paging::Pager] + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#59 + def pager; end + + # @return [Paging::Pager] + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#59 + def pager=(_arg0); end + + private + + # @param params [Hash] A hash of additional request params to + # merge into the next page request. + # @return [Hash] Returns the hash of request parameters for the + # next page, merging any given params. + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#102 + def next_page_params(params); end + + # @param params [Hash] A hash of additional request params to + # merge into the next page request. + # @return [Seahorse::Client::Response] Returns the next page of + # results. + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#94 + def next_response(params); end + + class << self + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#51 + def apply(base); end + end +end + +# The actual decorator module implementation. It is in a distinct module +# so that it can be used to extend objects without busting Ruby's constant cache. +# object.extend(mod) bust the constant cache only if `mod` contains constants of its own. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#162 +module Aws::PageableResponse::Extension + include ::Enumerable + include ::Aws::PageableResponse::UnsafeEnumerableMethods + + # @api private + # @yield [response] + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#188 + def each(&block); end + + # @api private + # @yield [response] + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#188 + def each_page(&block); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#169 + def last_page?; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#180 + def next_page(params = T.unsafe(nil)); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#176 + def next_page?; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#167 + def pager; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#167 + def pager=(_arg0); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#209 + def next_page_params(params); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#201 + def next_response(params); end +end + +# Raised when calling {PageableResponse#next_page} on a pager that +# is on the last page of results. You can call {PageableResponse#last_page?} +# or {PageableResponse#next_page?} to know if there are more pages. +# +# source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#109 +class Aws::PageableResponse::LastPageError < ::RuntimeError + # @param response [Seahorse::Client::Response] + # @return [LastPageError] a new instance of LastPageError + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#112 + def initialize(response); end + + # @return [Seahorse::Client::Response] + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#118 + def response; end +end + +# A handful of Enumerable methods, such as #count are not safe +# to call on a pageable response, as this would trigger n api calls +# simply to count the number of response pages, when likely what is +# wanted is to access count on the data. Same for #to_h. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#127 +module Aws::PageableResponse::UnsafeEnumerableMethods + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#149 + def as_json(_options = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#129 + def count; end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#137 + def respond_to?(method_name, *args); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#145 + def to_h; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/pageable_response.rb#153 + def to_json(options = T.unsafe(nil)); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/pager.rb#7 +class Aws::Pager + # @api private + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Pager] a new instance of Pager + # + # source://aws-sdk-core//lib/aws-sdk-core/pager.rb#12 + def initialize(options); end + + # @api private + # @return [Symbol, nil] + # + # source://aws-sdk-core//lib/aws-sdk-core/pager.rb#19 + def limit_key; end + + # @api private + # @param response [Seahorse::Client::Response] + # @return [Hash] + # + # source://aws-sdk-core//lib/aws-sdk-core/pager.rb#26 + def next_tokens(response); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/pager.rb#34 + def prev_tokens(response); end + + # @api private + # @return [Hash, nil] + # + # source://aws-sdk-core//lib/aws-sdk-core/pager.rb#22 + def tokens; end + + # @api private + # @param response [Seahorse::Client::Response] + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/pager.rb#43 + def truncated?(response); end + + private + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/pager.rb#55 + def empty_value?(value); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/pager.rb#59 +class Aws::Pager::NullPager + # @api private + # @return [nil] + # + # source://aws-sdk-core//lib/aws-sdk-core/pager.rb#62 + def limit_key; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/pager.rb#64 + def next_tokens; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/pager.rb#68 + def prev_tokens; end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/pager.rb#72 + def truncated?(response); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/param_converter.rb#11 +class Aws::ParamConverter + include ::Seahorse::Model::Shapes + + # @api private + # @return [ParamConverter] a new instance of ParamConverter + # + # source://aws-sdk-core//lib/aws-sdk-core/param_converter.rb#18 + def initialize(rules); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_converter.rb#36 + def close_opened_files; end + + # @api private + # @param params [Hash] + # @return [Hash] + # + # source://aws-sdk-core//lib/aws-sdk-core/param_converter.rb#28 + def convert(params); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_converter.rb#24 + def opened_files; end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_converter.rb#86 + def c(ref, value); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_converter.rb#57 + def list(ref, values); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_converter.rb#66 + def map(ref, values); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_converter.rb#77 + def member(ref, value); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_converter.rb#43 + def structure(ref, values); end + + class << self + # Registers a new value converter. Converters run in the context + # of a shape and value class. + # + # # add a converter that stringifies integers + # shape_class = Seahorse::Model::Shapes::StringShape + # ParamConverter.add(shape_class, Integer) { |i| i.to_s } + # + # @api private + # @param shape_class [Class] + # @param value_class [Class] + # @param converter [#call] (nil) An object that responds to `#call` + # accepting a single argument. This function should perform + # the value conversion if possible, returning the result. + # If the conversion is not possible, the original value should + # be returned. + # @return [void] + # + # source://aws-sdk-core//lib/aws-sdk-core/param_converter.rb#111 + def add(shape_class, value_class, converter = T.unsafe(nil), &block); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_converter.rb#126 + def c(shape, value, instance = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_converter.rb#92 + def convert(shape, params); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_converter.rb#115 + def ensure_open(file, converter); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_converter.rb#136 + def converter_for(shape_class, value); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_converter.rb#161 + def each_base_class(shape_class, &block); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_converter.rb#147 + def find(shape_class, value); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/param_validator.rb#5 +class Aws::ParamValidator + include ::Seahorse::Model::Shapes + + # @api private + # @option options + # @param rules [Seahorse::Model::Shapes::ShapeRef] + # @param options [Hash] a customizable set of options + # @return [ParamValidator] a new instance of ParamValidator + # + # source://aws-sdk-core//lib/aws-sdk-core/param_validator.rb#20 + def initialize(rules, options = T.unsafe(nil)); end + + # @api private + # @param params [Hash] + # @raise [ArgumentError] + # @return [void] + # + # source://aws-sdk-core//lib/aws-sdk-core/param_validator.rb#32 + def validate!(params); end + + private + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/param_validator.rb#202 + def correct_type?(ref, value, errors, context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_validator.rb#133 + def document(ref, value, errors, context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_validator.rb#227 + def error_messages(errors); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_validator.rb#237 + def expected_got(context, expected, got); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/param_validator.rb#218 + def io_like?(value, require_size = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_validator.rb#100 + def list(ref, values, errors, context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_validator.rb#116 + def map(ref, values, errors, context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_validator.rb#153 + def shape(ref, value, errors, context); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/param_validator.rb#223 + def streaming_input?(ref); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/param_validator.rb#40 + def structure(ref, values, errors, context); end + + class << self + # @api private + # @param rules [Seahorse::Model::Shapes::ShapeRef] + # @param params [Hash] + # @return [void] + # + # source://aws-sdk-core//lib/aws-sdk-core/param_validator.rb#14 + def validate!(rules, params); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/param_validator.rb#9 +Aws::ParamValidator::EXPECTED_GOT = T.let(T.unsafe(nil), String) + +# setup autoloading for Plugins +# Most plugins are required explicitly from service clients +# but users may reference them outside of client usage. +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins.rb#7 +module Aws::Plugins; end + +# Provide support for `api_key` parameter for `api-gateway` protocol +# specific `api-gateway` protocol gems' user-agent +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/api_key.rb#8 +class Aws::Plugins::ApiKey < ::Seahorse::Client::Plugin + # source://aws-sdk-core//lib/aws-sdk-core/plugins/api_key.rb#17 + def add_handlers(handlers, config); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/api_key.rb#39 +class Aws::Plugins::ApiKey::ApiKeyHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/api_key.rb#41 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/api_key.rb#50 + def apply_api_key(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/api_key.rb#23 +class Aws::Plugins::ApiKey::OptionHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/api_key.rb#24 + def call(context); end +end + +# Deprecated - does not look at new traits like `auth` and `unsignedPayload` +# Necessary to exist after endpoints 2.0 for old service clients + new core +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/bearer_authorization.rb#9 +class Aws::Plugins::BearerAuthorization < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/bearer_authorization.rb#36 + def add_handlers(handlers, cfg); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/bearer_authorization.rb#52 +class Aws::Plugins::BearerAuthorization::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/bearer_authorization.rb#53 + def call(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#6 +class Aws::Plugins::ChecksumAlgorithm < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#56 + def add_handlers(handlers, _config); end + + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#251 + def calculate_checksum(algorithm, body); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#261 + def digest_for_algorithm(algorithm); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#79 + def operation_response_algorithms(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#65 + def request_algorithm_selection(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#72 + def request_validation_mode(context); end + + # The trailer size (in bytes) is the overhead + the trailer name + + # the length of the base64 encoded checksum + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#277 + def trailer_length(algorithm, location_name); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#281 + def update_in_chunks(digest, io); end + end +end + +# Wrapper for request body that implements application-layer +# chunking with Digest computed on chunks + added as a trailer +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#292 +class Aws::Plugins::ChecksumAlgorithm::AwsChunkedTrailerDigestIO + # @api private + # @return [AwsChunkedTrailerDigestIO] a new instance of AwsChunkedTrailerDigestIO + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#295 + def initialize(io, algorithm, location_name); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#320 + def read(length, buf = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#316 + def rewind; end + + # the size of the application layer aws-chunked + trailer body + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#304 + def size; end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#293 +Aws::Plugins::ChecksumAlgorithm::AwsChunkedTrailerDigestIO::CHUNK_SIZE = T.let(T.unsafe(nil), Integer) + +# priority order of checksum algorithms to validate responses against +# Remove any algorithms not supported by client (ie, depending on CRT availability) +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#23 +Aws::Plugins::ChecksumAlgorithm::CHECKSUM_ALGORITHM_PRIORITIES = T.let(T.unsafe(nil), Array) + +# byte size of checksums, used in computing the trailer length +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#26 +Aws::Plugins::ChecksumAlgorithm::CHECKSUM_SIZE = T.let(T.unsafe(nil), Hash) + +# one MB +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#7 +Aws::Plugins::ChecksumAlgorithm::CHUNK_SIZE = T.let(T.unsafe(nil), Integer) + +# determine the set of supported client side checksum algorithms +# CRC32c requires aws-crt (optional sdk dependency) for support +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#11 +Aws::Plugins::ChecksumAlgorithm::CLIENT_ALGORITHMS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#116 +class Aws::Plugins::ChecksumAlgorithm::ChecksumHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#118 + def call(context); end + + private + + # Add events to the http_response to verify the checksum as its read + # This prevents the body from being read multiple times + # verification is done only once a successful response has completed + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#194 + def add_verify_response_checksum_handlers(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#166 + def apply_request_trailer_checksum(context, checksum_properties); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#152 + def calculate_request_checksum(context, checksum_properties); end + + # determine where (header vs trailer) a request checksum should be added + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#240 + def checksum_request_in(context); end + + # returns nil if no headers to verify + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#231 + def response_header_to_verify(headers, validation_list); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#142 + def should_calculate_request_checksum?(context); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#148 + def should_verify_response_checksum?(context); end +end + +# Interface for computing digests on request/response bodies +# which may be files, strings or IO like objects +# Applies only to digest functions that produce 32 bit integer checksums +# (eg CRC32) +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#37 +class Aws::Plugins::ChecksumAlgorithm::Digest32 + # @api private + # @param digest_fn [Object] + # @return [Digest32] a new instance of Digest32 + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#42 + def initialize(digest_fn); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#51 + def base64digest; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#47 + def update(chunk); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#39 + def value; end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#87 +class Aws::Plugins::ChecksumAlgorithm::OptionHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/checksum_algorithm.rb#88 + def call(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_plugin.rb#8 +class Aws::Plugins::ClientMetricsPlugin < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_plugin.rb#61 + def add_handlers(handlers, config); end + + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_plugin.rb#115 + def resolve_client_id(cfg); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_plugin.rb#101 + def resolve_client_side_monitoring(cfg); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_plugin.rb#88 + def resolve_client_side_monitoring_host(cfg); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_plugin.rb#75 + def resolve_client_side_monitoring_port(cfg); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_plugin.rb#71 + def resolve_publisher(cfg); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_plugin.rb#123 +class Aws::Plugins::ClientMetricsPlugin::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_plugin.rb#124 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_plugin.rb#203 + def _calculate_service_id(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_plugin.rb#209 + def _fallback_service_id(id); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb#7 +class Aws::Plugins::ClientMetricsSendPlugin < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb#9 + def add_handlers(handlers, config); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb#32 +class Aws::Plugins::ClientMetricsSendPlugin::AttemptHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb#33 + def call(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb#73 +class Aws::Plugins::ClientMetricsSendPlugin::ErrorHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb#74 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb#88 + def _extract_error_name(error); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb#21 +class Aws::Plugins::ClientMetricsSendPlugin::LatencyHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb#22 + def call(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/credentials_configuration.rb#7 +class Aws::Plugins::CredentialsConfiguration < ::Seahorse::Client::Plugin; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/defaults_mode.rb#7 +class Aws::Plugins::DefaultsMode < ::Seahorse::Client::Plugin + class << self + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/defaults_mode.rb#29 + def resolve_defaults_mode(cfg); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/endpoint_discovery.rb#6 +class Aws::Plugins::EndpointDiscovery < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/endpoint_discovery.rb#60 + def add_handlers(handlers, config); end + + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/endpoint_discovery.rb#162 + def resolve_endpoint_discovery(cfg); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/endpoint_discovery.rb#64 +class Aws::Plugins::EndpointDiscovery::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/endpoint_discovery.rb#66 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/endpoint_discovery.rb#98 + def _apply_endpoint_discovery_user_agent(ctx); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/endpoint_discovery.rb#106 + def _discover_endpoint(ctx, required); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/endpoint_discovery.rb#89 + def _valid_uri(address); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/endpoint_pattern.rb#6 +class Aws::Plugins::EndpointPattern < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/endpoint_pattern.rb#17 + def add_handlers(handlers, config); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/endpoint_pattern.rb#21 +class Aws::Plugins::EndpointPattern::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/endpoint_pattern.rb#23 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/endpoint_pattern.rb#35 + def _apply_endpoint_trait(context, trait); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/endpoint_pattern.rb#48 + def _replace_label_value(ori, label, input_ref, params); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/event_stream_configuration.rb#6 +class Aws::Plugins::EventStreamConfiguration < ::Seahorse::Client::Plugin; end + +# This plugin provides the ability to provide global configuration for +# all AWS classes or specific ones. +# +# ## Global AWS configuration +# +# You can specify global configuration defaults via `Aws.config` +# +# Aws.config[:region] = 'us-west-2' +# +# Options applied to `Aws.config` are merged with constructed +# service interfaces. +# +# # uses the global configuration +# Aws::EC2.new.config.region #=> 'us-west-2' +# +# # constructor args have priority over global configuration +# Aws::EC2.new(region: 'us-east-1').config.region #=> 'us-east-1' +# +# ## Service Specific Global Configuration +# +# Some services have very specific configuration options that are not +# shared by other services. +# +# # oops, this option is only recognized by Aws::S3 +# Aws.config[:force_path_style] = true +# Aws::EC2.new +# #=> raises ArgumentError: invalid configuration option `:force_path_style' +# +# To avoid this issue, you can nest service specific options +# +# Aws.config[:s3] = { force_path_style: true } +# +# Aws::EC2.new # no error this time +# Aws::S3.new.config.force_path_style #=> true +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/global_configuration.rb#44 +class Aws::Plugins::GlobalConfiguration < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/global_configuration.rb#49 + def before_initialize(client_class, options); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/global_configuration.rb#65 + def apply_aws_defaults(_client_class, options); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/global_configuration.rb#57 + def apply_service_defaults(client_class, options); end + + class << self + # Registers an additional service identifier. + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/global_configuration.rb#78 + def add_identifier(identifier); end + + # @api private + # @return [Set] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/global_configuration.rb#84 + def identifiers; end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/helpful_socket_errors.rb#6 +class Aws::Plugins::HelpfulSocketErrors < ::Seahorse::Client::Plugin; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/helpful_socket_errors.rb#8 +class Aws::Plugins::HelpfulSocketErrors::Handler < ::Seahorse::Client::Handler + # Wrap `SocketError` errors with `Aws::Errors::NoSuchEndpointError` + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/helpful_socket_errors.rb#11 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/helpful_socket_errors.rb#30 + def no_such_endpoint_error(context, error); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/helpful_socket_errors.rb#23 + def socket_endpoint_error?(error); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/http_checksum.rb#9 +class Aws::Plugins::HttpChecksum < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/http_checksum.rb#57 + def add_handlers(handlers, _config); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/http_checksum.rb#10 +class Aws::Plugins::HttpChecksum::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/http_checksum.rb#13 + def call(context); end + + private + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/http_checksum.rb#25 + def checksum_required?(context); end + + # @api private + # @param value [File, Tempfile, IO#read, String] + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/http_checksum.rb#33 + def md5(value); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/http_checksum.rb#46 + def update_in_chunks(digest, io); end +end + +# one MB +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/http_checksum.rb#11 +Aws::Plugins::HttpChecksum::Handler::CHUNK_SIZE = T.let(T.unsafe(nil), Integer) + +# Provides support for auto filling operation parameters +# that enabled with `idempotencyToken` trait with random UUID v4 +# when no value is provided +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/idempotency_token.rb#12 +class Aws::Plugins::IdempotencyToken < ::Seahorse::Client::Plugin; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/idempotency_token.rb#15 +class Aws::Plugins::IdempotencyToken::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/idempotency_token.rb#17 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/idempotency_token.rb#24 + def auto_fill(params, ref); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/invocation_id.rb#9 +class Aws::Plugins::InvocationId < ::Seahorse::Client::Plugin; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/invocation_id.rb#12 +class Aws::Plugins::InvocationId::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/invocation_id.rb#14 + def call(context); end +end + +# Converts input value to JSON Syntax for members with jsonvalue trait +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/jsonvalue_converter.rb#7 +class Aws::Plugins::JsonvalueConverter < ::Seahorse::Client::Plugin; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/jsonvalue_converter.rb#10 +class Aws::Plugins::JsonvalueConverter::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/jsonvalue_converter.rb#12 + def call(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/jsonvalue_converter.rb#19 + def convert_jsonvalue(m, ref, params, context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/jsonvalue_converter.rb#46 + def serialize_jsonvalue(v, context); end +end + +# @api private +# @see Log::Formatter +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/logging.rb#7 +class Aws::Plugins::Logging < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/logging.rb#33 + def add_handlers(handlers, config); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/logging.rb#37 +class Aws::Plugins::Logging::Handler < ::Seahorse::Client::Handler + # @api private + # @param context [RequestContext] + # @return [Response] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/logging.rb#41 + def call(context); end + + private + + # @api private + # @param config [Configuration] + # @param response [Response] + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/logging.rb#61 + def format(config, response); end + + # @api private + # @param config [Configuration] + # @param response [Response] + # @return [void] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/logging.rb#54 + def log(config, response); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/param_converter.rb#6 +class Aws::Plugins::ParamConverter < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/param_converter.rb#17 + def add_handlers(handlers, config); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/param_converter.rb#21 +class Aws::Plugins::ParamConverter::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/param_converter.rb#23 + def call(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/param_validator.rb#6 +class Aws::Plugins::ParamValidator < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/param_validator.rb#16 + def add_handlers(handlers, config); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/param_validator.rb#22 +class Aws::Plugins::ParamValidator::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/param_validator.rb#24 + def call(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/protocols/query.rb#5 +module Aws::Plugins::Protocols; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/protocols/json_rpc.rb#6 +class Aws::Plugins::Protocols::JsonRpc < ::Seahorse::Client::Plugin; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/protocols/query.rb#6 +class Aws::Plugins::Protocols::Query < ::Seahorse::Client::Plugin; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/protocols/rest_json.rb#6 +class Aws::Plugins::Protocols::RestJson < ::Seahorse::Client::Plugin; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/protocols/rest_xml.rb#6 +class Aws::Plugins::Protocols::RestXml < ::Seahorse::Client::Plugin; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/recursion_detection.rb#6 +class Aws::Plugins::RecursionDetection < ::Seahorse::Client::Plugin; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/recursion_detection.rb#9 +class Aws::Plugins::RecursionDetection::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/recursion_detection.rb#10 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/recursion_detection.rb#22 + def validate_header(header_value); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/regional_endpoint.rb#6 +class Aws::Plugins::RegionalEndpoint < ::Seahorse::Client::Plugin + # @api private + # @raise [Errors::MissingRegionError] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/regional_endpoint.rb#82 + def after_initialize(client); end + + class << self + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/regional_endpoint.rb#174 + def env_global_endpoint(cfg); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/regional_endpoint.rb#164 + def env_service_endpoint(cfg); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/regional_endpoint.rb#198 + def handle_legacy_pseudo_regions(cfg); end + + # get a custom configured endpoint from ENV or configuration + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/regional_endpoint.rb#157 + def resolve_custom_config_endpoint(cfg); end + + # NOTE: with Endpoints 2.0, some of this logic is deprecated + # but because new old service gems may depend on new core versions + # we must preserve that behavior. + # Additional behavior controls the setting of the custom SDK::Endpoint + # parameter. + # When the `regional_endpoint` config is set to true - this indicates to + # Endpoints2.0 that a custom endpoint has NOT been configured by the user. + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/regional_endpoint.rb#140 + def resolve_endpoint(cfg); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/regional_endpoint.rb#127 + def resolve_ignore_configured_endpoint_urls(cfg); end + + # set a default endpoint in config using legacy (endpoints.json) resolver + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/regional_endpoint.rb#210 + def resolve_legacy_endpoint(cfg); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/regional_endpoint.rb#99 + def resolve_region(cfg); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/regional_endpoint.rb#107 + def resolve_sigv4a_signing_region_set(cfg); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/regional_endpoint.rb#113 + def resolve_use_dualstack_endpoint(cfg); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/regional_endpoint.rb#121 + def resolve_use_fips_endpoint(cfg); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/regional_endpoint.rb#182 + def shared_config_endpoint(cfg); end + + # check region is a valid RFC host label + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/regional_endpoint.rb#192 + def validate_region!(region); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#6 +class Aws::Plugins::RequestCompression < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#58 + def add_handlers(handlers, _config); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#35 + def after_initialize(client); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#40 + def validate_disable_request_compression_input(cfg); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#48 + def validate_request_min_compression_size_bytes_input(cfg); end + + class << self + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#66 + def resolve_disable_request_compression(cfg); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#73 + def resolve_request_min_compression_size_bytes(cfg); end + end +end + +# one MB +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#10 +Aws::Plugins::RequestCompression::CHUNK_SIZE = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#82 +class Aws::Plugins::RequestCompression::CompressionHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#83 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#145 + def gzip_compress(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#135 + def process_compression(encoding, context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#168 + def process_streaming_compression(encoding, context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#108 + def request_encoding_selection(context); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#122 + def should_compress?(context); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#127 + def streaming?(input); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#113 + def update_content_encoding(encoding, context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#159 + def update_in_chunks(compressor, io); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#99 + def with_metric(encoding, &block); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#211 +class Aws::Plugins::RequestCompression::CompressionHandler::ChunkBuffer + # @api private + # @return [ChunkBuffer] a new instance of ChunkBuffer + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#212 + def initialize; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#216 + def last_chunk; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#218 + def write(data); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#179 +class Aws::Plugins::RequestCompression::CompressionHandler::GzipIO + # @api private + # @return [GzipIO] a new instance of GzipIO + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#180 + def initialize(body); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#186 + def read(length, buff = T.unsafe(nil)); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#7 +Aws::Plugins::RequestCompression::DEFAULT_MIN_COMPRESSION_SIZE = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#8 +Aws::Plugins::RequestCompression::MIN_COMPRESSION_SIZE_LIMIT = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/request_compression.rb#9 +Aws::Plugins::RequestCompression::SUPPORTED_ENCODINGS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/response_paging.rb#6 +class Aws::Plugins::ResponsePaging < ::Seahorse::Client::Plugin; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/response_paging.rb#8 +class Aws::Plugins::ResponsePaging::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/response_paging.rb#10 + def call(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#5 +module Aws::Plugins::Retries; end + +# Used only in 'adaptive' retry mode +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/client_rate_limiter.rb#8 +class Aws::Plugins::Retries::ClientRateLimiter + # @api private + # @return [ClientRateLimiter] a new instance of ClientRateLimiter + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/client_rate_limiter.rb#17 + def initialize; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/client_rate_limiter.rb#32 + def token_bucket_acquire(amount, wait_to_fill = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/client_rate_limiter.rb#50 + def update_sending_rate(is_throttling_error); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/client_rate_limiter.rb#122 + def calculate_time_window; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/client_rate_limiter.rb#128 + def cubic_success(timestamp); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/client_rate_limiter.rb#133 + def cubic_throttle(rate_to_use); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/client_rate_limiter.rb#105 + def enable_token_bucket; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/client_rate_limiter.rb#79 + def token_bucket_refill; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/client_rate_limiter.rb#94 + def token_bucket_update_rate(new_rps); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/client_rate_limiter.rb#109 + def update_measured_rate; end +end + +# How much to scale back after a throttling response +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/client_rate_limiter.rb#13 +Aws::Plugins::Retries::ClientRateLimiter::BETA = T.let(T.unsafe(nil), Float) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/client_rate_limiter.rb#9 +Aws::Plugins::Retries::ClientRateLimiter::MIN_CAPACITY = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/client_rate_limiter.rb#10 +Aws::Plugins::Retries::ClientRateLimiter::MIN_FILL_RATE = T.let(T.unsafe(nil), Float) + +# Controls how aggressively we scale up after being throttled +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/client_rate_limiter.rb#15 +Aws::Plugins::Retries::ClientRateLimiter::SCALE_CONSTANT = T.let(T.unsafe(nil), Float) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/client_rate_limiter.rb#11 +Aws::Plugins::Retries::ClientRateLimiter::SMOOTH = T.let(T.unsafe(nil), Float) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/clock_skew.rb#8 +class Aws::Plugins::Retries::ClockSkew + # @api private + # @return [ClockSkew] a new instance of ClockSkew + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/clock_skew.rb#12 + def initialize; end + + # Gets the clock_correction in seconds to apply to a given endpoint + # + # @api private + # @param endpoint [URI / String] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/clock_skew.rb#26 + def clock_correction(endpoint); end + + # Determines whether a request has clock skew by comparing + # the current time against the server's time in the response + # + # @api private + # @param context [Seahorse::Client::RequestContext] + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/clock_skew.rb#44 + def clock_skewed?(context); end + + # The estimated skew factors in any clock skew from + # the service along with any network latency. + # This provides a more accurate value for the ttl, + # which should represent when the client will stop + # waiting for a request. + # Estimated Skew should not be used to correct clock skew errors + # it should only be used to estimate TTL for a request + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/clock_skew.rb#37 + def estimated_skew(endpoint); end + + # Called only on clock skew related errors + # Update the stored clock skew correction value for an endpoint + # from the server's time in the response + # + # @api private + # @param context [Seahorse::Client::RequestContext] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/clock_skew.rb#54 + def update_clock_correction(context); end + + # Called for every request + # Update our estimated clock skew for the endpoint + # from the servers time in the response + # + # @api private + # @param context [Seahorse::Client::RequestContext] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/clock_skew.rb#67 + def update_estimated_skew(context); end + + private + + # @api private + # @param response [Seahorse::Client::Http::Response:] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/clock_skew.rb#80 + def server_time(response); end + + # Sets the clock correction for an endpoint + # + # @api private + # @param endpoint [URI / String] + # @param correction [Number] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/clock_skew.rb#91 + def set_clock_correction(endpoint, correction); end +end + +# five minutes +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/clock_skew.rb#10 +Aws::Plugins::Retries::ClockSkew::CLOCK_SKEW_THRESHOLD = T.let(T.unsafe(nil), Integer) + +# This class will be obsolete when APIs contain modeled exceptions +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#8 +class Aws::Plugins::Retries::ErrorInspector + # @api private + # @return [ErrorInspector] a new instance of ErrorInspector + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#68 + def initialize(error, http_status_code); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#85 + def checksum?; end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#115 + def clock_skew?(context); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#99 + def endpoint_discovery?(context); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#74 + def expired_credentials?; end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#107 + def modeled_retryable?; end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#111 + def modeled_throttling?; end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#89 + def networking?; end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#120 + def retryable?(context); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#95 + def server?; end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#78 + def throttling_error?; end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#137 + def extract_name(error); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#133 + def refreshable_credentials?(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#40 +Aws::Plugins::Retries::ErrorInspector::CHECKSUM_ERRORS = T.let(T.unsafe(nil), Set) + +# See: https://github.com/aws/aws-sdk-net/blob/5810dfe401e0eac2e59d02276d4b479224b4538e/sdk/src/Core/Amazon.Runtime/Pipeline/RetryHandler/RetryPolicy.cs#L78 +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#57 +Aws::Plugins::Retries::ErrorInspector::CLOCK_SKEW_ERRORS = T.let(T.unsafe(nil), Set) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#9 +Aws::Plugins::Retries::ErrorInspector::EXPIRED_CREDS = T.let(T.unsafe(nil), Set) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#47 +Aws::Plugins::Retries::ErrorInspector::NETWORKING_ERRORS = T.let(T.unsafe(nil), Set) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/error_inspector.rb#21 +Aws::Plugins::Retries::ErrorInspector::THROTTLING_ERRORS = T.let(T.unsafe(nil), Set) + +# Used in 'standard' and 'adaptive' retry modes. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/retry_quota.rb#9 +class Aws::Plugins::Retries::RetryQuota + # @api private + # @return [RetryQuota] a new instance of RetryQuota + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/retry_quota.rb#15 + def initialize(opts = T.unsafe(nil)); end + + # check if there is sufficient capacity to retry + # and return it. If there is insufficient capacity + # return 0 + # + # @api private + # @return [Integer] The amount of capacity checked out + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/retry_quota.rb#25 + def checkout_capacity(error_inspector); end + + # capacity_amount refers to the amount of capacity requested from + # the last retry. It can either be RETRY_COST, TIMEOUT_RETRY_COST, + # or unset. + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/retry_quota.rb#44 + def release(capacity_amount); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/retry_quota.rb#10 +Aws::Plugins::Retries::RetryQuota::INITIAL_RETRY_TOKENS = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/retry_quota.rb#12 +Aws::Plugins::Retries::RetryQuota::NO_RETRY_INCREMENT = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/retry_quota.rb#11 +Aws::Plugins::Retries::RetryQuota::RETRY_COST = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retries/retry_quota.rb#13 +Aws::Plugins::Retries::RetryQuota::TIMEOUT_RETRY_COST = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#13 +class Aws::Plugins::RetryErrors < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#430 + def add_handlers(handlers, config); end + + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#199 + def resolve_adaptive_retry_wait_to_fill(cfg); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#213 + def resolve_correct_clock_skew(cfg); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#185 + def resolve_max_attempts(cfg); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#166 + def resolve_retry_mode(cfg); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#29 +Aws::Plugins::RetryErrors::DEFAULT_BACKOFF = T.let(T.unsafe(nil), Proc) + +# BEGIN LEGACY OPTIONS +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#14 +Aws::Plugins::RetryErrors::EQUAL_JITTER = T.let(T.unsafe(nil), Proc) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#15 +Aws::Plugins::RetryErrors::FULL_JITTER = T.let(T.unsafe(nil), Proc) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#228 +class Aws::Plugins::RetryErrors::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#231 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#332 + def add_retry_headers(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#346 + def compute_request_ttl(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#314 + def exponential_backoff(retries); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#278 + def get_send_token(config); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#327 + def refresh_credentials?(context, error); end + + # maxsendrate is updated if on adaptive mode and based on response + # retry quota is updated if the request is successful (both modes) + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#293 + def request_bookkeeping(context, response, error_inspector); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#319 + def retry_request(context, error); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#307 + def retryable?(context, response, error_inspector); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#274 + def with_metric(retry_mode, &block); end +end + +# Max backoff (in seconds) +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#229 +Aws::Plugins::RetryErrors::Handler::MAX_BACKOFF = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#18 +Aws::Plugins::RetryErrors::JITTERS = T.let(T.unsafe(nil), Hash) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#362 +class Aws::Plugins::RetryErrors::LegacyHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#364 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#406 + def delay_retry(context); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#416 + def refresh_credentials?(context, error); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#425 + def response_truncatable?(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#388 + def retry_if_possible(response, error_inspector); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#421 + def retry_limit(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#397 + def retry_request(context, error); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#410 + def should_retry?(context, error); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#384 + def with_metric(&block); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/retry_errors.rb#16 +Aws::Plugins::RetryErrors::NO_JITTER = T.let(T.unsafe(nil), Proc) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#10 +class Aws::Plugins::Sign < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#19 + def add_handlers(handlers, cfg); end + + class << self + # Return a signer with the `sign(context)` method + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#26 + def signer_for(auth_scheme, config, sigv4_region_override = T.unsafe(nil), sigv4_credentials_override = T.unsafe(nil)); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#66 +class Aws::Plugins::Sign::Bearer + # @api private + # @return [Bearer] a new instance of Bearer + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#67 + def initialize; end + + # @api private + # @raise [ArgumentError] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#84 + def presign_url(*args); end + + # @api private + # @raise [Errors::MissingBearerTokenError] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#70 + def sign(context); end + + # @api private + # @raise [ArgumentError] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#88 + def sign_event(*args); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#41 +class Aws::Plugins::Sign::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#42 + def call(context); end + + private + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#58 + def v2_signing?(config); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#200 +class Aws::Plugins::Sign::NullSigner + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#205 + def presign_url(*args); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#202 + def sign(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#208 + def sign_event(*args); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#17 +Aws::Plugins::Sign::SUPPORTED_AUTH_TYPES = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#94 +class Aws::Plugins::Sign::SignatureV4 + # @api private + # @return [SignatureV4] a new instance of SignatureV4 + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#95 + def initialize(auth_scheme, config, sigv4_overrides = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#150 + def presign_url(*args); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#123 + def sign(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#154 + def sign_event(*args); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#160 + def apply_authtype(context, req); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#183 + def apply_clock_skew(context, req); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#175 + def reset_signature(req); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/sign.rb#169 + def unsigned_payload?(context, req); end +end + +# Deprecated - does not look at new traits like `auth` and `unsignedPayload` +# Necessary to exist after endpoints 2.0 for old service clients + new core +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/signature_v4.rb#10 +class Aws::Plugins::SignatureV4 < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/signature_v4.rb#53 + def add_handlers(handlers, cfg); end + + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/signature_v4.rb#142 + def apply_authtype(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/signature_v4.rb#99 + def apply_signature(options = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/signature_v4.rb#78 + def build_signer(cfg); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/signature_v4.rb#62 +class Aws::Plugins::SignatureV4::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/signature_v4.rb#63 + def call(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/signature_v4.rb#69 +class Aws::Plugins::SignatureV4::MissingCredentialsSigner + # @api private + # @raise [Errors::MissingCredentialsError] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/signature_v4.rb#70 + def sign_request(*args); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/signature_v4.rb#12 +Aws::Plugins::SignatureV4::V4_AUTH = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/stub_responses.rb#6 +class Aws::Plugins::StubResponses < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/stub_responses.rb#32 + def add_handlers(handlers, config); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/stub_responses.rb#36 + def after_initialize(client); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/stub_responses.rb#49 +class Aws::Plugins::StubResponses::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/stub_responses.rb#51 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/stub_responses.rb#80 + def apply_stub(stub, response, async_mode = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/stub_responses.rb#89 + def signal_error(error, http_resp); end + + # @api private + # @param stub [Seahorse::Client::Http::Response] + # @param http_resp [Seahorse::Client::Http::Response | Seahorse::Client::Http::AsyncResponse] + # @param async_mode [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/stub_responses.rb#100 + def signal_http(stub, http_resp, async_mode = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/stub_responses.rb#117 + def span_wrapper(context, &block); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/stub_responses.rb#59 + def stub_responses(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/telemetry.rb#6 +class Aws::Plugins::Telemetry < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/telemetry.rb#25 + def after_initialize(client); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/telemetry.rb#29 + def validate_telemetry_provider(config); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/telemetry.rb#37 +class Aws::Plugins::Telemetry::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/telemetry.rb#38 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/telemetry.rb#67 + def parent_span_name(context, service_id); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/telemetry.rb#61 + def service_id(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/telemetry.rb#44 + def span_wrapper(context, &block); end +end + +# For Streaming Input Operations, when `requiresLength` is enabled +# checking whether `Content-Length` header can be set, +# for `unsignedPayload` and `v4-unsigned-body` operations, +# set `Transfer-Encoding` header. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/transfer_encoding.rb#10 +class Aws::Plugins::TransferEncoding < ::Seahorse::Client::Plugin; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/transfer_encoding.rb#13 +class Aws::Plugins::TransferEncoding::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/transfer_encoding.rb#14 + def call(context); end + + private + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/transfer_encoding.rb#45 + def requires_length?(ref); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/transfer_encoding.rb#32 + def streaming?(ref); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/transfer_encoding.rb#40 + def unsigned_payload?(operation); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/user_agent.rb#6 +class Aws::Plugins::UserAgent < ::Seahorse::Client::Plugin + class << self + # Deprecated - must exist for old service gems + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/user_agent.rb#52 + def feature(_feature, &block); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/user_agent.rb#56 + def metric(*metrics, &block); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/user_agent.rb#66 +class Aws::Plugins::UserAgent::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/user_agent.rb#67 + def call(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/user_agent.rb#72 + def set_user_agent(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/user_agent.rb#76 +class Aws::Plugins::UserAgent::Handler::UserAgent + # @api private + # @return [UserAgent] a new instance of UserAgent + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/user_agent.rb#77 + def initialize(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/user_agent.rb#81 + def to_s; end + + private + + # Used to be gem_name/gem_version + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/user_agent.rb#110 + def api_metadata; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/user_agent.rb#149 + def app_id_metadata; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/user_agent.rb#143 + def env_metadata; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/user_agent.rb#157 + def framework_metadata; end + + # Used to be RUBY_ENGINE/RUBY_VERSION + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/user_agent.rb#139 + def language_metadata; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/user_agent.rb#174 + def metric_metadata; end + + # Used to be RUBY_PLATFORM + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/plugins/user_agent.rb#120 + def os_metadata; end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/plugins/user_agent.rb#7 +Aws::Plugins::UserAgent::METRICS = T.let(T.unsafe(nil), Hash) + +# A credential provider that executes a given process and attempts +# to read its stdout to receive a JSON payload containing the credentials. +# +# credentials = Aws::ProcessCredentials.new(['/usr/bin/credential_proc']) +# ec2 = Aws::EC2::Client.new(credentials: credentials) +# +# Arguments should be provided as strings in the array, for example: +# +# process = ['/usr/bin/credential_proc', 'arg1', 'arg2'] +# credentials = Aws::ProcessCredentials.new(process) +# ec2 = Aws::EC2::Client.new(credentials: credentials) +# +# Automatically handles refreshing credentials if an Expiration time is +# provided in the credentials payload. +# +# @see https://docs.aws.amazon.com/cli/latest/topic/config-vars.html#sourcing-credentials-from-external-processes +# +# source://aws-sdk-core//lib/aws-sdk-core/process_credentials.rb#20 +class Aws::ProcessCredentials + include ::Aws::CredentialProvider + include ::Aws::RefreshingCredentials + + # Creates a new ProcessCredentials object, which allows an + # external process to be used as a credential provider. + # + # @param process [Array, String] An array of strings including + # the process name and its arguments to execute, or a single string to be + # executed by the shell (deprecated and insecure). + # @return [ProcessCredentials] a new instance of ProcessCredentials + # + # source://aws-sdk-core//lib/aws-sdk-core/process_credentials.rb#31 + def initialize(process); end + + private + + # @raise [Errors::InvalidProcessCredentialsPayload] + # + # source://aws-sdk-core//lib/aws-sdk-core/process_credentials.rb#73 + def _parse_payload_format_v1(creds_json); end + + # @raise [Errors::InvalidProcessCredentialsPayload] + # + # source://aws-sdk-core//lib/aws-sdk-core/process_credentials.rb#45 + def credentials_from_process; end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/process_credentials.rb#93 + def near_expiration?(expiration_length); end + + # source://aws-sdk-core//lib/aws-sdk-core/process_credentials.rb#89 + def refresh; end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/query/handler.rb#5 +module Aws::Query; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/query/ec2_handler.rb#6 +class Aws::Query::EC2Handler < ::Aws::Query::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/ec2_handler.rb#8 + def apply_params(param_list, params, rules); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/ec2_handler.rb#12 + def parse_xml(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/query/ec2_param_builder.rb#7 +class Aws::Query::EC2ParamBuilder + include ::Seahorse::Model::Shapes + + # @api private + # @return [EC2ParamBuilder] a new instance of EC2ParamBuilder + # + # source://aws-sdk-core//lib/aws-sdk-core/query/ec2_param_builder.rb#11 + def initialize(param_list); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/ec2_param_builder.rb#17 + def apply(ref, params); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/ec2_param_builder.rb#15 + def params; end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/ec2_param_builder.rb#66 + def blob(value); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/ec2_param_builder.rb#42 + def format(ref, value, prefix); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/ec2_param_builder.rb#33 + def list(ref, values, prefix); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/ec2_param_builder.rb#54 + def query_name(ref); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/ec2_param_builder.rb#58 + def set(name, value); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/ec2_param_builder.rb#23 + def structure(ref, values, prefix); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/ec2_param_builder.rb#71 + def timestamp(ref, value); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/ec2_param_builder.rb#62 + def ucfirst(str); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/query/handler.rb#6 +class Aws::Query::Handler < ::Seahorse::Client::Handler + include ::Seahorse::Model::Shapes + + # @api private + # @param context [Seahorse::Client::RequestContext] + # @return [Seahorse::Client::Response] + # + # source://aws-sdk-core//lib/aws-sdk-core/query/handler.rb#28 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/handler.rb#55 + def apply_params(param_list, params, rules); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/handler.rb#43 + def build_request(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/handler.rb#59 + def parse_xml(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/handler.rb#81 + def remove_wrapper(data, context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/handler.rb#68 + def rules(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/handler.rb#64 + def xml(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/query/handler.rb#10 +Aws::Query::Handler::CONTENT_TYPE = T.let(T.unsafe(nil), String) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/query/handler.rb#16 +Aws::Query::Handler::METADATA_REF = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ShapeRef) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/query/handler.rb#14 +class Aws::Query::Handler::METADATA_STRUCT < ::Struct + # Returns the value of attribute request_id + # + # @return [Object] the current value of request_id + def request_id; end + + # Sets the attribute request_id + # + # @param value [Object] the value to set the attribute request_id to. + # @return [Object] the newly set value + def request_id=(_); end + + class << self + def [](*_arg0); end + def inspect; end + def keyword_init?; end + def members; end + def new(*_arg0); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/query/handler.rb#12 +class Aws::Query::Handler::WRAPPER_STRUCT < ::Struct + # Returns the value of attribute response_metadata + # + # @return [Object] the current value of response_metadata + def response_metadata; end + + # Sets the attribute response_metadata + # + # @param value [Object] the value to set the attribute response_metadata to. + # @return [Object] the newly set value + def response_metadata=(_); end + + # Returns the value of attribute result + # + # @return [Object] the current value of result + def result; end + + # Sets the attribute result + # + # @param value [Object] the value to set the attribute result to. + # @return [Object] the newly set value + def result=(_); end + + class << self + def [](*_arg0); end + def inspect; end + def keyword_init?; end + def members; end + def new(*_arg0); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/query/param.rb#5 +class Aws::Query::Param + # @api private + # @param name [String] + # @param value [String, nil] (nil) + # @return [Param] a new instance of Param + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param.rb#9 + def initialize(name, value = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param.rb#33 + def <=>(other); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param.rb#26 + def ==(other); end + + # @api private + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param.rb#15 + def name; end + + # @api private + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param.rb#21 + def to_s; end + + # @api private + # @return [String, nil] + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param.rb#18 + def value; end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param.rb#39 + def escape(str); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/query/param_builder.rb#7 +class Aws::Query::ParamBuilder + include ::Seahorse::Model::Shapes + + # @api private + # @return [ParamBuilder] a new instance of ParamBuilder + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_builder.rb#11 + def initialize(param_list); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_builder.rb#17 + def apply(ref, params); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_builder.rb#15 + def params; end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_builder.rb#98 + def blob(value); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_builder.rb#84 + def flat?(ref); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_builder.rb#65 + def format(ref, value, prefix); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_builder.rb#32 + def list(ref, values, prefix); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_builder.rb#53 + def map(ref, values, prefix); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_builder.rb#76 + def query_name(ref, default = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_builder.rb#80 + def set(name, value); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_builder.rb#23 + def structure(ref, values, prefix); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_builder.rb#88 + def timestamp(ref, value); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/query/param_list.rb#7 +class Aws::Query::ParamList + include ::Enumerable + + # @api private + # @return [ParamList] a new instance of ParamList + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_list.rb#12 + def initialize; end + + # @api private + # @return [Param, nil] + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_list.rb#27 + def [](param_name); end + + # @api private + # @param param_name [String] + # @param param_value [String, nil] + # @return [Param] + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_list.rb#19 + def []=(param_name, param_value = T.unsafe(nil)); end + + # @api private + # @param param_name [String] + # @return [Param, nil] + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_list.rb#33 + def delete(param_name); end + + # @api private + # @return [Enumerable] + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_list.rb#38 + def each(&block); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_list.rb#43 + def empty?; end + + # @api private + # @param param_name [String] + # @param param_value [String, nil] + # @return [Param] + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_list.rb#19 + def set(param_name, param_value = T.unsafe(nil)); end + + # @api private + # @return [Array] Returns an array of sorted {Param} objects. + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_list.rb#48 + def to_a; end + + # @api private + # @return [#read, #rewind, #size] + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_list.rb#58 + def to_io; end + + # @api private + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_list.rb#53 + def to_s; end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/query/param_list.rb#63 +class Aws::Query::ParamList::IoWrapper + # @api private + # @param param_list [ParamList] + # @return [IoWrapper] a new instance of IoWrapper + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_list.rb#66 + def initialize(param_list); end + + # @api private + # @return [ParamList] + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_list.rb#72 + def param_list; end + + # @api private + # @return [String, nil] + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_list.rb#85 + def read(bytes = T.unsafe(nil), output_buffer = T.unsafe(nil)); end + + # @api private + # @return [void] + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_list.rb#80 + def rewind; end + + # @api private + # @return [Integer] + # + # source://aws-sdk-core//lib/aws-sdk-core/query/param_list.rb#75 + def size; end +end + +# Base class used credential classes that can be refreshed. This +# provides basic refresh logic in a thread-safe manner. Classes mixing in +# this module are expected to implement a #refresh method that populates +# the following instance variables: +# +# * `@access_key_id` +# * `@secret_access_key` +# * `@session_token` +# * `@expiration` +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/refreshing_credentials.rb#16 +module Aws::RefreshingCredentials + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/refreshing_credentials.rb#23 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @return [Credentials] + # + # source://aws-sdk-core//lib/aws-sdk-core/refreshing_credentials.rb#32 + def credentials; end + + # Refresh credentials. + # + # @api private + # @return [void] + # + # source://aws-sdk-core//lib/aws-sdk-core/refreshing_credentials.rb#39 + def refresh!; end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/refreshing_credentials.rb#53 + def async_expiration_length; end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/refreshing_credentials.rb#86 + def near_expiration?(expiration_length); end + + # Refreshes credentials asynchronously and synchronously. + # If we are near to expiration, block while getting new credentials. + # Otherwise, if we're approaching expiration, use the existing credentials + # but attempt a refresh in the background. + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/refreshing_credentials.rb#61 + def refresh_if_near_expiration!; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/refreshing_credentials.rb#49 + def sync_expiration_length; end +end + +# 10 minutes +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/refreshing_credentials.rb#19 +Aws::RefreshingCredentials::ASYNC_EXPIRATION_LENGTH = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/refreshing_credentials.rb#21 +Aws::RefreshingCredentials::CLIENT_EXCLUDE_OPTIONS = T.let(T.unsafe(nil), Set) + +# 5 minutes +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/refreshing_credentials.rb#18 +Aws::RefreshingCredentials::SYNC_EXPIRATION_LENGTH = T.let(T.unsafe(nil), Integer) + +# Module/mixin used by token provider classes that can be refreshed. This +# provides basic refresh logic in a thread-safe manner. Classes mixing in +# this module are expected to implement a #refresh method that populates +# the following instance variable: +# +# * `@token` [Token] - {Aws::Token} object with the `expiration` and `token` +# fields set. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/refreshing_token.rb#16 +module Aws::RefreshingToken + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/refreshing_token.rb#18 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @return [Time, nil] + # + # source://aws-sdk-core//lib/aws-sdk-core/refreshing_token.rb#33 + def expiration; end + + # Refresh token. + # + # @api private + # @return [void] + # + # source://aws-sdk-core//lib/aws-sdk-core/refreshing_token.rb#40 + def refresh!; end + + # @api private + # @return [Token] + # + # source://aws-sdk-core//lib/aws-sdk-core/refreshing_token.rb#27 + def token; end + + private + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/refreshing_token.rb#62 + def near_expiration?; end + + # Refreshes token if it is within + # 5 minutes of expiration. + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/refreshing_token.rb#51 + def refresh_if_near_expiration; end +end + +# setup autoloading for Resources module +# +# source://aws-sdk-core//lib/aws-sdk-core/resources.rb#5 +module Aws::Resources; end + +# source://aws-sdk-core//lib/aws-sdk-core/resources/collection.rb#5 +class Aws::Resources::Collection + include ::Enumerable + extend ::Aws::Deprecations + + # @api private + # @option options + # @option options + # @param batches [Enumerator] + # @param options [Hash] a customizable set of options + # @return [Collection] a new instance of Collection + # + # source://aws-sdk-core//lib/aws-sdk-core/resources/collection.rb#14 + def initialize(batches, options = T.unsafe(nil)); end + + # @api private + # @deprecated + # + # source://aws-sdk-core//lib/aws-sdk-core/deprecations.rb#65 + def [](*args, &block); end + + # @api private + # @deprecated + # + # source://aws-sdk-core//lib/aws-sdk-core/resources/collection.rb#30 + def batches; end + + # @return [Enumerator] + # + # source://aws-sdk-core//lib/aws-sdk-core/resources/collection.rb#50 + def each(&block); end + + # @param count [Integer] + # @return [Resource, Collection] + # + # source://aws-sdk-core//lib/aws-sdk-core/resources/collection.rb#64 + def first(count = T.unsafe(nil)); end + + # @return [Integer, nil] Returns the size of this collection if known, returns `nil` when + # an API call is necessary to enumerate items in this collection. + # + # source://aws-sdk-core//lib/aws-sdk-core/resources/collection.rb#23 + def length; end + + # Returns a new collection that will enumerate a limited number of items. + # + # collection.limit(10).each do |band| + # # yields at most 10 times + # end + # + # @param limit [Integer] + # @return [Collection] + # + # source://aws-sdk-core//lib/aws-sdk-core/resources/collection.rb#85 + def limit(limit); end + + # @return [Integer, nil] Returns the size of this collection if known, returns `nil` when + # an API call is necessary to enumerate items in this collection. + # + # source://aws-sdk-core//lib/aws-sdk-core/resources/collection.rb#23 + def size; end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/resources/collection.rb#91 + def batch_enum; end + + # source://aws-sdk-core//lib/aws-sdk-core/resources/collection.rb#107 + def limited_batches; end + + # source://aws-sdk-core//lib/aws-sdk-core/resources/collection.rb#99 + def non_empty_batches; end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/rest/handler.rb#5 +module Aws::Rest; end + +# NOTE: headers could be already populated if specified on input shape +# +# source://aws-sdk-core//lib/aws-sdk-core/rest/content_type_handler.rb#6 +class Aws::Rest::ContentTypeHandler < ::Seahorse::Client::Handler + # source://aws-sdk-core//lib/aws-sdk-core/rest/content_type_handler.rb#7 + def call(context); end + + private + + # content-type defaults as noted here: + # rest-json: https://smithy.io/2.0/aws/protocols/aws-restxml-protocol.html#content-type + # rest-xml: https://smithy.io/2.0/aws/protocols/aws-restxml-protocol.html#content-type + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/content_type_handler.rb#46 + def apply_default_content_type(context); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/content_type_handler.rb#36 + def eventstream?(context); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/content_type_handler.rb#32 + def non_empty_body?(body); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/rest/handler.rb#6 +class Aws::Rest::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/handler.rb#8 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/handler.rb#17 + def apply_request_id(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/rest/request/body.rb#5 +module Aws::Rest::Request; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/rest/request/body.rb#6 +class Aws::Rest::Request::Body + include ::Seahorse::Model::Shapes + + # @api private + # @param serializer_class [Class] + # @param rules [Seahorse::Model::ShapeRef] + # @return [Body] a new instance of Body + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/body.rb#12 + def initialize(serializer_class, rules); end + + # @api private + # @param http_req [Seahorse::Client::Http::Request] + # @param params [Hash] + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/body.rb#19 + def apply(http_req, params); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/body.rb#93 + def body_params(params); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/body.rb#46 + def build_body(params); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/body.rb#85 + def json_builder?; end + + # operation is modeled for body when it is modeled for a payload + # either with payload trait or normal members. + # + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/body.rb#37 + def modeled_body?; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/body.rb#69 + def payload_location_name; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/body.rb#89 + def serialize(rules, params, location_name: T.unsafe(nil)); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/body.rb#74 + def streaming?; end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/body.rb#81 + def xml_builder?; end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/rest/request/builder.rb#6 +class Aws::Rest::Request::Builder + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/builder.rb#8 + def apply(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/builder.rb#33 + def populate_body(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/builder.rb#21 + def populate_endpoint(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/builder.rb#28 + def populate_headers(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/builder.rb#17 + def populate_http_method(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/builder.rb#40 + def serializer_class(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/rest/request/endpoint.rb#8 +class Aws::Rest::Request::Endpoint + # @api private + # @param rules [Seahorse::Model::Shapes::ShapeRef] + # @param request_uri_pattern [String] + # @return [Endpoint] a new instance of Endpoint + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/endpoint.rb#12 + def initialize(rules, request_uri_pattern); end + + # @api private + # @param base_uri [URI::HTTPS, URI::HTTP] + # @param params [Hash, Struct] + # @return [URI::HTTPS, URI::HTTP] + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/endpoint.rb#23 + def uri(base_uri, params); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/endpoint.rb#32 + def apply_path_params(uri, params); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/endpoint.rb#77 + def apply_querystring_params(uri, params); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/endpoint.rb#91 + def escape(string); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/endpoint.rb#61 + def param_name(placeholder); end + + # @api private + # @raise [ArgumentError] + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/endpoint.rb#41 + def param_value_for_placeholder(placeholder, params); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/endpoint.rb#67 + def timestamp(ref, value); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/rest/request/headers.rb#9 +class Aws::Rest::Request::Headers + include ::Seahorse::Model::Shapes + + # @api private + # @param rules [Seahorse::Model::ShapeRef] + # @return [Headers] a new instance of Headers + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/headers.rb#14 + def initialize(rules); end + + # @api private + # @param http_req [Seahorse::Client::Http::Request] + # @param params [Hash] + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/headers.rb#20 + def apply(http_req, params); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/headers.rb#68 + def apply_header_map(headers, ref, values); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/headers.rb#34 + def apply_header_value(headers, ref, value); end + + # With complex headers value in json syntax, + # base64 encodes value to avoid weird characters + # causing potential issues in headers + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/headers.rb#78 + def apply_json_trait(value); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/headers.rb#53 + def list(headers, ref, values); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/headers.rb#43 + def timestamp(ref, value); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/rest/request/querystring_builder.rb#6 +class Aws::Rest::Request::QuerystringBuilder + include ::Seahorse::Model::Shapes + + # Provide shape references and param values: + # + # [ + # [shape_ref1, 123], + # [shape_ref2, "text"] + # ] + # + # Returns a querystring: + # + # "Count=123&Words=text" + # + # @api private + # @param params [Array>] An array of + # model shape references and request parameter value pairs. + # @return [String] Returns a built querystring + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/querystring_builder.rb#32 + def build(params); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/querystring_builder.rb#50 + def build_part(shape_ref, param_value, query_keys); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/querystring_builder.rb#125 + def escape(string); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/querystring_builder.rb#85 + def generate_query_list(ref, values); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/querystring_builder.rb#93 + def generate_query_map(ref, value, query_keys); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/querystring_builder.rb#42 + def query_keys(params); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/querystring_builder.rb#105 + def query_map_of_string(hash, query_keys); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/querystring_builder.rb#114 + def query_map_of_string_list(hash, query_keys); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/querystring_builder.rb#74 + def query_value(ref, value); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/request/querystring_builder.rb#64 + def timestamp(ref, value); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/rest/request/querystring_builder.rb#9 +Aws::Rest::Request::QuerystringBuilder::SUPPORTED_TYPES = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/rest/response/body.rb#5 +module Aws::Rest::Response; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/rest/response/body.rb#6 +class Aws::Rest::Response::Body + include ::Seahorse::Model::Shapes + + # @api private + # @param parser_class [Class] + # @param rules [Seahorse::Model::ShapeRef] + # @return [Body] a new instance of Body + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/body.rb#12 + def initialize(parser_class, rules); end + + # @api private + # @param body [IO] + # @param data [Hash, Struct] + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/body.rb#19 + def apply(body, data); end + + private + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/body.rb#34 + def empty_blob_payload?(body); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/body.rb#43 + def empty_body?(body); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/body.rb#47 + def event_stream?; end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/body.rb#38 + def non_streaming_blob_payload?; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/body.rb#58 + def parse(body, rules, target = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/body.rb#62 + def parse_eventstream(body); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/body.rb#51 + def streaming?; end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/rest/response/header_list_parser.rb#9 +module Aws::Rest::Response::HeaderListParser + class << self + # parse a list of possibly quoted and escaped string values + # Follows: + # # [RFC-7230's specification of header values](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.6). + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/header_list_parser.rb#15 + def parse_string_list(value); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/header_list_parser.rb#24 + def parse_timestamp_list(value, ref); end + + private + + # @api private + # @raise [ArgumentError] + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/header_list_parser.rb#64 + def read_quoted_value(buffer); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/header_list_parser.rb#57 + def read_unquoted_value(buffer); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/header_list_parser.rb#39 + def read_value(buffer); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/rest/response/headers.rb#10 +class Aws::Rest::Response::Headers + include ::Seahorse::Model::Shapes + + # @api private + # @param rules [Seahorse::Model::ShapeRef] + # @return [Headers] a new instance of Headers + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/headers.rb#15 + def initialize(rules); end + + # @api private + # @param http_resp [Seahorse::Client::Http::Response] + # @param target [Hash, Struct] + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/headers.rb#21 + def apply(http_resp, target); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/headers.rb#37 + def cast_value(ref, value); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/headers.rb#66 + def extract_header_map(headers, name, ref, data); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/headers.rb#31 + def extract_header_value(headers, name, ref, data); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/headers.rb#76 + def extract_json_trait(value); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/rest/response/parser.rb#6 +class Aws::Rest::Response::Parser + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/parser.rb#8 + def apply(response); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/parser.rb#32 + def extract_body(rules, response); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/parser.rb#27 + def extract_headers(rules, response); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/parser.rb#22 + def extract_status_code(rules, response); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/parser.rb#40 + def parser_class(response); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/rest/response/status_code.rb#6 +class Aws::Rest::Response::StatusCode + # @api private + # @param rules [Seahorse::Model::Shapes::ShapeRef] + # @return [StatusCode] a new instance of StatusCode + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/status_code.rb#9 + def initialize(rules); end + + # @api private + # @param http_resp [Seahorse::Client::Http::Response] + # @param data [Hash, Struct] + # + # source://aws-sdk-core//lib/aws-sdk-core/rest/response/status_code.rb#15 + def apply(http_resp, data); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/handler.rb#4 +module Aws::RpcV2; end + +# source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/builder.rb#7 +class Aws::RpcV2::Builder + include ::Seahorse::Model::Shapes + + # @return [Builder] a new instance of Builder + # + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/builder.rb#10 + def initialize(rules, _options = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/builder.rb#14 + def serialize(params); end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/builder.rb#47 + def blob(value); end + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/builder.rb#51 + def format(ref, value); end + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/builder.rb#35 + def list(ref, values); end + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/builder.rb#40 + def map(ref, values); end + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/builder.rb#24 + def structure(ref, values); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/content_type_handler.rb#5 +class Aws::RpcV2::ContentTypeHandler < ::Seahorse::Client::Handler + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/content_type_handler.rb#6 + def call(context); end + + private + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/content_type_handler.rb#40 + def empty_input_structure?(context); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/content_type_handler.rb#26 + def eventstream_input?(context); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/content_type_handler.rb#33 + def eventstream_output?(context); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/error_handler.rb#5 +class Aws::RpcV2::ErrorHandler < ::Aws::ErrorHandler + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/error_handler.rb#7 + def call(context); end + + private + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/error_handler.rb#70 + def aws_query_error?(context); end + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/error_handler.rb#39 + def error_code(data, context); end + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/error_handler.rb#29 + def extract_error(body, context); end + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/error_handler.rb#54 + def parse_error_data(context, body, code); end + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/error_handler.rb#75 + def remove_prefix(error_code, context); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/error_handler.rb#23 + def valid_response?(context); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/handler.rb#7 +class Aws::RpcV2::Handler < ::Seahorse::Client::Handler + # @param context [Seahorse::Client::RequestContext] + # @return [Seahorse::Client::Response] + # + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/handler.rb#8 + def call(context); end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/handler.rb#69 + def apply_request_id(context); end + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/handler.rb#35 + def build_body(context); end + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/handler.rb#22 + def build_request(context); end + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/handler.rb#29 + def build_url(context); end + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/handler.rb#39 + def parse_body(context); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/handler.rb#73 + def query_compatible?(context); end + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/handler.rb#18 + def with_metric(&block); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/parser.rb#7 +class Aws::RpcV2::Parser + include ::Seahorse::Model::Shapes + + # @param rules [Seahorse::Model::ShapeRef] + # @return [Parser] a new instance of Parser + # + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/parser.rb#11 + def initialize(rules, query_compatible: T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/parser.rb#16 + def parse(cbor, target = T.unsafe(nil)); end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/parser.rb#60 + def list(ref, values, target = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/parser.rb#68 + def map(ref, values, target = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/parser.rb#76 + def parse_ref(ref, value, target = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/rpc_v2/parser.rb#24 + def structure(ref, values, target = T.unsafe(nil)); end +end + +# This module provides support for AWS Single Sign-On. This module is available in the +# `aws-sdk-core` gem. +# +# # Client +# +# The {Client} class provides one method for each API operation. Operation +# methods each accept a hash of request parameters and return a response +# structure. +# +# sso = Aws::SSO::Client.new +# resp = sso.get_role_credentials(params) +# +# See {Client} for more information. +# +# # Errors +# +# Errors returned from AWS Single Sign-On are defined in the +# {Errors} module and all extend {Errors::ServiceError}. +# +# begin +# # do stuff +# rescue Aws::SSO::Errors::ServiceError +# # rescues all AWS Single Sign-On API errors +# end +# +# See {Errors} for more information. +# +# source://aws-sdk-core//lib/aws-sdk-sso.rb#46 +module Aws::SSO; end + +# An API client for SSO. To construct a client, you need to configure a `:region` and `:credentials`. +# +# client = Aws::SSO::Client.new( +# region: region_name, +# credentials: credentials, +# # ... +# ) +# +# For details on configuring region and credentials see +# the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html). +# +# See {#initialize} for a full list of supported configuration options. +# +# source://aws-sdk-core//lib/aws-sdk-sso/client.rb#52 +class Aws::SSO::Client < ::Seahorse::Client::Base + include ::Aws::ClientStubs + + # @overload initialize + # @return [Client] a new instance of Client + # + # source://aws-sdk-core//lib/aws-sdk-sso/client.rb#444 + def initialize(*args); end + + # @api private + # @param params [{}] + # + # source://aws-sdk-core//lib/aws-sdk-sso/client.rb#658 + def build_request(operation_name, params = T.unsafe(nil)); end + + # Returns the STS short-term credentials for a given role name that is + # assigned to the user. + # + # @example Request syntax with placeholder values + # + # resp = client.get_role_credentials({ + # role_name: "RoleNameType", # required + # account_id: "AccountIdType", # required + # access_token: "AccessTokenType", # required + # }) + # @example Response structure + # + # resp.role_credentials.access_key_id #=> String + # resp.role_credentials.secret_access_key #=> String + # resp.role_credentials.session_token #=> String + # resp.role_credentials.expiration #=> Integer + # @option params + # @option params + # @option params + # @overload get_role_credentials + # @param params [Hash] ({}) + # @return [Types::GetRoleCredentialsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetRoleCredentialsResponse#role_credentials #role_credentials} => Types::RoleCredentials + # @see http://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/GetRoleCredentials AWS API Documentation + # + # source://aws-sdk-core//lib/aws-sdk-sso/client.rb#491 + def get_role_credentials(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Lists all roles that are assigned to the user for a given AWS account. + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.list_account_roles({ + # next_token: "NextTokenType", + # max_results: 1, + # access_token: "AccessTokenType", # required + # account_id: "AccountIdType", # required + # }) + # @example Response structure + # + # resp.next_token #=> String + # resp.role_list #=> Array + # resp.role_list[0].role_name #=> String + # resp.role_list[0].account_id #=> String + # @option params + # @option params + # @option params + # @option params + # @overload list_account_roles + # @param params [Hash] ({}) + # @return [Types::ListAccountRolesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListAccountRolesResponse#next_token #next_token} => String + # * {Types::ListAccountRolesResponse#role_list #role_list} => Array<Types::RoleInfo> + # @see http://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/ListAccountRoles AWS API Documentation + # + # source://aws-sdk-core//lib/aws-sdk-sso/client.rb#544 + def list_account_roles(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Lists all AWS accounts assigned to the user. These AWS accounts are + # assigned by the administrator of the account. For more information, + # see [Assign User Access][1] in the *IAM Identity Center User Guide*. + # This operation returns a paginated response. + # + # + # + # [1]: https://docs.aws.amazon.com/singlesignon/latest/userguide/useraccess.html#assignusers + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.list_accounts({ + # next_token: "NextTokenType", + # max_results: 1, + # access_token: "AccessTokenType", # required + # }) + # @example Response structure + # + # resp.next_token #=> String + # resp.account_list #=> Array + # resp.account_list[0].account_id #=> String + # resp.account_list[0].account_name #=> String + # resp.account_list[0].email_address #=> String + # @option params + # @option params + # @option params + # @overload list_accounts + # @param params [Hash] ({}) + # @return [Types::ListAccountsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListAccountsResponse#next_token #next_token} => String + # * {Types::ListAccountsResponse#account_list #account_list} => Array<Types::AccountInfo> + # @see http://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/ListAccounts AWS API Documentation + # + # source://aws-sdk-core//lib/aws-sdk-sso/client.rb#601 + def list_accounts(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Removes the locally stored SSO tokens from the client-side cache and + # sends an API call to the IAM Identity Center service to invalidate the + # corresponding server-side IAM Identity Center sign in session. + # + # If a user uses IAM Identity Center to access the AWS CLI, the user’s + # IAM Identity Center sign in session is used to obtain an IAM session, + # as specified in the corresponding IAM Identity Center permission set. + # More specifically, IAM Identity Center assumes an IAM role in the + # target account on behalf of the user, and the corresponding temporary + # AWS credentials are returned to the client. + # + # After user logout, any existing IAM role sessions that were created by + # using IAM Identity Center permission sets continue based on the + # duration configured in the permission set. For more information, see + # [User authentications][1] in the *IAM Identity Center User Guide*. + # + # + # + # + # + # [1]: https://docs.aws.amazon.com/singlesignon/latest/userguide/authconcept.html + # + # @example Request syntax with placeholder values + # + # resp = client.logout({ + # access_token: "AccessTokenType", # required + # }) + # @option params + # @overload logout + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/Logout AWS API Documentation + # + # source://aws-sdk-core//lib/aws-sdk-sso/client.rb#649 + def logout(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # @api private + # @deprecated + # + # source://aws-sdk-core//lib/aws-sdk-sso/client.rb#678 + def waiter_names; end + + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sso/client.rb#688 + def errors_module; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sso/client.rb#685 + def identifier; end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#13 +module Aws::SSO::ClientApi + include ::Seahorse::Model +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#109 +Aws::SSO::ClientApi::API = T.let(T.unsafe(nil), Seahorse::Model::Api) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#17 +Aws::SSO::ClientApi::AccessKeyType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#18 +Aws::SSO::ClientApi::AccessTokenType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#19 +Aws::SSO::ClientApi::AccountIdType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#20 +Aws::SSO::ClientApi::AccountInfo = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#21 +Aws::SSO::ClientApi::AccountListType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#22 +Aws::SSO::ClientApi::AccountNameType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#23 +Aws::SSO::ClientApi::EmailAddressType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#24 +Aws::SSO::ClientApi::ErrorDescription = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#25 +Aws::SSO::ClientApi::ExpirationTimestampType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#26 +Aws::SSO::ClientApi::GetRoleCredentialsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#27 +Aws::SSO::ClientApi::GetRoleCredentialsResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#28 +Aws::SSO::ClientApi::InvalidRequestException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#29 +Aws::SSO::ClientApi::ListAccountRolesRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#30 +Aws::SSO::ClientApi::ListAccountRolesResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#31 +Aws::SSO::ClientApi::ListAccountsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#32 +Aws::SSO::ClientApi::ListAccountsResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#33 +Aws::SSO::ClientApi::LogoutRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#34 +Aws::SSO::ClientApi::MaxResultType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#35 +Aws::SSO::ClientApi::NextTokenType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#36 +Aws::SSO::ClientApi::ResourceNotFoundException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#37 +Aws::SSO::ClientApi::RoleCredentials = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#38 +Aws::SSO::ClientApi::RoleInfo = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#39 +Aws::SSO::ClientApi::RoleListType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#40 +Aws::SSO::ClientApi::RoleNameType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#41 +Aws::SSO::ClientApi::SecretAccessKeyType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#42 +Aws::SSO::ClientApi::SessionTokenType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#43 +Aws::SSO::ClientApi::TooManyRequestsException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/client_api.rb#44 +Aws::SSO::ClientApi::UnauthorizedException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# Endpoint parameters used to influence endpoints per request. +# +# source://aws-sdk-core//lib/aws-sdk-sso/endpoint_parameters.rb#33 +class Aws::SSO::EndpointParameters < ::Struct + include ::Aws::Structure + + # @return [EndpointParameters] a new instance of EndpointParameters + # + # source://aws-sdk-core//lib/aws-sdk-sso/endpoint_parameters.rb#51 + def initialize(options = T.unsafe(nil)); end + + # Override the endpoint used to send this request + # + # @return [String] + def endpoint; end + + # Override the endpoint used to send this request + # + # @return [String] + def endpoint=(_); end + + # The AWS region used to dispatch the request. + # + # @return [String] + def region; end + + # The AWS region used to dispatch the request. + # + # @return [String] + def region=(_); end + + # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. + # + # @return [Boolean] + def use_dual_stack; end + + # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. + # + # @return [Boolean] + def use_dual_stack=(_); end + + # When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. + # + # @return [Boolean] + def use_fips; end + + # When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. + # + # @return [Boolean] + def use_fips=(_); end + + class << self + def [](*_arg0); end + def inspect; end + def keyword_init?; end + def members; end + def new(*_arg0); end + end +end + +# source://aws-sdk-core//lib/aws-sdk-sso/endpoint_provider.rb#11 +class Aws::SSO::EndpointProvider + # @raise [ArgumentError] + # + # source://aws-sdk-core//lib/aws-sdk-sso/endpoint_provider.rb#12 + def resolve_endpoint(parameters); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/endpoints.rb#13 +module Aws::SSO::Endpoints; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/endpoints.rb#15 +class Aws::SSO::Endpoints::GetRoleCredentials + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sso/endpoints.rb#16 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/endpoints.rb#26 +class Aws::SSO::Endpoints::ListAccountRoles + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sso/endpoints.rb#27 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/endpoints.rb#37 +class Aws::SSO::Endpoints::ListAccounts + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sso/endpoints.rb#38 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/endpoints.rb#48 +class Aws::SSO::Endpoints::Logout + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sso/endpoints.rb#49 + def build(context); end + end +end + +# When SSO returns an error response, the Ruby SDK constructs and raises an error. +# These errors all extend Aws::SSO::Errors::ServiceError < {Aws::Errors::ServiceError} +# +# You can rescue all SSO errors using ServiceError: +# +# begin +# # do stuff +# rescue Aws::SSO::Errors::ServiceError +# # rescues all SSO API errors +# end +# +# +# ## Request Context +# ServiceError objects have a {Aws::Errors::ServiceError#context #context} method that returns +# information about the request that generated the error. +# See {Seahorse::Client::RequestContext} for more information. +# +# ## Error Classes +# * {InvalidRequestException} +# * {ResourceNotFoundException} +# * {TooManyRequestsException} +# * {UnauthorizedException} +# +# Additionally, error classes are dynamically generated for service errors based on the error code +# if they are not defined above. +# +# source://aws-sdk-core//lib/aws-sdk-sso/errors.rb#37 +module Aws::SSO::Errors + extend ::Aws::Errors::DynamicErrors +end + +# source://aws-sdk-core//lib/aws-sdk-sso/errors.rb#41 +class Aws::SSO::Errors::InvalidRequestException < ::Aws::SSO::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::SSO::Types::InvalidRequestException] + # @return [InvalidRequestException] a new instance of InvalidRequestException + # + # source://aws-sdk-core//lib/aws-sdk-sso/errors.rb#46 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-sso/errors.rb#51 + def message; end +end + +# source://aws-sdk-core//lib/aws-sdk-sso/errors.rb#56 +class Aws::SSO::Errors::ResourceNotFoundException < ::Aws::SSO::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::SSO::Types::ResourceNotFoundException] + # @return [ResourceNotFoundException] a new instance of ResourceNotFoundException + # + # source://aws-sdk-core//lib/aws-sdk-sso/errors.rb#61 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-sso/errors.rb#66 + def message; end +end + +# source://aws-sdk-core//lib/aws-sdk-sso/errors.rb#0 +class Aws::SSO::Errors::ServiceError < ::Aws::Errors::ServiceError; end + +# source://aws-sdk-core//lib/aws-sdk-sso/errors.rb#71 +class Aws::SSO::Errors::TooManyRequestsException < ::Aws::SSO::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::SSO::Types::TooManyRequestsException] + # @return [TooManyRequestsException] a new instance of TooManyRequestsException + # + # source://aws-sdk-core//lib/aws-sdk-sso/errors.rb#76 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-sso/errors.rb#81 + def message; end +end + +# source://aws-sdk-core//lib/aws-sdk-sso/errors.rb#86 +class Aws::SSO::Errors::UnauthorizedException < ::Aws::SSO::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::SSO::Types::UnauthorizedException] + # @return [UnauthorizedException] a new instance of UnauthorizedException + # + # source://aws-sdk-core//lib/aws-sdk-sso/errors.rb#91 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-sso/errors.rb#96 + def message; end +end + +# source://aws-sdk-core//lib/aws-sdk-sso.rb#59 +Aws::SSO::GEM_VERSION = T.let(T.unsafe(nil), String) + +# source://aws-sdk-core//lib/aws-sdk-sso.rb#49 +module Aws::SSO::Plugins; end + +# source://aws-sdk-core//lib/aws-sdk-sso/plugins/endpoints.rb#13 +class Aws::SSO::Plugins::Endpoints < ::Seahorse::Client::Plugin + # source://aws-sdk-core//lib/aws-sdk-sso/plugins/endpoints.rb#85 + def add_handlers(handlers, _config); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sso/plugins/endpoints.rb#27 +class Aws::SSO::Plugins::Endpoints::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sso/plugins/endpoints.rb#28 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sso/plugins/endpoints.rb#60 + def apply_endpoint_headers(context, headers); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sso/plugins/endpoints.rb#71 + def parameters_for_operation(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sso/plugins/endpoints.rb#48 + def with_metrics(context, &block); end +end + +# source://aws-sdk-core//lib/aws-sdk-sso/resource.rb#12 +class Aws::SSO::Resource + # @option options + # @param options [{}] + # @return [Resource] a new instance of Resource + # + # source://aws-sdk-core//lib/aws-sdk-sso/resource.rb#16 + def initialize(options = T.unsafe(nil)); end + + # @return [Client] + # + # source://aws-sdk-core//lib/aws-sdk-sso/resource.rb#21 + def client; end +end + +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#11 +module Aws::SSO::Types; end + +# Provides information about your AWS account. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/AccountInfo AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#32 +class Aws::SSO::Types::AccountInfo < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#33 +Aws::SSO::Types::AccountInfo::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/GetRoleCredentialsRequest AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#60 +class Aws::SSO::Types::GetRoleCredentialsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#61 +Aws::SSO::Types::GetRoleCredentialsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/GetRoleCredentialsResponse AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#72 +class Aws::SSO::Types::GetRoleCredentialsResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#73 +Aws::SSO::Types::GetRoleCredentialsResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Indicates that a problem occurred with the input to the request. For +# example, a required parameter might be missing or out of range. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/InvalidRequestException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#86 +class Aws::SSO::Types::InvalidRequestException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#87 +Aws::SSO::Types::InvalidRequestException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/ListAccountRolesRequest AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#120 +class Aws::SSO::Types::ListAccountRolesRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#121 +Aws::SSO::Types::ListAccountRolesRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/ListAccountRolesResponse AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#138 +class Aws::SSO::Types::ListAccountRolesResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#139 +Aws::SSO::Types::ListAccountRolesResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/ListAccountsRequest AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#167 +class Aws::SSO::Types::ListAccountsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#168 +Aws::SSO::Types::ListAccountsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/ListAccountsResponse AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#185 +class Aws::SSO::Types::ListAccountsResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#186 +Aws::SSO::Types::ListAccountsResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/LogoutRequest AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#203 +class Aws::SSO::Types::LogoutRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#204 +Aws::SSO::Types::LogoutRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The specified resource doesn't exist. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/ResourceNotFoundException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#216 +class Aws::SSO::Types::ResourceNotFoundException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#217 +Aws::SSO::Types::ResourceNotFoundException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Provides information about the role credentials that are assigned to +# the user. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/RoleCredentials AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#264 +class Aws::SSO::Types::RoleCredentials < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#265 +Aws::SSO::Types::RoleCredentials::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Provides information about the role that is assigned to the user. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/RoleInfo AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#283 +class Aws::SSO::Types::RoleInfo < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#284 +Aws::SSO::Types::RoleInfo::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Indicates that the request is being made too frequently and is more +# than what the server can handle. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/TooManyRequestsException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#297 +class Aws::SSO::Types::TooManyRequestsException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#298 +Aws::SSO::Types::TooManyRequestsException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Indicates that the request is not authorized. This can happen due to +# an invalid access token in the request. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/UnauthorizedException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#311 +class Aws::SSO::Types::UnauthorizedException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sso/types.rb#312 +Aws::SSO::Types::UnauthorizedException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# An auto-refreshing credential provider that assumes a role via +# {Aws::SSO::Client#get_role_credentials} using a cached access +# token. When `sso_session` is specified, token refresh logic from +# {Aws::SSOTokenProvider} will be used to refresh the token if possible. +# This class does NOT implement the SSO login token flow - tokens +# must generated separately by running `aws login` from the +# AWS CLI with the correct profile. The `SSOCredentials` will +# auto-refresh the AWS credentials from SSO. +# +# # You must first run aws sso login --profile your-sso-profile +# sso_credentials = Aws::SSOCredentials.new( +# sso_account_id: '123456789', +# sso_role_name: "role_name", +# sso_region: "us-east-1", +# sso_session: 'my_sso_session' +# ) +# ec2 = Aws::EC2::Client.new(credentials: sso_credentials) +# +# If you omit `:client` option, a new {Aws::SSO::Client} object will be +# constructed with additional options that were provided. +# +# @see Aws::SSO::Client#get_role_credentials +# @see https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html +# +# source://aws-sdk-core//lib/aws-sdk-core/sso_credentials.rb#27 +class Aws::SSOCredentials + include ::Aws::CredentialProvider + include ::Aws::RefreshingCredentials + + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [SSOCredentials] a new instance of SSOCredentials + # + # source://aws-sdk-core//lib/aws-sdk-core/sso_credentials.rb#69 + def initialize(options = T.unsafe(nil)); end + + # @return [SSO::Client] + # + # source://aws-sdk-core//lib/aws-sdk-core/sso_credentials.rb#121 + def client; end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/sso_credentials.rb#125 + def read_cached_token; end + + # source://aws-sdk-core//lib/aws-sdk-core/sso_credentials.rb#140 + def refresh; end + + # source://aws-sdk-core//lib/aws-sdk-core/sso_credentials.rb#165 + def sso_cache_file; end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/sso_credentials.rb#33 +Aws::SSOCredentials::LEGACY_REQUIRED_OPTS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/sso_credentials.rb#37 +Aws::SSOCredentials::SSO_LOGIN_GUIDANCE = T.let(T.unsafe(nil), String) + +# source://aws-sdk-core//lib/aws-sdk-core/sso_credentials.rb#34 +Aws::SSOCredentials::TOKEN_PROVIDER_REQUIRED_OPTS = T.let(T.unsafe(nil), Array) + +# This module provides support for AWS SSO OIDC. This module is available in the +# `aws-sdk-core` gem. +# +# # Client +# +# The {Client} class provides one method for each API operation. Operation +# methods each accept a hash of request parameters and return a response +# structure. +# +# ssooidc = Aws::SSOOIDC::Client.new +# resp = ssooidc.create_token(params) +# +# See {Client} for more information. +# +# # Errors +# +# Errors returned from AWS SSO OIDC are defined in the +# {Errors} module and all extend {Errors::ServiceError}. +# +# begin +# # do stuff +# rescue Aws::SSOOIDC::Errors::ServiceError +# # rescues all AWS SSO OIDC API errors +# end +# +# See {Errors} for more information. +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc.rb#46 +module Aws::SSOOIDC; end + +# An API client for SSOOIDC. To construct a client, you need to configure a `:region` and `:credentials`. +# +# client = Aws::SSOOIDC::Client.new( +# region: region_name, +# credentials: credentials, +# # ... +# ) +# +# For details on configuring region and credentials see +# the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html). +# +# See {#initialize} for a full list of supported configuration options. +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client.rb#52 +class Aws::SSOOIDC::Client < ::Seahorse::Client::Base + include ::Aws::ClientStubs + + # @overload initialize + # @return [Client] a new instance of Client + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/client.rb#444 + def initialize(*args); end + + # @api private + # @param params [{}] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/client.rb#1011 + def build_request(operation_name, params = T.unsafe(nil)); end + + # Creates and returns access and refresh tokens for clients that are + # authenticated using client secrets. The access token can be used to + # fetch short-term credentials for the assigned AWS accounts or to + # access application APIs using `bearer` authentication. + # + # @example Example: Call OAuth/OIDC /token endpoint for Device Code grant with Secret authentication + # + # resp = client.create_token({ + # client_id: "_yzkThXVzLWVhc3QtMQEXAMPLECLIENTID", + # client_secret: "VERYLONGSECRETeyJraWQiOiJrZXktMTU2NDAyODA5OSIsImFsZyI6IkhTMzg0In0", + # device_code: "yJraWQiOiJrZXktMTU2Njk2ODA4OCIsImFsZyI6IkhTMzIn0EXAMPLEDEVICECODE", + # grant_type: "urn:ietf:params:oauth:grant-type:device-code", + # }) + # + # resp.to_h outputs the following: + # { + # access_token: "aoal-YigITUDiNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZidEXAMPLEACCESSTOKEN", + # expires_in: 1579729529, + # refresh_token: "aorvJYubGpU6i91YnH7Mfo-AT2fIVa1zCfA_Rvq9yjVKIP3onFmmykuQ7E93y2I-9Nyj-A_sVvMufaLNL0bqnDRtgAkc0:MGUCMFrRsktMRVlWaOR70XGMFGLL0SlcCw4DiYveIiOVx1uK9BbD0gvAddsW3UTLozXKMgIxAJ3qxUvjpnlLIOaaKOoa/FuNgqJVvr9GMwDtnAtlh9iZzAkEXAMPLEREFRESHTOKEN", + # token_type: "Bearer", + # } + # @example Example: Call OAuth/OIDC /token endpoint for Refresh Token grant with Secret authentication + # + # resp = client.create_token({ + # client_id: "_yzkThXVzLWVhc3QtMQEXAMPLECLIENTID", + # client_secret: "VERYLONGSECRETeyJraWQiOiJrZXktMTU2NDAyODA5OSIsImFsZyI6IkhTMzg0In0", + # grant_type: "refresh_token", + # refresh_token: "aorvJYubGpU6i91YnH7Mfo-AT2fIVa1zCfA_Rvq9yjVKIP3onFmmykuQ7E93y2I-9Nyj-A_sVvMufaLNL0bqnDRtgAkc0:MGUCMFrRsktMRVlWaOR70XGMFGLL0SlcCw4DiYveIiOVx1uK9BbD0gvAddsW3UTLozXKMgIxAJ3qxUvjpnlLIOaaKOoa/FuNgqJVvr9GMwDtnAtlh9iZzAkEXAMPLEREFRESHTOKEN", + # scope: [ + # "codewhisperer:completions", + # ], + # }) + # + # resp.to_h outputs the following: + # { + # access_token: "aoal-YigITUDiNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZidEXAMPLEACCESSTOKEN", + # expires_in: 1579729529, + # refresh_token: "aorvJYubGpU6i91YnH7Mfo-AT2fIVa1zCfA_Rvq9yjVKIP3onFmmykuQ7E93y2I-9Nyj-A_sVvMufaLNL0bqnDRtgAkc0:MGUCMFrRsktMRVlWaOR70XGMFGLL0SlcCw4DiYveIiOVx1uK9BbD0gvAddsW3UTLozXKMgIxAJ3qxUvjpnlLIOaaKOoa/FuNgqJVvr9GMwDtnAtlh9iZzAkEXAMPLEREFRESHTOKEN", + # token_type: "Bearer", + # } + # @example Request syntax with placeholder values + # + # resp = client.create_token({ + # client_id: "ClientId", # required + # client_secret: "ClientSecret", # required + # grant_type: "GrantType", # required + # device_code: "DeviceCode", + # code: "AuthCode", + # refresh_token: "RefreshToken", + # scope: ["Scope"], + # redirect_uri: "URI", + # code_verifier: "CodeVerifier", + # }) + # @example Response structure + # + # resp.access_token #=> String + # resp.token_type #=> String + # resp.expires_in #=> Integer + # resp.refresh_token #=> String + # resp.id_token #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload create_token + # @param params [Hash] ({}) + # @return [Types::CreateTokenResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CreateTokenResponse#access_token #access_token} => String + # * {Types::CreateTokenResponse#token_type #token_type} => String + # * {Types::CreateTokenResponse#expires_in #expires_in} => Integer + # * {Types::CreateTokenResponse#refresh_token #refresh_token} => String + # * {Types::CreateTokenResponse#id_token #id_token} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/CreateToken AWS API Documentation + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/client.rb#586 + def create_token(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Creates and returns access and refresh tokens for clients and + # applications that are authenticated using IAM entities. The access + # token can be used to fetch short-term credentials for the assigned + # Amazon Web Services accounts or to access application APIs using + # `bearer` authentication. + # + # @example Example: Call OAuth/OIDC /token endpoint for Authorization Code grant with IAM authentication + # + # resp = client.create_token_with_iam({ + # client_id: "arn:aws:sso::123456789012:application/ssoins-111111111111/apl-222222222222", + # code: "yJraWQiOiJrZXktMTU2Njk2ODA4OCIsImFsZyI6IkhTMzg0In0EXAMPLEAUTHCODE", + # grant_type: "authorization_code", + # redirect_uri: "https://mywebapp.example/redirect", + # scope: [ + # "openid", + # "aws", + # "sts:identity_context", + # ], + # }) + # + # resp.to_h outputs the following: + # { + # access_token: "aoal-YigITUDiNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZidEXAMPLEACCESSTOKEN", + # expires_in: 1579729529, + # id_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhd3M6aWRlbnRpdHlfc3RvcmVfaWQiOiJkLTMzMzMzMzMzMzMiLCJzdWIiOiI3MzA0NDhmMi1lMGExLTcwYTctYzk1NC0wMDAwMDAwMDAwMDAiLCJhd3M6aW5zdGFuY2VfYWNjb3VudCI6IjExMTExMTExMTExMSIsInN0czppZGVudGl0eV9jb250ZXh0IjoiRVhBTVBMRUlERU5USVRZQ09OVEVYVCIsInN0czphdWRpdF9jb250ZXh0IjoiRVhBTVBMRUFVRElUQ09OVEVYVCIsImlzcyI6Imh0dHBzOi8vaWRlbnRpdHljZW50ZXIuYW1hem9uYXdzLmNvbS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmlkZW50aXR5X3N0b3JlX2FybiI6ImFybjphd3M6aWRlbnRpdHlzdG9yZTo6MTExMTExMTExMTExOmlkZW50aXR5c3RvcmUvZC0zMzMzMzMzMzMzIiwiYXVkIjoiYXJuOmF3czpzc286OjEyMzQ1Njc4OTAxMjphcHBsaWNhdGlvbi9zc29pbnMtMTExMTExMTExMTExL2FwbC0yMjIyMjIyMjIyMjIiLCJhd3M6aW5zdGFuY2VfYXJuIjoiYXJuOmF3czpzc286OjppbnN0YW5jZS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmNyZWRlbnRpYWxfaWQiOiJfWlIyTjZhVkJqMjdGUEtheWpfcEtwVjc3QVBERl80MXB4ZXRfWWpJdUpONlVJR2RBdkpFWEFNUExFQ1JFRElEIiwiYXV0aF90aW1lIjoiMjAyMC0wMS0yMlQxMjo0NToyOVoiLCJleHAiOjE1Nzk3Mjk1MjksImlhdCI6MTU3OTcyNTkyOX0.Xyah6qbk78qThzJ41iFU2yfGuRqqtKXHrJYwQ8L9Ip0", + # issued_token_type: "urn:ietf:params:oauth:token-type:refresh_token", + # refresh_token: "aorvJYubGpU6i91YnH7Mfo-AT2fIVa1zCfA_Rvq9yjVKIP3onFmmykuQ7E93y2I-9Nyj-A_sVvMufaLNL0bqnDRtgAkc0:MGUCMFrRsktMRVlWaOR70XGMFGLL0SlcCw4DiYveIiOVx1uK9BbD0gvAddsW3UTLozXKMgIxAJ3qxUvjpnlLIOaaKOoa/FuNgqJVvr9GMwDtnAtlh9iZzAkEXAMPLEREFRESHTOKEN", + # scope: [ + # "openid", + # "aws", + # "sts:identity_context", + # ], + # token_type: "Bearer", + # } + # @example Example: Call OAuth/OIDC /token endpoint for Refresh Token grant with IAM authentication + # + # resp = client.create_token_with_iam({ + # client_id: "arn:aws:sso::123456789012:application/ssoins-111111111111/apl-222222222222", + # grant_type: "refresh_token", + # refresh_token: "aorvJYubGpU6i91YnH7Mfo-AT2fIVa1zCfA_Rvq9yjVKIP3onFmmykuQ7E93y2I-9Nyj-A_sVvMufaLNL0bqnDRtgAkc0:MGUCMFrRsktMRVlWaOR70XGMFGLL0SlcCw4DiYveIiOVx1uK9BbD0gvAddsW3UTLozXKMgIxAJ3qxUvjpnlLIOaaKOoa/FuNgqJVvr9GMwDtnAtlh9iZzAkEXAMPLEREFRESHTOKEN", + # }) + # + # resp.to_h outputs the following: + # { + # access_token: "aoal-YigITUDiNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZidEXAMPLEACCESSTOKEN", + # expires_in: 1579729529, + # issued_token_type: "urn:ietf:params:oauth:token-type:refresh_token", + # refresh_token: "aorvJYubGpU6i91YnH7Mfo-AT2fIVa1zCfA_Rvq9yjVKIP3onFmmykuQ7E93y2I-9Nyj-A_sVvMufaLNL0bqnDRtgAkc0:MGUCMFrRsktMRVlWaOR70XGMFGLL0SlcCw4DiYveIiOVx1uK9BbD0gvAddsW3UTLozXKMgIxAJ3qxUvjpnlLIOaaKOoa/FuNgqJVvr9GMwDtnAtlh9iZzAkEXAMPLEREFRESHTOKEN", + # scope: [ + # "openid", + # "aws", + # "sts:identity_context", + # ], + # token_type: "Bearer", + # } + # @example Example: Call OAuth/OIDC /token endpoint for JWT Bearer grant with IAM authentication + # + # resp = client.create_token_with_iam({ + # assertion: "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjFMVE16YWtpaGlSbGFfOHoyQkVKVlhlV01xbyJ9.eyJ2ZXIiOiIyLjAiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vOTEyMjA0MGQtNmM2Ny00YzViLWIxMTItMzZhMzA0YjY2ZGFkL3YyLjAiLCJzdWIiOiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFJa3pxRlZyU2FTYUZIeTc4MmJidGFRIiwiYXVkIjoiNmNiMDQwMTgtYTNmNS00NmE3LWI5OTUtOTQwYzc4ZjVhZWYzIiwiZXhwIjoxNTM2MzYxNDExLCJpYXQiOjE1MzYyNzQ3MTEsIm5iZiI6MTUzNjI3NDcxMSwibmFtZSI6IkFiZSBMaW5jb2xuIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiQWJlTGlAbWljcm9zb2Z0LmNvbSIsIm9pZCI6IjAwMDAwMDAwLTAwMDAtMDAwMC02NmYzLTMzMzJlY2E3ZWE4MSIsInRpZCI6IjkxMjIwNDBkLTZjNjctNGM1Yi1iMTEyLTM2YTMwNGI2NmRhZCIsIm5vbmNlIjoiMTIzNTIzIiwiYWlvIjoiRGYyVVZYTDFpeCFsTUNXTVNPSkJjRmF0emNHZnZGR2hqS3Y4cTVnMHg3MzJkUjVNQjVCaXN2R1FPN1lXQnlqZDhpUURMcSFlR2JJRGFreXA1bW5PcmNkcUhlWVNubHRlcFFtUnA2QUlaOGpZIn0.1AFWW-Ck5nROwSlltm7GzZvDwUkqvhSQpm55TQsmVo9Y59cLhRXpvB8n-55HCr9Z6G_31_UbeUkoz612I2j_Sm9FFShSDDjoaLQr54CreGIJvjtmS3EkK9a7SJBbcpL1MpUtlfygow39tFjY7EVNW9plWUvRrTgVk7lYLprvfzw-CIqw3gHC-T7IK_m_xkr08INERBtaecwhTeN4chPC4W3jdmw_lIxzC48YoQ0dB1L9-ImX98Egypfrlbm0IBL5spFzL6JDZIRRJOu8vecJvj1mq-IUhGt0MacxX8jdxYLP-KUu2d9MbNKpCKJuZ7p8gwTL5B7NlUdh_dmSviPWrw", + # client_id: "arn:aws:sso::123456789012:application/ssoins-111111111111/apl-222222222222", + # grant_type: "urn:ietf:params:oauth:grant-type:jwt-bearer", + # }) + # + # resp.to_h outputs the following: + # { + # access_token: "aoal-YigITUDiNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZidEXAMPLEACCESSTOKEN", + # expires_in: 1579729529, + # id_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhd3M6aWRlbnRpdHlfc3RvcmVfaWQiOiJkLTMzMzMzMzMzMzMiLCJzdWIiOiI3MzA0NDhmMi1lMGExLTcwYTctYzk1NC0wMDAwMDAwMDAwMDAiLCJhd3M6aW5zdGFuY2VfYWNjb3VudCI6IjExMTExMTExMTExMSIsInN0czppZGVudGl0eV9jb250ZXh0IjoiRVhBTVBMRUlERU5USVRZQ09OVEVYVCIsInN0czphdWRpdF9jb250ZXh0IjoiRVhBTVBMRUFVRElUQ09OVEVYVCIsImlzcyI6Imh0dHBzOi8vaWRlbnRpdHljZW50ZXIuYW1hem9uYXdzLmNvbS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmlkZW50aXR5X3N0b3JlX2FybiI6ImFybjphd3M6aWRlbnRpdHlzdG9yZTo6MTExMTExMTExMTExOmlkZW50aXR5c3RvcmUvZC0zMzMzMzMzMzMzIiwiYXVkIjoiYXJuOmF3czpzc286OjEyMzQ1Njc4OTAxMjphcHBsaWNhdGlvbi9zc29pbnMtMTExMTExMTExMTExL2FwbC0yMjIyMjIyMjIyMjIiLCJhd3M6aW5zdGFuY2VfYXJuIjoiYXJuOmF3czpzc286OjppbnN0YW5jZS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmNyZWRlbnRpYWxfaWQiOiJfWlIyTjZhVkJqMjdGUEtheWpfcEtwVjc3QVBERl80MXB4ZXRfWWpJdUpONlVJR2RBdkpFWEFNUExFQ1JFRElEIiwiYXV0aF90aW1lIjoiMjAyMC0wMS0yMlQxMjo0NToyOVoiLCJleHAiOjE1Nzk3Mjk1MjksImlhdCI6MTU3OTcyNTkyOX0.Xyah6qbk78qThzJ41iFU2yfGuRqqtKXHrJYwQ8L9Ip0", + # issued_token_type: "urn:ietf:params:oauth:token-type:refresh_token", + # refresh_token: "aorvJYubGpU6i91YnH7Mfo-AT2fIVa1zCfA_Rvq9yjVKIP3onFmmykuQ7E93y2I-9Nyj-A_sVvMufaLNL0bqnDRtgAkc0:MGUCMFrRsktMRVlWaOR70XGMFGLL0SlcCw4DiYveIiOVx1uK9BbD0gvAddsW3UTLozXKMgIxAJ3qxUvjpnlLIOaaKOoa/FuNgqJVvr9GMwDtnAtlh9iZzAkEXAMPLEREFRESHTOKEN", + # scope: [ + # "openid", + # "aws", + # "sts:identity_context", + # ], + # token_type: "Bearer", + # } + # @example Example: Call OAuth/OIDC /token endpoint for Token Exchange grant with IAM authentication + # + # resp = client.create_token_with_iam({ + # client_id: "arn:aws:sso::123456789012:application/ssoins-111111111111/apl-222222222222", + # grant_type: "urn:ietf:params:oauth:grant-type:token-exchange", + # requested_token_type: "urn:ietf:params:oauth:token-type:access_token", + # subject_token: "aoak-Hig8TUDPNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZDIFFERENTACCESSTOKEN", + # subject_token_type: "urn:ietf:params:oauth:token-type:access_token", + # }) + # + # resp.to_h outputs the following: + # { + # access_token: "aoal-YigITUDiNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZidEXAMPLEACCESSTOKEN", + # expires_in: 1579729529, + # id_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhd3M6aWRlbnRpdHlfc3RvcmVfaWQiOiJkLTMzMzMzMzMzMzMiLCJzdWIiOiI3MzA0NDhmMi1lMGExLTcwYTctYzk1NC0wMDAwMDAwMDAwMDAiLCJhd3M6aW5zdGFuY2VfYWNjb3VudCI6IjExMTExMTExMTExMSIsInN0czppZGVudGl0eV9jb250ZXh0IjoiRVhBTVBMRUlERU5USVRZQ09OVEVYVCIsImlzcyI6Imh0dHBzOi8vaWRlbnRpdHljZW50ZXIuYW1hem9uYXdzLmNvbS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmlkZW50aXR5X3N0b3JlX2FybiI6ImFybjphd3M6aWRlbnRpdHlzdG9yZTo6MTExMTExMTExMTExOmlkZW50aXR5c3RvcmUvZC0zMzMzMzMzMzMzIiwiYXVkIjoiYXJuOmF3czpzc286OjEyMzQ1Njc4OTAxMjphcHBsaWNhdGlvbi9zc29pbnMtMTExMTExMTExMTExL2FwbC0yMjIyMjIyMjIyMjIiLCJhd3M6aW5zdGFuY2VfYXJuIjoiYXJuOmF3czpzc286OjppbnN0YW5jZS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmNyZWRlbnRpYWxfaWQiOiJfWlIyTjZhVkJqMjdGUEtheWpfcEtwVjc3QVBERl80MXB4ZXRfWWpJdUpONlVJR2RBdkpFWEFNUExFQ1JFRElEIiwiYXV0aF90aW1lIjoiMjAyMC0wMS0yMlQxMjo0NToyOVoiLCJleHAiOjE1Nzk3Mjk1MjksImlhdCI6MTU3OTcyNTkyOX0.5SYiW1kMsuUr7nna-l5tlakM0GNbMHvIM2_n0QD23jM", + # issued_token_type: "urn:ietf:params:oauth:token-type:access_token", + # scope: [ + # "openid", + # "aws", + # "sts:identity_context", + # ], + # token_type: "Bearer", + # } + # @example Request syntax with placeholder values + # + # resp = client.create_token_with_iam({ + # client_id: "ClientId", # required + # grant_type: "GrantType", # required + # code: "AuthCode", + # refresh_token: "RefreshToken", + # assertion: "Assertion", + # scope: ["Scope"], + # redirect_uri: "URI", + # subject_token: "SubjectToken", + # subject_token_type: "TokenTypeURI", + # requested_token_type: "TokenTypeURI", + # code_verifier: "CodeVerifier", + # }) + # @example Response structure + # + # resp.access_token #=> String + # resp.token_type #=> String + # resp.expires_in #=> Integer + # resp.refresh_token #=> String + # resp.id_token #=> String + # resp.issued_token_type #=> String + # resp.scope #=> Array + # resp.scope[0] #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload create_token_with_iam + # @param params [Hash] ({}) + # @return [Types::CreateTokenWithIAMResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CreateTokenWithIAMResponse#access_token #access_token} => String + # * {Types::CreateTokenWithIAMResponse#token_type #token_type} => String + # * {Types::CreateTokenWithIAMResponse#expires_in #expires_in} => Integer + # * {Types::CreateTokenWithIAMResponse#refresh_token #refresh_token} => String + # * {Types::CreateTokenWithIAMResponse#id_token #id_token} => String + # * {Types::CreateTokenWithIAMResponse#issued_token_type #issued_token_type} => String + # * {Types::CreateTokenWithIAMResponse#scope #scope} => Array<String> + # @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/CreateTokenWithIAM AWS API Documentation + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/client.rb#821 + def create_token_with_iam(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Registers a client with IAM Identity Center. This allows clients to + # initiate device authorization. The output should be persisted for + # reuse through many authentication requests. + # + # @example Example: Call OAuth/OIDC /register-client endpoint + # + # resp = client.register_client({ + # client_name: "My IDE Plugin", + # client_type: "public", + # entitled_application_arn: "arn:aws:sso::ACCOUNTID:application/ssoins-1111111111111111/apl-1111111111111111", + # grant_types: [ + # "authorization_code", + # "refresh_token", + # ], + # issuer_url: "https://identitycenter.amazonaws.com/ssoins-1111111111111111", + # redirect_uris: [ + # "127.0.0.1:PORT/oauth/callback", + # ], + # scopes: [ + # "sso:account:access", + # "codewhisperer:completions", + # ], + # }) + # + # resp.to_h outputs the following: + # { + # client_id: "_yzkThXVzLWVhc3QtMQEXAMPLECLIENTID", + # client_id_issued_at: 1579725929, + # client_secret: "VERYLONGSECRETeyJraWQiOiJrZXktMTU2NDAyODA5OSIsImFsZyI6IkhTMzg0In0", + # client_secret_expires_at: 1587584729, + # } + # @example Request syntax with placeholder values + # + # resp = client.register_client({ + # client_name: "ClientName", # required + # client_type: "ClientType", # required + # scopes: ["Scope"], + # redirect_uris: ["URI"], + # grant_types: ["GrantType"], + # issuer_url: "URI", + # entitled_application_arn: "ArnType", + # }) + # @example Response structure + # + # resp.client_id #=> String + # resp.client_secret #=> String + # resp.client_id_issued_at #=> Integer + # resp.client_secret_expires_at #=> Integer + # resp.authorization_endpoint #=> String + # resp.token_endpoint #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload register_client + # @param params [Hash] ({}) + # @return [Types::RegisterClientResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::RegisterClientResponse#client_id #client_id} => String + # * {Types::RegisterClientResponse#client_secret #client_secret} => String + # * {Types::RegisterClientResponse#client_id_issued_at #client_id_issued_at} => Integer + # * {Types::RegisterClientResponse#client_secret_expires_at #client_secret_expires_at} => Integer + # * {Types::RegisterClientResponse#authorization_endpoint #authorization_endpoint} => String + # * {Types::RegisterClientResponse#token_endpoint #token_endpoint} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/RegisterClient AWS API Documentation + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/client.rb#927 + def register_client(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Initiates device authorization by requesting a pair of verification + # codes from the authorization service. + # + # @example Example: Call OAuth/OIDC /start-device-authorization endpoint + # + # resp = client.start_device_authorization({ + # client_id: "_yzkThXVzLWVhc3QtMQEXAMPLECLIENTID", + # client_secret: "VERYLONGSECRETeyJraWQiOiJrZXktMTU2NDAyODA5OSIsImFsZyI6IkhTMzg0In0", + # start_url: "https://identitycenter.amazonaws.com/ssoins-111111111111", + # }) + # + # resp.to_h outputs the following: + # { + # device_code: "yJraWQiOiJrZXktMTU2Njk2ODA4OCIsImFsZyI6IkhTMzIn0EXAMPLEDEVICECODE", + # expires_in: 1579729529, + # interval: 1, + # user_code: "makdfsk83yJraWQiOiJrZXktMTU2Njk2sImFsZyI6IkhTMzIn0EXAMPLEUSERCODE", + # verification_uri: "https://device.sso.us-west-2.amazonaws.com", + # verification_uri_complete: "https://device.sso.us-west-2.amazonaws.com?user_code=makdfsk83yJraWQiOiJrZXktMTU2Njk2sImFsZyI6IkhTMzIn0EXAMPLEUSERCODE", + # } + # @example Request syntax with placeholder values + # + # resp = client.start_device_authorization({ + # client_id: "ClientId", # required + # client_secret: "ClientSecret", # required + # start_url: "URI", # required + # }) + # @example Response structure + # + # resp.device_code #=> String + # resp.user_code #=> String + # resp.verification_uri #=> String + # resp.verification_uri_complete #=> String + # resp.expires_in #=> Integer + # resp.interval #=> Integer + # @option params + # @option params + # @option params + # @overload start_device_authorization + # @param params [Hash] ({}) + # @return [Types::StartDeviceAuthorizationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::StartDeviceAuthorizationResponse#device_code #device_code} => String + # * {Types::StartDeviceAuthorizationResponse#user_code #user_code} => String + # * {Types::StartDeviceAuthorizationResponse#verification_uri #verification_uri} => String + # * {Types::StartDeviceAuthorizationResponse#verification_uri_complete #verification_uri_complete} => String + # * {Types::StartDeviceAuthorizationResponse#expires_in #expires_in} => Integer + # * {Types::StartDeviceAuthorizationResponse#interval #interval} => Integer + # @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/StartDeviceAuthorization AWS API Documentation + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/client.rb#1002 + def start_device_authorization(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # @api private + # @deprecated + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/client.rb#1031 + def waiter_names; end + + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/client.rb#1041 + def errors_module; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/client.rb#1038 + def identifier; end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#13 +module Aws::SSOOIDC::ClientApi + include ::Seahorse::Model +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#205 +Aws::SSOOIDC::ClientApi::API = T.let(T.unsafe(nil), Seahorse::Model::Api) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#17 +Aws::SSOOIDC::ClientApi::AccessDeniedException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#18 +Aws::SSOOIDC::ClientApi::AccessToken = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#19 +Aws::SSOOIDC::ClientApi::ArnType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#20 +Aws::SSOOIDC::ClientApi::Assertion = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#21 +Aws::SSOOIDC::ClientApi::AuthCode = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#22 +Aws::SSOOIDC::ClientApi::AuthorizationPendingException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#23 +Aws::SSOOIDC::ClientApi::ClientId = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#24 +Aws::SSOOIDC::ClientApi::ClientName = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#25 +Aws::SSOOIDC::ClientApi::ClientSecret = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#26 +Aws::SSOOIDC::ClientApi::ClientType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#27 +Aws::SSOOIDC::ClientApi::CodeVerifier = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#28 +Aws::SSOOIDC::ClientApi::CreateTokenRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#29 +Aws::SSOOIDC::ClientApi::CreateTokenResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#30 +Aws::SSOOIDC::ClientApi::CreateTokenWithIAMRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#31 +Aws::SSOOIDC::ClientApi::CreateTokenWithIAMResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#32 +Aws::SSOOIDC::ClientApi::DeviceCode = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#33 +Aws::SSOOIDC::ClientApi::Error = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#34 +Aws::SSOOIDC::ClientApi::ErrorDescription = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#35 +Aws::SSOOIDC::ClientApi::ExpirationInSeconds = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#36 +Aws::SSOOIDC::ClientApi::ExpiredTokenException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#37 +Aws::SSOOIDC::ClientApi::GrantType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#38 +Aws::SSOOIDC::ClientApi::GrantTypes = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#39 +Aws::SSOOIDC::ClientApi::IdToken = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#40 +Aws::SSOOIDC::ClientApi::InternalServerException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#41 +Aws::SSOOIDC::ClientApi::IntervalInSeconds = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#42 +Aws::SSOOIDC::ClientApi::InvalidClientException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#43 +Aws::SSOOIDC::ClientApi::InvalidClientMetadataException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#44 +Aws::SSOOIDC::ClientApi::InvalidGrantException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#45 +Aws::SSOOIDC::ClientApi::InvalidRedirectUriException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#46 +Aws::SSOOIDC::ClientApi::InvalidRequestException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#47 +Aws::SSOOIDC::ClientApi::InvalidRequestRegionException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#48 +Aws::SSOOIDC::ClientApi::InvalidScopeException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#49 +Aws::SSOOIDC::ClientApi::Location = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#50 +Aws::SSOOIDC::ClientApi::LongTimeStampType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#51 +Aws::SSOOIDC::ClientApi::RedirectUris = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#52 +Aws::SSOOIDC::ClientApi::RefreshToken = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#53 +Aws::SSOOIDC::ClientApi::Region = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#54 +Aws::SSOOIDC::ClientApi::RegisterClientRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#55 +Aws::SSOOIDC::ClientApi::RegisterClientResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#56 +Aws::SSOOIDC::ClientApi::Scope = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#57 +Aws::SSOOIDC::ClientApi::Scopes = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#58 +Aws::SSOOIDC::ClientApi::SlowDownException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#59 +Aws::SSOOIDC::ClientApi::StartDeviceAuthorizationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#60 +Aws::SSOOIDC::ClientApi::StartDeviceAuthorizationResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#61 +Aws::SSOOIDC::ClientApi::SubjectToken = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#62 +Aws::SSOOIDC::ClientApi::TokenType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#63 +Aws::SSOOIDC::ClientApi::TokenTypeURI = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#64 +Aws::SSOOIDC::ClientApi::URI = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#65 +Aws::SSOOIDC::ClientApi::UnauthorizedClientException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#66 +Aws::SSOOIDC::ClientApi::UnsupportedGrantTypeException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/client_api.rb#67 +Aws::SSOOIDC::ClientApi::UserCode = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# Endpoint parameters used to influence endpoints per request. +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/endpoint_parameters.rb#33 +class Aws::SSOOIDC::EndpointParameters < ::Struct + include ::Aws::Structure + + # @return [EndpointParameters] a new instance of EndpointParameters + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/endpoint_parameters.rb#51 + def initialize(options = T.unsafe(nil)); end + + # Override the endpoint used to send this request + # + # @return [String] + def endpoint; end + + # Override the endpoint used to send this request + # + # @return [String] + def endpoint=(_); end + + # The AWS region used to dispatch the request. + # + # @return [String] + def region; end + + # The AWS region used to dispatch the request. + # + # @return [String] + def region=(_); end + + # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. + # + # @return [Boolean] + def use_dual_stack; end + + # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. + # + # @return [Boolean] + def use_dual_stack=(_); end + + # When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. + # + # @return [Boolean] + def use_fips; end + + # When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. + # + # @return [Boolean] + def use_fips=(_); end + + class << self + def [](*_arg0); end + def inspect; end + def keyword_init?; end + def members; end + def new(*_arg0); end + end +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/endpoint_provider.rb#11 +class Aws::SSOOIDC::EndpointProvider + # @raise [ArgumentError] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/endpoint_provider.rb#12 + def resolve_endpoint(parameters); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/endpoints.rb#13 +module Aws::SSOOIDC::Endpoints; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/endpoints.rb#15 +class Aws::SSOOIDC::Endpoints::CreateToken + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/endpoints.rb#16 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/endpoints.rb#26 +class Aws::SSOOIDC::Endpoints::CreateTokenWithIAM + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/endpoints.rb#27 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/endpoints.rb#37 +class Aws::SSOOIDC::Endpoints::RegisterClient + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/endpoints.rb#38 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/endpoints.rb#48 +class Aws::SSOOIDC::Endpoints::StartDeviceAuthorization + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/endpoints.rb#49 + def build(context); end + end +end + +# When SSOOIDC returns an error response, the Ruby SDK constructs and raises an error. +# These errors all extend Aws::SSOOIDC::Errors::ServiceError < {Aws::Errors::ServiceError} +# +# You can rescue all SSOOIDC errors using ServiceError: +# +# begin +# # do stuff +# rescue Aws::SSOOIDC::Errors::ServiceError +# # rescues all SSOOIDC API errors +# end +# +# +# ## Request Context +# ServiceError objects have a {Aws::Errors::ServiceError#context #context} method that returns +# information about the request that generated the error. +# See {Seahorse::Client::RequestContext} for more information. +# +# ## Error Classes +# * {AccessDeniedException} +# * {AuthorizationPendingException} +# * {ExpiredTokenException} +# * {InternalServerException} +# * {InvalidClientException} +# * {InvalidClientMetadataException} +# * {InvalidGrantException} +# * {InvalidRedirectUriException} +# * {InvalidRequestException} +# * {InvalidRequestRegionException} +# * {InvalidScopeException} +# * {SlowDownException} +# * {UnauthorizedClientException} +# * {UnsupportedGrantTypeException} +# +# Additionally, error classes are dynamically generated for service errors based on the error code +# if they are not defined above. +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#47 +module Aws::SSOOIDC::Errors + extend ::Aws::Errors::DynamicErrors +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#51 +class Aws::SSOOIDC::Errors::AccessDeniedException < ::Aws::SSOOIDC::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::SSOOIDC::Types::AccessDeniedException] + # @return [AccessDeniedException] a new instance of AccessDeniedException + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#56 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#61 + def error; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#66 + def error_description; end +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#71 +class Aws::SSOOIDC::Errors::AuthorizationPendingException < ::Aws::SSOOIDC::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::SSOOIDC::Types::AuthorizationPendingException] + # @return [AuthorizationPendingException] a new instance of AuthorizationPendingException + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#76 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#81 + def error; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#86 + def error_description; end +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#91 +class Aws::SSOOIDC::Errors::ExpiredTokenException < ::Aws::SSOOIDC::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::SSOOIDC::Types::ExpiredTokenException] + # @return [ExpiredTokenException] a new instance of ExpiredTokenException + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#96 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#101 + def error; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#106 + def error_description; end +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#111 +class Aws::SSOOIDC::Errors::InternalServerException < ::Aws::SSOOIDC::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::SSOOIDC::Types::InternalServerException] + # @return [InternalServerException] a new instance of InternalServerException + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#116 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#121 + def error; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#126 + def error_description; end +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#131 +class Aws::SSOOIDC::Errors::InvalidClientException < ::Aws::SSOOIDC::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::SSOOIDC::Types::InvalidClientException] + # @return [InvalidClientException] a new instance of InvalidClientException + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#136 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#141 + def error; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#146 + def error_description; end +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#151 +class Aws::SSOOIDC::Errors::InvalidClientMetadataException < ::Aws::SSOOIDC::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::SSOOIDC::Types::InvalidClientMetadataException] + # @return [InvalidClientMetadataException] a new instance of InvalidClientMetadataException + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#156 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#161 + def error; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#166 + def error_description; end +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#171 +class Aws::SSOOIDC::Errors::InvalidGrantException < ::Aws::SSOOIDC::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::SSOOIDC::Types::InvalidGrantException] + # @return [InvalidGrantException] a new instance of InvalidGrantException + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#176 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#181 + def error; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#186 + def error_description; end +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#191 +class Aws::SSOOIDC::Errors::InvalidRedirectUriException < ::Aws::SSOOIDC::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::SSOOIDC::Types::InvalidRedirectUriException] + # @return [InvalidRedirectUriException] a new instance of InvalidRedirectUriException + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#196 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#201 + def error; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#206 + def error_description; end +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#211 +class Aws::SSOOIDC::Errors::InvalidRequestException < ::Aws::SSOOIDC::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::SSOOIDC::Types::InvalidRequestException] + # @return [InvalidRequestException] a new instance of InvalidRequestException + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#216 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#221 + def error; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#226 + def error_description; end +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#231 +class Aws::SSOOIDC::Errors::InvalidRequestRegionException < ::Aws::SSOOIDC::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::SSOOIDC::Types::InvalidRequestRegionException] + # @return [InvalidRequestRegionException] a new instance of InvalidRequestRegionException + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#236 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#251 + def endpoint; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#241 + def error; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#246 + def error_description; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#256 + def region; end +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#261 +class Aws::SSOOIDC::Errors::InvalidScopeException < ::Aws::SSOOIDC::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::SSOOIDC::Types::InvalidScopeException] + # @return [InvalidScopeException] a new instance of InvalidScopeException + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#266 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#271 + def error; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#276 + def error_description; end +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#0 +class Aws::SSOOIDC::Errors::ServiceError < ::Aws::Errors::ServiceError; end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#281 +class Aws::SSOOIDC::Errors::SlowDownException < ::Aws::SSOOIDC::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::SSOOIDC::Types::SlowDownException] + # @return [SlowDownException] a new instance of SlowDownException + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#286 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#291 + def error; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#296 + def error_description; end +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#301 +class Aws::SSOOIDC::Errors::UnauthorizedClientException < ::Aws::SSOOIDC::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::SSOOIDC::Types::UnauthorizedClientException] + # @return [UnauthorizedClientException] a new instance of UnauthorizedClientException + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#306 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#311 + def error; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#316 + def error_description; end +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#321 +class Aws::SSOOIDC::Errors::UnsupportedGrantTypeException < ::Aws::SSOOIDC::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::SSOOIDC::Types::UnsupportedGrantTypeException] + # @return [UnsupportedGrantTypeException] a new instance of UnsupportedGrantTypeException + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#326 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#331 + def error; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/errors.rb#336 + def error_description; end +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc.rb#59 +Aws::SSOOIDC::GEM_VERSION = T.let(T.unsafe(nil), String) + +# source://aws-sdk-core//lib/aws-sdk-ssooidc.rb#49 +module Aws::SSOOIDC::Plugins; end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/plugins/endpoints.rb#13 +class Aws::SSOOIDC::Plugins::Endpoints < ::Seahorse::Client::Plugin + # source://aws-sdk-core//lib/aws-sdk-ssooidc/plugins/endpoints.rb#85 + def add_handlers(handlers, _config); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/plugins/endpoints.rb#27 +class Aws::SSOOIDC::Plugins::Endpoints::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/plugins/endpoints.rb#28 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/plugins/endpoints.rb#60 + def apply_endpoint_headers(context, headers); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/plugins/endpoints.rb#71 + def parameters_for_operation(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/plugins/endpoints.rb#48 + def with_metrics(context, &block); end +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/resource.rb#12 +class Aws::SSOOIDC::Resource + # @option options + # @param options [{}] + # @return [Resource] a new instance of Resource + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/resource.rb#16 + def initialize(options = T.unsafe(nil)); end + + # @return [Client] + # + # source://aws-sdk-core//lib/aws-sdk-ssooidc/resource.rb#21 + def client; end +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#11 +module Aws::SSOOIDC::Types; end + +# You do not have sufficient access to perform this action. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/AccessDeniedException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#29 +class Aws::SSOOIDC::Types::AccessDeniedException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#30 +Aws::SSOOIDC::Types::AccessDeniedException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Indicates that a request to authorize a client with an access user +# session token is pending. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/AuthorizationPendingException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#51 +class Aws::SSOOIDC::Types::AuthorizationPendingException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#52 +Aws::SSOOIDC::Types::AuthorizationPendingException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/CreateTokenRequest AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#139 +class Aws::SSOOIDC::Types::CreateTokenRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#140 +Aws::SSOOIDC::Types::CreateTokenRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/CreateTokenResponse AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#193 +class Aws::SSOOIDC::Types::CreateTokenResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#194 +Aws::SSOOIDC::Types::CreateTokenResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/CreateTokenWithIAMRequest AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#309 +class Aws::SSOOIDC::Types::CreateTokenWithIAMRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#310 +Aws::SSOOIDC::Types::CreateTokenWithIAMRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/CreateTokenWithIAMResponse AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#370 +class Aws::SSOOIDC::Types::CreateTokenWithIAMResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#371 +Aws::SSOOIDC::Types::CreateTokenWithIAMResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Indicates that the token issued by the service is expired and is no +# longer valid. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/ExpiredTokenException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#392 +class Aws::SSOOIDC::Types::ExpiredTokenException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#393 +Aws::SSOOIDC::Types::ExpiredTokenException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Indicates that an error from the service occurred while trying to +# process a request. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/InternalServerException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#414 +class Aws::SSOOIDC::Types::InternalServerException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#415 +Aws::SSOOIDC::Types::InternalServerException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Indicates that the `clientId` or `clientSecret` in the request is +# invalid. For example, this can occur when a client sends an incorrect +# `clientId` or an expired `clientSecret`. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/InvalidClientException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#437 +class Aws::SSOOIDC::Types::InvalidClientException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#438 +Aws::SSOOIDC::Types::InvalidClientException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Indicates that the client information sent in the request during +# registration is invalid. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/InvalidClientMetadataException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#459 +class Aws::SSOOIDC::Types::InvalidClientMetadataException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#460 +Aws::SSOOIDC::Types::InvalidClientMetadataException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Indicates that a request contains an invalid grant. This can occur if +# a client makes a CreateToken request with an invalid grant type. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/InvalidGrantException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#481 +class Aws::SSOOIDC::Types::InvalidGrantException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#482 +Aws::SSOOIDC::Types::InvalidGrantException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Indicates that one or more redirect URI in the request is not +# supported for this operation. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/InvalidRedirectUriException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#503 +class Aws::SSOOIDC::Types::InvalidRedirectUriException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#504 +Aws::SSOOIDC::Types::InvalidRedirectUriException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Indicates that something is wrong with the input to the request. For +# example, a required parameter might be missing or out of range. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/InvalidRequestException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#525 +class Aws::SSOOIDC::Types::InvalidRequestException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#526 +Aws::SSOOIDC::Types::InvalidRequestException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Indicates that a token provided as input to the request was issued by +# and is only usable by calling IAM Identity Center endpoints in another +# region. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/InvalidRequestRegionException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#559 +class Aws::SSOOIDC::Types::InvalidRequestRegionException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#560 +Aws::SSOOIDC::Types::InvalidRequestRegionException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Indicates that the scope provided in the request is invalid. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/InvalidScopeException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#580 +class Aws::SSOOIDC::Types::InvalidScopeException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#581 +Aws::SSOOIDC::Types::InvalidScopeException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/RegisterClientRequest AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#635 +class Aws::SSOOIDC::Types::RegisterClientRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#636 +Aws::SSOOIDC::Types::RegisterClientRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/RegisterClientResponse AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#676 +class Aws::SSOOIDC::Types::RegisterClientResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#677 +Aws::SSOOIDC::Types::RegisterClientResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Indicates that the client is making the request too frequently and is +# more than the service can handle. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/SlowDownException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#697 +class Aws::SSOOIDC::Types::SlowDownException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#698 +Aws::SSOOIDC::Types::SlowDownException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/StartDeviceAuthorizationRequest AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#728 +class Aws::SSOOIDC::Types::StartDeviceAuthorizationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#729 +Aws::SSOOIDC::Types::StartDeviceAuthorizationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/StartDeviceAuthorizationResponse AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#772 +class Aws::SSOOIDC::Types::StartDeviceAuthorizationResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#773 +Aws::SSOOIDC::Types::StartDeviceAuthorizationResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Indicates that the client is not currently authorized to make the +# request. This can happen when a `clientId` is not issued for a public +# client. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/UnauthorizedClientException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#795 +class Aws::SSOOIDC::Types::UnauthorizedClientException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#796 +Aws::SSOOIDC::Types::UnauthorizedClientException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Indicates that the grant type in the request is not supported by the +# service. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/UnsupportedGrantTypeException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#817 +class Aws::SSOOIDC::Types::UnsupportedGrantTypeException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-ssooidc/types.rb#818 +Aws::SSOOIDC::Types::UnsupportedGrantTypeException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# source://aws-sdk-core//lib/aws-sdk-core/sso_token_provider.rb#4 +class Aws::SSOTokenProvider + include ::Aws::TokenProvider + include ::Aws::RefreshingToken + + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [SSOTokenProvider] a new instance of SSOTokenProvider + # + # source://aws-sdk-core//lib/aws-sdk-core/sso_token_provider.rb#30 + def initialize(options = T.unsafe(nil)); end + + # @return [SSOOIDC::Client] + # + # source://aws-sdk-core//lib/aws-sdk-core/sso_token_provider.rb#49 + def client; end + + private + + # return true if all required fields are present + # return false if registrationExpiresAt exists and is later than now + # + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/sso_token_provider.rb#123 + def can_refresh_token?(token_json); end + + # source://aws-sdk-core//lib/aws-sdk-core/sso_token_provider.rb#95 + def read_cached_token; end + + # source://aws-sdk-core//lib/aws-sdk-core/sso_token_provider.rb#53 + def refresh; end + + # source://aws-sdk-core//lib/aws-sdk-core/sso_token_provider.rb#113 + def sso_cache_file; end + + # source://aws-sdk-core//lib/aws-sdk-core/sso_token_provider.rb#107 + def update_token_cache(token_json); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/sso_token_provider.rb#13 +Aws::SSOTokenProvider::SSO_LOGIN_GUIDANCE = T.let(T.unsafe(nil), String) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/sso_token_provider.rb#10 +Aws::SSOTokenProvider::SSO_REQUIRED_OPTS = T.let(T.unsafe(nil), Array) + +# This module provides support for AWS Security Token Service. This module is available in the +# `aws-sdk-core` gem. +# +# # Client +# +# The {Client} class provides one method for each API operation. Operation +# methods each accept a hash of request parameters and return a response +# structure. +# +# sts = Aws::STS::Client.new +# resp = sts.assume_role(params) +# +# See {Client} for more information. +# +# # Errors +# +# Errors returned from AWS Security Token Service are defined in the +# {Errors} module and all extend {Errors::ServiceError}. +# +# begin +# # do stuff +# rescue Aws::STS::Errors::ServiceError +# # rescues all AWS Security Token Service API errors +# end +# +# See {Errors} for more information. +# +# source://aws-sdk-core//lib/aws-sdk-sts.rb#46 +module Aws::STS; end + +# An API client for STS. To construct a client, you need to configure a `:region` and `:credentials`. +# +# client = Aws::STS::Client.new( +# region: region_name, +# credentials: credentials, +# # ... +# ) +# +# For details on configuring region and credentials see +# the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html). +# +# See {#initialize} for a full list of supported configuration options. +# +# source://aws-sdk-core//lib/aws-sdk-sts/client.rb#53 +class Aws::STS::Client < ::Seahorse::Client::Base + include ::Aws::ClientStubs + + # @overload initialize + # @return [Client] a new instance of Client + # + # source://aws-sdk-core//lib/aws-sdk-sts/client.rb#451 + def initialize(*args); end + + # Returns a set of temporary security credentials that you can use to + # access Amazon Web Services resources. These temporary credentials + # consist of an access key ID, a secret access key, and a security + # token. Typically, you use `AssumeRole` within your account or for + # cross-account access. For a comparison of `AssumeRole` with other API + # operations that produce temporary credentials, see [Requesting + # Temporary Security Credentials][1] and [Comparing the Amazon Web + # Services STS API operations][2] in the *IAM User Guide*. + # + # **Permissions** + # + # The temporary security credentials created by `AssumeRole` can be used + # to make API calls to any Amazon Web Services service with the + # following exception: You cannot call the Amazon Web Services STS + # `GetFederationToken` or `GetSessionToken` API operations. + # + # (Optional) You can pass inline or managed [session policies][3] to + # this operation. You can pass a single JSON policy document to use as + # an inline session policy. You can also specify up to 10 managed policy + # Amazon Resource Names (ARNs) to use as managed session policies. The + # plaintext that you use for both inline and managed session policies + # can't exceed 2,048 characters. Passing policies to this operation + # returns new temporary credentials. The resulting session's + # permissions are the intersection of the role's identity-based policy + # and the session policies. You can use the role's temporary + # credentials in subsequent Amazon Web Services API calls to access + # resources in the account that owns the role. You cannot use session + # policies to grant more permissions than those allowed by the + # identity-based policy of the role that is being assumed. For more + # information, see [Session Policies][3] in the *IAM User Guide*. + # + # When you create a role, you create two policies: a role trust policy + # that specifies *who* can assume the role, and a permissions policy + # that specifies *what* can be done with the role. You specify the + # trusted principal that is allowed to assume the role in the role trust + # policy. + # + # To assume a role from a different account, your Amazon Web Services + # account must be trusted by the role. The trust relationship is defined + # in the role's trust policy when the role is created. That trust + # policy states which accounts are allowed to delegate that access to + # users in the account. + # + # A user who wants to access a role in a different account must also + # have permissions that are delegated from the account administrator. + # The administrator must attach a policy that allows the user to call + # `AssumeRole` for the ARN of the role in the other account. + # + # To allow a user to assume a role in the same account, you can do + # either of the following: + # + # * Attach a policy to the user that allows the user to call + # `AssumeRole` (as long as the role's trust policy trusts the + # account). + # + # * Add the user as a principal directly in the role's trust policy. + # + # You can do either because the role’s trust policy acts as an IAM + # resource-based policy. When a resource-based policy grants access to a + # principal in the same account, no additional identity-based policy is + # required. For more information about trust policies and resource-based + # policies, see [IAM Policies][4] in the *IAM User Guide*. + # + # **Tags** + # + # (Optional) You can pass tag key-value pairs to your session. These + # tags are called session tags. For more information about session tags, + # see [Passing Session Tags in STS][5] in the *IAM User Guide*. + # + # An administrator must grant you the permissions necessary to pass + # session tags. The administrator can also create granular permissions + # to allow you to pass only specific session tags. For more information, + # see [Tutorial: Using Tags for Attribute-Based Access Control][6] in + # the *IAM User Guide*. + # + # You can set the session tags as transitive. Transitive tags persist + # during role chaining. For more information, see [Chaining Roles with + # Session Tags][7] in the *IAM User Guide*. + # + # **Using MFA with AssumeRole** + # + # (Optional) You can include multi-factor authentication (MFA) + # information when you call `AssumeRole`. This is useful for + # cross-account scenarios to ensure that the user that assumes the role + # has been authenticated with an Amazon Web Services MFA device. In that + # scenario, the trust policy of the role being assumed includes a + # condition that tests for MFA authentication. If the caller does not + # include valid MFA information, the request to assume the role is + # denied. The condition in a trust policy that tests for MFA + # authentication might look like the following example. + # + # `"Condition": \{"Bool": \{"aws:MultiFactorAuthPresent": true\}\}` + # + # For more information, see [Configuring MFA-Protected API Access][8] in + # the *IAM User Guide* guide. + # + # To use MFA with `AssumeRole`, you pass values for the `SerialNumber` + # and `TokenCode` parameters. The `SerialNumber` value identifies the + # user's hardware or virtual MFA device. The `TokenCode` is the + # time-based one-time password (TOTP) that the MFA device produces. + # + # + # + # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html + # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison + # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session + # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html + # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html + # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html + # [7]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining + # [8]: https://docs.aws.amazon.com/IAM/latest/UserGuide/MFAProtectedAPI.html + # + # @example Example: To assume a role + # + # resp = client.assume_role({ + # external_id: "123ABC", + # policy: "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Stmt1\",\"Effect\":\"Allow\",\"Action\":\"s3:ListAllMyBuckets\",\"Resource\":\"*\"}]}", + # role_arn: "arn:aws:iam::123456789012:role/demo", + # role_session_name: "testAssumeRoleSession", + # tags: [ + # { + # key: "Project", + # value: "Unicorn", + # }, + # { + # key: "Team", + # value: "Automation", + # }, + # { + # key: "Cost-Center", + # value: "12345", + # }, + # ], + # transitive_tag_keys: [ + # "Project", + # "Cost-Center", + # ], + # }) + # + # resp.to_h outputs the following: + # { + # assumed_role_user: { + # arn: "arn:aws:sts::123456789012:assumed-role/demo/Bob", + # assumed_role_id: "ARO123EXAMPLE123:Bob", + # }, + # credentials: { + # access_key_id: "AKIAIOSFODNN7EXAMPLE", + # expiration: Time.parse("2011-07-15T23:28:33.359Z"), + # secret_access_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY", + # session_token: "AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQWLWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGdQrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA==", + # }, + # packed_policy_size: 8, + # } + # @example Request syntax with placeholder values + # + # resp = client.assume_role({ + # role_arn: "arnType", # required + # role_session_name: "roleSessionNameType", # required + # policy_arns: [ + # { + # arn: "arnType", + # }, + # ], + # policy: "unrestrictedSessionPolicyDocumentType", + # duration_seconds: 1, + # tags: [ + # { + # key: "tagKeyType", # required + # value: "tagValueType", # required + # }, + # ], + # transitive_tag_keys: ["tagKeyType"], + # external_id: "externalIdType", + # serial_number: "serialNumberType", + # token_code: "tokenCodeType", + # source_identity: "sourceIdentityType", + # provided_contexts: [ + # { + # provider_arn: "arnType", + # context_assertion: "contextAssertionType", + # }, + # ], + # }) + # @example Response structure + # + # resp.credentials.access_key_id #=> String + # resp.credentials.secret_access_key #=> String + # resp.credentials.session_token #=> String + # resp.credentials.expiration #=> Time + # resp.assumed_role_user.assumed_role_id #=> String + # resp.assumed_role_user.arn #=> String + # resp.packed_policy_size #=> Integer + # resp.source_identity #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload assume_role + # @param params [Hash] ({}) + # @return [Types::AssumeRoleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::AssumeRoleResponse#credentials #credentials} => Types::Credentials + # * {Types::AssumeRoleResponse#assumed_role_user #assumed_role_user} => Types::AssumedRoleUser + # * {Types::AssumeRoleResponse#packed_policy_size #packed_policy_size} => Integer + # * {Types::AssumeRoleResponse#source_identity #source_identity} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRole AWS API Documentation + # + # source://aws-sdk-core//lib/aws-sdk-sts/client.rb#935 + def assume_role(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns a set of temporary security credentials for users who have + # been authenticated via a SAML authentication response. This operation + # provides a mechanism for tying an enterprise identity store or + # directory to role-based Amazon Web Services access without + # user-specific credentials or configuration. For a comparison of + # `AssumeRoleWithSAML` with the other API operations that produce + # temporary credentials, see [Requesting Temporary Security + # Credentials][1] and [Comparing the Amazon Web Services STS API + # operations][2] in the *IAM User Guide*. + # + # The temporary security credentials returned by this operation consist + # of an access key ID, a secret access key, and a security token. + # Applications can use these temporary security credentials to sign + # calls to Amazon Web Services services. + # + # **Session Duration** + # + # By default, the temporary security credentials created by + # `AssumeRoleWithSAML` last for one hour. However, you can use the + # optional `DurationSeconds` parameter to specify the duration of your + # session. Your role session lasts for the duration that you specify, or + # until the time specified in the SAML authentication response's + # `SessionNotOnOrAfter` value, whichever is shorter. You can provide a + # `DurationSeconds` value from 900 seconds (15 minutes) up to the + # maximum session duration setting for the role. This setting can have a + # value from 1 hour to 12 hours. To learn how to view the maximum value + # for your role, see [View the Maximum Session Duration Setting for a + # Role][3] in the *IAM User Guide*. The maximum session duration limit + # applies when you use the `AssumeRole*` API operations or the + # `assume-role*` CLI commands. However the limit does not apply when you + # use those operations to create a console URL. For more information, + # see [Using IAM Roles][4] in the *IAM User Guide*. + # + # [Role chaining][5] limits your CLI or Amazon Web Services API role + # session to a maximum of one hour. When you use the `AssumeRole` API + # operation to assume a role, you can specify the duration of your role + # session with the `DurationSeconds` parameter. You can specify a + # parameter value of up to 43200 seconds (12 hours), depending on the + # maximum session duration setting for your role. However, if you assume + # a role using role chaining and provide a `DurationSeconds` parameter + # value greater than one hour, the operation fails. + # + # + # + # **Permissions** + # + # The temporary security credentials created by `AssumeRoleWithSAML` can + # be used to make API calls to any Amazon Web Services service with the + # following exception: you cannot call the STS `GetFederationToken` or + # `GetSessionToken` API operations. + # + # (Optional) You can pass inline or managed [session policies][6] to + # this operation. You can pass a single JSON policy document to use as + # an inline session policy. You can also specify up to 10 managed policy + # Amazon Resource Names (ARNs) to use as managed session policies. The + # plaintext that you use for both inline and managed session policies + # can't exceed 2,048 characters. Passing policies to this operation + # returns new temporary credentials. The resulting session's + # permissions are the intersection of the role's identity-based policy + # and the session policies. You can use the role's temporary + # credentials in subsequent Amazon Web Services API calls to access + # resources in the account that owns the role. You cannot use session + # policies to grant more permissions than those allowed by the + # identity-based policy of the role that is being assumed. For more + # information, see [Session Policies][6] in the *IAM User Guide*. + # + # Calling `AssumeRoleWithSAML` does not require the use of Amazon Web + # Services security credentials. The identity of the caller is validated + # by using keys in the metadata document that is uploaded for the SAML + # provider entity for your identity provider. + # + # Calling `AssumeRoleWithSAML` can result in an entry in your CloudTrail + # logs. The entry includes the value in the `NameID` element of the SAML + # assertion. We recommend that you use a `NameIDType` that is not + # associated with any personally identifiable information (PII). For + # example, you could instead use the persistent identifier + # (`urn:oasis:names:tc:SAML:2.0:nameid-format:persistent`). + # + # **Tags** + # + # (Optional) You can configure your IdP to pass attributes into your + # SAML assertion as session tags. Each session tag consists of a key + # name and an associated value. For more information about session tags, + # see [Passing Session Tags in STS][7] in the *IAM User Guide*. + # + # You can pass up to 50 session tags. The plaintext session tag keys + # can’t exceed 128 characters and the values can’t exceed 256 + # characters. For these and additional limits, see [IAM and STS + # Character Limits][8] in the *IAM User Guide*. + # + # An Amazon Web Services conversion compresses the passed inline session + # policy, managed policy ARNs, and session tags into a packed binary + # format that has a separate limit. Your request can fail for this limit + # even if your plaintext meets the other requirements. The + # `PackedPolicySize` response element indicates by percentage how close + # the policies and tags for your request are to the upper size limit. + # + # + # + # You can pass a session tag with the same key as a tag that is attached + # to the role. When you do, session tags override the role's tags with + # the same key. + # + # An administrator must grant you the permissions necessary to pass + # session tags. The administrator can also create granular permissions + # to allow you to pass only specific session tags. For more information, + # see [Tutorial: Using Tags for Attribute-Based Access Control][9] in + # the *IAM User Guide*. + # + # You can set the session tags as transitive. Transitive tags persist + # during role chaining. For more information, see [Chaining Roles with + # Session Tags][10] in the *IAM User Guide*. + # + # **SAML Configuration** + # + # Before your application can call `AssumeRoleWithSAML`, you must + # configure your SAML identity provider (IdP) to issue the claims + # required by Amazon Web Services. Additionally, you must use Identity + # and Access Management (IAM) to create a SAML provider entity in your + # Amazon Web Services account that represents your identity provider. + # You must also create an IAM role that specifies this SAML provider in + # its trust policy. + # + # For more information, see the following resources: + # + # * [About SAML 2.0-based Federation][11] in the *IAM User Guide*. + # + # * [Creating SAML Identity Providers][12] in the *IAM User Guide*. + # + # * [Configuring a Relying Party and Claims][13] in the *IAM User + # Guide*. + # + # * [Creating a Role for SAML 2.0 Federation][14] in the *IAM User + # Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html + # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison + # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session + # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html + # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-role-chaining + # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session + # [7]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html + # [8]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length + # [9]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html + # [10]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining + # [11]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html + # [12]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html + # [13]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html + # [14]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html + # + # @example Example: To assume a role using a SAML assertion + # + # resp = client.assume_role_with_saml({ + # duration_seconds: 3600, + # principal_arn: "arn:aws:iam::123456789012:saml-provider/SAML-test", + # role_arn: "arn:aws:iam::123456789012:role/TestSaml", + # saml_assertion: "VERYLONGENCODEDASSERTIONEXAMPLExzYW1sOkF1ZGllbmNlPmJsYW5rPC9zYW1sOkF1ZGllbmNlPjwvc2FtbDpBdWRpZW5jZVJlc3RyaWN0aW9uPjwvc2FtbDpDb25kaXRpb25zPjxzYW1sOlN1YmplY3Q+PHNhbWw6TmFtZUlEIEZvcm1hdD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOm5hbWVpZC1mb3JtYXQ6dHJhbnNpZW50Ij5TYW1sRXhhbXBsZTwvc2FtbDpOYW1lSUQ+PHNhbWw6U3ViamVjdENvbmZpcm1hdGlvbiBNZXRob2Q9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpjbTpiZWFyZXIiPjxzYW1sOlN1YmplY3RDb25maXJtYXRpb25EYXRhIE5vdE9uT3JBZnRlcj0iMjAxOS0xMS0wMVQyMDoyNTowNS4xNDVaIiBSZWNpcGllbnQ9Imh0dHBzOi8vc2lnbmluLmF3cy5hbWF6b24uY29tL3NhbWwiLz48L3NhbWw6U3ViamVjdENvbmZpcm1hdGlvbj48L3NhbWw6U3ViamVjdD48c2FtbDpBdXRoblN0YXRlbWVudCBBdXRoPD94bWwgdmpSZXNwb25zZT4=", + # }) + # + # resp.to_h outputs the following: + # { + # assumed_role_user: { + # arn: "arn:aws:sts::123456789012:assumed-role/TestSaml", + # assumed_role_id: "ARO456EXAMPLE789:TestSaml", + # }, + # audience: "https://signin.aws.amazon.com/saml", + # credentials: { + # access_key_id: "ASIAV3ZUEFP6EXAMPLE", + # expiration: Time.parse("2019-11-01T20:26:47Z"), + # secret_access_key: "8P+SQvWIuLnKhh8d++jpw0nNmQRBZvNEXAMPLEKEY", + # session_token: "IQoJb3JpZ2luX2VjEOz////////////////////wEXAMPLEtMSJHMEUCIDoKK3JH9uGQE1z0sINr5M4jk+Na8KHDcCYRVjJCZEvOAiEA3OvJGtw1EcViOleS2vhs8VdCKFJQWPQrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA==", + # }, + # issuer: "https://integ.example.com/idp/shibboleth", + # name_qualifier: "SbdGOnUkh1i4+EXAMPLExL/jEvs=", + # packed_policy_size: 6, + # subject: "SamlExample", + # subject_type: "transient", + # } + # @example Request syntax with placeholder values + # + # resp = client.assume_role_with_saml({ + # role_arn: "arnType", # required + # principal_arn: "arnType", # required + # saml_assertion: "SAMLAssertionType", # required + # policy_arns: [ + # { + # arn: "arnType", + # }, + # ], + # policy: "sessionPolicyDocumentType", + # duration_seconds: 1, + # }) + # @example Response structure + # + # resp.credentials.access_key_id #=> String + # resp.credentials.secret_access_key #=> String + # resp.credentials.session_token #=> String + # resp.credentials.expiration #=> Time + # resp.assumed_role_user.assumed_role_id #=> String + # resp.assumed_role_user.arn #=> String + # resp.packed_policy_size #=> Integer + # resp.subject #=> String + # resp.subject_type #=> String + # resp.issuer #=> String + # resp.audience #=> String + # resp.name_qualifier #=> String + # resp.source_identity #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload assume_role_with_saml + # @param params [Hash] ({}) + # @return [Types::AssumeRoleWithSAMLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::AssumeRoleWithSAMLResponse#credentials #credentials} => Types::Credentials + # * {Types::AssumeRoleWithSAMLResponse#assumed_role_user #assumed_role_user} => Types::AssumedRoleUser + # * {Types::AssumeRoleWithSAMLResponse#packed_policy_size #packed_policy_size} => Integer + # * {Types::AssumeRoleWithSAMLResponse#subject #subject} => String + # * {Types::AssumeRoleWithSAMLResponse#subject_type #subject_type} => String + # * {Types::AssumeRoleWithSAMLResponse#issuer #issuer} => String + # * {Types::AssumeRoleWithSAMLResponse#audience #audience} => String + # * {Types::AssumeRoleWithSAMLResponse#name_qualifier #name_qualifier} => String + # * {Types::AssumeRoleWithSAMLResponse#source_identity #source_identity} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAML AWS API Documentation + # + # source://aws-sdk-core//lib/aws-sdk-sts/client.rb#1287 + def assume_role_with_saml(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns a set of temporary security credentials for users who have + # been authenticated in a mobile or web application with a web identity + # provider. Example providers include the OAuth 2.0 providers Login with + # Amazon and Facebook, or any OpenID Connect-compatible identity + # provider such as Google or [Amazon Cognito federated identities][1]. + # + # For mobile applications, we recommend that you use Amazon Cognito. You + # can use Amazon Cognito with the [Amazon Web Services SDK for iOS + # Developer Guide][2] and the [Amazon Web Services SDK for Android + # Developer Guide][3] to uniquely identify a user. You can also supply + # the user with a consistent identity throughout the lifetime of an + # application. + # + # To learn more about Amazon Cognito, see [Amazon Cognito identity + # pools][1] in *Amazon Cognito Developer Guide*. + # + # + # + # Calling `AssumeRoleWithWebIdentity` does not require the use of Amazon + # Web Services security credentials. Therefore, you can distribute an + # application (for example, on mobile devices) that requests temporary + # security credentials without including long-term Amazon Web Services + # credentials in the application. You also don't need to deploy + # server-based proxy services that use long-term Amazon Web Services + # credentials. Instead, the identity of the caller is validated by using + # a token from the web identity provider. For a comparison of + # `AssumeRoleWithWebIdentity` with the other API operations that produce + # temporary credentials, see [Requesting Temporary Security + # Credentials][4] and [Comparing the Amazon Web Services STS API + # operations][5] in the *IAM User Guide*. + # + # The temporary security credentials returned by this API consist of an + # access key ID, a secret access key, and a security token. Applications + # can use these temporary security credentials to sign calls to Amazon + # Web Services service API operations. + # + # **Session Duration** + # + # By default, the temporary security credentials created by + # `AssumeRoleWithWebIdentity` last for one hour. However, you can use + # the optional `DurationSeconds` parameter to specify the duration of + # your session. You can provide a value from 900 seconds (15 minutes) up + # to the maximum session duration setting for the role. This setting can + # have a value from 1 hour to 12 hours. To learn how to view the maximum + # value for your role, see [View the Maximum Session Duration Setting + # for a Role][6] in the *IAM User Guide*. The maximum session duration + # limit applies when you use the `AssumeRole*` API operations or the + # `assume-role*` CLI commands. However the limit does not apply when you + # use those operations to create a console URL. For more information, + # see [Using IAM Roles][7] in the *IAM User Guide*. + # + # **Permissions** + # + # The temporary security credentials created by + # `AssumeRoleWithWebIdentity` can be used to make API calls to any + # Amazon Web Services service with the following exception: you cannot + # call the STS `GetFederationToken` or `GetSessionToken` API operations. + # + # (Optional) You can pass inline or managed [session policies][8] to + # this operation. You can pass a single JSON policy document to use as + # an inline session policy. You can also specify up to 10 managed policy + # Amazon Resource Names (ARNs) to use as managed session policies. The + # plaintext that you use for both inline and managed session policies + # can't exceed 2,048 characters. Passing policies to this operation + # returns new temporary credentials. The resulting session's + # permissions are the intersection of the role's identity-based policy + # and the session policies. You can use the role's temporary + # credentials in subsequent Amazon Web Services API calls to access + # resources in the account that owns the role. You cannot use session + # policies to grant more permissions than those allowed by the + # identity-based policy of the role that is being assumed. For more + # information, see [Session Policies][8] in the *IAM User Guide*. + # + # **Tags** + # + # (Optional) You can configure your IdP to pass attributes into your web + # identity token as session tags. Each session tag consists of a key + # name and an associated value. For more information about session tags, + # see [Passing Session Tags in STS][9] in the *IAM User Guide*. + # + # You can pass up to 50 session tags. The plaintext session tag keys + # can’t exceed 128 characters and the values can’t exceed 256 + # characters. For these and additional limits, see [IAM and STS + # Character Limits][10] in the *IAM User Guide*. + # + # An Amazon Web Services conversion compresses the passed inline session + # policy, managed policy ARNs, and session tags into a packed binary + # format that has a separate limit. Your request can fail for this limit + # even if your plaintext meets the other requirements. The + # `PackedPolicySize` response element indicates by percentage how close + # the policies and tags for your request are to the upper size limit. + # + # + # + # You can pass a session tag with the same key as a tag that is attached + # to the role. When you do, the session tag overrides the role tag with + # the same key. + # + # An administrator must grant you the permissions necessary to pass + # session tags. The administrator can also create granular permissions + # to allow you to pass only specific session tags. For more information, + # see [Tutorial: Using Tags for Attribute-Based Access Control][11] in + # the *IAM User Guide*. + # + # You can set the session tags as transitive. Transitive tags persist + # during role chaining. For more information, see [Chaining Roles with + # Session Tags][12] in the *IAM User Guide*. + # + # **Identities** + # + # Before your application can call `AssumeRoleWithWebIdentity`, you must + # have an identity token from a supported identity provider and create a + # role that the application can assume. The role that your application + # assumes must trust the identity provider that is associated with the + # identity token. In other words, the identity provider must be + # specified in the role's trust policy. + # + # Calling `AssumeRoleWithWebIdentity` can result in an entry in your + # CloudTrail logs. The entry includes the [Subject][13] of the provided + # web identity token. We recommend that you avoid using any personally + # identifiable information (PII) in this field. For example, you could + # instead use a GUID or a pairwise identifier, as [suggested in the OIDC + # specification][14]. + # + # For more information about how to use web identity federation and the + # `AssumeRoleWithWebIdentity` API, see the following resources: + # + # * [Using Web Identity Federation API Operations for Mobile Apps][15] + # and [Federation Through a Web-based Identity Provider][16]. + # + # * [ Web Identity Federation Playground][17]. Walk through the process + # of authenticating through Login with Amazon, Facebook, or Google, + # getting temporary security credentials, and then using those + # credentials to make a request to Amazon Web Services. + # + # * [Amazon Web Services SDK for iOS Developer Guide][2] and [Amazon Web + # Services SDK for Android Developer Guide][3]. These toolkits contain + # sample apps that show how to invoke the identity providers. The + # toolkits then show how to use the information from these providers + # to get and use temporary security credentials. + # + # * [Web Identity Federation with Mobile Applications][18]. This article + # discusses web identity federation and shows an example of how to use + # web identity federation to get access to content in Amazon S3. + # + # + # + # [1]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html + # [2]: http://aws.amazon.com/sdkforios/ + # [3]: http://aws.amazon.com/sdkforandroid/ + # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html + # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison + # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session + # [7]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html + # [8]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session + # [9]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html + # [10]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length + # [11]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html + # [12]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining + # [13]: http://openid.net/specs/openid-connect-core-1_0.html#Claims + # [14]: http://openid.net/specs/openid-connect-core-1_0.html#SubjectIDTypes + # [15]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html + # [16]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity + # [17]: https://aws.amazon.com/blogs/aws/the-aws-web-identity-federation-playground/ + # [18]: http://aws.amazon.com/articles/web-identity-federation-with-mobile-applications + # + # @example Example: To assume a role as an OpenID Connect-federated user + # + # resp = client.assume_role_with_web_identity({ + # duration_seconds: 3600, + # policy: "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Stmt1\",\"Effect\":\"Allow\",\"Action\":\"s3:ListAllMyBuckets\",\"Resource\":\"*\"}]}", + # provider_id: "www.amazon.com", + # role_arn: "arn:aws:iam::123456789012:role/FederatedWebIdentityRole", + # role_session_name: "app1", + # web_identity_token: "Atza%7CIQEBLjAsAhRFiXuWpUXuRvQ9PZL3GMFcYevydwIUFAHZwXZXXXXXXXXJnrulxKDHwy87oGKPznh0D6bEQZTSCzyoCtL_8S07pLpr0zMbn6w1lfVZKNTBdDansFBmtGnIsIapjI6xKR02Yc_2bQ8LZbUXSGm6Ry6_BG7PrtLZtj_dfCTj92xNGed-CrKqjG7nPBjNIL016GGvuS5gSvPRUxWES3VYfm1wl7WTI7jn-Pcb6M-buCgHhFOzTQxod27L9CqnOLio7N3gZAGpsp6n1-AJBOCJckcyXe2c6uD0srOJeZlKUm2eTDVMf8IehDVI0r1QOnTV6KzzAI3OY87Vd_cVMQ", + # }) + # + # resp.to_h outputs the following: + # { + # assumed_role_user: { + # arn: "arn:aws:sts::123456789012:assumed-role/FederatedWebIdentityRole/app1", + # assumed_role_id: "AROACLKWSDQRAOEXAMPLE:app1", + # }, + # audience: "client.5498841531868486423.1548@apps.example.com", + # credentials: { + # access_key_id: "AKIAIOSFODNN7EXAMPLE", + # expiration: Time.parse("2014-10-24T23:00:23Z"), + # secret_access_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY", + # session_token: "AQoDYXdzEE0a8ANXXXXXXXXNO1ewxE5TijQyp+IEXAMPLE", + # }, + # packed_policy_size: 123, + # provider: "www.amazon.com", + # subject_from_web_identity_token: "amzn1.account.AF6RHO7KZU5XRVQJGXK6HEXAMPLE", + # } + # @example Request syntax with placeholder values + # + # resp = client.assume_role_with_web_identity({ + # role_arn: "arnType", # required + # role_session_name: "roleSessionNameType", # required + # web_identity_token: "clientTokenType", # required + # provider_id: "urlType", + # policy_arns: [ + # { + # arn: "arnType", + # }, + # ], + # policy: "sessionPolicyDocumentType", + # duration_seconds: 1, + # }) + # @example Response structure + # + # resp.credentials.access_key_id #=> String + # resp.credentials.secret_access_key #=> String + # resp.credentials.session_token #=> String + # resp.credentials.expiration #=> Time + # resp.subject_from_web_identity_token #=> String + # resp.assumed_role_user.assumed_role_id #=> String + # resp.assumed_role_user.arn #=> String + # resp.packed_policy_size #=> Integer + # resp.provider #=> String + # resp.audience #=> String + # resp.source_identity #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload assume_role_with_web_identity + # @param params [Hash] ({}) + # @return [Types::AssumeRoleWithWebIdentityResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::AssumeRoleWithWebIdentityResponse#credentials #credentials} => Types::Credentials + # * {Types::AssumeRoleWithWebIdentityResponse#subject_from_web_identity_token #subject_from_web_identity_token} => String + # * {Types::AssumeRoleWithWebIdentityResponse#assumed_role_user #assumed_role_user} => Types::AssumedRoleUser + # * {Types::AssumeRoleWithWebIdentityResponse#packed_policy_size #packed_policy_size} => Integer + # * {Types::AssumeRoleWithWebIdentityResponse#provider #provider} => String + # * {Types::AssumeRoleWithWebIdentityResponse#audience #audience} => String + # * {Types::AssumeRoleWithWebIdentityResponse#source_identity #source_identity} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentity AWS API Documentation + # + # source://aws-sdk-core//lib/aws-sdk-sts/client.rb#1665 + def assume_role_with_web_identity(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # @api private + # @param params [{}] + # + # source://aws-sdk-core//lib/aws-sdk-sts/client.rb#2405 + def build_request(operation_name, params = T.unsafe(nil)); end + + # Decodes additional information about the authorization status of a + # request from an encoded message returned in response to an Amazon Web + # Services request. + # + # For example, if a user is not authorized to perform an operation that + # he or she has requested, the request returns a + # `Client.UnauthorizedOperation` response (an HTTP 403 response). Some + # Amazon Web Services operations additionally return an encoded message + # that can provide details about this authorization failure. + # + # Only certain Amazon Web Services operations return an encoded + # authorization message. The documentation for an individual operation + # indicates whether that operation returns an encoded message in + # addition to returning an HTTP code. + # + # + # + # The message is encoded because the details of the authorization status + # can contain privileged information that the user who requested the + # operation should not see. To decode an authorization status message, a + # user must be granted permissions through an IAM [policy][1] to request + # the `DecodeAuthorizationMessage` (`sts:DecodeAuthorizationMessage`) + # action. + # + # The decoded message includes the following type of information: + # + # * Whether the request was denied due to an explicit deny or due to the + # absence of an explicit allow. For more information, see [Determining + # Whether a Request is Allowed or Denied][2] in the *IAM User Guide*. + # + # * The principal who made the request. + # + # * The requested action. + # + # * The requested resource. + # + # * The values of condition keys in the context of the user's request. + # + # + # + # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html + # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow + # + # @example Example: To decode information about an authorization status of a request + # + # resp = client.decode_authorization_message({ + # encoded_message: "", + # }) + # + # resp.to_h outputs the following: + # { + # decoded_message: "{\"allowed\": \"false\",\"explicitDeny\": \"false\",\"matchedStatements\": \"\",\"failures\": \"\",\"context\": {\"principal\": {\"id\": \"AIDACKCEVSQ6C2EXAMPLE\",\"name\": \"Bob\",\"arn\": \"arn:aws:iam::123456789012:user/Bob\"},\"action\": \"ec2:StopInstances\",\"resource\": \"arn:aws:ec2:us-east-1:123456789012:instance/i-dd01c9bd\",\"conditions\": [{\"item\": {\"key\": \"ec2:Tenancy\",\"values\": [\"default\"]},{\"item\": {\"key\": \"ec2:ResourceTag/elasticbeanstalk:environment-name\",\"values\": [\"Default-Environment\"]}},(Additional items ...)]}}", + # } + # @example Request syntax with placeholder values + # + # resp = client.decode_authorization_message({ + # encoded_message: "encodedMessageType", # required + # }) + # @example Response structure + # + # resp.decoded_message #=> String + # @option params + # @overload decode_authorization_message + # @param params [Hash] ({}) + # @return [Types::DecodeAuthorizationMessageResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DecodeAuthorizationMessageResponse#decoded_message #decoded_message} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessage AWS API Documentation + # + # source://aws-sdk-core//lib/aws-sdk-sts/client.rb#1746 + def decode_authorization_message(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns the account identifier for the specified access key ID. + # + # Access keys consist of two parts: an access key ID (for example, + # `AKIAIOSFODNN7EXAMPLE`) and a secret access key (for example, + # `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`). For more information + # about access keys, see [Managing Access Keys for IAM Users][1] in the + # *IAM User Guide*. + # + # When you pass an access key ID to this operation, it returns the ID of + # the Amazon Web Services account to which the keys belong. Access key + # IDs beginning with `AKIA` are long-term credentials for an IAM user or + # the Amazon Web Services account root user. Access key IDs beginning + # with `ASIA` are temporary credentials that are created using STS + # operations. If the account in the response belongs to you, you can + # sign in as the root user and review your root user access keys. Then, + # you can pull a [credentials report][2] to learn which IAM user owns + # the keys. To learn who requested the temporary credentials for an + # `ASIA` access key, view the STS events in your [CloudTrail logs][3] in + # the *IAM User Guide*. + # + # This operation does not indicate the state of the access key. The key + # might be active, inactive, or deleted. Active keys might not have + # permissions to perform an operation. Providing a deleted access key + # might return an error that the key doesn't exist. + # + # + # + # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html + # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html + # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html + # + # @example Request syntax with placeholder values + # + # resp = client.get_access_key_info({ + # access_key_id: "accessKeyIdType", # required + # }) + # @example Response structure + # + # resp.account #=> String + # @option params + # @overload get_access_key_info + # @param params [Hash] ({}) + # @return [Types::GetAccessKeyInfoResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetAccessKeyInfoResponse#account #account} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetAccessKeyInfo AWS API Documentation + # + # source://aws-sdk-core//lib/aws-sdk-sts/client.rb#1807 + def get_access_key_info(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns details about the IAM user or role whose credentials are used + # to call the operation. + # + # No permissions are required to perform this operation. If an + # administrator attaches a policy to your identity that explicitly + # denies access to the `sts:GetCallerIdentity` action, you can still + # perform this operation. Permissions are not required because the same + # information is returned when access is denied. To view an example + # response, see [I Am Not Authorized to Perform: + # iam:DeleteVirtualMFADevice][1] in the *IAM User Guide*. + # + # + # + # + # + # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_access-denied-delete-mfa + # + # @example Example: To get details about a calling IAM user + # + # # This example shows a request and response made with the credentials for a user named Alice in the AWS account + # # 123456789012. + # + # resp = client.get_caller_identity({ + # }) + # + # resp.to_h outputs the following: + # { + # account: "123456789012", + # arn: "arn:aws:iam::123456789012:user/Alice", + # user_id: "AKIAI44QH8DHBEXAMPLE", + # } + # @example Example: To get details about a calling user federated with AssumeRole + # + # # This example shows a request and response made with temporary credentials created by AssumeRole. The name of the assumed + # # role is my-role-name, and the RoleSessionName is set to my-role-session-name. + # + # resp = client.get_caller_identity({ + # }) + # + # resp.to_h outputs the following: + # { + # account: "123456789012", + # arn: "arn:aws:sts::123456789012:assumed-role/my-role-name/my-role-session-name", + # user_id: "AKIAI44QH8DHBEXAMPLE:my-role-session-name", + # } + # @example Example: To get details about a calling user federated with GetFederationToken + # + # # This example shows a request and response made with temporary credentials created by using GetFederationToken. The Name + # # parameter is set to my-federated-user-name. + # + # resp = client.get_caller_identity({ + # }) + # + # resp.to_h outputs the following: + # { + # account: "123456789012", + # arn: "arn:aws:sts::123456789012:federated-user/my-federated-user-name", + # user_id: "123456789012:my-federated-user-name", + # } + # @example Response structure + # + # resp.user_id #=> String + # resp.account #=> String + # resp.arn #=> String + # @overload get_caller_identity + # @param params [Hash] ({}) + # @return [Types::GetCallerIdentityResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetCallerIdentityResponse#user_id #user_id} => String + # * {Types::GetCallerIdentityResponse#account #account} => String + # * {Types::GetCallerIdentityResponse#arn #arn} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentity AWS API Documentation + # + # source://aws-sdk-core//lib/aws-sdk-sts/client.rb#1891 + def get_caller_identity(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns a set of temporary security credentials (consisting of an + # access key ID, a secret access key, and a security token) for a user. + # A typical use is in a proxy application that gets temporary security + # credentials on behalf of distributed applications inside a corporate + # network. + # + # You must call the `GetFederationToken` operation using the long-term + # security credentials of an IAM user. As a result, this call is + # appropriate in contexts where those credentials can be safeguarded, + # usually in a server-based application. For a comparison of + # `GetFederationToken` with the other API operations that produce + # temporary credentials, see [Requesting Temporary Security + # Credentials][1] and [Comparing the Amazon Web Services STS API + # operations][2] in the *IAM User Guide*. + # + # Although it is possible to call `GetFederationToken` using the + # security credentials of an Amazon Web Services account root user + # rather than an IAM user that you create for the purpose of a proxy + # application, we do not recommend it. For more information, see + # [Safeguard your root user credentials and don't use them for everyday + # tasks][3] in the *IAM User Guide*. + # + # You can create a mobile-based or browser-based app that can + # authenticate users using a web identity provider like Login with + # Amazon, Facebook, Google, or an OpenID Connect-compatible identity + # provider. In this case, we recommend that you use [Amazon Cognito][4] + # or `AssumeRoleWithWebIdentity`. For more information, see [Federation + # Through a Web-based Identity Provider][5] in the *IAM User Guide*. + # + # + # + # **Session duration** + # + # The temporary credentials are valid for the specified duration, from + # 900 seconds (15 minutes) up to a maximum of 129,600 seconds (36 + # hours). The default session duration is 43,200 seconds (12 hours). + # Temporary credentials obtained by using the root user credentials have + # a maximum duration of 3,600 seconds (1 hour). + # + # **Permissions** + # + # You can use the temporary credentials created by `GetFederationToken` + # in any Amazon Web Services service with the following exceptions: + # + # * You cannot call any IAM operations using the CLI or the Amazon Web + # Services API. This limitation does not apply to console sessions. + # + # * You cannot call any STS operations except `GetCallerIdentity`. + # + # You can use temporary credentials for single sign-on (SSO) to the + # console. + # + # You must pass an inline or managed [session policy][6] to this + # operation. You can pass a single JSON policy document to use as an + # inline session policy. You can also specify up to 10 managed policy + # Amazon Resource Names (ARNs) to use as managed session policies. The + # plaintext that you use for both inline and managed session policies + # can't exceed 2,048 characters. + # + # Though the session policy parameters are optional, if you do not pass + # a policy, then the resulting federated user session has no + # permissions. When you pass session policies, the session permissions + # are the intersection of the IAM user policies and the session policies + # that you pass. This gives you a way to further restrict the + # permissions for a federated user. You cannot use session policies to + # grant more permissions than those that are defined in the permissions + # policy of the IAM user. For more information, see [Session + # Policies][6] in the *IAM User Guide*. For information about using + # `GetFederationToken` to create temporary security credentials, see + # [GetFederationToken—Federation Through a Custom Identity Broker][7]. + # + # You can use the credentials to access a resource that has a + # resource-based policy. If that policy specifically references the + # federated user session in the `Principal` element of the policy, the + # session has the permissions allowed by the policy. These permissions + # are granted in addition to the permissions granted by the session + # policies. + # + # **Tags** + # + # (Optional) You can pass tag key-value pairs to your session. These are + # called session tags. For more information about session tags, see + # [Passing Session Tags in STS][8] in the *IAM User Guide*. + # + # You can create a mobile-based or browser-based app that can + # authenticate users using a web identity provider like Login with + # Amazon, Facebook, Google, or an OpenID Connect-compatible identity + # provider. In this case, we recommend that you use [Amazon Cognito][4] + # or `AssumeRoleWithWebIdentity`. For more information, see [Federation + # Through a Web-based Identity Provider][5] in the *IAM User Guide*. + # + # + # + # An administrator must grant you the permissions necessary to pass + # session tags. The administrator can also create granular permissions + # to allow you to pass only specific session tags. For more information, + # see [Tutorial: Using Tags for Attribute-Based Access Control][9] in + # the *IAM User Guide*. + # + # Tag key–value pairs are not case sensitive, but case is preserved. + # This means that you cannot have separate `Department` and `department` + # tag keys. Assume that the user that you are federating has the + # `Department`=`Marketing` tag and you pass the + # `department`=`engineering` session tag. `Department` and `department` + # are not saved as separate tags, and the session tag passed in the + # request takes precedence over the user tag. + # + # + # + # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html + # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison + # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials + # [4]: http://aws.amazon.com/cognito/ + # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity + # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session + # [7]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getfederationtoken + # [8]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html + # [9]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html + # + # @example Example: To get temporary credentials for a role by using GetFederationToken + # + # resp = client.get_federation_token({ + # duration_seconds: 3600, + # name: "testFedUserSession", + # policy: "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Stmt1\",\"Effect\":\"Allow\",\"Action\":\"s3:ListAllMyBuckets\",\"Resource\":\"*\"}]}", + # tags: [ + # { + # key: "Project", + # value: "Pegasus", + # }, + # { + # key: "Cost-Center", + # value: "98765", + # }, + # ], + # }) + # + # resp.to_h outputs the following: + # { + # credentials: { + # access_key_id: "AKIAIOSFODNN7EXAMPLE", + # expiration: Time.parse("2011-07-15T23:28:33.359Z"), + # secret_access_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY", + # session_token: "AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQWLWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGdQrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA==", + # }, + # federated_user: { + # arn: "arn:aws:sts::123456789012:federated-user/Bob", + # federated_user_id: "123456789012:Bob", + # }, + # packed_policy_size: 8, + # } + # @example Request syntax with placeholder values + # + # resp = client.get_federation_token({ + # name: "userNameType", # required + # policy: "sessionPolicyDocumentType", + # policy_arns: [ + # { + # arn: "arnType", + # }, + # ], + # duration_seconds: 1, + # tags: [ + # { + # key: "tagKeyType", # required + # value: "tagValueType", # required + # }, + # ], + # }) + # @example Response structure + # + # resp.credentials.access_key_id #=> String + # resp.credentials.secret_access_key #=> String + # resp.credentials.session_token #=> String + # resp.credentials.expiration #=> Time + # resp.federated_user.federated_user_id #=> String + # resp.federated_user.arn #=> String + # resp.packed_policy_size #=> Integer + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload get_federation_token + # @param params [Hash] ({}) + # @return [Types::GetFederationTokenResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetFederationTokenResponse#credentials #credentials} => Types::Credentials + # * {Types::GetFederationTokenResponse#federated_user #federated_user} => Types::FederatedUser + # * {Types::GetFederationTokenResponse#packed_policy_size #packed_policy_size} => Integer + # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationToken AWS API Documentation + # + # source://aws-sdk-core//lib/aws-sdk-sts/client.rb#2239 + def get_federation_token(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns a set of temporary credentials for an Amazon Web Services + # account or IAM user. The credentials consist of an access key ID, a + # secret access key, and a security token. Typically, you use + # `GetSessionToken` if you want to use MFA to protect programmatic calls + # to specific Amazon Web Services API operations like Amazon EC2 + # `StopInstances`. + # + # MFA-enabled IAM users must call `GetSessionToken` and submit an MFA + # code that is associated with their MFA device. Using the temporary + # security credentials that the call returns, IAM users can then make + # programmatic calls to API operations that require MFA authentication. + # An incorrect MFA code causes the API to return an access denied error. + # For a comparison of `GetSessionToken` with the other API operations + # that produce temporary credentials, see [Requesting Temporary Security + # Credentials][1] and [Comparing the Amazon Web Services STS API + # operations][2] in the *IAM User Guide*. + # + # No permissions are required for users to perform this operation. The + # purpose of the `sts:GetSessionToken` operation is to authenticate the + # user using MFA. You cannot use policies to control authentication + # operations. For more information, see [Permissions for + # GetSessionToken][3] in the *IAM User Guide*. + # + # + # + # **Session Duration** + # + # The `GetSessionToken` operation must be called by using the long-term + # Amazon Web Services security credentials of an IAM user. Credentials + # that are created by IAM users are valid for the duration that you + # specify. This duration can range from 900 seconds (15 minutes) up to a + # maximum of 129,600 seconds (36 hours), with a default of 43,200 + # seconds (12 hours). Credentials based on account credentials can range + # from 900 seconds (15 minutes) up to 3,600 seconds (1 hour), with a + # default of 1 hour. + # + # **Permissions** + # + # The temporary security credentials created by `GetSessionToken` can be + # used to make API calls to any Amazon Web Services service with the + # following exceptions: + # + # * You cannot call any IAM API operations unless MFA authentication + # information is included in the request. + # + # * You cannot call any STS API *except* `AssumeRole` or + # `GetCallerIdentity`. + # + # The credentials that `GetSessionToken` returns are based on + # permissions associated with the IAM user whose credentials were used + # to call the operation. The temporary credentials have the same + # permissions as the IAM user. + # + # Although it is possible to call `GetSessionToken` using the security + # credentials of an Amazon Web Services account root user rather than an + # IAM user, we do not recommend it. If `GetSessionToken` is called using + # root user credentials, the temporary credentials have root user + # permissions. For more information, see [Safeguard your root user + # credentials and don't use them for everyday tasks][4] in the *IAM + # User Guide* + # + # + # + # For more information about using `GetSessionToken` to create temporary + # credentials, see [Temporary Credentials for Users in Untrusted + # Environments][5] in the *IAM User Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html + # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison + # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_getsessiontoken.html + # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials + # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken + # + # @example Example: To get temporary credentials for an IAM user or an AWS account + # + # resp = client.get_session_token({ + # duration_seconds: 3600, + # serial_number: "YourMFASerialNumber", + # token_code: "123456", + # }) + # + # resp.to_h outputs the following: + # { + # credentials: { + # access_key_id: "AKIAIOSFODNN7EXAMPLE", + # expiration: Time.parse("2011-07-11T19:55:29.611Z"), + # secret_access_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY", + # session_token: "AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4OlgkBN9bkUDNCJiBeb/AXlzBBko7b15fjrBs2+cTQtpZ3CYWFXG8C5zqx37wnOE49mRl/+OtkIKGO7fAE", + # }, + # } + # @example Request syntax with placeholder values + # + # resp = client.get_session_token({ + # duration_seconds: 1, + # serial_number: "serialNumberType", + # token_code: "tokenCodeType", + # }) + # @example Response structure + # + # resp.credentials.access_key_id #=> String + # resp.credentials.secret_access_key #=> String + # resp.credentials.session_token #=> String + # resp.credentials.expiration #=> Time + # @option params + # @option params + # @option params + # @overload get_session_token + # @param params [Hash] ({}) + # @return [Types::GetSessionTokenResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetSessionTokenResponse#credentials #credentials} => Types::Credentials + # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionToken AWS API Documentation + # + # source://aws-sdk-core//lib/aws-sdk-sts/client.rb#2396 + def get_session_token(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # @api private + # @deprecated + # + # source://aws-sdk-core//lib/aws-sdk-sts/client.rb#2425 + def waiter_names; end + + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sts/client.rb#2435 + def errors_module; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sts/client.rb#2432 + def identifier; end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#13 +module Aws::STS::ClientApi + include ::Seahorse::Model +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#249 +Aws::STS::ClientApi::API = T.let(T.unsafe(nil), Seahorse::Model::Api) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#17 +Aws::STS::ClientApi::AssumeRoleRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#18 +Aws::STS::ClientApi::AssumeRoleResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#19 +Aws::STS::ClientApi::AssumeRoleWithSAMLRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#20 +Aws::STS::ClientApi::AssumeRoleWithSAMLResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#21 +Aws::STS::ClientApi::AssumeRoleWithWebIdentityRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#22 +Aws::STS::ClientApi::AssumeRoleWithWebIdentityResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#23 +Aws::STS::ClientApi::AssumedRoleUser = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#24 +Aws::STS::ClientApi::Audience = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#25 +Aws::STS::ClientApi::Credentials = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#26 +Aws::STS::ClientApi::DecodeAuthorizationMessageRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#27 +Aws::STS::ClientApi::DecodeAuthorizationMessageResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#28 +Aws::STS::ClientApi::ExpiredTokenException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#29 +Aws::STS::ClientApi::FederatedUser = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#30 +Aws::STS::ClientApi::GetAccessKeyInfoRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#31 +Aws::STS::ClientApi::GetAccessKeyInfoResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#32 +Aws::STS::ClientApi::GetCallerIdentityRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#33 +Aws::STS::ClientApi::GetCallerIdentityResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#34 +Aws::STS::ClientApi::GetFederationTokenRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#35 +Aws::STS::ClientApi::GetFederationTokenResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#36 +Aws::STS::ClientApi::GetSessionTokenRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#37 +Aws::STS::ClientApi::GetSessionTokenResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#38 +Aws::STS::ClientApi::IDPCommunicationErrorException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#39 +Aws::STS::ClientApi::IDPRejectedClaimException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#40 +Aws::STS::ClientApi::InvalidAuthorizationMessageException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#41 +Aws::STS::ClientApi::InvalidIdentityTokenException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#42 +Aws::STS::ClientApi::Issuer = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#43 +Aws::STS::ClientApi::MalformedPolicyDocumentException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#44 +Aws::STS::ClientApi::NameQualifier = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#45 +Aws::STS::ClientApi::PackedPolicyTooLargeException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#46 +Aws::STS::ClientApi::PolicyDescriptorType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#47 +Aws::STS::ClientApi::ProvidedContext = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#48 +Aws::STS::ClientApi::ProvidedContextsListType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#49 +Aws::STS::ClientApi::RegionDisabledException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#50 +Aws::STS::ClientApi::SAMLAssertionType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#51 +Aws::STS::ClientApi::Subject = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#52 +Aws::STS::ClientApi::SubjectType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/client_api.rb#53 +Aws::STS::ClientApi::Tag = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# Endpoint parameters used to influence endpoints per request. +# +# source://aws-sdk-core//lib/aws-sdk-sts/endpoint_parameters.rb#38 +class Aws::STS::EndpointParameters < ::Struct + include ::Aws::Structure + + # @return [EndpointParameters] a new instance of EndpointParameters + # + # source://aws-sdk-core//lib/aws-sdk-sts/endpoint_parameters.rb#58 + def initialize(options = T.unsafe(nil)); end + + # Override the endpoint used to send this request + # + # @return [String] + def endpoint; end + + # Override the endpoint used to send this request + # + # @return [String] + def endpoint=(_); end + + # The AWS region used to dispatch the request. + # + # @return [String] + def region; end + + # The AWS region used to dispatch the request. + # + # @return [String] + def region=(_); end + + # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. + # + # @return [Boolean] + def use_dual_stack; end + + # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. + # + # @return [Boolean] + def use_dual_stack=(_); end + + # When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. + # + # @return [Boolean] + def use_fips; end + + # When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. + # + # @return [Boolean] + def use_fips=(_); end + + # Whether the global endpoint should be used, rather then the regional endpoint for us-east-1. + # + # @return [Boolean] + def use_global_endpoint; end + + # Whether the global endpoint should be used, rather then the regional endpoint for us-east-1. + # + # @return [Boolean] + def use_global_endpoint=(_); end + + class << self + def [](*_arg0); end + def inspect; end + def keyword_init?; end + def members; end + def new(*_arg0); end + end +end + +# source://aws-sdk-core//lib/aws-sdk-sts/endpoint_provider.rb#11 +class Aws::STS::EndpointProvider + # @raise [ArgumentError] + # + # source://aws-sdk-core//lib/aws-sdk-sts/endpoint_provider.rb#12 + def resolve_endpoint(parameters); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/endpoints.rb#13 +module Aws::STS::Endpoints; end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/endpoints.rb#15 +class Aws::STS::Endpoints::AssumeRole + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sts/endpoints.rb#16 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/endpoints.rb#27 +class Aws::STS::Endpoints::AssumeRoleWithSAML + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sts/endpoints.rb#28 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/endpoints.rb#39 +class Aws::STS::Endpoints::AssumeRoleWithWebIdentity + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sts/endpoints.rb#40 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/endpoints.rb#51 +class Aws::STS::Endpoints::DecodeAuthorizationMessage + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sts/endpoints.rb#52 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/endpoints.rb#63 +class Aws::STS::Endpoints::GetAccessKeyInfo + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sts/endpoints.rb#64 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/endpoints.rb#75 +class Aws::STS::Endpoints::GetCallerIdentity + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sts/endpoints.rb#76 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/endpoints.rb#87 +class Aws::STS::Endpoints::GetFederationToken + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sts/endpoints.rb#88 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/endpoints.rb#99 +class Aws::STS::Endpoints::GetSessionToken + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sts/endpoints.rb#100 + def build(context); end + end +end + +# When STS returns an error response, the Ruby SDK constructs and raises an error. +# These errors all extend Aws::STS::Errors::ServiceError < {Aws::Errors::ServiceError} +# +# You can rescue all STS errors using ServiceError: +# +# begin +# # do stuff +# rescue Aws::STS::Errors::ServiceError +# # rescues all STS API errors +# end +# +# +# ## Request Context +# ServiceError objects have a {Aws::Errors::ServiceError#context #context} method that returns +# information about the request that generated the error. +# See {Seahorse::Client::RequestContext} for more information. +# +# ## Error Classes +# * {ExpiredTokenException} +# * {IDPCommunicationErrorException} +# * {IDPRejectedClaimException} +# * {InvalidAuthorizationMessageException} +# * {InvalidIdentityTokenException} +# * {MalformedPolicyDocumentException} +# * {PackedPolicyTooLargeException} +# * {RegionDisabledException} +# +# Additionally, error classes are dynamically generated for service errors based on the error code +# if they are not defined above. +# +# source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#41 +module Aws::STS::Errors + extend ::Aws::Errors::DynamicErrors +end + +# source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#45 +class Aws::STS::Errors::ExpiredTokenException < ::Aws::STS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::STS::Types::ExpiredTokenException] + # @return [ExpiredTokenException] a new instance of ExpiredTokenException + # + # source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#50 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#55 + def message; end +end + +# source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#60 +class Aws::STS::Errors::IDPCommunicationErrorException < ::Aws::STS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::STS::Types::IDPCommunicationErrorException] + # @return [IDPCommunicationErrorException] a new instance of IDPCommunicationErrorException + # + # source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#65 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#70 + def message; end +end + +# source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#75 +class Aws::STS::Errors::IDPRejectedClaimException < ::Aws::STS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::STS::Types::IDPRejectedClaimException] + # @return [IDPRejectedClaimException] a new instance of IDPRejectedClaimException + # + # source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#80 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#85 + def message; end +end + +# source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#90 +class Aws::STS::Errors::InvalidAuthorizationMessageException < ::Aws::STS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::STS::Types::InvalidAuthorizationMessageException] + # @return [InvalidAuthorizationMessageException] a new instance of InvalidAuthorizationMessageException + # + # source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#95 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#100 + def message; end +end + +# source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#105 +class Aws::STS::Errors::InvalidIdentityTokenException < ::Aws::STS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::STS::Types::InvalidIdentityTokenException] + # @return [InvalidIdentityTokenException] a new instance of InvalidIdentityTokenException + # + # source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#110 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#115 + def message; end +end + +# source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#120 +class Aws::STS::Errors::MalformedPolicyDocumentException < ::Aws::STS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::STS::Types::MalformedPolicyDocumentException] + # @return [MalformedPolicyDocumentException] a new instance of MalformedPolicyDocumentException + # + # source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#125 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#130 + def message; end +end + +# source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#135 +class Aws::STS::Errors::PackedPolicyTooLargeException < ::Aws::STS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::STS::Types::PackedPolicyTooLargeException] + # @return [PackedPolicyTooLargeException] a new instance of PackedPolicyTooLargeException + # + # source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#140 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#145 + def message; end +end + +# source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#150 +class Aws::STS::Errors::RegionDisabledException < ::Aws::STS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::STS::Types::RegionDisabledException] + # @return [RegionDisabledException] a new instance of RegionDisabledException + # + # source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#155 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#160 + def message; end +end + +# source://aws-sdk-core//lib/aws-sdk-sts/errors.rb#0 +class Aws::STS::Errors::ServiceError < ::Aws::Errors::ServiceError; end + +# source://aws-sdk-core//lib/aws-sdk-sts.rb#59 +Aws::STS::GEM_VERSION = T.let(T.unsafe(nil), String) + +# source://aws-sdk-core//lib/aws-sdk-sts.rb#49 +module Aws::STS::Plugins; end + +# source://aws-sdk-core//lib/aws-sdk-sts/plugins/endpoints.rb#13 +class Aws::STS::Plugins::Endpoints < ::Seahorse::Client::Plugin + # source://aws-sdk-core//lib/aws-sdk-sts/plugins/endpoints.rb#93 + def add_handlers(handlers, _config); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-sts/plugins/endpoints.rb#27 +class Aws::STS::Plugins::Endpoints::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sts/plugins/endpoints.rb#28 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sts/plugins/endpoints.rb#60 + def apply_endpoint_headers(context, headers); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sts/plugins/endpoints.rb#71 + def parameters_for_operation(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-sts/plugins/endpoints.rb#48 + def with_metrics(context, &block); end +end + +# source://aws-sdk-core//lib/aws-sdk-sts/plugins/sts_regional_endpoints.rb#7 +class Aws::STS::Plugins::STSRegionalEndpoints < ::Seahorse::Client::Plugin + class << self + # source://aws-sdk-core//lib/aws-sdk-sts/plugins/sts_regional_endpoints.rb#22 + def resolve_sts_regional_endpoints(cfg); end + end +end + +# Allows you to create presigned URLs for STS operations. +# +# @example +# +# signer = Aws::STS::Presigner.new +# url = signer.get_caller_identity_presigned_url( +# headers: {"X-K8s-Aws-Id" => 'my-eks-cluster'} +# ) +# +# source://aws-sdk-core//lib/aws-sdk-sts/presigner.rb#15 +class Aws::STS::Presigner + # @option options + # @param options [Hash] a customizable set of options + # @return [Presigner] a new instance of Presigner + # + # source://aws-sdk-core//lib/aws-sdk-sts/presigner.rb#18 + def initialize(options = T.unsafe(nil)); end + + # Returns a presigned url for get_caller_identity. + # + # This can be easily converted to a token used by the EKS service: + # {https://docs.ruby-lang.org/en/3.2/Base64.html#method-i-encode64} + # "k8s-aws-v1." + Base64.urlsafe_encode64(url).chomp("==") + # + # @example + # + # url = signer.get_caller_identity_presigned_url( + # headers: {"X-K8s-Aws-Id" => 'my-eks-cluster'}, + # ) + # @option options + # @param options [Hash] a customizable set of options + # @return [String] A presigned url string. + # + # source://aws-sdk-core//lib/aws-sdk-sts/presigner.rb#40 + def get_caller_identity_presigned_url(options = T.unsafe(nil)); end +end + +# source://aws-sdk-core//lib/aws-sdk-sts/resource.rb#12 +class Aws::STS::Resource + # @option options + # @param options [{}] + # @return [Resource] a new instance of Resource + # + # source://aws-sdk-core//lib/aws-sdk-sts/resource.rb#16 + def initialize(options = T.unsafe(nil)); end + + # @return [Client] + # + # source://aws-sdk-core//lib/aws-sdk-sts/resource.rb#21 + def client; end +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#11 +module Aws::STS::Types; end + +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleRequest AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#317 +class Aws::STS::Types::AssumeRoleRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#318 +Aws::STS::Types::AssumeRoleRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Contains the response to a successful AssumeRole request, including +# temporary Amazon Web Services credentials that can be used to make +# Amazon Web Services requests. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleResponse AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#383 +class Aws::STS::Types::AssumeRoleResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#384 +Aws::STS::Types::AssumeRoleResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAMLRequest AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#524 +class Aws::STS::Types::AssumeRoleWithSAMLRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#525 +Aws::STS::Types::AssumeRoleWithSAMLRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Contains the response to a successful AssumeRoleWithSAML request, +# including temporary Amazon Web Services credentials that can be used +# to make Amazon Web Services requests. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAMLResponse AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#640 +class Aws::STS::Types::AssumeRoleWithSAMLResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#641 +Aws::STS::Types::AssumeRoleWithSAMLResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentityRequest AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#797 +class Aws::STS::Types::AssumeRoleWithWebIdentityRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#798 +Aws::STS::Types::AssumeRoleWithWebIdentityRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Contains the response to a successful AssumeRoleWithWebIdentity +# request, including temporary Amazon Web Services credentials that can +# be used to make Amazon Web Services requests. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentityResponse AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#898 +class Aws::STS::Types::AssumeRoleWithWebIdentityResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#899 +Aws::STS::Types::AssumeRoleWithWebIdentityResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The identifiers for the temporary security credentials that the +# operation returns. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumedRoleUser AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#927 +class Aws::STS::Types::AssumedRoleUser < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#928 +Aws::STS::Types::AssumedRoleUser::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Amazon Web Services credentials for API authentication. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/Credentials AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#958 +class Aws::STS::Types::Credentials < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#959 +Aws::STS::Types::Credentials::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessageRequest AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#970 +class Aws::STS::Types::DecodeAuthorizationMessageRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#971 +Aws::STS::Types::DecodeAuthorizationMessageRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A document that contains additional information about the +# authorization status of a request from an encoded message that is +# returned in response to an Amazon Web Services request. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessageResponse AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#986 +class Aws::STS::Types::DecodeAuthorizationMessageResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#987 +Aws::STS::Types::DecodeAuthorizationMessageResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The web identity token that was passed is expired or is not valid. Get +# a new identity token from the identity provider and then retry the +# request. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/ExpiredTokenException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1001 +class Aws::STS::Types::ExpiredTokenException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1002 +Aws::STS::Types::ExpiredTokenException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Identifiers for the federated user that is associated with the +# credentials. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/FederatedUser AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1028 +class Aws::STS::Types::FederatedUser < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1029 +Aws::STS::Types::FederatedUser::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetAccessKeyInfoRequest AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1044 +class Aws::STS::Types::GetAccessKeyInfoRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1045 +Aws::STS::Types::GetAccessKeyInfoRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetAccessKeyInfoResponse AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1056 +class Aws::STS::Types::GetAccessKeyInfoResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1057 +Aws::STS::Types::GetAccessKeyInfoResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @api private +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentityRequest AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1065 +class Aws::STS::Types::GetCallerIdentityRequest < ::Aws::EmptyStructure; end + +# Contains the response to a successful GetCallerIdentity request, +# including information about the entity making the request. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentityResponse AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1096 +class Aws::STS::Types::GetCallerIdentityResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1097 +Aws::STS::Types::GetCallerIdentityResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationTokenRequest AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1269 +class Aws::STS::Types::GetFederationTokenRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1270 +Aws::STS::Types::GetFederationTokenRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Contains the response to a successful GetFederationToken request, +# including temporary Amazon Web Services credentials that can be used +# to make Amazon Web Services requests. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationTokenResponse AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1308 +class Aws::STS::Types::GetFederationTokenResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1309 +Aws::STS::Types::GetFederationTokenResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionTokenRequest AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1356 +class Aws::STS::Types::GetSessionTokenRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1357 +Aws::STS::Types::GetSessionTokenRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Contains the response to a successful GetSessionToken request, +# including temporary Amazon Web Services credentials that can be used +# to make Amazon Web Services requests. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionTokenResponse AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1379 +class Aws::STS::Types::GetSessionTokenResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1380 +Aws::STS::Types::GetSessionTokenResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request could not be fulfilled because the identity provider (IDP) +# that was asked to verify the incoming identity token could not be +# reached. This is often a transient error caused by network conditions. +# Retry the request a limited number of times so that you don't exceed +# the request rate. If the error persists, the identity provider might +# be down or not responding. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/IDPCommunicationErrorException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1397 +class Aws::STS::Types::IDPCommunicationErrorException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1398 +Aws::STS::Types::IDPCommunicationErrorException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The identity provider (IdP) reported that authentication failed. This +# might be because the claim is invalid. +# +# If this error is returned for the `AssumeRoleWithWebIdentity` +# operation, it can also mean that the claim has expired or has been +# explicitly revoked. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/IDPRejectedClaimException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1415 +class Aws::STS::Types::IDPRejectedClaimException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1416 +Aws::STS::Types::IDPRejectedClaimException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The error returned if the message passed to +# `DecodeAuthorizationMessage` was invalid. This can happen if the token +# contains invalid characters, such as linebreaks. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/InvalidAuthorizationMessageException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1430 +class Aws::STS::Types::InvalidAuthorizationMessageException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1431 +Aws::STS::Types::InvalidAuthorizationMessageException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The web identity token that was passed could not be validated by +# Amazon Web Services. Get a new identity token from the identity +# provider and then retry the request. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/InvalidIdentityTokenException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1445 +class Aws::STS::Types::InvalidIdentityTokenException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1446 +Aws::STS::Types::InvalidIdentityTokenException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the policy document was malformed. +# The error message describes the specific error. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/MalformedPolicyDocumentException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1459 +class Aws::STS::Types::MalformedPolicyDocumentException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1460 +Aws::STS::Types::MalformedPolicyDocumentException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the total packed size of the session +# policies and session tags combined was too large. An Amazon Web +# Services conversion compresses the session policy document, session +# policy ARNs, and session tags into a packed binary format that has a +# separate limit. The error message indicates by percentage how close +# the policies and tags are to the upper size limit. For more +# information, see [Passing Session Tags in STS][1] in the *IAM User +# Guide*. +# +# You could receive this error even though you meet other defined +# session policy and session tag limits. For more information, see [IAM +# and STS Entity Character Limits][2] in the *IAM User Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html +# [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-limits-entity-length +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/PackedPolicyTooLargeException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1488 +class Aws::STS::Types::PackedPolicyTooLargeException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1489 +Aws::STS::Types::PackedPolicyTooLargeException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A reference to the IAM managed policy that is passed as a session +# policy for a role session or a federated user session. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/PolicyDescriptorType AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1510 +class Aws::STS::Types::PolicyDescriptorType < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1511 +Aws::STS::Types::PolicyDescriptorType::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Contains information about the provided context. This includes the +# signed and encrypted trusted context assertion and the context +# provider ARN from which the trusted context assertion was generated. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/ProvidedContext AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1534 +class Aws::STS::Types::ProvidedContext < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1535 +Aws::STS::Types::ProvidedContext::SENSITIVE = T.let(T.unsafe(nil), Array) + +# STS is not activated in the requested region for the account that is +# being asked to generate credentials. The account administrator must +# use the IAM console to activate STS in that region. For more +# information, see [Activating and Deactivating Amazon Web Services STS +# in an Amazon Web Services Region][1] in the *IAM User Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/RegionDisabledException AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1555 +class Aws::STS::Types::RegionDisabledException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1556 +Aws::STS::Types::RegionDisabledException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# You can pass custom key-value pair attributes when you assume a role +# or federate a user. These are called session tags. You can then use +# the session tags to control access to resources. For more information, +# see [Tagging Amazon Web Services STS Sessions][1] in the *IAM User +# Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/Tag AWS API Documentation +# +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1598 +class Aws::STS::Types::Tag < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-core//lib/aws-sdk-sts/types.rb#1599 +Aws::STS::Types::Tag::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#5 +class Aws::SharedConfig + # Constructs a new SharedConfig provider object. This will load the shared + # credentials file, and optionally the shared configuration file, as ini + # files which support profiles. + # + # By default, the shared credential file (the default path for which is + # `~/.aws/credentials`) and the shared config file (the default path for + # which is `~/.aws/config`) are loaded. However, if you set the + # `ENV['AWS_SDK_CONFIG_OPT_OUT']` environment variable, only the shared + # credential file will be loaded. You can specify the shared credential + # file path with the `ENV['AWS_SHARED_CREDENTIALS_FILE']` environment + # variable or with the `:credentials_path` option. Similarly, you can + # specify the shared config file path with the `ENV['AWS_CONFIG_FILE']` + # environment variable or with the `:config_path` option. + # + # The default profile name is 'default'. You can specify the profile name + # with the `ENV['AWS_PROFILE']` environment variable or with the + # `:profile_name` option. + # + # @api private + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] + # @return [SharedConfig] a new instance of SharedConfig + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#52 + def initialize(options = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def account_id_endpoint_mode(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def adaptive_retry_wait_to_fill(opts = T.unsafe(nil)); end + + # Attempts to assume a role from shared config or shared credentials file. + # Will always attempt first to assume a role from the shared credentials + # file, if present. + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#120 + def assume_role_credentials_from_config(opts = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#130 + def assume_role_web_identity_credentials_from_config(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def ca_bundle(opts = T.unsafe(nil)); end + + # @api private + # @return [Boolean] returns `true` if use of the shared config file is + # enabled. + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#96 + def config_enabled?; end + + # @api private + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#16 + def config_path; end + + # Source a custom configured endpoint from the shared configuration file + # + # @api private + # @option opts + # @option opts + # @param opts [Hash] + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#175 + def configured_endpoint(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def correct_clock_skew(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def credential_process(opts = T.unsafe(nil)); end + + # Sources static credentials from shared credential/config files. + # + # @api private + # @option options + # @param opts [Hash] + # @param options [Hash] a customizable set of options + # @return [Aws::Credentials] credentials sourced from configuration values, + # or `nil` if no valid credentials were found. + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#107 + def credentials(opts = T.unsafe(nil)); end + + # @api private + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#13 + def credentials_path; end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def csm_client_id(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def csm_enabled(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def csm_host(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def csm_port(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def defaults_mode(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def disable_request_compression(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def ec2_metadata_service_endpoint(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def ec2_metadata_service_endpoint_mode(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def ec2_metadata_v1_disabled(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def endpoint_discovery_enabled(opts = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#69 + def fresh(options = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def ignore_configured_endpoint_urls(opts = T.unsafe(nil)); end + + # @api private + # @note This method does not indicate if the file found at {#path} + # will be parsable, only if it can be read. + # @return [Boolean] Returns `true` if a credential file + # exists and has appropriate read permissions at {#path}. + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#90 + def loadable?(path); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def max_attempts(opts = T.unsafe(nil)); end + + # @api private + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#19 + def profile_name; end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def region(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def request_min_compression_size_bytes(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def retry_mode(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def s3_disable_express_session_auth(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def s3_disable_multiregion_access_points(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def s3_us_east_1_regional_endpoint(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def s3_use_arn_region(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def sdk_ua_app_id(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def sigv4a_signing_region_set(opts = T.unsafe(nil)); end + + # Attempts to load from shared config or shared credentials file. + # Will always attempt first to load from the shared credentials + # file, if present. + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#149 + def sso_credentials_from_config(opts = T.unsafe(nil)); end + + # Attempts to load from shared config or shared credentials file. + # Will always attempt first to load from the shared credentials + # file, if present. + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#161 + def sso_token_from_config(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def sts_regional_endpoints(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def use_dualstack_endpoint(opts = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#195 + def use_fips_endpoint(opts = T.unsafe(nil)); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#244 + def assume_role_from_profile(cfg, profile, opts, chain_config); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#337 + def assume_role_process_credentials_from_config(profile); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#352 + def credentials_from_config(profile, _opts); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#414 + def credentials_from_profile(prof_config); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#346 + def credentials_from_shared(profile, _opts); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#322 + def credentials_from_source(credential_source, config); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#442 + def default_shared_config_path(file); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#438 + def determine_config_path; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#434 + def determine_credentials_path; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#458 + def determine_profile(options); end + + # Get a config value from from shared credential/config files. + # Only loads a value when config_enabled is true + # Return a value from credentials preferentially over config + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#236 + def get_config_value(key, opts); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#430 + def load_config_file; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#424 + def load_credentials_file; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#297 + def resolve_source_profile(profile, opts = T.unsafe(nil)); end + + # If any of the sso_ profile values are present, attempt to construct + # SSOCredentials + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#360 + def sso_credentials_from_profile(cfg, profile); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#465 + def sso_session(cfg, profile, sso_session_name); end + + # If the required sso_ profile values are present, attempt to construct + # SSOTokenProvider + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#399 + def sso_token_from_profile(cfg, profile); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#449 + def validate_profile_exists(profile); end + + class << self + # Add an accessor method (similar to attr_reader) to return a configuration value + # Uses the get_config_value below to control where + # values are loaded from + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#193 + def config_reader(*attrs); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#6 +Aws::SharedConfig::SSO_CREDENTIAL_PROFILE_KEYS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#7 +Aws::SharedConfig::SSO_PROFILE_KEYS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#9 +Aws::SharedConfig::SSO_SESSION_KEYS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/shared_config.rb#8 +Aws::SharedConfig::SSO_TOKEN_PROFILE_KEYS = T.let(T.unsafe(nil), Array) + +# source://aws-sdk-core//lib/aws-sdk-core/shared_credentials.rb#6 +class Aws::SharedCredentials + include ::Aws::CredentialProvider + + # Constructs a new SharedCredentials object. This will load static + # (access_key_id, secret_access_key and session_token) AWS access + # credentials from an ini file, which supports profiles. The default + # profile name is 'default'. You can specify the profile name with the + # `ENV['AWS_PROFILE']` or with the `:profile_name` option. + # + # To use credentials from the default credential resolution chain + # create a client without the credential option specified. + # You may access the resolved credentials through + # `client.config.credentials`. + # + # @option [String] + # @option [String] + # @param [String] [Hash] a customizable set of options + # @return [SharedCredentials] a new instance of SharedCredentials + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_credentials.rb#27 + def initialize(options = T.unsafe(nil)); end + + # @return [Credentials] + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_credentials.rb#52 + def credentials; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_credentials.rb#55 + def inspect; end + + # @deprecated This method is no longer used. + # @note This method does not indicate if the file found at {#path} + # will be parsable, only if it can be read. + # @return [Boolean] Returns `true` if a credential file + # exists and has appropriate read permissions at {#path}. + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_credentials.rb#69 + def loadable?; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_credentials.rb#46 + def path; end + + # @return [String] + # + # source://aws-sdk-core//lib/aws-sdk-core/shared_credentials.rb#49 + def profile_name; end +end + +# source://aws-sdk-core//lib/aws-sdk-core/static_token_provider.rb#4 +class Aws::StaticTokenProvider + include ::Aws::TokenProvider + + # @param token [String] + # @param expiration [Time] + # @return [StaticTokenProvider] a new instance of StaticTokenProvider + # + # source://aws-sdk-core//lib/aws-sdk-core/static_token_provider.rb#10 + def initialize(token, expiration = T.unsafe(nil)); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/structure.rb#5 +module Aws::Structure + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/structure.rb#7 + def initialize(values = T.unsafe(nil)); end + + # @api private + # @return [Boolean] Returns `true` if all of the member values are `nil`. + # + # source://aws-sdk-core//lib/aws-sdk-core/structure.rb#20 + def empty?; end + + # @api private + # @return [Boolean] Returns `true` if this structure has a value + # set for the given member. + # + # source://aws-sdk-core//lib/aws-sdk-core/structure.rb#15 + def key?(member_name); end + + # Deeply converts the Structure into a hash. Structure members that + # are `nil` are omitted from the resultant hash. + # + # You can call #orig_to_h to get vanilla #to_h behavior as defined + # in stdlib Struct. + # + # @api private + # @return [Hash] + # + # source://aws-sdk-core//lib/aws-sdk-core/structure.rb#31 + def to_h(obj = T.unsafe(nil), options = T.unsafe(nil)); end + + # Deeply converts the Structure into a hash. Structure members that + # are `nil` are omitted from the resultant hash. + # + # You can call #orig_to_h to get vanilla #to_h behavior as defined + # in stdlib Struct. + # + # @api private + # @return [Hash] + # + # source://aws-sdk-core//lib/aws-sdk-core/structure.rb#31 + def to_hash(obj = T.unsafe(nil), options = T.unsafe(nil)); end + + # Wraps the default #to_s logic with filtering of sensitive parameters. + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/structure.rb#52 + def to_s(obj = T.unsafe(nil)); end + + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/structure.rb#59 + def new(*args); end + end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/structure.rb#76 +module Aws::Structure::Union + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/structure.rb#77 + def member; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/structure.rb#81 + def value; end +end + +# setup autoloading for Stubbing module +# +# source://aws-sdk-core//lib/aws-sdk-core/stubbing.rb#5 +module Aws::Stubbing; end + +# source://aws-sdk-core//lib/aws-sdk-core/stubbing/data_applicator.rb#5 +class Aws::Stubbing::DataApplicator + include ::Seahorse::Model::Shapes + + # @param rules [Seahorse::Models::Shapes::ShapeRef] + # @return [DataApplicator] a new instance of DataApplicator + # + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/data_applicator.rb#10 + def initialize(rules); end + + # @param data [Hash] + # @param stub [Structure] + # + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/data_applicator.rb#16 + def apply_data(data, stub); end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/data_applicator.rb#22 + def apply_data_to_struct(ref, data, struct); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/data_applicator.rb#29 + def member_value(ref, value); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/stubbing/empty_stub.rb#5 +class Aws::Stubbing::EmptyStub + include ::Seahorse::Model::Shapes + + # @param rules [Seahorse::Models::Shapes::ShapeRef] + # @return [EmptyStub] a new instance of EmptyStub + # + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/empty_stub.rb#10 + def initialize(rules); end + + # @return [Structure] + # + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/empty_stub.rb#15 + def stub; end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/empty_stub.rb#25 + def stub_ref(ref, visited = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/empty_stub.rb#49 + def stub_scalar(ref); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/empty_stub.rb#39 + def stub_structure(ref, visited); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/stubbing.rb#11 +module Aws::Stubbing::Protocols; end + +# source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/api_gateway.rb#6 +class Aws::Stubbing::Protocols::ApiGateway < ::Aws::Stubbing::Protocols::RestJson; end + +# source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/ec2.rb#6 +class Aws::Stubbing::Protocols::EC2 + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/ec2.rb#8 + def stub_data(api, operation, data); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/ec2.rb#18 + def stub_error(error_code); end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/ec2.rb#34 + def build_body(api, operation, data); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/json.rb#6 +class Aws::Stubbing::Protocols::Json + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/json.rb#8 + def stub_data(api, operation, data); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/json.rb#17 + def stub_error(error_code); end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/json.rb#35 + def build_body(operation, data); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/json.rb#31 + def content_type(api); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/query.rb#6 +class Aws::Stubbing::Protocols::Query + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/query.rb#8 + def stub_data(api, operation, data); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/query.rb#15 + def stub_error(error_code); end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/query.rb#24 + def build_body(api, operation, data); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/query.rb#39 + def xmlns(api); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest.rb#8 +class Aws::Stubbing::Protocols::Rest + include ::Seahorse::Model::Shapes + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest.rb#12 + def stub_data(api, operation, data); end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest.rb#41 + def apply_body(api, operation, resp, data); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest.rb#37 + def apply_headers(operation, resp, data); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest.rb#29 + def apply_status_code(operation, resp, data); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest.rb#45 + def build_body(api, operation, data); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest.rb#105 + def encode_error(opts, event_data); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest.rb#185 + def encode_event(opts, rules, event_data, builder); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest.rb#85 + def encode_eventstream_response(rules, data, builder); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest.rb#135 + def encode_modeled_event(opts, rules, event_type, event_data, builder); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest.rb#121 + def encode_unknown_event(opts, event_type, event_data); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest.rb#81 + def eventstream?(rules); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest.rb#77 + def head_operation(operation); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest.rb#22 + def new_http_response; end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest.rb#65 + def streaming?(ref); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest_json.rb#6 +class Aws::Stubbing::Protocols::RestJson < ::Aws::Stubbing::Protocols::Rest + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest_json.rb#8 + def body_for(_a, _b, rules, data); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest_json.rb#16 + def stub_error(error_code); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest_xml.rb#6 +class Aws::Stubbing::Protocols::RestXml < ::Aws::Stubbing::Protocols::Rest + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest_xml.rb#8 + def body_for(api, operation, rules, data); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest_xml.rb#20 + def stub_error(error_code); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rest_xml.rb#27 + def xmlns(api); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rpc_v2.rb#6 +class Aws::Stubbing::Protocols::RpcV2 + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rpc_v2.rb#8 + def stub_data(api, operation, data); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rpc_v2.rb#17 + def stub_error(error_code); end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rpc_v2.rb#35 + def build_body(operation, data); end + + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/protocols/rpc_v2.rb#31 + def content_type(api); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/stubbing/stub_data.rb#6 +class Aws::Stubbing::StubData + # @api private + # @return [StubData] a new instance of StubData + # + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/stub_data.rb#8 + def initialize(operation); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/stub_data.rb#13 + def stub(data = T.unsafe(nil)); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/stub_data.rb#54 + def apply_data(data, stub); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/stub_data.rb#23 + def remove_checksums(stub); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/stub_data.rb#33 + def remove_paging_tokens(stub); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/stubbing/xml_error.rb#5 +class Aws::Stubbing::XmlError + # @api private + # @return [XmlError] a new instance of XmlError + # + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/xml_error.rb#7 + def initialize(error_code); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/stubbing/xml_error.rb#11 + def to_xml; end +end + +# Observability is the extent to which a system's current state can be +# inferred from the data it emits. The data emitted is commonly referred +# as Telemetry. The AWS SDK for Ruby currently supports traces as +# a telemetry signal. +# +# A telemetry provider is used to emit telemetry data. By default, the +# {NoOpTelemetryProvider} will not record or emit any telemetry data. +# The SDK currently supports OpenTelemetry (OTel) as a provider. See +# {OTelProvider} for more information. +# +# If a provider isn't supported, you can implement your own provider by +# inheriting the following base classes and implementing the interfaces +# defined: +# * {TelemetryProviderBase} +# * {ContextManagerBase} +# * {TracerProviderBase} +# * {TracerBase} +# * {SpanBase} +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#4 +module Aws::Telemetry + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry.rb#36 + def http_request_attrs(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry.rb#61 + def http_response_attrs(context); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry.rb#31 + def module_to_tracer_name(module_name); end + end +end + +# Base for all `ContextManager` classes. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#149 +class Aws::Telemetry::ContextManagerBase + # Associates a Context with the caller’s current execution unit. + # Returns a token to be used with the matching call to detach. + # + # @param context [Object] The new context + # @raise [NotImplementedError] + # @return [Object] token A token to be used when detaching + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#162 + def attach(context); end + + # Returns current context. + # + # @raise [NotImplementedError] + # @return [Context] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#153 + def current; end + + # Restore the previous Context associated with the current + # execution unit to the value it had before attaching a + # specified Context. + # + # @param token [Object] The token provided by matching the call to attach + # @raise [NotImplementedError] + # @return [Boolean] `True` if the calls matched, `False` otherwise + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#172 + def detach(token); end +end + +# No-op implementation for {ContextManagerBase}. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#62 +class Aws::Telemetry::NoOpContextManager < ::Aws::Telemetry::ContextManagerBase + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#65 + def attach(context); end + + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#63 + def current; end + + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#67 + def detach(token); end +end + +# No-op implementation for {SpanBase}. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#38 +class Aws::Telemetry::NoOpSpan < ::Aws::Telemetry::SpanBase + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#39 + def []=(key, value); end + + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#44 + def add_attributes(attributes); end + + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#48 + def add_event(name, attributes: T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#54 + def finish(end_timestamp: T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#58 + def record_exception(exception, attributes: T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#39 + def set_attribute(key, value); end + + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#52 + def status=(status); end +end + +# No-op implementation for {TelemetryProviderBase}. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#6 +class Aws::Telemetry::NoOpTelemetryProvider < ::Aws::Telemetry::TelemetryProviderBase + # @return [NoOpTelemetryProvider] a new instance of NoOpTelemetryProvider + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#7 + def initialize; end +end + +# No-op implementation for {TracerBase}. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#23 +class Aws::Telemetry::NoOpTracer < ::Aws::Telemetry::TracerBase + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#32 + def current_span; end + + # @yield [NoOpSpan.new] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#28 + def in_span(name, attributes: T.unsafe(nil), kind: T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#24 + def start_span(name, with_parent: T.unsafe(nil), attributes: T.unsafe(nil), kind: T.unsafe(nil)); end +end + +# No-op implementation for {TracerProviderBase}. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#16 +class Aws::Telemetry::NoOpTracerProvider < ::Aws::Telemetry::TracerProviderBase + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/no_op.rb#17 + def tracer(name = T.unsafe(nil)); end +end + +# OpenTelemetry-based {ContextManagerBase}, manages context and +# used to return the current context within a trace. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#210 +class Aws::Telemetry::OTelContextManager < ::Aws::Telemetry::ContextManagerBase + # Associates a Context with the caller’s current execution unit. + # Returns a token to be used with the matching call to detach. + # + # @param context [Context] The new context + # @return [Object] token A token to be used when detaching + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#220 + def attach(context); end + + # Returns current context. + # + # @return [Context] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#211 + def current; end + + # Restore the previous Context associated with the current + # execution unit to the value it had before attaching a + # specified Context. + # + # @param token [Object] The token provided by matching the call to attach + # @return [Boolean] `True` if the calls matched, `False` otherwise + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#230 + def detach(token); end +end + +# OTelProvider allows to emit telemetry data based on OpenTelemetry. +# +# To use this provider, require the `opentelemetry-sdk` gem and then, +# pass in an instance of a `Aws::Telemetry::OTelProvider` as the +# telemetry provider in the client config. +# +# OpenTelemetry supports many ways to export your telemetry data. +# See {https://opentelemetry.io/docs/languages/ruby/exporters here} for +# more information. +# +# @example Configuration +# require 'opentelemetry-sdk' +# +# # sets up the OpenTelemetry SDK with their config defaults +# OpenTelemetry::SDK.configure +# +# otel_provider = Aws::Telemetry::OTelProvider.new +# client = Aws::S3::Client.new(telemetry_provider: otel_provider) +# @example Exporting via console +# require 'opentelemetry-sdk' +# +# ENV['OTEL_TRACES_EXPORTER'] ||= 'console' +# +# # configures the OpenTelemetry SDK with defaults +# OpenTelemetry::SDK.configure +# +# otel_provider = Aws::Telemetry::OTelProvider.new +# client = Aws::S3::Client.new(telemetry_provider: otel_provider) +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#34 +class Aws::Telemetry::OTelProvider < ::Aws::Telemetry::TelemetryProviderBase + # @return [OTelProvider] a new instance of OTelProvider + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#35 + def initialize; end + + private + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#48 + def otel_loaded?; end +end + +# OpenTelemetry-based {SpanBase}, represents a single operation +# within a trace. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#130 +class Aws::Telemetry::OTelSpan < ::Aws::Telemetry::SpanBase + # @return [OTelSpan] a new instance of OTelSpan + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#131 + def initialize(span); end + + # Set attribute. + # + # @param key [String] + # @param value [String, Boolean, Numeric, Array] Value must be non-nil and (array of) string, boolean or numeric type. + # Array values must not contain nil elements and all elements must be of + # the same basic type (string, numeric, boolean) + # @return [self] returns itself + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#144 + def []=(key, value); end + + # Add attributes. + # + # @param attributes [Hash{String => String, Numeric, Boolean, Array}] Values must be non-nil and (array of) string, + # boolean or numeric type. Array values must not contain nil elements + # and all elements must be of the same basic type (string, numeric, + # boolean) + # @return [self] returns itself + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#157 + def add_attributes(attributes); end + + # Add event to a Span. + # + # @param name [String] Name of the event + # @param attributes [Hash{String => String, Numeric, Boolean, Array}] Values must be non-nil and (array of) + # string, boolean or numeric type. Array values must not contain nil + # elements and all elements must be of the same basic type (string, + # numeric, boolean) + # @return [self] returns itself + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#170 + def add_event(name, attributes: T.unsafe(nil)); end + + # Finishes the Span. + # + # @param end_timestamp [Time] End timestamp for the span + # @return [self] returns itself + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#187 + def finish(end_timestamp: T.unsafe(nil)); end + + # Record an exception during the execution of this span. Multiple + # exceptions can be recorded on a span. + # + # @param exception [Exception] The exception to be recorded + # @param attributes [Hash{String => String, Numeric, Boolean, Array}] One or more key:value pairs, where the + # keys must be strings and the values may be (array of) string, boolean + # or numeric type + # @return [void] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#200 + def record_exception(exception, attributes: T.unsafe(nil)); end + + # Set attribute. + # + # @param key [String] + # @param value [String, Boolean, Numeric, Array] Value must be non-nil and (array of) string, boolean or numeric type. + # Array values must not contain nil elements and all elements must be of + # the same basic type (string, numeric, boolean) + # @return [self] returns itself + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#144 + def set_attribute(key, value); end + + # Sets the Span status. + # + # @param status [Aws::Telemetry::Status] The new status, which + # overrides the default Span status, which is `OK` + # @return [void] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#179 + def status=(status); end +end + +# OpenTelemetry-based {TracerBase}, responsible for creating spans. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#80 +class Aws::Telemetry::OTelTracer < ::Aws::Telemetry::TracerBase + # @return [OTelTracer] a new instance of OTelTracer + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#81 + def initialize(tracer); end + + # Returns the current active span. + # + # @return [Aws::Telemetry::OTelSpan] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#123 + def current_span; end + + # A helper for the default use-case of extending the current trace + # with a span. + # On exit, the Span that was active before calling this method will + # be reactivated. If an exception occurs during the execution of the + # provided block, it will be recorded on the span and re-raised. + # + # @param name [String] Span name + # @param attributes [Hash] Attributes to attach to the span + # @param kind [Aws::Telemetry::SpanKind] Type of Span + # @return [Aws::Telemetry::OTelSpan] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#114 + def in_span(name, attributes: T.unsafe(nil), kind: T.unsafe(nil), &block); end + + # Used when a caller wants to manage the activation/deactivation and + # lifecycle of the Span and its parent manually. + # + # @param name [String] Span name + # @param with_parent [Object] Parent Context + # @param attributes [Hash] Attributes to attach to the span + # @param kind [Aws::Telemetry::SpanKind] Type of Span + # @return [Aws::Telemetry::OTelSpan] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#94 + def start_span(name, with_parent: T.unsafe(nil), attributes: T.unsafe(nil), kind: T.unsafe(nil)); end +end + +# OpenTelemetry-based {TracerProviderBase}, an entry point for +# creating Tracer instances. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#64 +class Aws::Telemetry::OTelTracerProvider < ::Aws::Telemetry::TracerProviderBase + # @return [OTelTracerProvider] a new instance of OTelTracerProvider + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#65 + def initialize; end + + # Returns a Tracer instance. + # + # @param name [optional String] Tracer name + # @return [Aws::Telemetry::OTelTracer] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/otel.rb#74 + def tracer(name = T.unsafe(nil)); end +end + +# Base for `Span` classes. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#78 +class Aws::Telemetry::SpanBase + # Set attribute. + # + # @param key [String] + # @param value [String, Boolean, Numeric, Array] Value must be non-nil and (array of) string, boolean or numeric type. + # Array values must not contain nil elements and all elements must be of + # the same basic type (string, numeric, boolean) + # @raise [NotImplementedError] + # @return [self] returns itself + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#87 + def []=(key, value); end + + # Add attributes. + # + # @param attributes [Hash{String => String, Numeric, Boolean, Array}] Values must be non-nil and (array of) string, + # boolean or numeric type. Array values must not contain nil elements + # and all elements must be of the same basic type (string, numeric, + # boolean) + # @raise [NotImplementedError] + # @return [self] returns itself + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#100 + def add_attributes(attributes); end + + # Add event to a Span. + # + # @param name [String] Name of the event + # @param attributes [Hash{String => String, Numeric, Boolean, Array}] Values must be non-nil and (array of) + # string, boolean or numeric type. Array values must not contain nil + # elements and all elements must be of the same basic type (string, + # numeric, boolean) + # @raise [NotImplementedError] + # @return [self] returns itself + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#113 + def add_event(name, attributes: T.unsafe(nil)); end + + # Finishes the Span. + # + # @param end_timestamp [Time] End timestamp for the span. + # @raise [NotImplementedError] + # @return [self] returns itself + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#130 + def finish(end_timestamp: T.unsafe(nil)); end + + # Record an exception during the execution of this span. Multiple + # exceptions can be recorded on a span. + # + # @param exception [Exception] The exception to be recorded + # @param attributes [Hash{String => String, Numeric, Boolean, Array}] One or more key:value pairs, where the + # keys must be strings and the values may be (array of) string, boolean + # or numeric type. + # @raise [NotImplementedError] + # @return [void] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#143 + def record_exception(exception, attributes: T.unsafe(nil)); end + + # Set attribute. + # + # @param key [String] + # @param value [String, Boolean, Numeric, Array] Value must be non-nil and (array of) string, boolean or numeric type. + # Array values must not contain nil elements and all elements must be of + # the same basic type (string, numeric, boolean) + # @raise [NotImplementedError] + # @return [self] returns itself + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#87 + def set_attribute(key, value); end + + # Sets the Span status. + # + # @param status [Aws::Telemetry::SpanStatus] The new status, which + # overrides the default Span status, which is `OK` + # @raise [NotImplementedError] + # @return [void] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#122 + def status=(status); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/span_kind.rb#5 +module Aws::Telemetry::SpanKind; end + +# Represents a request to some remote service. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/span_kind.rb#13 +Aws::Telemetry::SpanKind::CLIENT = T.let(T.unsafe(nil), Symbol) + +# Represents a child of an asynchronous `PRODUCER` request. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/span_kind.rb#16 +Aws::Telemetry::SpanKind::CONSUMER = T.let(T.unsafe(nil), Symbol) + +# Default. Represents an internal operation within an application. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/span_kind.rb#7 +Aws::Telemetry::SpanKind::INTERNAL = T.let(T.unsafe(nil), Symbol) + +# Represents an asynchronous request. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/span_kind.rb#19 +Aws::Telemetry::SpanKind::PRODUCER = T.let(T.unsafe(nil), Symbol) + +# Represents handling synchronous network requests. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/span_kind.rb#10 +Aws::Telemetry::SpanKind::SERVER = T.let(T.unsafe(nil), Symbol) + +# Represents the status of a finished span. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/span_status.rb#6 +class Aws::Telemetry::SpanStatus + # @return [SpanStatus] a new instance of SpanStatus + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/span_status.rb#38 + def initialize(code, description: T.unsafe(nil)); end + + # @return [Integer] code + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/span_status.rb#44 + def code; end + + # @return [String] description + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/span_status.rb#47 + def description; end + + class << self + # Returns a newly created {SpanStatus} with code, `ERROR` + # and an optional description. + # + # @param description [optional String] + # @return [SpanStatus] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/span_status.rb#33 + def error(description = T.unsafe(nil)); end + + # Returns a newly created {SpanStatus} with code, `OK` + # and an optional description. + # + # @param description [optional String] + # @return [SpanStatus] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/span_status.rb#24 + def ok(description = T.unsafe(nil)); end + + # Returns a newly created {SpanStatus} with code, `UNSET` + # and an optional description. + # + # @param description [optional String] + # @return [SpanStatus] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/span_status.rb#15 + def unset(description = T.unsafe(nil)); end + + private + + def new(*_arg0); end + end +end + +# An error. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/span_status.rb#56 +Aws::Telemetry::SpanStatus::ERROR = T.let(T.unsafe(nil), Integer) + +# The operation completed successfully. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/span_status.rb#50 +Aws::Telemetry::SpanStatus::OK = T.let(T.unsafe(nil), Integer) + +# The default status. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/span_status.rb#53 +Aws::Telemetry::SpanStatus::UNSET = T.let(T.unsafe(nil), Integer) + +# Base for `TelemetryProvider` classes. +# They are used to emit telemetry data. It needs the +# following class implementations to function: +# * {TracerProviderBase} - A provider that returns a tracer +# instance. Then, a tracer will create spans and those +# spans will contain information in that given moment. +# * {ContextManagerBase} - Manages context and used to +# return the current context within a trace. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#13 +class Aws::Telemetry::TelemetryProviderBase + # @param tracer_provider [Aws::Telemetry::TracerBase] A provider + # that returns a tracer instance. + # @param context_manager [Aws::Telemetry::ContextManagerBase] Manages + # context and used to return the current context. + # @return [TelemetryProviderBase] a new instance of TelemetryProviderBase + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#18 + def initialize(tracer_provider: T.unsafe(nil), context_manager: T.unsafe(nil)); end + + # @return [Aws::Telemetry::ContextManagerBase] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#27 + def context_manager; end + + # @return [Aws::Telemetry::TracerProviderBase] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#24 + def tracer_provider; end +end + +# Base for `Tracer` classes. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#42 +class Aws::Telemetry::TracerBase + # Returns the current active span. + # + # @raise [NotImplementedError] + # @return [Aws::Telemetry::SpanBase] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#72 + def current_span; end + + # A helper for the default use-case of extending the current trace + # with a span. + # On exit, the Span that was active before calling this method will + # be reactivated. If an exception occurs during the execution of the + # provided block, it will be recorded on the span and re-raised. + # + # @param name [String] Span name + # @param attributes [Hash] Attributes to attach to the span + # @param kind [Aws::Telemetry::SpanKind] Type of Span + # @raise [NotImplementedError] + # @return [Aws::Telemetry::SpanBase] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#65 + def in_span(name, attributes: T.unsafe(nil), kind: T.unsafe(nil)); end + + # Used when a caller wants to manage the activation/deactivation and + # lifecycle of the Span and its parent manually. + # + # @param name [String] Span name + # @param with_parent [Object] Parent Context + # @param attributes [Hash] Attributes to attach to the span + # @param kind [Aws::Telemetry::SpanKind] Type of Span + # @raise [NotImplementedError] + # @return [Aws::Telemetry::SpanBase] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#51 + def start_span(name, with_parent: T.unsafe(nil), attributes: T.unsafe(nil), kind: T.unsafe(nil)); end +end + +# Base for `TracerProvider` classes. +# +# source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#31 +class Aws::Telemetry::TracerProviderBase + # Returns a Tracer instance. + # + # @param name [String] Tracer name + # @raise [NotImplementedError] + # @return [Aws::Telemetry::TracerBase] + # + # source://aws-sdk-core//lib/aws-sdk-core/telemetry/base.rb#36 + def tracer(name = T.unsafe(nil)); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/token.rb#4 +class Aws::Token + # @param token [String] + # @param expiration [Time] + # @return [Token] a new instance of Token + # + # source://aws-sdk-core//lib/aws-sdk-core/token.rb#8 + def initialize(token, expiration = T.unsafe(nil)); end + + # @return [Time, nil] + # + # source://aws-sdk-core//lib/aws-sdk-core/token.rb#17 + def expiration; end + + # Removing the token from the default inspect string. + # + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/token.rb#26 + def inspect; end + + # @return [Boolean] Returns `true` if token is set + # + # source://aws-sdk-core//lib/aws-sdk-core/token.rb#20 + def set?; end + + # @return [String, nil] + # + # source://aws-sdk-core//lib/aws-sdk-core/token.rb#14 + def token; end +end + +# source://aws-sdk-core//lib/aws-sdk-core/token_provider.rb#4 +module Aws::TokenProvider + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/token_provider.rb#10 + def set?; end + + # @return [Token] + # + # source://aws-sdk-core//lib/aws-sdk-core/token_provider.rb#7 + def token; end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/token_provider_chain.rb#5 +class Aws::TokenProviderChain + # @api private + # @return [TokenProviderChain] a new instance of TokenProviderChain + # + # source://aws-sdk-core//lib/aws-sdk-core/token_provider_chain.rb#6 + def initialize(config = T.unsafe(nil)); end + + # @api private + # @return [TokenProvider, nil] + # + # source://aws-sdk-core//lib/aws-sdk-core/token_provider_chain.rb#11 + def resolve; end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/token_provider_chain.rb#46 + def determine_profile_name(options); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/token_provider_chain.rb#21 + def providers; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/token_provider_chain.rb#37 + def sso_token(options); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/token_provider_chain.rb#28 + def static_profile_sso_token(options); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/type_builder.rb#5 +class Aws::TypeBuilder + # @api private + # @return [TypeBuilder] a new instance of TypeBuilder + # + # source://aws-sdk-core//lib/aws-sdk-core/type_builder.rb#7 + def initialize(svc_module); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/type_builder.rb#11 + def build_type(shape, shapes); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/util.rb#7 +module Aws::Util + class << self + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/util.rb#18 + def copy_hash(hash); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/util.rb#26 + def deep_copy(obj); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/util.rb#10 + def deep_merge(left, right); end + + # @api private + # @param str [String] + # @return [Number] The input as a number + # + # source://aws-sdk-core//lib/aws-sdk-core/util.rb#83 + def deserialize_number(str); end + + # @api private + # @param value [String] + # @return [Time] + # + # source://aws-sdk-core//lib/aws-sdk-core/util.rb#95 + def deserialize_time(value); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/util.rb#49 + def monotonic_milliseconds; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/util.rb#57 + def monotonic_seconds; end + + # @api private + # @param input [Number] + # @return [Number, String] The serialized number + # + # source://aws-sdk-core//lib/aws-sdk-core/util.rb#72 + def serialize_number(input); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/util.rb#61 + def str_2_bool(str); end + end +end + +# source://aws-sdk-core//lib/aws-sdk-core/waiters/errors.rb#4 +module Aws::Waiters; end + +# source://aws-sdk-core//lib/aws-sdk-core/waiters/errors.rb#5 +module Aws::Waiters::Errors; end + +# source://aws-sdk-core//lib/aws-sdk-core/waiters/errors.rb#11 +class Aws::Waiters::Errors::FailureStateError < ::Aws::Waiters::Errors::WaiterFailed + # @return [FailureStateError] a new instance of FailureStateError + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/errors.rb#15 + def initialize(response); end + + # @return [Seahorse::Client::Response] The response that matched + # the failure state. + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/errors.rb#22 + def response; end +end + +# source://aws-sdk-core//lib/aws-sdk-core/waiters/errors.rb#13 +Aws::Waiters::Errors::FailureStateError::MSG = T.let(T.unsafe(nil), String) + +# Raised when attempting to get a waiter by name and the waiter has not +# been defined. +# +# source://aws-sdk-core//lib/aws-sdk-core/waiters/errors.rb#56 +class Aws::Waiters::Errors::NoSuchWaiterError < ::ArgumentError + # @return [NoSuchWaiterError] a new instance of NoSuchWaiterError + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/errors.rb#60 + def initialize(waiter_name, waiter_names); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/waiters/errors.rb#58 +Aws::Waiters::Errors::NoSuchWaiterError::MSG = T.let(T.unsafe(nil), String) + +# source://aws-sdk-core//lib/aws-sdk-core/waiters/errors.rb#26 +class Aws::Waiters::Errors::TooManyAttemptsError < ::Aws::Waiters::Errors::WaiterFailed + # @return [TooManyAttemptsError] a new instance of TooManyAttemptsError + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/errors.rb#30 + def initialize(attempts); end + + # @return [Integer] + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/errors.rb#36 + def attempts; end +end + +# source://aws-sdk-core//lib/aws-sdk-core/waiters/errors.rb#28 +Aws::Waiters::Errors::TooManyAttemptsError::MSG = T.let(T.unsafe(nil), String) + +# source://aws-sdk-core//lib/aws-sdk-core/waiters/errors.rb#40 +class Aws::Waiters::Errors::UnexpectedError < ::Aws::Waiters::Errors::WaiterFailed + # @return [UnexpectedError] a new instance of UnexpectedError + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/errors.rb#44 + def initialize(error); end + + # @return [Exception] The unexpected error. + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/errors.rb#50 + def error; end +end + +# source://aws-sdk-core//lib/aws-sdk-core/waiters/errors.rb#42 +Aws::Waiters::Errors::UnexpectedError::MSG = T.let(T.unsafe(nil), String) + +# Raised when a waiter detects a condition where the waiter can never +# succeed. +# +# source://aws-sdk-core//lib/aws-sdk-core/waiters/errors.rb#9 +class Aws::Waiters::Errors::WaiterFailed < ::StandardError; end + +# Polls a single API operation inspecting the response data and/or error +# for states matching one of its acceptors. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/waiters/poller.rb#9 +class Aws::Waiters::Poller + # @api private + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Poller] a new instance of Poller + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/poller.rb#17 + def initialize(options = T.unsafe(nil)); end + + # Makes an API call, returning the resultant state and the response. + # + # * `:success` - A success state has been matched. + # * `:failure` - A terminate failure state has been matched. + # * `:retry` - The waiter may be retried. + # * `:error` - The waiter encountered an un-expected error. + # + # @api private + # @example A trivial (bad) example of a waiter that polls indefinetly. + # + # loop do + # + # state, resp = poller.call(client:client, params:{}) + # + # case state + # when :success then return true + # when :failure then return false + # when :retry then next + # when :error then raise 'oops' + # end + # + # end + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Array] + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/poller.rb#50 + def call(options = T.unsafe(nil)); end + + # @api private + # @return [Symbol] + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/poller.rb#23 + def operation_name; end + + private + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/poller.rb#70 + def acceptor_matches?(acceptor, response); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/poller.rb#98 + def matches_error?(acceptor, response); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/poller.rb#74 + def matches_path?(acceptor, response); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/poller.rb#82 + def matches_pathAll?(acceptor, response); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/poller.rb#88 + def matches_pathAny?(acceptor, response); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/poller.rb#94 + def matches_status?(acceptor, response); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/poller.rb#112 + def non_empty_array(acceptor, response, &block); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/poller.rb#108 + def path(acceptor); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/poller.rb#62 + def send_request(options); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/waiters/poller.rb#12 +Aws::Waiters::Poller::RAISE_HANDLER = Seahorse::Client::Plugins::RaiseResponseErrors::Handler + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/waiters/waiter.rb#6 +class Aws::Waiters::Waiter + # @api private + # @return [Waiter] a new instance of Waiter + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/waiter.rb#12 + def initialize(options = T.unsafe(nil)); end + + # Register a callback that is invoked before every polling attempt. + # Yields the number of attempts made so far. + # + # waiter.before_attempt do |attempts| + # puts "#{attempts} made, about to make attempt #{attempts + 1}" + # end + # + # Throwing `:success` or `:failure` from the given block will stop + # the waiter and return or raise. You can pass a custom message to the + # throw: + # + # # raises Aws::Waiters::Errors::WaiterFailed + # waiter.before_attempt do |attempts| + # throw :failure, 'custom-error-message' + # end + # + # # cause the waiter to stop polling and return + # waiter.before_attempt do |attempts| + # throw :success + # end + # + # @api private + # @yieldparam attempts [Integer] The number of attempts made. + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/waiter.rb#54 + def before_attempt(&block); end + + # Register a callback that is invoked after an attempt but before + # sleeping. Yields the number of attempts made and the previous response. + # + # waiter.before_wait do |attempts, response| + # puts "#{attempts} made" + # puts response.error.inspect + # puts response.data.inspect + # end + # + # Throwing `:success` or `:failure` from the given block will stop + # the waiter and return or raise. You can pass a custom message to the + # throw: + # + # # raises Aws::Waiters::Errors::WaiterFailed + # waiter.before_attempt do |attempts| + # throw :failure, 'custom-error-message' + # end + # + # # cause the waiter to stop polling and return + # waiter.before_attempt do |attempts| + # throw :success + # end + # + # @api private + # @yieldparam attempts [Integer] The number of attempts already made. + # @yieldparam response [Seahorse::Client::Response] The response from + # the previous polling attempts. + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/waiter.rb#85 + def before_wait(&block); end + + # @api private + # @return [Float] + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/waiter.rb#27 + def delay; end + + # @api private + # @return [Float] + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/waiter.rb#27 + def delay=(_arg0); end + + # @api private + # @return [Float] + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/waiter.rb#27 + def interval; end + + # @api private + # @return [Float] + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/waiter.rb#27 + def interval=(_arg0); end + + # @api private + # @return [Integer] + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/waiter.rb#24 + def max_attempts; end + + # @api private + # @return [Integer] + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/waiter.rb#24 + def max_attempts=(_arg0); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/waiter.rb#21 + def poller; end + + # @api private + # @option options + # @option options + # @param options [Hash] a customizable set of options + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/waiter.rb#91 + def wait(options); end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/waiter.rb#102 + def poll(options); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/waiter.rb#124 + def trigger_before_attempt(attempts); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/waiters/waiter.rb#128 + def trigger_before_wait(attempts, response); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/waiters/waiter.rb#9 +Aws::Waiters::Waiter::RAISE_HANDLER = Seahorse::Client::Plugins::RaiseResponseErrors::Handler + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/xml/builder.rb#6 +module Aws::Xml; end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/builder.rb#7 +class Aws::Xml::Builder + include ::Seahorse::Model::Shapes + + # @return [Builder] a new instance of Builder + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/builder.rb#11 + def initialize(rules, options = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/builder.rb#21 + def serialize(params); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/builder.rb#21 + def to_xml(params); end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/xml/builder.rb#102 + def blob(value); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/builder.rb#52 + def list(name, ref, values); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/builder.rb#67 + def map(name, ref, hash); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/builder.rb#90 + def member(name, ref, value); end + + # The `args` list may contain: + # + # * [] - empty, no value or attributes + # * [value] - inline element, no attributes + # * [value, attributes_hash] - inline element with attributes + # * [attributes_hash] - self closing element with attributes + # + # Pass a block if you want to nest XML nodes inside. When doing this, + # you may *not* pass a value to the `args` list. + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/builder.rb#127 + def node(name, ref, *args, &block); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/builder.rb#134 + def shape_attrs(ref); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/builder.rb#29 + def structure(name, ref, values); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/builder.rb#43 + def structure_attrs(ref, values); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/builder.rb#107 + def timestamp(ref, value); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/builder.rb#151 + def xml_attribute?(ref); end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/xml/default_list.rb#6 +class Aws::Xml::DefaultList < ::Array + # @api private + def nil?; end +end + +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/xml/default_map.rb#6 +class Aws::Xml::DefaultMap < ::Hash + # @api private + def nil?; end +end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/doc_builder.rb#5 +class Aws::Xml::DocBuilder + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [DocBuilder] a new instance of DocBuilder + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/doc_builder.rb#10 + def initialize(options = T.unsafe(nil)); end + + # @overload node + # @overload node + # @overload node + # @return [void] + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/doc_builder.rb#36 + def node(name, *args, &block); end + + # Returns the value of attribute target. + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/doc_builder.rb#21 + def target; end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/xml/doc_builder.rb#78 + def attributes(attr); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/doc_builder.rb#65 + def close_el(name); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/doc_builder.rb#53 + def empty_element(name, attrs); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/doc_builder.rb#69 + def escape(string, text_or_attr); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/doc_builder.rb#88 + def increase_pad(&block); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/doc_builder.rb#57 + def inline_element(name, value, attrs); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/doc_builder.rb#61 + def open_el(name, attrs); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/error_handler.rb#7 +class Aws::Xml::ErrorHandler < ::Aws::ErrorHandler + # source://aws-sdk-core//lib/aws-sdk-core/xml/error_handler.rb#9 + def call(context); end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/xml/error_handler.rb#59 + def apply_error_headers(rule, context, data); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/error_handler.rb#64 + def error_code(body, context); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/error_handler.rb#28 + def error_data(context, body, code); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/error_handler.rb#80 + def error_message(body); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/error_handler.rb#18 + def extract_error(body, context); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/error_handler.rb#48 + def parse_error_data(rule, body); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/error_handler.rb#72 + def remove_prefix(error_code, context); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/error_handler.rb#88 + def request_id(body); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/error_handler.rb#94 + def unescape(str); end +end + +# A SAX-style XML parser that uses a shape context to handle types. +# +# @api private +# +# source://aws-sdk-core//lib/aws-sdk-core/xml/parser.rb#7 +class Aws::Xml::Parser + include ::Seahorse::Model::Shapes + + # @api private + # @param rules [Seahorse::Model::ShapeRef] + # @return [Parser] a new instance of Parser + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser.rb#9 + def initialize(rules, options = T.unsafe(nil)); end + + # Parses the XML document, returning a parsed structure. + # + # If you pass a block, this will yield for XML + # elements that are not modeled in the rules given + # to the constructor. + # + # parser.parse(xml) do |path, value| + # puts "uhandled: #{path.join('/')} - #{value}" + # end + # + # The purpose of the unhandled callback block is to + # allow callers to access values such as the EC2 + # request ID that are part of the XML body but not + # part of the operation result. + # + # @api private + # @param xml [String] An XML document string to parse. + # @param target [Structure] (nil) + # @return [Structure] + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser.rb#32 + def parse(xml, target = T.unsafe(nil), &unhandled_callback); end + + class << self + # @api private + # @return [Class] Returns the default parsing engine. + # One of: + # + # * {OxEngine} + # * {OgaEngine} + # * {LibxmlEngine} + # * {NokogiriEngine} + # * {RexmlEngine} + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser.rb#61 + def engine; end + + # @api private + # @param engine [Symbol, Class] Must be one of the following values: + # + # * :ox + # * :oga + # * :libxml + # * :nokogiri + # * :rexml + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser.rb#49 + def engine=(engine); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser.rb#66 + def set_default_engine; end + + private + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser.rb#79 + def load_engine(name); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser.rb#85 + def try_load_engine(name); end + end +end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#263 +class Aws::Xml::Parser::BlobFrame < ::Aws::Xml::Parser::Frame + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#264 + def result; end +end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#269 +class Aws::Xml::Parser::BooleanFrame < ::Aws::Xml::Parser::Frame + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#270 + def result; end +end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#301 +Aws::Xml::Parser::FRAME_CLASSES = T.let(T.unsafe(nil), Hash) + +# source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#172 +class Aws::Xml::Parser::FlatListFrame < ::Aws::Xml::Parser::Frame + # @return [FlatListFrame] a new instance of FlatListFrame + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#174 + def initialize(xml_name, *args); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#187 + def child_frame(xml_name); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#191 + def consume_child_frame(child); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#179 + def result; end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#183 + def set_text(value); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#275 +class Aws::Xml::Parser::FloatFrame < ::Aws::Xml::Parser::Frame + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#276 + def result; end +end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#9 +class Aws::Xml::Parser::Frame + include ::Seahorse::Model::Shapes + + # @return [Frame] a new instance of Frame + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#40 + def initialize(path, parent, ref, result); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#58 + def child_frame(xml_name); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#62 + def consume_child_frame(child); end + + # Returns the value of attribute parent. + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#48 + def parent; end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#65 + def path; end + + # Returns the value of attribute ref. + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#50 + def ref; end + + # Returns the value of attribute result. + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#52 + def result; end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#54 + def set_text(value); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#74 + def yield_unhandled_value(path, value); end + + class << self + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#15 + def new(path, parent, ref, result = T.unsafe(nil)); end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#27 + def frame_class(ref); end + end +end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#281 +class Aws::Xml::Parser::IntegerFrame < ::Aws::Xml::Parser::Frame + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#282 + def result; end +end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#150 +class Aws::Xml::Parser::ListFrame < ::Aws::Xml::Parser::Frame + # @return [ListFrame] a new instance of ListFrame + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#152 + def initialize(*args); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#158 + def child_frame(xml_name); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#166 + def consume_child_frame(child); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#218 +class Aws::Xml::Parser::MapEntryFrame < ::Aws::Xml::Parser::Frame + # @return [MapEntryFrame] a new instance of MapEntryFrame + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#220 + def initialize(xml_name, *args); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#234 + def child_frame(xml_name); end + + # @return [StringFrame] + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#229 + def key; end + + # @return [Frame] + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#232 + def value; end +end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#197 +class Aws::Xml::Parser::MapFrame < ::Aws::Xml::Parser::Frame + # @return [MapFrame] a new instance of MapFrame + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#199 + def initialize(*args); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#204 + def child_frame(xml_name); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#212 + def consume_child_frame(child); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#246 +class Aws::Xml::Parser::NullFrame < ::Aws::Xml::Parser::Frame + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#251 + def set_text(value); end + + class << self + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#247 + def new(xml_name, parent); end + end +end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/parser/parsing_error.rb#6 +class Aws::Xml::Parser::ParsingError < ::RuntimeError + # @return [ParsingError] a new instance of ParsingError + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/parsing_error.rb#8 + def initialize(msg, line, column); end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/parsing_error.rb#16 + def column; end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/parsing_error.rb#13 + def line; end +end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/parser/rexml_engine.rb#9 +class Aws::Xml::Parser::RexmlEngine + include ::REXML::StreamListener + + # @return [RexmlEngine] a new instance of RexmlEngine + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/rexml_engine.rb#13 + def initialize(stack); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/rexml_engine.rb#18 + def parse(xml); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/rexml_engine.rb#40 + def tag_end(name); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/rexml_engine.rb#28 + def tag_start(name, attrs); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/rexml_engine.rb#36 + def text(value); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/parser/stack.rb#6 +class Aws::Xml::Parser::Stack + # @return [Stack] a new instance of Stack + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/stack.rb#8 + def initialize(ref, result = T.unsafe(nil), &unhandled_callback); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/stack.rb#23 + def attr(name, value); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/stack.rb#52 + def child_frame(name); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/stack.rb#56 + def consume_child_frame(frame); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/stack.rb#39 + def end_element(*args); end + + # @raise [ParsingError] + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/stack.rb#48 + def error(msg, line = T.unsafe(nil), column = T.unsafe(nil)); end + + # Returns the value of attribute frame. + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/stack.rb#15 + def frame; end + + # Returns the value of attribute result. + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/stack.rb#17 + def result; end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/stack.rb#19 + def start_element(name); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/stack.rb#35 + def text(value); end + + # @api private + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/stack.rb#61 + def yield_unhandled_value(path, value); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#287 +class Aws::Xml::Parser::StringFrame < ::Aws::Xml::Parser::Frame + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#288 + def result; end +end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#80 +class Aws::Xml::Parser::StructureFrame < ::Aws::Xml::Parser::Frame + # @return [StructureFrame] a new instance of StructureFrame + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#82 + def initialize(xml_name, parent, ref, result = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#95 + def child_frame(xml_name); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#105 + def consume_child_frame(child); end + + private + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#133 + def apply_default_value(name, ref); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#144 + def flattened_list?(ref); end + + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#140 + def xml_name(ref); end +end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#293 +class Aws::Xml::Parser::TimestampFrame < ::Aws::Xml::Parser::Frame + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#294 + def result; end +end + +# source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#257 +class Aws::Xml::Parser::UnknownMemberFrame < ::Aws::Xml::Parser::Frame + # source://aws-sdk-core//lib/aws-sdk-core/xml/parser/frame.rb#258 + def result; end +end + +class Net::HTTPGenericRequest + include ::Seahorse::Client::NetHttp::Patches::PatchDefaultContentType +end + +# source://aws-sdk-core//lib/seahorse/util.rb#5 +module Seahorse; end + +# source://aws-sdk-core//lib/seahorse/client/block_io.rb#4 +module Seahorse::Client; end + +# source://aws-sdk-core//lib/seahorse/client/async_base.rb#5 +class Seahorse::Client::AsyncBase < ::Seahorse::Client::Base + # @return [AsyncBase] a new instance of AsyncBase + # + # source://aws-sdk-core//lib/seahorse/client/async_base.rb#14 + def initialize(plugins, options); end + + # Closes the underlying HTTP2 Connection for the client + # + # @return [Symbol] Returns the status of the connection (:closed) + # + # source://aws-sdk-core//lib/seahorse/client/async_base.rb#31 + def close_connection; end + + # @return [H2::Connection] + # + # source://aws-sdk-core//lib/seahorse/client/async_base.rb#21 + def connection; end + + # source://aws-sdk-core//lib/seahorse/client/async_base.rb#45 + def connection_errors; end + + # Creates a new HTTP2 Connection for the client + # + # @return [Seahorse::Client::H2::Connection] + # + # source://aws-sdk-core//lib/seahorse/client/async_base.rb#37 + def new_connection; end + + # @return [Array] Returns a list of valid async request + # operation names. + # + # source://aws-sdk-core//lib/seahorse/client/async_base.rb#25 + def operation_names; end +end + +# source://aws-sdk-core//lib/seahorse/client/async_response.rb#5 +class Seahorse::Client::AsyncResponse + # @return [AsyncResponse] a new instance of AsyncResponse + # + # source://aws-sdk-core//lib/seahorse/client/async_response.rb#7 + def initialize(options = T.unsafe(nil)); end + + # @return [RequestContext] + # + # source://aws-sdk-core//lib/seahorse/client/async_response.rb#16 + def context; end + + # @return [StandardError, nil] + # + # source://aws-sdk-core//lib/seahorse/client/async_response.rb#21 + def error; end + + # source://aws-sdk-core//lib/seahorse/client/async_response.rb#69 + def join!; end + + # @overload on + # @overload on + # @return [self] + # + # source://aws-sdk-core//lib/seahorse/client/async_response.rb#35 + def on(range, &block); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/async_response.rb#41 + def on_complete(&block); end + + # @return [Boolean] Returns `true` if the response is complete with + # no error. + # + # source://aws-sdk-core//lib/seahorse/client/async_response.rb#48 + def successful?; end + + # source://aws-sdk-core//lib/seahorse/client/async_response.rb#52 + def wait; end +end + +# source://aws-sdk-core//lib/seahorse/client/base.rb#5 +class Seahorse::Client::Base + include ::Seahorse::Client::HandlerBuilder + + # @api private + # @return [Base] a new instance of Base + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#20 + def initialize(plugins, options); end + + # Builds and returns a {Request} for the named operation. The request + # will not have been sent. + # + # @param operation_name [Symbol, String] + # @return [Request] + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#36 + def build_request(operation_name, params = T.unsafe(nil)); end + + # @return [Configuration] + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#27 + def config; end + + # @return [HandlerList] + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#30 + def handlers; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#43 + def inspect; end + + # @return [Array] Returns a list of valid request operation + # names. These are valid arguments to {#build_request} and are also + # valid methods. + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#50 + def operation_names; end + + private + + # Gives each plugin the opportunity to modify this client. + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#79 + def after_initialize(plugins); end + + # Constructs a {Configuration} object and gives each plugin the + # opportunity to register options with default values. + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#58 + def build_config(plugins, options); end + + # Gives each plugin the opportunity to register handlers for this client. + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#69 + def build_handler_list(plugins); end + + # @return [RequestContext] + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#86 + def context_for(operation_name, params); end + + class << self + # Registers a plugin with this client. + # + # @example Register a plugin + # + # ClientClass.add_plugin(PluginClass) + # @example Register a plugin by name + # + # ClientClass.add_plugin('gem-name.PluginClass') + # @example Register a plugin with an object + # + # plugin = MyPluginClass.new(options) + # ClientClass.add_plugin(plugin) + # @param plugin [Class, Symbol, String, Object] + # @return [void] + # @see .clear_plugins + # @see .set_plugins + # @see .remove_plugin + # @see .plugins + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#127 + def add_plugin(plugin); end + + # @return [Model::Api] + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#171 + def api; end + + # @return [void] + # @see .set_plugins + # @see .add_plugin + # @see .remove_plugin + # @see .plugins + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#145 + def clear_plugins; end + + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Class] + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#187 + def define(options = T.unsafe(nil)); end + + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Class] + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#187 + def extend(options = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/seahorse/client/base.rb#97 + def new(options = T.unsafe(nil)); end + + # Returns the list of registered plugins for this Client. Plugins are + # inherited from the client super class when the client is defined. + # + # @return [Array] + # @see .clear_plugins + # @see .set_plugins + # @see .add_plugin + # @see .remove_plugin + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#166 + def plugins; end + + # @return [void] + # @see .clear_plugins + # @see .set_plugins + # @see .add_plugin + # @see .plugins + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#136 + def remove_plugin(plugin); end + + # @param api [Model::Api] + # @return [Model::Api] + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#177 + def set_api(api); end + + # @param plugins [Array] + # @return [void] + # @see .clear_plugins + # @see .add_plugin + # @see .remove_plugin + # @see .plugins + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#155 + def set_plugins(plugins); end + + private + + # source://aws-sdk-core//lib/seahorse/client/base.rb#215 + def before_initialize(plugins, options); end + + # source://aws-sdk-core//lib/seahorse/client/base.rb#211 + def build_plugins(plugins); end + + # source://aws-sdk-core//lib/seahorse/client/base.rb#199 + def define_operation_methods; end + + # @private + # + # source://aws-sdk-core//lib/seahorse/client/base.rb#231 + def inherited(subclass); end + end +end + +# source://aws-sdk-core//lib/seahorse/client/block_io.rb#5 +class Seahorse::Client::BlockIO + # @return [BlockIO] a new instance of BlockIO + # + # source://aws-sdk-core//lib/seahorse/client/block_io.rb#7 + def initialize(headers = T.unsafe(nil), &block); end + + # @param bytes [Integer] (nil) + # @param output_buffer [String] (nil) + # @return [String, nil] + # + # source://aws-sdk-core//lib/seahorse/client/block_io.rb#24 + def read(bytes = T.unsafe(nil), output_buffer = T.unsafe(nil)); end + + # @return [Integer] + # + # source://aws-sdk-core//lib/seahorse/client/block_io.rb#30 + def size; end + + # @param chunk [String] + # @return [Integer] + # + # source://aws-sdk-core//lib/seahorse/client/block_io.rb#15 + def write(chunk); end +end + +# Configuration is used to define possible configuration options and +# then build read-only structures with user-supplied data. +# +# ## Adding Configuration Options +# +# Add configuration options with optional default values. These are used +# when building configuration objects. +# +# configuration = Configuration.new +# +# configuration.add_option(:max_retries, 3) +# configuration.add_option(:use_ssl, true) +# +# cfg = configuration.build! +# #=> # +# +# ## Building Configuration Objects +# +# Calling {#build!} on a {Configuration} object causes it to return +# a read-only (frozen) struct. Options passed to {#build!} are merged +# on top of any default options. +# +# configuration = Configuration.new +# configuration.add_option(:color, 'red') +# +# # default +# cfg1 = configuration.build! +# cfg1.color #=> 'red' +# +# # supplied color +# cfg2 = configuration.build!(color: 'blue') +# cfg2.color #=> 'blue' +# +# ## Accepted Options +# +# If you try to {#build!} a {Configuration} object with an unknown +# option, an `ArgumentError` is raised. +# +# configuration = Configuration.new +# configuration.add_option(:color) +# configuration.add_option(:size) +# configuration.add_option(:category) +# +# configuration.build!(price: 100) +# #=> raises an ArgumentError, :price was not added as an option +# +# source://aws-sdk-core//lib/seahorse/client/configuration.rb#54 +class Seahorse::Client::Configuration + # @api private + # @return [Configuration] a new instance of Configuration + # + # source://aws-sdk-core//lib/seahorse/client/configuration.rb#77 + def initialize; end + + # Adds a getter method that returns the named option or a default + # value. Default values can be passed as a static positional argument + # or via a block. + # + # # defaults to nil + # configuration.add_option(:name) + # + # # with a string default + # configuration.add_option(:name, 'John Doe') + # + # # with a dynamic default value, evaluated once when calling #build! + # configuration.add_option(:name, 'John Doe') + # configuration.add_option(:username) do |config| + # config.name.gsub(/\W+/, '').downcase + # end + # cfg = configuration.build! + # cfg.name #=> 'John Doe' + # cfg.username #=> 'johndoe' + # + # @param name [Symbol] The name of the configuration option. This will + # be used to define a getter by the same name. + # @param default The default value for this option. You can specify + # a default by passing a value, a `Proc` object or a block argument. + # Procs and blocks are evaluated when {#build!} is called. + # @return [self] + # + # source://aws-sdk-core//lib/seahorse/client/configuration.rb#108 + def add_option(name, default = T.unsafe(nil), &block); end + + # Constructs and returns a configuration structure. + # Values not present in `options` will default to those supplied via + # add option. + # + # configuration = Configuration.new + # configuration.add_option(:enabled, true) + # + # cfg1 = configuration.build! + # cfg1.enabled #=> true + # + # cfg2 = configuration.build!(enabled: false) + # cfg2.enabled #=> false + # + # If you pass in options to `#build!` that have not been defined, + # then an `ArgumentError` will be raised. + # + # configuration = Configuration.new + # configuration.add_option(:enabled, true) + # + # # oops, spelling error for :enabled + # cfg = configuration.build!(enabld: true) + # #=> raises ArgumentError + # + # The object returned is a frozen `Struct`. + # + # configuration = Configuration.new + # configuration.add_option(:enabled, true) + # + # cfg = configuration.build! + # cfg.enabled #=> true + # cfg[:enabled] #=> true + # cfg['enabled'] #=> true + # + # @param options [Hash] ({}) A hash of configuration options. + # @return [Struct] Returns a frozen configuration `Struct`. + # + # source://aws-sdk-core//lib/seahorse/client/configuration.rb#149 + def build!(options = T.unsafe(nil)); end + + private + + # source://aws-sdk-core//lib/seahorse/client/configuration.rb#173 + def apply_defaults(struct, options); end + + # source://aws-sdk-core//lib/seahorse/client/configuration.rb#162 + def apply_options(struct, options); end + + # source://aws-sdk-core//lib/seahorse/client/configuration.rb#158 + def empty_struct; end +end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/configuration.rb#183 +class Seahorse::Client::Configuration::DefaultResolver + # @api private + # @return [DefaultResolver] a new instance of DefaultResolver + # + # source://aws-sdk-core//lib/seahorse/client/configuration.rb#185 + def initialize(struct); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/configuration.rb#198 + def override_config(k, v); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/configuration.rb#190 + def resolve; end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/client/configuration.rb#194 + def respond_to?(method_name, *args); end + + private + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/configuration.rb#222 + def method_missing(method_name, *args); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/configuration.rb#213 + def resolve_defaults(opt_name, defaults); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/configuration.rb#204 + def value_at(opt_name); end +end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/configuration.rb#57 +class Seahorse::Client::Configuration::Defaults < ::Array + # source://aws-sdk-core//lib/seahorse/client/configuration.rb#58 + def each(&block); end +end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/configuration.rb#64 +class Seahorse::Client::Configuration::DynamicDefault + # @api private + # @return [DynamicDefault] a new instance of DynamicDefault + # + # source://aws-sdk-core//lib/seahorse/client/configuration.rb#67 + def initialize(block = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/configuration.rb#65 + def block; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/configuration.rb#65 + def block=(_arg0); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/configuration.rb#71 + def call(*args); end +end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#12 +module Seahorse::Client::H2; end + +# H2 Connection build on top of `http/2` gem +# (requires Ruby >= 2.1) +# with TLS layer plus ALPN, requires: +# Ruby >= 2.3 and OpenSSL >= 1.0.2 +# +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#18 +class Seahorse::Client::H2::Connection + # @api private + # @return [Connection] a new instance of Connection + # + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#38 + def initialize(options = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#141 + def close!; end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#152 + def closed?; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#75 + def connect(endpoint); end + + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#58 + def connection_read_timeout; end + + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#58 + def connection_timeout; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#156 + def debug_output(msg, type = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#58 + def enable_alpn; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#63 + def errors; end + + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#58 + def http_wire_trace; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#65 + def input_signal_thread; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#65 + def input_signal_thread=(_arg0); end + + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#58 + def logger; end + + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#58 + def max_concurrent_streams; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#67 + def new_stream; end + + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#58 + def ssl_ca_bundle; end + + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#58 + def ssl_ca_directory; end + + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#58 + def ssl_ca_store; end + + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#58 + def ssl_verify_peer; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#58 + def ssl_verify_peer?; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#105 + def start(stream); end + + private + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#169 + def _debug_entry(str); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#238 + def _default_ca_bundle; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#243 + def _default_ca_directory; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#205 + def _nonblocking_connect(tcp, addr); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#174 + def _register_h2_callbacks; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#195 + def _tcp_socket(endpoint); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#221 + def _tls_context; end +end + +# chunk read size at socket +# +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#34 +Seahorse::Client::H2::Connection::CHUNKSIZE = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#20 +Seahorse::Client::H2::Connection::OPTIONS = T.let(T.unsafe(nil), Hash) + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/h2/connection.rb#36 +Seahorse::Client::H2::Connection::SOCKET_FAMILY = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/h2/handler.rb#22 +Seahorse::Client::H2::DNS_ERROR_MESSAGES = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/h2/handler.rb#27 +class Seahorse::Client::H2::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/handler.rb#29 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/handler.rb#35 + def _call(context); end + + # H2 pseudo headers + # https://http2.github.io/http2-spec/#rfc.section.8.1.2.3 + # + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/handler.rb#131 + def _h2_headers(req); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/handler.rb#89 + def _register_callbacks(resp, stream, stream_mutex, close_condition, sync_queue); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/handler.rb#119 + def _send_initial_data(req, stream); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/handler.rb#110 + def _send_initial_headers(req, stream); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/handler.rb#144 + def error_message(req, error); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/h2/handler.rb#153 + def span_wrapper(context, &block); end +end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/h2/handler.rb#14 +Seahorse::Client::H2::NETWORK_ERRORS = T.let(T.unsafe(nil), Array) + +# source://aws-sdk-core//lib/seahorse/client/handler.rb#5 +class Seahorse::Client::Handler + # @param handler [Handler] (nil) The next handler in the stack that + # should be called from within the {#call} method. This value + # must only be nil for send handlers. + # @return [Handler] a new instance of Handler + # + # source://aws-sdk-core//lib/seahorse/client/handler.rb#10 + def initialize(handler = T.unsafe(nil)); end + + # @param context [RequestContext] + # @return [Seahorse::Response] + # + # source://aws-sdk-core//lib/seahorse/client/handler.rb#19 + def call(context); end + + # @return [Handler, nil] + # + # source://aws-sdk-core//lib/seahorse/client/handler.rb#15 + def handler; end + + # @return [Handler, nil] + # + # source://aws-sdk-core//lib/seahorse/client/handler.rb#15 + def handler=(_arg0); end + + # source://aws-sdk-core//lib/seahorse/client/handler.rb#23 + def inspect; end +end + +# This module provides the ability to add handlers to a class or +# module. The including class or extending module must respond to +# `#handlers`, returning a {HandlerList}. +# +# source://aws-sdk-core//lib/seahorse/client/handler_builder.rb#9 +module Seahorse::Client::HandlerBuilder + # source://aws-sdk-core//lib/seahorse/client/handler_builder.rb#26 + def handle(*args, &block); end + + # source://aws-sdk-core//lib/seahorse/client/handler_builder.rb#11 + def handle_request(*args, &block); end + + # source://aws-sdk-core//lib/seahorse/client/handler_builder.rb#18 + def handle_response(*args, &block); end + + # source://aws-sdk-core//lib/seahorse/client/handler_builder.rb#26 + def handler(*args, &block); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/handler_builder.rb#34 + def handler_for(name = T.unsafe(nil), &block); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/handler_builder.rb#43 + def new_handler(block); end +end + +# source://aws-sdk-core//lib/seahorse/client/handler_list.rb#8 +class Seahorse::Client::HandlerList + include ::Enumerable + + # @api private + # @return [HandlerList] a new instance of HandlerList + # + # source://aws-sdk-core//lib/seahorse/client/handler_list.rb#13 + def initialize(options = T.unsafe(nil)); end + + # Registers a handler. Handlers are used to build a handler stack. + # Handlers default to the `:build` step with default priority of 50. + # The step and priority determine where in the stack a handler + # will be. + # + # ## Handler Stack Ordering + # + # A handler stack is built from the inside-out. The stack is + # seeded with the send handler. Handlers are constructed recursively + # in reverse step and priority order so that the highest priority + # handler is on the outside. + # + # By constructing the stack from the inside-out, this ensures + # that the validate handlers will be called first and the sign handlers + # will be called just before the final and only send handler is called. + # + # ## Steps + # + # Handlers are ordered first by step. These steps represent the + # life-cycle of a request. Valid steps are: + # + # * `:initialize` + # * `:validate` + # * `:build` + # * `:sign` + # * `:send` + # + # Many handlers can be added to the same step, except for `:send`. + # There can be only one `:send` handler. Adding an additional + # `:send` handler replaces the previous one. + # + # ## Priorities + # + # Handlers within a single step are executed in priority order. The + # higher the priority, the earlier in the stack the handler will + # be called. + # + # * Handler priority is an integer between 0 and 99, inclusively. + # * Handler priority defaults to 50. + # * When multiple handlers are added to the same step with the same + # priority, the last one added will have the highest priority and + # the first one added will have the lowest priority. + # + # @note There can be only one `:send` handler. Adding an additional + # send handler replaces the previous. + # @option options + # @option options + # @option options + # @param handler_class [Class] This should be a subclass + # of {Handler}. + # @param options [Hash] a customizable set of options + # @raise [InvalidStepError] + # @raise [InvalidPriorityError] + # @return [Class] Returns the handler class that was added. + # + # source://aws-sdk-core//lib/seahorse/client/handler_list.rb#105 + def add(handler_class, options = T.unsafe(nil)); end + + # Copies handlers from the `source_list` onto the current handler list. + # If a block is given, only the entries that return a `true` value + # from the block will be copied. + # + # @param source_list [HandlerList] + # @return [void] + # + # source://aws-sdk-core//lib/seahorse/client/handler_list.rb#129 + def copy_from(source_list, &block); end + + # Yields the handlers in stack order, which is reverse priority. + # + # source://aws-sdk-core//lib/seahorse/client/handler_list.rb#151 + def each(&block); end + + # @return [Array] + # + # source://aws-sdk-core//lib/seahorse/client/handler_list.rb#22 + def entries; end + + # Returns a handler list for the given operation. The returned + # will have the operation specific handlers merged with the common + # handlers. + # + # @param operation [String] The name of an operation. + # @return [HandlerList] + # + # source://aws-sdk-core//lib/seahorse/client/handler_list.rb#146 + def for(operation); end + + # @param handler_class [Class] + # + # source://aws-sdk-core//lib/seahorse/client/handler_list.rb#118 + def remove(handler_class); end + + # Constructs the handlers recursively, building a handler stack. + # The `:send` handler will be at the top of the stack and the + # `:validate` handlers will be at the bottom. + # + # @return [Handler] + # + # source://aws-sdk-core//lib/seahorse/client/handler_list.rb#161 + def to_stack; end + + private + + # source://aws-sdk-core//lib/seahorse/client/handler_list.rb#167 + def add_entries(entries); end + + # source://aws-sdk-core//lib/seahorse/client/handler_list.rb#173 + def add_entry(entry); end + + # source://aws-sdk-core//lib/seahorse/client/handler_list.rb#178 + def filter(operation); end + + # source://aws-sdk-core//lib/seahorse/client/handler_list.rb#189 + def next_index; end +end + +# A container for an un-constructed handler. A handler entry has the +# handler class, and information about handler priority/order. +# +# This class is an implementation detail of the {HandlerList} class. +# Do not rely on public interfaces of this class. +# +# source://aws-sdk-core//lib/seahorse/client/handler_list_entry.rb#11 +class Seahorse::Client::HandlerListEntry + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [HandlerListEntry] a new instance of HandlerListEntry + # + # source://aws-sdk-core//lib/seahorse/client/handler_list_entry.rb#28 + def initialize(options); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/handler_list_entry.rb#62 + def <=>(other); end + + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [HandlerListEntry] + # + # source://aws-sdk-core//lib/seahorse/client/handler_list_entry.rb#72 + def copy(options = T.unsafe(nil)); end + + # @return [Handler, Class] Returns the handler. This may + # be a constructed handler object or a handler class. + # + # source://aws-sdk-core//lib/seahorse/client/handler_list_entry.rb#41 + def handler_class; end + + # @return [Integer] The insertion order/position. This is used to + # determine sort order when two entries have the same priority. + # Entries inserted later (with a higher inserted value) have a + # lower priority. + # + # source://aws-sdk-core//lib/seahorse/client/handler_list_entry.rb#47 + def inserted; end + + # @return [Set] + # + # source://aws-sdk-core//lib/seahorse/client/handler_list_entry.rb#56 + def operations; end + + # @return [Integer] + # + # source://aws-sdk-core//lib/seahorse/client/handler_list_entry.rb#53 + def priority; end + + # @return [Symbol] + # + # source://aws-sdk-core//lib/seahorse/client/handler_list_entry.rb#50 + def step; end + + # @return [Integer] + # + # source://aws-sdk-core//lib/seahorse/client/handler_list_entry.rb#59 + def weight; end + + private + + # source://aws-sdk-core//lib/seahorse/client/handler_list_entry.rb#106 + def compute_weight; end + + # source://aws-sdk-core//lib/seahorse/client/handler_list_entry.rb#78 + def option(name, options); end + + # source://aws-sdk-core//lib/seahorse/client/handler_list_entry.rb#97 + def set_priority(priority); end + + # source://aws-sdk-core//lib/seahorse/client/handler_list_entry.rb#87 + def set_step(step); end +end + +# source://aws-sdk-core//lib/seahorse/client/handler_list_entry.rb#13 +Seahorse::Client::HandlerListEntry::STEPS = T.let(T.unsafe(nil), Hash) + +# source://aws-sdk-core//lib/seahorse/client/http/headers.rb#5 +module Seahorse::Client::Http; end + +# Rasied when trying to use an closed connection +# +# source://aws-sdk-core//lib/seahorse/client/networking_error.rb#43 +class Seahorse::Client::Http2ConnectionClosedError < ::StandardError; end + +# Raised when sending initial headers and data failed +# for event stream requests over Http2 +# +# source://aws-sdk-core//lib/seahorse/client/networking_error.rb#19 +class Seahorse::Client::Http2InitialRequestError < ::StandardError + # @return [Http2InitialRequestError] a new instance of Http2InitialRequestError + # + # source://aws-sdk-core//lib/seahorse/client/networking_error.rb#21 + def initialize(error); end + + # @return [HTTP2::Error] + # + # source://aws-sdk-core//lib/seahorse/client/networking_error.rb#26 + def original_error; end +end + +# Raised when connection failed to initialize a new stream +# +# source://aws-sdk-core//lib/seahorse/client/networking_error.rb#31 +class Seahorse::Client::Http2StreamInitializeError < ::StandardError + # @return [Http2StreamInitializeError] a new instance of Http2StreamInitializeError + # + # source://aws-sdk-core//lib/seahorse/client/networking_error.rb#33 + def initialize(error); end + + # @return [HTTP2::Error] + # + # source://aws-sdk-core//lib/seahorse/client/networking_error.rb#38 + def original_error; end +end + +# source://aws-sdk-core//lib/seahorse/client/http/async_response.rb#6 +class Seahorse::Client::Http::AsyncResponse < ::Seahorse::Client::Http::Response + # @return [AsyncResponse] a new instance of AsyncResponse + # + # source://aws-sdk-core//lib/seahorse/client/http/async_response.rb#8 + def initialize(options = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/seahorse/client/http/async_response.rb#24 + def signal_done(options = T.unsafe(nil)); end + + # source://aws-sdk-core//lib/seahorse/client/http/async_response.rb#12 + def signal_headers(headers); end +end + +# Provides a Hash-like interface for HTTP headers. Header names +# are treated indifferently as lower-cased strings. Header values +# are cast to strings. +# +# headers = Http::Headers.new +# headers['Content-Length'] = 100 +# headers[:Authorization] = 'Abc' +# +# headers.keys +# #=> ['content-length', 'authorization'] +# +# headers.values +# #=> ['100', 'Abc'] +# +# You can get the header values as a vanilla hash by calling {#to_h}: +# +# headers.to_h +# #=> { 'content-length' => '100', 'authorization' => 'Abc' } +# +# source://aws-sdk-core//lib/seahorse/client/http/headers.rb#26 +class Seahorse::Client::Http::Headers + include ::Enumerable + + # @api private + # @return [Headers] a new instance of Headers + # + # source://aws-sdk-core//lib/seahorse/client/http/headers.rb#31 + def initialize(headers = T.unsafe(nil)); end + + # @param key [String] + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/client/http/headers.rb#40 + def [](key); end + + # @param key [String] + # @param value [String] + # + # source://aws-sdk-core//lib/seahorse/client/http/headers.rb#46 + def []=(key, value); end + + # source://aws-sdk-core//lib/seahorse/client/http/headers.rb#64 + def clear; end + + # @param key [String] + # + # source://aws-sdk-core//lib/seahorse/client/http/headers.rb#60 + def delete(key); end + + # @return [nil] + # @yield [key, value] + # @yieldparam key [String] + # @yieldparam value [String] + # + # source://aws-sdk-core//lib/seahorse/client/http/headers.rb#87 + def each(&block); end + + # @return [nil] + # @yield [key, value] + # @yieldparam key [String] + # @yieldparam value [String] + # + # source://aws-sdk-core//lib/seahorse/client/http/headers.rb#87 + def each_pair(&block); end + + # @return [Boolean] Returns `true` if the header is set. + # + # source://aws-sdk-core//lib/seahorse/client/http/headers.rb#100 + def has_key?(key); end + + # @return [Boolean] Returns `true` if the header is set. + # + # source://aws-sdk-core//lib/seahorse/client/http/headers.rb#100 + def include?(key); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/http/headers.rb#113 + def inspect; end + + # @return [Boolean] Returns `true` if the header is set. + # + # source://aws-sdk-core//lib/seahorse/client/http/headers.rb#100 + def key?(key); end + + # @return [Array] + # + # source://aws-sdk-core//lib/seahorse/client/http/headers.rb#69 + def keys; end + + # @return [Hash] + # + # source://aws-sdk-core//lib/seahorse/client/http/headers.rb#107 + def to_h; end + + # @return [Hash] + # + # source://aws-sdk-core//lib/seahorse/client/http/headers.rb#107 + def to_hash; end + + # @param headers [Hash] + # @return [Headers] + # + # source://aws-sdk-core//lib/seahorse/client/http/headers.rb#52 + def update(headers); end + + # @return [Array] + # + # source://aws-sdk-core//lib/seahorse/client/http/headers.rb#74 + def values; end + + # @return [Array] + # + # source://aws-sdk-core//lib/seahorse/client/http/headers.rb#79 + def values_at(*keys); end +end + +# source://aws-sdk-core//lib/seahorse/client/http/request.rb#9 +class Seahorse::Client::Http::Request + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Request] a new instance of Request + # + # source://aws-sdk-core//lib/seahorse/client/http/request.rb#15 + def initialize(options = T.unsafe(nil)); end + + # @return [IO] + # + # source://aws-sdk-core//lib/seahorse/client/http/request.rb#46 + def body; end + + # @param io [#read, #size, #rewind] + # + # source://aws-sdk-core//lib/seahorse/client/http/request.rb#59 + def body=(io); end + + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/client/http/request.rb#51 + def body_contents; end + + # @return [URI::HTTP, URI::HTTPS, nil] + # + # source://aws-sdk-core//lib/seahorse/client/http/request.rb#29 + def endpoint; end + + # @param endpoint [String, URI::HTTP, URI::HTTPS, nil] + # + # source://aws-sdk-core//lib/seahorse/client/http/request.rb#34 + def endpoint=(endpoint); end + + # @return [Headers] The hash of request headers. + # + # source://aws-sdk-core//lib/seahorse/client/http/request.rb#26 + def headers; end + + # @return [Headers] The hash of request headers. + # + # source://aws-sdk-core//lib/seahorse/client/http/request.rb#26 + def headers=(_arg0); end + + # @return [String] The HTTP request method, e.g. `GET`, `PUT`, etc. + # + # source://aws-sdk-core//lib/seahorse/client/http/request.rb#23 + def http_method; end + + # @return [String] The HTTP request method, e.g. `GET`, `PUT`, etc. + # + # source://aws-sdk-core//lib/seahorse/client/http/request.rb#23 + def http_method=(_arg0); end +end + +# source://aws-sdk-core//lib/seahorse/client/http/response.rb#6 +class Seahorse::Client::Http::Response + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Response] a new instance of Response + # + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#11 + def initialize(options = T.unsafe(nil)); end + + # @return [IO] + # + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#32 + def body; end + + # @param io [#read, #size, #rewind] + # + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#37 + def body=(io); end + + # @return [String|Array] + # + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#46 + def body_contents; end + + # @return [StandardError, nil] + # + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#29 + def error; end + + # @return [Headers] + # + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#26 + def headers; end + + # @return [Headers] + # + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#26 + def headers=(_arg0); end + + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#130 + def on_data(&callback); end + + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#134 + def on_done(status_code_range = T.unsafe(nil), &callback); end + + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#151 + def on_error(&callback); end + + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#126 + def on_headers(status_code_range = T.unsafe(nil), &block); end + + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#143 + def on_success(status_code_range = T.unsafe(nil), &callback); end + + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#159 + def reset; end + + # @param chunk [string] + # + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#67 + def signal_data(chunk); end + + # Completes the http response. + # + # @example Completing the response in a single call + # + # http_response.signal_done( + # status_code: 200, + # headers: {}, + # body: '' + # ) + # @example Complete the response in parts + # + # # signal headers straight-way + # http_response.signal_headers(200, {}) + # + # # signal data as it is received from the socket + # http_response.signal_data("...") + # http_response.signal_data("...") + # http_response.signal_data("...") + # + # # signal done once the body data is all written + # http_response.signal_done + # @overload signal_done + # @overload signal_done + # + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#104 + def signal_done(options = T.unsafe(nil)); end + + # @param networking_error [StandardError] + # + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#121 + def signal_error(networking_error); end + + # @param status_code [Integer] + # @param headers [Hash] + # + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#60 + def signal_headers(status_code, headers); end + + # @return [Integer] Returns `0` if the request failed to generate + # any response. + # + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#23 + def status_code; end + + # @return [Integer] Returns `0` if the request failed to generate + # any response. + # + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#23 + def status_code=(_arg0); end + + private + + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#181 + def emit(event_name, *args); end + + # source://aws-sdk-core//lib/seahorse/client/http/response.rb#168 + def listener(range, callback); end +end + +# @api private +# @deprecated Use Aws::Logging instead. +# +# source://aws-sdk-core//lib/seahorse/client/logging/handler.rb#7 +module Seahorse::Client::Logging; end + +# A log formatter receives a {Response} object and return +# a log message as a string. When you construct a {Formatter}, you provide +# a pattern string with substitutions. +# +# pattern = ':operation :http_response_status_code :time' +# formatter = Seahorse::Client::Logging::Formatter.new(pattern) +# formatter.format(response) +# #=> 'get_bucket 200 0.0352' +# +# # Canned Formatters +# +# Instead of providing your own pattern, you can choose a canned log +# formatter. +# +# * {Formatter.default} +# * {Formatter.colored} +# * {Formatter.short} +# +# # Pattern Substitutions +# +# You can put any of these placeholders into you pattern. +# +# * `:client_class` - The name of the client class. +# +# * `:operation` - The name of the client request method. +# +# * `:request_params` - The user provided request parameters. Long +# strings are truncated/summarized if they exceed the +# {#max_string_size}. Other objects are inspected. +# +# * `:time` - The total time in seconds spent on the +# request. This includes client side time spent building +# the request and parsing the response. +# +# * `:retries` - The number of times a client request was retried. +# +# * `:http_request_method` - The http request verb, e.g., `POST`, +# `PUT`, `GET`, etc. +# +# * `:http_request_endpoint` - The request endpoint. This includes +# the scheme, host and port, but not the path. +# +# * `:http_request_scheme` - This is replaced by `http` or `https`. +# +# * `:http_request_host` - The host name of the http request +# endpoint (e.g. 's3.amazon.com'). +# +# * `:http_request_port` - The port number (e.g. '443' or '80'). +# +# * `:http_request_headers` - The http request headers, inspected. +# +# * `:http_request_body` - The http request payload. +# +# * `:http_response_status_code` - The http response status +# code, e.g., `200`, `404`, `500`, etc. +# +# * `:http_response_headers` - The http response headers, inspected. +# +# * `:http_response_body` - The http response body contents. +# +# * `:error_class` +# +# * `:error_message` +# +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#75 +class Seahorse::Client::Logging::Formatter + # @api private + # @option options + # @param pattern [String] The log format pattern should be a string + # and may contain substitutions. + # @param options [Hash] a customizable set of options + # @return [Formatter] a new instance of Formatter + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#84 + def initialize(pattern, options = T.unsafe(nil)); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#104 + def ==(other); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#104 + def eql?(other); end + + # Given a {Response}, this will format a log message and return it + # as a string. + # + # @api private + # @param response [Response] + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#99 + def format(response); end + + # @api private + # @return [Integer] + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#93 + def max_string_size; end + + # @api private + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#90 + def pattern; end + + private + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#119 + def _client_class(response); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#185 + def _error_class(response); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#189 + def _error_message(response); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#165 + def _http_request_body(response); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#141 + def _http_request_endpoint(response); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#161 + def _http_request_headers(response); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#149 + def _http_request_host(response); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#157 + def _http_request_method(response); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#153 + def _http_request_port(response); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#145 + def _http_request_scheme(response); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#177 + def _http_response_body(response); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#173 + def _http_response_headers(response); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#169 + def _http_response_status_code(response); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#123 + def _operation(response); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#127 + def _request_params(response); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#137 + def _retries(response); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#131 + def _time(response); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#111 + def method_missing(method_name, *args); end + + # @api private + # @param array [Array] + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#247 + def summarize_array(array); end + + # Given the path to a file on disk, this method returns a summarized + # inspecton string that includes the file size. + # + # @api private + # @param path [String] + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#241 + def summarize_file(path); end + + # @api private + # @param hash [Hash] + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#195 + def summarize_hash(hash); end + + # @api private + # @param str [String] + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#228 + def summarize_string(str); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#207 + def summarize_string_hash(hash); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#201 + def summarize_symbol_hash(hash); end + + # @api private + # @param value [Object] + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#215 + def summarize_value(value); end + + class << self + # The default log format with ANSI colors. + # + # @api private + # @example A sample of the colored format (sans the ansi colors). + # + # [ClientClass 200 0.580066 0 retries] list_objects(:bucket_name => 'bucket') + # @return [Formatter] + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#300 + def colored; end + + # The default log format. + # + # @api private + # @example A sample of the default format. + # + # [ClientClass 200 0.580066 0 retries] list_objects(:bucket_name => 'bucket') + # @return [Formatter] + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#261 + def default; end + + # The short log format. Similar to default, but it does not + # inspect the request params or report on retries. + # + # @api private + # @example A sample of the short format + # + # [ClientClass 200 0.494532] list_buckets + # @return [Formatter] + # + # source://aws-sdk-core//lib/seahorse/client/logging/formatter.rb#282 + def short; end + end +end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/logging/handler.rb#8 +class Seahorse::Client::Logging::Handler < ::Seahorse::Client::Handler + # @api private + # @param context [RequestContext] + # @return [Response] + # + # source://aws-sdk-core//lib/seahorse/client/logging/handler.rb#12 + def call(context); end + + private + + # @api private + # @param config [Configuration] + # @param response [Response] + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/client/logging/handler.rb#32 + def format(config, response); end + + # @api private + # @param config [Configuration] + # @param response [Response] + # @return [void] + # + # source://aws-sdk-core//lib/seahorse/client/logging/handler.rb#25 + def log(config, response); end +end + +# This utility class is used to track files opened by Seahorse. +# This allows Seahorse to know what files it needs to close. +# +# source://aws-sdk-core//lib/seahorse/client/managed_file.rb#7 +class Seahorse::Client::ManagedFile < ::File + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/client/managed_file.rb#10 + def open?; end +end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/net_http/patches.rb#8 +module Seahorse::Client::NetHttp; end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#19 +class Seahorse::Client::NetHttp::ConnectionPool + # @api private + # @return [ConnectionPool] a new instance of ConnectionPool + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#43 + def initialize(options = T.unsafe(nil)); end + + # Removes stale http sessions from the pool (that have exceeded + # the idle timeout). + # + # @api private + # @return [nil] + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#131 + def clean!; end + + # Closes and removes all sessions from the pool. + # If empty! is called while there are outstanding requests they may + # get checked back into the pool, leaving the pool in a non-empty + # state. + # + # @api private + # @return [nil] + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#141 + def empty!; end + + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#53 + def http_continue_timeout; end + + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#53 + def http_idle_timeout; end + + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#53 + def http_open_timeout; end + + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#53 + def http_proxy; end + + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#53 + def http_read_timeout; end + + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#53 + def http_wire_trace; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#53 + def http_wire_trace?; end + + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#53 + def logger; end + + # Makes an HTTP request, yielding a Net::HTTPResponse object. + # + # pool.request(URI.parse('http://domain'), Net::HTTP::Get.new('/')) do |resp| + # puts resp.code # status code + # puts resp.to_h.inspect # dump the headers + # puts resp.body + # end + # + # @api private + # @param endpoint [URI::HTTP, URI::HTTPS] The HTTP(S) endpoint + # to connect to (e.g. 'https://domain.com'). + # @param request [Net::HTTPRequest] The request to make. This can be + # any request object from Net::HTTP (e.g. Net::HTTP::Get, + # Net::HTTP::POST, etc). + # @return [nil] + # @yieldparam net_http_response [Net::HTTPResponse] + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#77 + def request(endpoint, request, &block); end + + # @api private + # @param endpoint [URI::HTTP, URI::HTTPS] The HTTP(S) endpoint + # to connect to (e.g. 'https://domain.com'). + # @return [nil] + # @yieldparam session [Net::HTTPSession] + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#89 + def session_for(endpoint, &block); end + + # @api private + # @return [Integer] Returns the count of sessions currently in the + # pool, not counting those currently in use. + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#122 + def size; end + + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#53 + def ssl_ca_bundle; end + + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#53 + def ssl_ca_directory; end + + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#53 + def ssl_ca_store; end + + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#53 + def ssl_cert; end + + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#53 + def ssl_key; end + + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#53 + def ssl_timeout; end + + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#53 + def ssl_verify_peer; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#53 + def ssl_verify_peer?; end + + private + + # Removes stale sessions from the pool. This method *must* be called + # + # @api private + # @note **Must** be called behind a `@pool_mutex` synchronize block. + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#313 + def _clean; end + + # Extract the parts of the http_proxy URI + # + # @api private + # @return [Array(String)] + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#263 + def http_proxy_parts; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#151 + def remove_path_and_query(endpoint); end + + # Starts and returns a new HTTP(S) session. + # + # @api private + # @param endpoint [String] + # @return [Net::HTTPSession] + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#275 + def start_session(endpoint); end + + class << self + # Returns a connection pool constructed from the given options. + # Calling this method twice with the same options will return + # the same pool. + # + # @api private + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [ConnectionPool] + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#215 + def for(options = T.unsafe(nil)); end + + # @api private + # @return [Array] Returns a list of the + # constructed connection pools. + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#224 + def pools; end + + private + + # Filters an option hash, merging in default values. + # + # @api private + # @return [Hash] + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#234 + def pool_options(options); end + end +end + +# Helper methods extended onto Net::HTTPSession objects opened by the +# connection pool. +# +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#328 +class Seahorse::Client::NetHttp::ConnectionPool::ExtendedSession + # @api private + # @return [ExtendedSession] a new instance of ExtendedSession + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#330 + def initialize(http); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#338 + def __getobj__; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#342 + def __setobj__(obj); end + + # Attempts to close/finish the session without raising an error. + # + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#353 + def finish; end + + # @api private + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#336 + def last_used; end + + # Sends the request and tracks that this session has been used. + # + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#347 + def request(*args, &block); end +end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/net_http/connection_pool.rb#25 +Seahorse::Client::NetHttp::ConnectionPool::OPTIONS = T.let(T.unsafe(nil), Hash) + +# The default HTTP handler for Seahorse::Client. This is based on +# the Ruby's `Net::HTTP`. +# +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#13 +class Seahorse::Client::NetHttp::Handler < ::Seahorse::Client::Handler + # @api private + # @param context [RequestContext] + # @return [Response] + # + # source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#44 + def call(context); end + + # @api private + # @param config [Configuration] + # @return [ConnectionPool] + # + # source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#57 + def pool_for(config); end + + private + + # Constructs and returns a Net::HTTP::Request object from + # a {Http::Request}. + # + # @api private + # @param request [Http::Request] + # @return [Net::HTTP::Request] + # + # source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#152 + def build_net_request(request); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#106 + def complete_response(req, resp, bytes_received); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#63 + def error_message(req, error); end + + # @api private + # @param response [Net::HTTP::Response] + # @return [Hash] + # + # source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#194 + def extract_headers(response); end + + # @api private + # @param request [Http::Request] + # @return [Hash] Returns a vanilla hash of headers to send with the + # HTTP request. + # + # source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#178 + def headers(request); end + + # @api private + # @param request [Http::Request] + # @raise [InvalidHttpVerbError] + # @return Returns a base `Net::HTTP::Request` class, e.g., + # `Net::HTTP::Get`, `Net::HTTP::Post`, etc. + # + # source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#168 + def net_http_request_class(request); end + + # Extracts the {ConnectionPool} configuration options. + # + # @api private + # @param config [Configuration] + # @return [Hash] + # + # source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#141 + def pool_options(config); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#128 + def session(config, req, &block); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#114 + def should_verify_bytes?(req, resp); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#201 + def span_wrapper(context, &block); end + + # @api private + # @param config [Configuration] + # @param req [Http::Request] + # @param resp [Http::Response] + # @return [void] + # + # source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#76 + def transmit(config, req, resp); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#118 + def verify_bytes_received(resp, bytes_received); end +end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#33 +Seahorse::Client::NetHttp::Handler::DNS_ERROR_MESSAGES = T.let(T.unsafe(nil), Array) + +# Raised when a {Handler} cannot construct a `Net::HTTP::Request` +# from the given http verb. +# +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#40 +class Seahorse::Client::NetHttp::Handler::InvalidHttpVerbError < ::StandardError; end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#24 +Seahorse::Client::NetHttp::Handler::NETWORK_ERRORS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#16 +class Seahorse::Client::NetHttp::Handler::TruncatedBodyError < ::IOError + # @api private + # @return [TruncatedBodyError] a new instance of TruncatedBodyError + # + # source://aws-sdk-core//lib/seahorse/client/net_http/handler.rb#17 + def initialize(bytes_expected, bytes_received); end +end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/net_http/patches.rb#11 +module Seahorse::Client::NetHttp::Patches + class << self + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/net_http/patches.rb#13 + def apply!; end + end +end + +# For requests with bodies, Net::HTTP sets a default content type of: +# 'application/x-www-form-urlencoded' +# There are cases where we should not send content type at all. +# Even when no body is supplied, Net::HTTP uses a default empty body +# and sets it anyway. This patch disables the behavior when a Thread +# local variable is set. +# +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/net_http/patches.rb#23 +module Seahorse::Client::NetHttp::Patches::PatchDefaultContentType + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/net_http/patches.rb#24 + def supply_default_content_type; end +end + +# source://aws-sdk-core//lib/seahorse/client/networking_error.rb#5 +class Seahorse::Client::NetworkingError < ::StandardError + # @return [NetworkingError] a new instance of NetworkingError + # + # source://aws-sdk-core//lib/seahorse/client/networking_error.rb#7 + def initialize(error, msg = T.unsafe(nil)); end + + # Returns the value of attribute original_error. + # + # source://aws-sdk-core//lib/seahorse/client/networking_error.rb#13 + def original_error; end +end + +# source://aws-sdk-core//lib/seahorse/client/plugin.rb#5 +class Seahorse::Client::Plugin + extend ::Seahorse::Client::HandlerBuilder + + # @param handlers [HandlerList] + # @param config [Configuration] + # @return [void] + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#24 + def add_handlers(handlers, config); end + + # @param config [Configuration] + # @return [void] + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#11 + def add_options(config); end + + # @param client [Client::Base] + # @return [void] + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#39 + def after_initialize(client); end + + # @param client_class [Class] + # @param options [Hash] + # @return [void] + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#31 + def before_initialize(client_class, options); end + + class << self + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#71 + def after_initialize(&block); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#91 + def after_initialize_hooks; end + + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#67 + def before_initialize(&block); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#86 + def before_initialize_hooks; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#81 + def handlers; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#96 + def literal(string); end + + # @option options + # @option options + # @option options + # @option options + # @option options + # @overload option + # @param options [Hash] a customizable set of options + # @return [void] + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#54 + def option(name, default = T.unsafe(nil), options = T.unsafe(nil), &block); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#76 + def options; end + end +end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/plugin.rb#110 +class Seahorse::Client::Plugin::PluginOption + # @api private + # @return [PluginOption] a new instance of PluginOption + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#112 + def initialize(name, options = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#129 + def default; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#129 + def default=(_arg0); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#130 + def default_block; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#130 + def default_block=(_arg0); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#137 + def doc_default(options); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#133 + def doc_default=(_arg0); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#132 + def doc_type; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#132 + def doc_type=(_arg0); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#134 + def docstring; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#134 + def docstring=(_arg0); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#145 + def documented?; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#128 + def name; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#135 + def rbs_type; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#135 + def rbs_type=(_arg0); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#131 + def required; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin.rb#131 + def required=(_arg0); end +end + +# source://aws-sdk-core//lib/seahorse/client/plugin_list.rb#8 +class Seahorse::Client::PluginList + include ::Enumerable + + # @option options + # @param plugins [Array, Set] + # @param options [Hash] a customizable set of options + # @return [PluginList] a new instance of PluginList + # + # source://aws-sdk-core//lib/seahorse/client/plugin_list.rb#14 + def initialize(plugins = T.unsafe(nil), options = T.unsafe(nil)); end + + # Adds and returns the `plugin`. + # + # @param plugin [Plugin] + # @return [void] + # + # source://aws-sdk-core//lib/seahorse/client/plugin_list.rb#27 + def add(plugin); end + + # Enumerates the plugins. + # + # @return [Enumerator] + # + # source://aws-sdk-core//lib/seahorse/client/plugin_list.rb#59 + def each(&block); end + + # Removes and returns the `plugin`. + # + # @param plugin [Plugin] + # @return [void] + # + # source://aws-sdk-core//lib/seahorse/client/plugin_list.rb#37 + def remove(plugin); end + + # Replaces the existing list of plugins. + # + # @param plugins [Array] + # @return [void] + # + # source://aws-sdk-core//lib/seahorse/client/plugin_list.rb#47 + def set(plugins); end + + private + + # Not safe to call outside the mutex. + # + # source://aws-sdk-core//lib/seahorse/client/plugin_list.rb#68 + def _add(plugin); end + + # Yield each PluginDetail behind the mutex + # + # source://aws-sdk-core//lib/seahorse/client/plugin_list.rb#73 + def each_plugin(&block); end +end + +# A utility class that computes the canonical name for a plugin +# and defers requiring the plugin until the plugin class is +# required. +# +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/plugin_list.rb#83 +class Seahorse::Client::PluginList::PluginWrapper + # @api private + # @param plugin [String, Symbol, Module, Class] + # @return [PluginWrapper] a new instance of PluginWrapper + # + # source://aws-sdk-core//lib/seahorse/client/plugin_list.rb#86 + def initialize(plugin); end + + # @api private + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/client/plugin_list.rb#103 + def canonical_name; end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/client/plugin_list.rb#121 + def eql?(other); end + + # @api private + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/client/plugin_list.rb#127 + def hash; end + + # @api private + # @return [Class] + # + # source://aws-sdk-core//lib/seahorse/client/plugin_list.rb#106 + def plugin; end + + private + + # @api private + # @return [Class] + # + # source://aws-sdk-core//lib/seahorse/client/plugin_list.rb#134 + def require_plugin; end + + class << self + # Returns the given plugin if it is already a PluginWrapper. + # + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugin_list.rb#111 + def new(plugin); end + end +end + +# source://aws-sdk-core//lib/seahorse/client/plugins/content_length.rb#5 +module Seahorse::Client::Plugins; end + +# source://aws-sdk-core//lib/seahorse/client/plugins/content_length.rb#6 +class Seahorse::Client::Plugins::ContentLength < ::Seahorse::Client::Plugin; end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/plugins/content_length.rb#12 +class Seahorse::Client::Plugins::ContentLength::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugins/content_length.rb#17 + def call(context); end +end + +# https://github.com/ruby/net-http/blob/master/lib/net/http/requests.rb +# Methods without body are forwards compatible, because content-length +# may be set for requests without body but is technically incorrect. +# +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/plugins/content_length.rb#13 +Seahorse::Client::Plugins::ContentLength::Handler::METHODS_WITHOUT_BODY = T.let(T.unsafe(nil), Set) + +# source://aws-sdk-core//lib/seahorse/client/plugins/endpoint.rb#6 +class Seahorse::Client::Plugins::Endpoint < ::Seahorse::Client::Plugin + # source://aws-sdk-core//lib/seahorse/client/plugins/endpoint.rb#22 + def add_handlers(handlers, config); end + + # source://aws-sdk-core//lib/seahorse/client/plugins/endpoint.rb#26 + def after_initialize(client); end +end + +# source://aws-sdk-core//lib/seahorse/client/plugins/endpoint.rb#42 +class Seahorse::Client::Plugins::Endpoint::Handler < ::Seahorse::Client::Handler + # source://aws-sdk-core//lib/seahorse/client/plugins/endpoint.rb#44 + def call(context); end +end + +# source://aws-sdk-core//lib/seahorse/client/plugins/h2.rb#8 +class Seahorse::Client::Plugins::H2 < ::Seahorse::Client::Plugin; end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/plugins/logging.rb#7 +class Seahorse::Client::Plugins::Logging < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugins/logging.rb#28 + def add_handlers(handlers, config); end +end + +# source://aws-sdk-core//lib/seahorse/client/plugins/net_http.rb#8 +class Seahorse::Client::Plugins::NetHttp < ::Seahorse::Client::Plugin + class << self + # source://aws-sdk-core//lib/seahorse/client/plugins/net_http.rb#86 + def resolve_http_open_timeout(cfg); end + + # source://aws-sdk-core//lib/seahorse/client/plugins/net_http.rb#94 + def resolve_http_read_timeout(cfg); end + + # source://aws-sdk-core//lib/seahorse/client/plugins/net_http.rb#102 + def resolve_ssl_timeout(cfg); end + end +end + +# source://aws-sdk-core//lib/seahorse/client/plugins/raise_response_errors.rb#6 +class Seahorse::Client::Plugins::RaiseResponseErrors < ::Seahorse::Client::Plugin + # source://aws-sdk-core//lib/seahorse/client/plugins/raise_response_errors.rb#22 + def add_handlers(handlers, config); end +end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/plugins/raise_response_errors.rb#14 +class Seahorse::Client::Plugins::RaiseResponseErrors::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugins/raise_response_errors.rb#15 + def call(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/plugins/request_callback.rb#11 +class Seahorse::Client::Plugins::ReadCallbackIO + extend ::Forwardable + + # @api private + # @return [ReadCallbackIO] a new instance of ReadCallbackIO + # + # source://aws-sdk-core//lib/seahorse/client/plugins/request_callback.rb#15 + def initialize(io, on_read = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugins/request_callback.rb#32 + def io; end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugins/request_callback.rb#34 + def read(*args); end + + # source://forwardable/1.3.2/forwardable.rb#229 + def size(*args, **_arg1, &block); end + + private + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugins/request_callback.rb#42 + def handle_chunk(chunk); end +end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/plugins/request_callback.rb#50 +class Seahorse::Client::Plugins::RequestCallback < ::Seahorse::Client::Plugin; end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/plugins/request_callback.rb#74 +class Seahorse::Client::Plugins::RequestCallback::OptionHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugins/request_callback.rb#92 + def add_response_events(on_chunk_received, context); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugins/request_callback.rb#75 + def call(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/plugins/request_callback.rb#107 +class Seahorse::Client::Plugins::RequestCallback::ReadCallbackHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugins/request_callback.rb#108 + def call(context); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugins/request_callback.rb#122 + def unwrap_callback_body(context); end +end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/plugins/response_target.rb#9 +class Seahorse::Client::Plugins::ResponseTarget < ::Seahorse::Client::Plugin; end + +# This handler is responsible for replacing the HTTP response body IO +# object with custom targets, such as a block, or a file. It is important +# to not write data to the custom target in the case of a non-success +# response. We do not want to write an XML error message to someone's +# file. +# +# @api private +# +# source://aws-sdk-core//lib/seahorse/client/plugins/response_target.rb#16 +class Seahorse::Client::Plugins::ResponseTarget::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugins/response_target.rb#18 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugins/response_target.rb#29 + def add_event_listeners(context, target); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/plugins/response_target.rb#64 + def io(target, headers); end +end + +# source://aws-sdk-core//lib/seahorse/client/request.rb#5 +class Seahorse::Client::Request + include ::Seahorse::Client::HandlerBuilder + + # @param handlers [HandlerList] + # @param context [RequestContext] + # @return [Request] a new instance of Request + # + # source://aws-sdk-core//lib/seahorse/client/request.rb#11 + def initialize(handlers, context); end + + # @return [RequestContext] + # + # source://aws-sdk-core//lib/seahorse/client/request.rb#20 + def context; end + + # @return [HandlerList] + # + # source://aws-sdk-core//lib/seahorse/client/request.rb#17 + def handlers; end + + # Sends the request, returning a {Response} object. + # + # response = request.send_request + # + # # Streaming Responses + # + # By default, HTTP responses are buffered into memory. This can be + # bad if you are downloading large responses, e.g. large files. + # You can avoid this by streaming the response to a block or some other + # target. + # + # ## Streaming to a File + # + # You can stream the raw HTTP response body to a File, or any IO-like + # object, by passing the `:target` option. + # + # # create a new file at the given path + # request.send_request(target: '/path/to/target/file') + # + # # or provide an IO object to write to + # File.open('photo.jpg', 'wb') do |file| + # request.send_request(target: file) + # end + # + # **Please Note**: The target IO object may receive `#truncate(0)` + # if the request generates a networking error and bytes have already + # been written to the target. + # + # ## Block Streaming + # + # Pass a block to `#send_request` and the response will be yielded in + # chunks to the given block. + # + # # stream the response data + # request.send_request do |chunk| + # file.write(chunk) + # end + # + # **Please Note**: When streaming to a block, it is not possible to + # retry failed requests. + # + # @option options + # @param options [Hash] a customizable set of options + # @return [Response] + # + # source://aws-sdk-core//lib/seahorse/client/request.rb#70 + def send_request(options = T.unsafe(nil), &block); end +end + +# source://aws-sdk-core//lib/seahorse/client/request_context.rb#7 +class Seahorse::Client::RequestContext + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [RequestContext] a new instance of RequestContext + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#20 + def initialize(options = T.unsafe(nil)); end + + # Returns the metadata for the given `key`. + # + # @param key [Symbol] + # @return [Object] + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#70 + def [](key); end + + # Sets the request context metadata for the given `key`. Request metadata + # useful for handlers that need to keep state on the request, without + # sending that data with the request over HTTP. + # + # @param key [Symbol] + # @param value [Object] + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#79 + def []=(key, value); end + + # @return [Model::Authorizer] APIG SDKs only + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#41 + def authorizer; end + + # @return [Model::Authorizer] APIG SDKs only + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#41 + def authorizer=(_arg0); end + + # @return [Seahorse::Client::Base] + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#44 + def client; end + + # @return [Seahorse::Client::Base] + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#44 + def client=(_arg0); end + + # @return [Configuration] The client configuration. + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#50 + def config; end + + # @return [Configuration] The client configuration. + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#50 + def config=(_arg0); end + + # @return [Http::Request] + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#53 + def http_request; end + + # @return [Http::Request] + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#53 + def http_request=(_arg0); end + + # @return [Http::Response] + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#56 + def http_response; end + + # @return [Http::Response] + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#56 + def http_response=(_arg0); end + + # @return [Hash] + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#65 + def metadata; end + + # @return [Model::Operation] + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#38 + def operation; end + + # @return [Model::Operation] + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#38 + def operation=(_arg0); end + + # @return [Symbol] Name of the API operation called. + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#35 + def operation_name; end + + # @return [Symbol] Name of the API operation called. + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#35 + def operation_name=(_arg0); end + + # @return [Hash] The hash of request parameters. + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#47 + def params; end + + # @return [Hash] The hash of request parameters. + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#47 + def params=(_arg0); end + + # @return [Integer] + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#59 + def retries; end + + # @return [Integer] + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#59 + def retries=(_arg0); end + + # @return [Tracer] + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#62 + def tracer; end + + # @return [Tracer] + # + # source://aws-sdk-core//lib/seahorse/client/request_context.rb#62 + def tracer=(_arg0); end +end + +# source://aws-sdk-core//lib/seahorse/client/response.rb#11 +class Seahorse::Client::Response + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Response] a new instance of Response + # + # source://aws-sdk-core//lib/seahorse/client/response.rb#12 + def initialize(options = T.unsafe(nil)); end + + # Necessary to define as a subclass of Delegator + # + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/response.rb#77 + def __getobj__; end + + # Necessary to define as a subclass of Delegator + # + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/response.rb#83 + def __setobj__(obj); end + + # @return [String, nil] returns the algorithm used to validate + # the response checksum. Returns nil if no verification was done. + # + # source://aws-sdk-core//lib/seahorse/client/response.rb#35 + def checksum_validated; end + + # @return [RequestContext] + # + # source://aws-sdk-core//lib/seahorse/client/response.rb#24 + def context; end + + # @return The response data. This may be `nil` if the response contains + # an {#error}. + # + # source://aws-sdk-core//lib/seahorse/client/response.rb#28 + def data; end + + # @return The response data. This may be `nil` if the response contains + # an {#error}. + # + # source://aws-sdk-core//lib/seahorse/client/response.rb#28 + def data=(_arg0); end + + # @return [StandardError, nil] + # + # source://aws-sdk-core//lib/seahorse/client/response.rb#31 + def error; end + + # @return [StandardError, nil] + # + # source://aws-sdk-core//lib/seahorse/client/response.rb#31 + def error=(_arg0); end + + # @overload on + # @overload on + # @return [self] + # + # source://aws-sdk-core//lib/seahorse/client/response.rb#49 + def on(range, &_block); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/client/response.rb#70 + def on_complete(&block); end + + # Yields to the block if the response has a 200 level status code. + # + # @return [self] + # + # source://aws-sdk-core//lib/seahorse/client/response.rb#59 + def on_success(&block); end + + # @return [Boolean] Returns `true` if the response is complete with + # a ~ 200 level http status code. + # + # source://aws-sdk-core//lib/seahorse/client/response.rb#65 + def successful?; end +end + +# source://aws-sdk-core//lib/seahorse/model/api.rb#4 +module Seahorse::Model; end + +# source://aws-sdk-core//lib/seahorse/model/api.rb#5 +class Seahorse::Model::Api + # @return [Api] a new instance of Api + # + # source://aws-sdk-core//lib/seahorse/model/api.rb#7 + def initialize; end + + # source://aws-sdk-core//lib/seahorse/model/api.rb#75 + def add_authorizer(name, authorizer); end + + # source://aws-sdk-core//lib/seahorse/model/api.rb#51 + def add_operation(name, operation); end + + # source://aws-sdk-core//lib/seahorse/model/api.rb#47 + def async_operation_names; end + + # source://aws-sdk-core//lib/seahorse/model/api.rb#63 + def authorizer(name); end + + # source://aws-sdk-core//lib/seahorse/model/api.rb#71 + def authorizer_names; end + + # source://aws-sdk-core//lib/seahorse/model/api.rb#55 + def authorizers(&block); end + + # @return [Symbol|nil] + # + # source://aws-sdk-core//lib/seahorse/model/api.rb#22 + def endpoint_operation; end + + # @return [Symbol|nil] + # + # source://aws-sdk-core//lib/seahorse/model/api.rb#22 + def endpoint_operation=(_arg0); end + + # source://aws-sdk-core//lib/seahorse/model/api.rb#79 + def inspect(*args); end + + # @return [Hash] + # + # source://aws-sdk-core//lib/seahorse/model/api.rb#19 + def metadata; end + + # @return [Hash] + # + # source://aws-sdk-core//lib/seahorse/model/api.rb#19 + def metadata=(_arg0); end + + # source://aws-sdk-core//lib/seahorse/model/api.rb#35 + def operation(name); end + + # source://aws-sdk-core//lib/seahorse/model/api.rb#43 + def operation_names; end + + # source://aws-sdk-core//lib/seahorse/model/api.rb#27 + def operations(&block); end + + # @return [Boolean|nil] + # + # source://aws-sdk-core//lib/seahorse/model/api.rb#25 + def require_endpoint_discovery; end + + # @return [Boolean|nil] + # + # source://aws-sdk-core//lib/seahorse/model/api.rb#25 + def require_endpoint_discovery=(_arg0); end + + # @return [String, nil] + # + # source://aws-sdk-core//lib/seahorse/model/api.rb#16 + def version; end + + # @return [String, nil] + # + # source://aws-sdk-core//lib/seahorse/model/api.rb#16 + def version=(_arg0); end +end + +# source://aws-sdk-core//lib/seahorse/model/authorizer.rb#5 +class Seahorse::Model::Authorizer + # @return [Authorizer] a new instance of Authorizer + # + # source://aws-sdk-core//lib/seahorse/model/authorizer.rb#7 + def initialize; end + + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/model/authorizer.rb#13 + def name; end + + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/model/authorizer.rb#13 + def name=(_arg0); end + + # @return [Hash] + # + # source://aws-sdk-core//lib/seahorse/model/authorizer.rb#19 + def placement; end + + # @return [Hash] + # + # source://aws-sdk-core//lib/seahorse/model/authorizer.rb#19 + def placement=(_arg0); end + + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/model/authorizer.rb#16 + def type; end + + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/model/authorizer.rb#16 + def type=(_arg0); end +end + +# source://aws-sdk-core//lib/seahorse/model/operation.rb#5 +class Seahorse::Model::Operation + # @return [Operation] a new instance of Operation + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#7 + def initialize; end + + # source://aws-sdk-core//lib/seahorse/model/operation.rb#68 + def [](key); end + + # source://aws-sdk-core//lib/seahorse/model/operation.rb#72 + def []=(key, value); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#66 + def async; end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#66 + def async=(_arg0); end + + # @return [String, nil] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#50 + def authorizer; end + + # @return [String, nil] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#50 + def authorizer=(_arg0); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#35 + def deprecated; end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#35 + def deprecated=(_arg0); end + + # @return [String, nil] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#44 + def documentation; end + + # @return [String, nil] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#44 + def documentation=(_arg0); end + + # @return [Hash] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#41 + def endpoint_discovery; end + + # @return [Hash] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#41 + def endpoint_discovery=(_arg0); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#38 + def endpoint_operation; end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#38 + def endpoint_operation=(_arg0); end + + # @return [Hash, nil] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#47 + def endpoint_pattern; end + + # @return [Hash, nil] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#47 + def endpoint_pattern=(_arg0); end + + # @return [Array] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#59 + def errors; end + + # @return [Array] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#59 + def errors=(_arg0); end + + # @return [Hash] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#29 + def http_checksum; end + + # @return [Hash] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#29 + def http_checksum=(_arg0); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#26 + def http_checksum_required; end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#26 + def http_checksum_required=(_arg0); end + + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#20 + def http_method; end + + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#20 + def http_method=(_arg0); end + + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#23 + def http_request_uri; end + + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#23 + def http_request_uri=(_arg0); end + + # @return [ShapeRef, nil] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#53 + def input; end + + # @return [ShapeRef, nil] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#53 + def input=(_arg0); end + + # @return [String, nil] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#17 + def name; end + + # @return [String, nil] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#17 + def name=(_arg0); end + + # @return [ShapeRef, nil] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#56 + def output; end + + # @return [ShapeRef, nil] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#56 + def output=(_arg0); end + + # @return [Hash] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#32 + def request_compression; end + + # @return [Hash] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#32 + def request_compression=(_arg0); end + + # APIG only + # + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#63 + def require_apikey; end + + # APIG only + # + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/operation.rb#63 + def require_apikey=(_arg0); end +end + +# source://aws-sdk-core//lib/seahorse/model/shapes.rb#7 +module Seahorse::Model::Shapes; end + +# source://aws-sdk-core//lib/seahorse/model/shapes.rb#135 +class Seahorse::Model::Shapes::BlobShape < ::Seahorse::Model::Shapes::Shape + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#141 + def max; end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#141 + def max=(_arg0); end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#138 + def min; end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#138 + def min=(_arg0); end +end + +# source://aws-sdk-core//lib/seahorse/model/shapes.rb#145 +class Seahorse::Model::Shapes::BooleanShape < ::Seahorse::Model::Shapes::Shape; end + +# source://aws-sdk-core//lib/seahorse/model/shapes.rb#292 +class Seahorse::Model::Shapes::DocumentShape < ::Seahorse::Model::Shapes::Shape; end + +# source://aws-sdk-core//lib/seahorse/model/shapes.rb#147 +class Seahorse::Model::Shapes::FloatShape < ::Seahorse::Model::Shapes::Shape + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#153 + def max; end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#153 + def max=(_arg0); end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#150 + def min; end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#150 + def min=(_arg0); end +end + +# source://aws-sdk-core//lib/seahorse/model/shapes.rb#157 +class Seahorse::Model::Shapes::IntegerShape < ::Seahorse::Model::Shapes::Shape + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#163 + def max; end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#163 + def max=(_arg0); end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#160 + def min; end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#160 + def min=(_arg0); end +end + +# source://aws-sdk-core//lib/seahorse/model/shapes.rb#167 +class Seahorse::Model::Shapes::ListShape < ::Seahorse::Model::Shapes::Shape + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#179 + def flattened; end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#179 + def flattened=(_arg0); end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#176 + def max; end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#176 + def max=(_arg0); end + + # @return [ShapeRef] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#170 + def member; end + + # @return [ShapeRef] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#170 + def member=(_arg0); end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#173 + def min; end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#173 + def min=(_arg0); end +end + +# source://aws-sdk-core//lib/seahorse/model/shapes.rb#183 +class Seahorse::Model::Shapes::MapShape < ::Seahorse::Model::Shapes::Shape + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#198 + def flattened; end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#198 + def flattened=(_arg0); end + + # @return [ShapeRef] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#186 + def key; end + + # @return [ShapeRef] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#186 + def key=(_arg0); end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#195 + def max; end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#195 + def max=(_arg0); end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#192 + def min; end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#192 + def min=(_arg0); end + + # @return [ShapeRef] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#189 + def value; end + + # @return [ShapeRef] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#189 + def value=(_arg0); end +end + +# source://aws-sdk-core//lib/seahorse/model/shapes.rb#101 +class Seahorse::Model::Shapes::Shape + # @return [Shape] a new instance of Shape + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#103 + def initialize(options = T.unsafe(nil)); end + + # Gets metadata for the given `key`. + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#124 + def [](key); end + + # Sets metadata for the given `key`. + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#129 + def []=(key, value); end + + # @return [String, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#118 + def documentation; end + + # @return [String, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#118 + def documentation=(_arg0); end + + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#115 + def name; end + + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#115 + def name=(_arg0); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#121 + def union; end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#121 + def union=(_arg0); end +end + +# source://aws-sdk-core//lib/seahorse/model/shapes.rb#9 +class Seahorse::Model::Shapes::ShapeRef + # @return [ShapeRef] a new instance of ShapeRef + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#11 + def initialize(options = T.unsafe(nil)); end + + # Gets metadata for the given `key`. + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#86 + def [](key); end + + # Sets metadata for the given `key`. + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#95 + def []=(key, value); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#44 + def deprecated; end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#44 + def deprecated=(_arg0); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#65 + def document; end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#65 + def document=(_arg0); end + + # @return [String, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#41 + def documentation; end + + # @return [String, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#41 + def documentation=(_arg0); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#47 + def event; end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#47 + def event=(_arg0); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#56 + def eventheader; end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#56 + def eventheader=(_arg0); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#62 + def eventheader_type; end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#62 + def eventheader_type=(_arg0); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#53 + def eventpayload; end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#53 + def eventpayload=(_arg0); end + + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#59 + def eventpayload_type; end + + # @return [String] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#59 + def eventpayload_type=(_arg0); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#50 + def eventstream; end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#50 + def eventstream=(_arg0); end + + # @return [String, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#68 + def location; end + + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#72 + def location=(location); end + + # @return [String, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#77 + def location_name; end + + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#81 + def location_name=(location_name); end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#38 + def required; end + + # @return [Boolean] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#38 + def required=(_arg0); end + + # @return [Shape] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#35 + def shape; end + + # @return [Shape] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#35 + def shape=(_arg0); end +end + +# source://aws-sdk-core//lib/seahorse/model/shapes.rb#202 +class Seahorse::Model::Shapes::StringShape < ::Seahorse::Model::Shapes::Shape + # @return [Set, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#205 + def enum; end + + # @return [Set, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#205 + def enum=(_arg0); end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#211 + def max; end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#211 + def max=(_arg0); end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#208 + def min; end + + # @return [Integer, nil] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#208 + def min=(_arg0); end +end + +# source://aws-sdk-core//lib/seahorse/model/shapes.rb#215 +class Seahorse::Model::Shapes::StructureShape < ::Seahorse::Model::Shapes::Shape + # @return [StructureShape] a new instance of StructureShape + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#217 + def initialize(options = T.unsafe(nil)); end + + # @param name [Symbol] + # @param shape_ref [ShapeRef] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#232 + def add_member(name, shape_ref); end + + # @param name [Symbol] + # @return [ShapeRef] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#258 + def member(name); end + + # @param member_name [Symbol] + # @return [Boolean] Returns `true` if there exists a member with + # the given name. + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#247 + def member?(member_name); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#267 + def member_by_location_name(location_name); end + + # @return [Array] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#240 + def member_names; end + + # @return [Enumerator<[Symbol,ShapeRef]>] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#252 + def members; end + + # @return [Set] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#225 + def required; end + + # @return [Set] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#225 + def required=(_arg0); end + + # @return [Class] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#228 + def struct_class; end + + # @return [Class] + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#228 + def struct_class=(_arg0); end +end + +# source://aws-sdk-core//lib/seahorse/model/shapes.rb#290 +class Seahorse::Model::Shapes::TimestampShape < ::Seahorse::Model::Shapes::Shape; end + +# source://aws-sdk-core//lib/seahorse/model/shapes.rb#273 +class Seahorse::Model::Shapes::UnionShape < ::Seahorse::Model::Shapes::StructureShape + # @return [UnionShape] a new instance of UnionShape + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#274 + def initialize(options = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#285 + def add_member_subclass(member, subclass); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/model/shapes.rb#280 + def member_subclass(member); end +end + +# @api private +# +# source://aws-sdk-core//lib/seahorse/util.rb#7 +module Seahorse::Util + class << self + # @api private + # + # source://aws-sdk-core//lib/seahorse/util.rb#17 + def escape_header_list_string(s); end + + # Checks for a valid host label + # + # @api private + # @return [Boolean] + # @see https://tools.ietf.org/html/rfc3986#section-3.2.2 + # @see https://tools.ietf.org/html/rfc1123#page-13 + # + # source://aws-sdk-core//lib/seahorse/util.rb#24 + def host_label?(str); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/util.rb#9 + def uri_escape(string); end + + # @api private + # + # source://aws-sdk-core//lib/seahorse/util.rb#13 + def uri_path_escape(path); end + end +end diff --git a/sorbet/rbi/gems/aws-sdk-kms@1.94.0.rbi b/sorbet/rbi/gems/aws-sdk-kms@1.94.0.rbi new file mode 100644 index 00000000..25b3d285 --- /dev/null +++ b/sorbet/rbi/gems/aws-sdk-kms@1.94.0.rbi @@ -0,0 +1,11717 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for types exported from the `aws-sdk-kms` gem. +# Please instead update this file by running `bin/tapioca gem aws-sdk-kms`. + + +# This module provides support for AWS Key Management Service. This module is available in the +# `aws-sdk-kms` gem. +# +# # Client +# +# The {Client} class provides one method for each API operation. Operation +# methods each accept a hash of request parameters and return a response +# structure. +# +# kms = Aws::KMS::Client.new +# resp = kms.cancel_key_deletion(params) +# +# See {Client} for more information. +# +# # Errors +# +# Errors returned from AWS Key Management Service are defined in the +# {Errors} module and all extend {Errors::ServiceError}. +# +# begin +# # do stuff +# rescue Aws::KMS::Errors::ServiceError +# # rescues all AWS Key Management Service API errors +# end +# +# See {Errors} for more information. +# +# source://aws-sdk-kms//lib/aws-sdk-kms.rb#44 +module Aws::KMS; end + +# An API client for KMS. To construct a client, you need to configure a `:region` and `:credentials`. +# +# client = Aws::KMS::Client.new( +# region: region_name, +# credentials: credentials, +# # ... +# ) +# +# For details on configuring region and credentials see +# the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html). +# +# See {#initialize} for a full list of supported configuration options. +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#52 +class Aws::KMS::Client < ::Seahorse::Client::Base + include ::Aws::ClientStubs + + # @overload initialize + # @return [Client] a new instance of Client + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#451 + def initialize(*args); end + + # @api private + # @param params [{}] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#10771 + def build_request(operation_name, params = T.unsafe(nil)); end + + # Cancels the deletion of a KMS key. When this operation succeeds, the + # key state of the KMS key is `Disabled`. To enable the KMS key, use + # EnableKey. + # + # For more information about scheduling and canceling deletion of a KMS + # key, see [Deleting KMS keys][1] in the *Key Management Service + # Developer Guide*. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][2] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions**: [kms:CancelKeyDeletion][3] (key policy) + # + # **Related operations**: ScheduleKeyDeletion + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][4]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To cancel deletion of a KMS key + # + # # The following example cancels deletion of the specified KMS key. + # + # resp = client.cancel_key_deletion({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key whose deletion you are canceling. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The ARN of the KMS key whose deletion you canceled. + # } + # @example Request syntax with placeholder values + # + # resp = client.cancel_key_deletion({ + # key_id: "KeyIdType", # required + # }) + # @example Response structure + # + # resp.key_id #=> String + # @option params + # @overload cancel_key_deletion + # @param params [Hash] ({}) + # @return [Types::CancelKeyDeletionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CancelKeyDeletionResponse#key_id #key_id} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CancelKeyDeletion AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#533 + def cancel_key_deletion(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Connects or reconnects a [custom key store][1] to its backing key + # store. For an CloudHSM key store, `ConnectCustomKeyStore` connects the + # key store to its associated CloudHSM cluster. For an external key + # store, `ConnectCustomKeyStore` connects the key store to the external + # key store proxy that communicates with your external key manager. + # + # The custom key store must be connected before you can create KMS keys + # in the key store or use the KMS keys it contains. You can disconnect + # and reconnect a custom key store at any time. + # + # The connection process for a custom key store can take an extended + # amount of time to complete. This operation starts the connection + # process, but it does not wait for it to complete. When it succeeds, + # this operation quickly returns an HTTP 200 response and a JSON object + # with no properties. However, this response does not indicate that the + # custom key store is connected. To get the connection state of the + # custom key store, use the DescribeCustomKeyStores operation. + # + # This operation is part of the [custom key stores][1] feature in KMS, + # which combines the convenience and extensive integration of KMS with + # the isolation and control of a key store that you own and manage. + # + # The `ConnectCustomKeyStore` operation might fail for various reasons. + # To find the reason, use the DescribeCustomKeyStores operation and see + # the `ConnectionErrorCode` in the response. For help interpreting the + # `ConnectionErrorCode`, see CustomKeyStoresListEntry. + # + # To fix the failure, use the DisconnectCustomKeyStore operation to + # disconnect the custom key store, correct the error, use the + # UpdateCustomKeyStore operation if necessary, and then use + # `ConnectCustomKeyStore` again. + # + # **CloudHSM key store** + # + # During the connection process for an CloudHSM key store, KMS finds the + # CloudHSM cluster that is associated with the custom key store, creates + # the connection infrastructure, connects to the cluster, logs into the + # CloudHSM client as the `kmsuser` CU, and rotates its password. + # + # To connect an CloudHSM key store, its associated CloudHSM cluster must + # have at least one active HSM. To get the number of active HSMs in a + # cluster, use the [DescribeClusters][2] operation. To add HSMs to the + # cluster, use the [CreateHsm][3] operation. Also, the [ `kmsuser` + # crypto user][4] (CU) must not be logged into the cluster. This + # prevents KMS from using this account to log in. + # + # If you are having trouble connecting or disconnecting a CloudHSM key + # store, see [Troubleshooting an CloudHSM key store][5] in the *Key + # Management Service Developer Guide*. + # + # **External key store** + # + # When you connect an external key store that uses public endpoint + # connectivity, KMS tests its ability to communicate with your external + # key manager by sending a request via the external key store proxy. + # + # When you connect to an external key store that uses VPC endpoint + # service connectivity, KMS establishes the networking elements that it + # needs to communicate with your external key manager via the external + # key store proxy. This includes creating an interface endpoint to the + # VPC endpoint service and a private hosted zone for traffic between KMS + # and the VPC endpoint service. + # + # To connect an external key store, KMS must be able to connect to the + # external key store proxy, the external key store proxy must be able to + # communicate with your external key manager, and the external key + # manager must be available for cryptographic operations. + # + # If you are having trouble connecting or disconnecting an external key + # store, see [Troubleshooting an external key store][6] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on a + # custom key store in a different Amazon Web Services account. + # + # **Required permissions**: [kms:ConnectCustomKeyStore][7] (IAM policy) + # + # **Related operations** + # + # * CreateCustomKeyStore + # + # * DeleteCustomKeyStore + # + # * DescribeCustomKeyStores + # + # * DisconnectCustomKeyStore + # + # * UpdateCustomKeyStore + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][8]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html + # [2]: https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html + # [3]: https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-store-concepts.html#concept-kmsuser + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/xks-troubleshooting.html + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To connect a custom key store + # + # # This example connects an AWS KMS custom key store to its backing key store. For an AWS CloudHSM key store, it connects + # # the key store to its AWS CloudHSM cluster. For an external key store, it connects the key store to the external key + # # store proxy that communicates with your external key manager. This operation does not return any data. To verify that + # # the custom key store is connected, use the DescribeCustomKeyStores operation. + # + # resp = client.connect_custom_key_store({ + # custom_key_store_id: "cks-1234567890abcdef0", # The ID of the AWS KMS custom key store. + # }) + # + # resp.to_h outputs the following: + # { + # } + # @example Request syntax with placeholder values + # + # resp = client.connect_custom_key_store({ + # custom_key_store_id: "CustomKeyStoreIdType", # required + # }) + # @option params + # @overload connect_custom_key_store + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ConnectCustomKeyStore AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#674 + def connect_custom_key_store(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Creates a friendly name for a KMS key. + # + # Adding, deleting, or updating an alias can allow or deny permission to + # the KMS key. For details, see [ABAC for KMS][1] in the *Key Management + # Service Developer Guide*. + # + # + # + # You can use an alias to identify a KMS key in the KMS console, in the + # DescribeKey operation and in [cryptographic operations][2], such as + # Encrypt and GenerateDataKey. You can also change the KMS key that's + # associated with the alias (UpdateAlias) or delete the alias + # (DeleteAlias) at any time. These operations don't affect the + # underlying KMS key. + # + # You can associate the alias with any customer managed key in the same + # Amazon Web Services Region. Each alias is associated with only one KMS + # key at a time, but a KMS key can have multiple aliases. A valid KMS + # key is required. You can't create an alias without a KMS key. + # + # The alias must be unique in the account and Region, but you can have + # aliases with the same name in different Regions. For detailed + # information about aliases, see [Using aliases][3] in the *Key + # Management Service Developer Guide*. + # + # This operation does not return a response. To get the alias that you + # created, use the ListAliases operation. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][4] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on an + # alias in a different Amazon Web Services account. + # + # **Required permissions** + # + # * [kms:CreateAlias][5] on the alias (IAM policy). + # + # * [kms:CreateAlias][5] on the KMS key (key policy). + # + # For details, see [Controlling access to aliases][6] in the *Key + # Management Service Developer Guide*. + # + # **Related operations:** + # + # * DeleteAlias + # + # * ListAliases + # + # * UpdateAlias + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][7]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/abac.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To create an alias + # + # # The following example creates an alias for the specified KMS key. + # + # resp = client.create_alias({ + # alias_name: "alias/ExampleAlias", # The alias to create. Aliases must begin with 'alias/'. Do not use aliases that begin with 'alias/aws' because they are reserved for use by AWS. + # target_key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key whose alias you are creating. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # }) + # @example Request syntax with placeholder values + # + # resp = client.create_alias({ + # alias_name: "AliasNameType", # required + # target_key_id: "KeyIdType", # required + # }) + # @option params + # @option params + # @overload create_alias + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateAlias AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#812 + def create_alias(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Creates a [custom key store][1] backed by a key store that you own and + # manage. When you use a KMS key in a custom key store for a + # cryptographic operation, the cryptographic operation is actually + # performed in your key store using your keys. KMS supports [CloudHSM + # key stores][2] backed by an [CloudHSM cluster][3] and [external key + # stores][4] backed by an external key store proxy and external key + # manager outside of Amazon Web Services. + # + # This operation is part of the [custom key stores][1] feature in KMS, + # which combines the convenience and extensive integration of KMS with + # the isolation and control of a key store that you own and manage. + # + # Before you create the custom key store, the required elements must be + # in place and operational. We recommend that you use the test tools + # that KMS provides to verify the configuration your external key store + # proxy. For details about the required elements and verification tests, + # see [Assemble the prerequisites (for CloudHSM key stores)][5] or + # [Assemble the prerequisites (for external key stores)][6] in the *Key + # Management Service Developer Guide*. + # + # To create a custom key store, use the following parameters. + # + # * To create an CloudHSM key store, specify the `CustomKeyStoreName`, + # `CloudHsmClusterId`, `KeyStorePassword`, and + # `TrustAnchorCertificate`. The `CustomKeyStoreType` parameter is + # optional for CloudHSM key stores. If you include it, set it to the + # default value, `AWS_CLOUDHSM`. For help with failures, see + # [Troubleshooting an CloudHSM key store][7] in the *Key Management + # Service Developer Guide*. + # + # * To create an external key store, specify the `CustomKeyStoreName` + # and a `CustomKeyStoreType` of `EXTERNAL_KEY_STORE`. Also, specify + # values for `XksProxyConnectivity`, + # `XksProxyAuthenticationCredential`, `XksProxyUriEndpoint`, and + # `XksProxyUriPath`. If your `XksProxyConnectivity` value is + # `VPC_ENDPOINT_SERVICE`, specify the `XksProxyVpcEndpointServiceName` + # parameter. For help with failures, see [Troubleshooting an external + # key store][8] in the *Key Management Service Developer Guide*. + # + # For external key stores: + # + # Some external key managers provide a simpler method for creating an + # external key store. For details, see your external key manager + # documentation. + # + # When creating an external key store in the KMS console, you can upload + # a JSON-based proxy configuration file with the desired values. You + # cannot use a proxy configuration with the `CreateCustomKeyStore` + # operation. However, you can use the values in the file to help you + # determine the correct values for the `CreateCustomKeyStore` + # parameters. + # + # + # + # When the operation completes successfully, it returns the ID of the + # new custom key store. Before you can use your new custom key store, + # you need to use the ConnectCustomKeyStore operation to connect a new + # CloudHSM key store to its CloudHSM cluster, or to connect a new + # external key store to the external key store proxy for your external + # key manager. Even if you are not going to use your custom key store + # immediately, you might want to connect it to verify that all settings + # are correct and then disconnect it until you are ready to use it. + # + # For help with failures, see [Troubleshooting a custom key store][7] in + # the *Key Management Service Developer Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on a + # custom key store in a different Amazon Web Services account. + # + # **Required permissions**: [kms:CreateCustomKeyStore][9] (IAM policy). + # + # **Related operations:** + # + # * ConnectCustomKeyStore + # + # * DeleteCustomKeyStore + # + # * DescribeCustomKeyStores + # + # * DisconnectCustomKeyStore + # + # * UpdateCustomKeyStore + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][10]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html + # [3]: https://docs.aws.amazon.com/cloudhsm/latest/userguide/clusters.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keystore.html#xks-requirements + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html + # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/xks-troubleshooting.html + # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To create an AWS CloudHSM key store + # + # # This example creates a custom key store that is associated with an AWS CloudHSM cluster. + # + # resp = client.create_custom_key_store({ + # cloud_hsm_cluster_id: "cluster-234abcdefABC", # The ID of the CloudHSM cluster. + # custom_key_store_name: "ExampleKeyStore", # A friendly name for the custom key store. + # key_store_password: "kmsPswd", # The password for the kmsuser CU account in the specified cluster. + # trust_anchor_certificate: "", # The content of the customerCA.crt file that you created when you initialized the cluster. + # }) + # + # resp.to_h outputs the following: + # { + # custom_key_store_id: "cks-1234567890abcdef0", # The ID of the new custom key store. + # } + # @example Example: To create an external key store with VPC endpoint service connectivity + # + # # This example creates an external key store that uses an Amazon VPC endpoint service to communicate with AWS KMS. + # + # resp = client.create_custom_key_store({ + # custom_key_store_name: "ExampleVPCEndpointKeyStore", # A friendly name for the custom key store + # custom_key_store_type: "EXTERNAL_KEY_STORE", # For external key stores, the value must be EXTERNAL_KEY_STORE + # xks_proxy_authentication_credential: { + # access_key_id: "ABCDE12345670EXAMPLE", + # raw_secret_access_key: "DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo=", + # }, # The access key ID and secret access key that KMS uses to authenticate to your external key store proxy + # xks_proxy_connectivity: "VPC_ENDPOINT_SERVICE", # Indicates how AWS KMS communicates with the external key store proxy + # xks_proxy_uri_endpoint: "https://myproxy-private.xks.example.com", # The URI that AWS KMS uses to connect to the external key store proxy + # xks_proxy_uri_path: "/example-prefix/kms/xks/v1", # The URI path to the external key store proxy APIs + # xks_proxy_vpc_endpoint_service_name: "com.amazonaws.vpce.us-east-1.vpce-svc-example1", # The VPC endpoint service that KMS uses to communicate with the external key store proxy + # }) + # + # resp.to_h outputs the following: + # { + # custom_key_store_id: "cks-1234567890abcdef0", # The ID of the new custom key store. + # } + # @example Example: To create an external key store with public endpoint connectivity + # + # # This example creates an external key store with public endpoint connectivity. + # + # resp = client.create_custom_key_store({ + # custom_key_store_name: "ExamplePublicEndpointKeyStore", # A friendly name for the custom key store + # custom_key_store_type: "EXTERNAL_KEY_STORE", # For external key stores, the value must be EXTERNAL_KEY_STORE + # xks_proxy_authentication_credential: { + # access_key_id: "ABCDE12345670EXAMPLE", + # raw_secret_access_key: "DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo=", + # }, # The access key ID and secret access key that KMS uses to authenticate to your external key store proxy + # xks_proxy_connectivity: "PUBLIC_ENDPOINT", # Indicates how AWS KMS communicates with the external key store proxy + # xks_proxy_uri_endpoint: "https://myproxy.xks.example.com", # The URI that AWS KMS uses to connect to the external key store proxy + # xks_proxy_uri_path: "/kms/xks/v1", # The URI path to your external key store proxy API + # }) + # + # resp.to_h outputs the following: + # { + # custom_key_store_id: "cks-987654321abcdef0", # The ID of the new custom key store. + # } + # @example Request syntax with placeholder values + # + # resp = client.create_custom_key_store({ + # custom_key_store_name: "CustomKeyStoreNameType", # required + # cloud_hsm_cluster_id: "CloudHsmClusterIdType", + # trust_anchor_certificate: "TrustAnchorCertificateType", + # key_store_password: "KeyStorePasswordType", + # custom_key_store_type: "AWS_CLOUDHSM", # accepts AWS_CLOUDHSM, EXTERNAL_KEY_STORE + # xks_proxy_uri_endpoint: "XksProxyUriEndpointType", + # xks_proxy_uri_path: "XksProxyUriPathType", + # xks_proxy_vpc_endpoint_service_name: "XksProxyVpcEndpointServiceNameType", + # xks_proxy_authentication_credential: { + # access_key_id: "XksProxyAuthenticationAccessKeyIdType", # required + # raw_secret_access_key: "XksProxyAuthenticationRawSecretAccessKeyType", # required + # }, + # xks_proxy_connectivity: "PUBLIC_ENDPOINT", # accepts PUBLIC_ENDPOINT, VPC_ENDPOINT_SERVICE + # }) + # @example Response structure + # + # resp.custom_key_store_id #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload create_custom_key_store + # @param params [Hash] ({}) + # @return [Types::CreateCustomKeyStoreResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CreateCustomKeyStoreResponse#custom_key_store_id #custom_key_store_id} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateCustomKeyStore AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#1201 + def create_custom_key_store(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Adds a grant to a KMS key. + # + # A *grant* is a policy instrument that allows Amazon Web Services + # principals to use KMS keys in cryptographic operations. It also can + # allow them to view a KMS key (DescribeKey) and create and manage + # grants. When authorizing access to a KMS key, grants are considered + # along with key policies and IAM policies. Grants are often used for + # temporary permissions because you can create one, use its permissions, + # and delete it without changing your key policies or IAM policies. + # + # For detailed information about grants, including grant terminology, + # see [Grants in KMS][1] in the Key Management Service Developer + # Guide . For examples of working with grants in several + # programming languages, see [Programming grants][2]. + # + # The `CreateGrant` operation returns a `GrantToken` and a `GrantId`. + # + # * When you create, retire, or revoke a grant, there might be a brief + # delay, usually less than five minutes, until the grant is available + # throughout KMS. This state is known as *eventual consistency*. Once + # the grant has achieved eventual consistency, the grantee principal + # can use the permissions in the grant without identifying the grant. + # + # However, to use the permissions in the grant immediately, use the + # `GrantToken` that `CreateGrant` returns. For details, see [Using a + # grant token][3] in the Key Management Service Developer + # Guide . + # + # * The `CreateGrant` operation also returns a `GrantId`. You can use + # the `GrantId` and a key identifier to identify the grant in the + # RetireGrant and RevokeGrant operations. To find the grant ID, use + # the ListGrants or ListRetirableGrants operations. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][4] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: Yes. To perform this operation on a KMS key in + # a different Amazon Web Services account, specify the key ARN in the + # value of the `KeyId` parameter. + # + # **Required permissions**: [kms:CreateGrant][5] (key policy) + # + # **Related operations:** + # + # * ListGrants + # + # * ListRetirableGrants + # + # * RetireGrant + # + # * RevokeGrant + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][6]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-grants.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To create a grant + # + # # The following example creates a grant that allows the specified IAM role to encrypt data with the specified KMS key. + # + # resp = client.create_grant({ + # grantee_principal: "arn:aws:iam::111122223333:role/ExampleRole", # The identity that is given permission to perform the operations specified in the grant. + # key_id: "arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key to which the grant applies. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # operations: [ + # "Encrypt", + # "Decrypt", + # ], # A list of operations that the grant allows. + # }) + # + # resp.to_h outputs the following: + # { + # grant_id: "0c237476b39f8bc44e45212e08498fbe3151305030726c0590dd8d3e9f3d6a60", # The unique identifier of the grant. + # grant_token: "AQpAM2RhZTk1MGMyNTk2ZmZmMzEyYWVhOWViN2I1MWM4Mzc0MWFiYjc0ZDE1ODkyNGFlNTIzODZhMzgyZjBlNGY3NiKIAgEBAgB4Pa6VDCWW__MSrqnre1HIN0Grt00ViSSuUjhqOC8OT3YAAADfMIHcBgkqhkiG9w0BBwaggc4wgcsCAQAwgcUGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMmqLyBTAegIn9XlK5AgEQgIGXZQjkBcl1dykDdqZBUQ6L1OfUivQy7JVYO2-ZJP7m6f1g8GzV47HX5phdtONAP7K_HQIflcgpkoCqd_fUnE114mSmiagWkbQ5sqAVV3ov-VeqgrvMe5ZFEWLMSluvBAqdjHEdMIkHMlhlj4ENZbzBfo9Wxk8b8SnwP4kc4gGivedzFXo-dwN8fxjjq_ZZ9JFOj2ijIbj5FyogDCN0drOfi8RORSEuCEmPvjFRMFAwcmwFkN2NPp89amA", # The grant token. + # } + # @example Request syntax with placeholder values + # + # resp = client.create_grant({ + # key_id: "KeyIdType", # required + # grantee_principal: "PrincipalIdType", # required + # retiring_principal: "PrincipalIdType", + # operations: ["Decrypt"], # required, accepts Decrypt, Encrypt, GenerateDataKey, GenerateDataKeyWithoutPlaintext, ReEncryptFrom, ReEncryptTo, Sign, Verify, GetPublicKey, CreateGrant, RetireGrant, DescribeKey, GenerateDataKeyPair, GenerateDataKeyPairWithoutPlaintext, GenerateMac, VerifyMac, DeriveSharedSecret + # constraints: { + # encryption_context_subset: { + # "EncryptionContextKey" => "EncryptionContextValue", + # }, + # encryption_context_equals: { + # "EncryptionContextKey" => "EncryptionContextValue", + # }, + # }, + # grant_tokens: ["GrantTokenType"], + # name: "GrantNameType", + # dry_run: false, + # }) + # @example Response structure + # + # resp.grant_token #=> String + # resp.grant_id #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload create_grant + # @param params [Hash] ({}) + # @return [Types::CreateGrantResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CreateGrantResponse#grant_token #grant_token} => String + # * {Types::CreateGrantResponse#grant_id #grant_id} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateGrant AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#1478 + def create_grant(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Creates a unique customer managed [KMS key][1] in your Amazon Web + # Services account and Region. You can use a KMS key in cryptographic + # operations, such as encryption and signing. Some Amazon Web Services + # services let you use KMS keys that you create and manage to protect + # your service resources. + # + # A KMS key is a logical representation of a cryptographic key. In + # addition to the key material used in cryptographic operations, a KMS + # key includes metadata, such as the key ID, key policy, creation date, + # description, and key state. For details, see [Managing keys][2] in the + # *Key Management Service Developer Guide* + # + # Use the parameters of `CreateKey` to specify the type of KMS key, the + # source of its key material, its key policy, description, tags, and + # other properties. + # + # KMS has replaced the term *customer master key (CMK)* with *KMS key* + # and *KMS key*. The concept has not changed. To prevent breaking + # changes, KMS is keeping some variations of this term. + # + # + # + # To create different types of KMS keys, use the following guidance: + # + # Symmetric encryption KMS key + # + # : By default, `CreateKey` creates a symmetric encryption KMS key with + # key material that KMS generates. This is the basic and most widely + # used type of KMS key, and provides the best performance. + # + # To create a symmetric encryption KMS key, you don't need to specify + # any parameters. The default value for `KeySpec`, + # `SYMMETRIC_DEFAULT`, the default value for `KeyUsage`, + # `ENCRYPT_DECRYPT`, and the default value for `Origin`, `AWS_KMS`, + # create a symmetric encryption KMS key with KMS key material. + # + # If you need a key for basic encryption and decryption or you are + # creating a KMS key to protect your resources in an Amazon Web + # Services service, create a symmetric encryption KMS key. The key + # material in a symmetric encryption key never leaves KMS unencrypted. + # You can use a symmetric encryption KMS key to encrypt and decrypt + # data up to 4,096 bytes, but they are typically used to generate data + # keys and data keys pairs. For details, see GenerateDataKey and + # GenerateDataKeyPair. + # + # + # + # Asymmetric KMS keys + # + # : To create an asymmetric KMS key, use the `KeySpec` parameter to + # specify the type of key material in the KMS key. Then, use the + # `KeyUsage` parameter to determine whether the KMS key will be used + # to encrypt and decrypt or sign and verify. You can't change these + # properties after the KMS key is created. + # + # Asymmetric KMS keys contain an RSA key pair, Elliptic Curve (ECC) + # key pair, or an SM2 key pair (China Regions only). The private key + # in an asymmetric KMS key never leaves KMS unencrypted. However, you + # can use the GetPublicKey operation to download the public key so it + # can be used outside of KMS. Each KMS key can have only one key + # usage. KMS keys with RSA key pairs can be used to encrypt and + # decrypt data or sign and verify messages (but not both). KMS keys + # with NIST-recommended ECC key pairs can be used to sign and verify + # messages or derive shared secrets (but not both). KMS keys with + # `ECC_SECG_P256K1` can be used only to sign and verify messages. KMS + # keys with SM2 key pairs (China Regions only) can be used to either + # encrypt and decrypt data, sign and verify messages, or derive shared + # secrets (you must choose one key usage type). For information about + # asymmetric KMS keys, see [Asymmetric KMS keys][3] in the *Key + # Management Service Developer Guide*. + # + # + # + # HMAC KMS key + # + # : To create an HMAC KMS key, set the `KeySpec` parameter to a key spec + # value for HMAC KMS keys. Then set the `KeyUsage` parameter to + # `GENERATE_VERIFY_MAC`. You must set the key usage even though + # `GENERATE_VERIFY_MAC` is the only valid key usage value for HMAC KMS + # keys. You can't change these properties after the KMS key is + # created. + # + # HMAC KMS keys are symmetric keys that never leave KMS unencrypted. + # You can use HMAC keys to generate (GenerateMac) and verify + # (VerifyMac) HMAC codes for messages up to 4096 bytes. + # + # + # + # Multi-Region primary keys + # Imported key material + # + # : To create a multi-Region *primary key* in the local Amazon Web + # Services Region, use the `MultiRegion` parameter with a value of + # `True`. To create a multi-Region *replica key*, that is, a KMS key + # with the same key ID and key material as a primary key, but in a + # different Amazon Web Services Region, use the ReplicateKey + # operation. To change a replica key to a primary key, and its primary + # key to a replica key, use the UpdatePrimaryRegion operation. + # + # You can create multi-Region KMS keys for all supported KMS key + # types: symmetric encryption KMS keys, HMAC KMS keys, asymmetric + # encryption KMS keys, and asymmetric signing KMS keys. You can also + # create multi-Region keys with imported key material. However, you + # can't create multi-Region keys in a custom key store. + # + # This operation supports *multi-Region keys*, an KMS feature that + # lets you create multiple interoperable KMS keys in different Amazon + # Web Services Regions. Because these KMS keys have the same key ID, + # key material, and other metadata, you can use them interchangeably + # to encrypt data in one Amazon Web Services Region and decrypt it in + # a different Amazon Web Services Region without re-encrypting the + # data or making a cross-Region call. For more information about + # multi-Region keys, see [Multi-Region keys in KMS][4] in the *Key + # Management Service Developer Guide*. + # + # + # + # : To import your own key material into a KMS key, begin by creating a + # KMS key with no key material. To do this, use the `Origin` parameter + # of `CreateKey` with a value of `EXTERNAL`. Next, use + # GetParametersForImport operation to get a public key and import + # token. Use the wrapping public key to encrypt your key material. + # Then, use ImportKeyMaterial with your import token to import the key + # material. For step-by-step instructions, see [Importing Key + # Material][5] in the Key Management Service Developer + # Guide . + # + # You can import key material into KMS keys of all supported KMS key + # types: symmetric encryption KMS keys, HMAC KMS keys, asymmetric + # encryption KMS keys, and asymmetric signing KMS keys. You can also + # create multi-Region keys with imported key material. However, you + # can't import key material into a KMS key in a custom key store. + # + # To create a multi-Region primary key with imported key material, use + # the `Origin` parameter of `CreateKey` with a value of `EXTERNAL` and + # the `MultiRegion` parameter with a value of `True`. To create + # replicas of the multi-Region primary key, use the ReplicateKey + # operation. For instructions, see [Importing key material into + # multi-Region keys][6]. For more information about multi-Region keys, + # see [Multi-Region keys in KMS][4] in the *Key Management Service + # Developer Guide*. + # + # + # + # Custom key store + # + # : A [custom key store][7] lets you protect your Amazon Web Services + # resources using keys in a backing key store that you own and manage. + # When you request a cryptographic operation with a KMS key in a + # custom key store, the operation is performed in the backing key + # store using its cryptographic keys. + # + # KMS supports [CloudHSM key stores][8] backed by an CloudHSM cluster + # and [external key stores][9] backed by an external key manager + # outside of Amazon Web Services. When you create a KMS key in an + # CloudHSM key store, KMS generates an encryption key in the CloudHSM + # cluster and associates it with the KMS key. When you create a KMS + # key in an external key store, you specify an existing encryption key + # in the external key manager. + # + # Some external key managers provide a simpler method for creating a + # KMS key in an external key store. For details, see your external key + # manager documentation. + # + # + # + # Before you create a KMS key in a custom key store, the + # `ConnectionState` of the key store must be `CONNECTED`. To connect + # the custom key store, use the ConnectCustomKeyStore operation. To + # find the `ConnectionState`, use the DescribeCustomKeyStores + # operation. + # + # To create a KMS key in a custom key store, use the + # `CustomKeyStoreId`. Use the default `KeySpec` value, + # `SYMMETRIC_DEFAULT`, and the default `KeyUsage` value, + # `ENCRYPT_DECRYPT` to create a symmetric encryption key. No other key + # type is supported in a custom key store. + # + # To create a KMS key in an [CloudHSM key store][8], use the `Origin` + # parameter with a value of `AWS_CLOUDHSM`. The CloudHSM cluster that + # is associated with the custom key store must have at least two + # active HSMs in different Availability Zones in the Amazon Web + # Services Region. + # + # To create a KMS key in an [external key store][9], use the `Origin` + # parameter with a value of `EXTERNAL_KEY_STORE` and an `XksKeyId` + # parameter that identifies an existing external key. + # + # Some external key managers provide a simpler method for creating a + # KMS key in an external key store. For details, see your external key + # manager documentation. + # + # + # + # **Cross-account use**: No. You cannot use this operation to create a + # KMS key in a different Amazon Web Services account. + # + # **Required permissions**: [kms:CreateKey][10] (IAM policy). To use the + # `Tags` parameter, [kms:TagResource][10] (IAM policy). For examples and + # information about related permissions, see [Allow a user to create KMS + # keys][11] in the *Key Management Service Developer Guide*. + # + # **Related operations:** + # + # * DescribeKey + # + # * ListKeys + # + # * ScheduleKeyDeletion + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][12]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms-keys + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-import.html + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html + # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html + # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html + # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policy-example-create-key + # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To create a KMS key + # + # # The following example creates a symmetric KMS key for encryption and decryption. No parameters are required for this + # # operation. + # + # resp = client.create_key({ + # }) + # + # resp.to_h outputs the following: + # { + # key_metadata: { + # aws_account_id: "111122223333", + # arn: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + # creation_date: Time.parse("2017-07-05T14:04:55-07:00"), + # customer_master_key_spec: "SYMMETRIC_DEFAULT", + # description: "", + # enabled: true, + # encryption_algorithms: [ + # "SYMMETRIC_DEFAULT", + # ], + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", + # key_manager: "CUSTOMER", + # key_spec: "SYMMETRIC_DEFAULT", + # key_state: "Enabled", + # key_usage: "ENCRYPT_DECRYPT", + # multi_region: false, + # origin: "AWS_KMS", + # }, # Detailed information about the KMS key that this operation creates. + # } + # @example Example: To create an asymmetric RSA KMS key for encryption and decryption + # + # # This example creates a KMS key that contains an asymmetric RSA key pair for encryption and decryption. The key spec and + # # key usage can't be changed after the key is created. + # + # resp = client.create_key({ + # key_spec: "RSA_4096", # Describes the type of key material in the KMS key. + # key_usage: "ENCRYPT_DECRYPT", # The cryptographic operations for which you can use the KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # key_metadata: { + # aws_account_id: "111122223333", + # arn: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + # creation_date: Time.parse("2021-04-05T14:04:55-07:00"), + # customer_master_key_spec: "RSA_4096", + # description: "", + # enabled: true, + # encryption_algorithms: [ + # "RSAES_OAEP_SHA_1", + # "RSAES_OAEP_SHA_256", + # ], + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", + # key_manager: "CUSTOMER", + # key_spec: "RSA_4096", + # key_state: "Enabled", + # key_usage: "ENCRYPT_DECRYPT", + # multi_region: false, + # origin: "AWS_KMS", + # }, # Detailed information about the KMS key that this operation creates. + # } + # @example Example: To create an asymmetric elliptic curve KMS key for signing and verification + # + # # This example creates a KMS key that contains an asymmetric elliptic curve (ECC) key pair for signing and verification. + # # The key usage is required even though "SIGN_VERIFY" is the only valid value for ECC KMS keys. The key spec and key usage + # # can't be changed after the key is created. + # + # resp = client.create_key({ + # key_spec: "ECC_NIST_P521", # Describes the type of key material in the KMS key. + # key_usage: "SIGN_VERIFY", # The cryptographic operations for which you can use the KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # key_metadata: { + # aws_account_id: "111122223333", + # arn: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + # creation_date: Time.parse("2019-12-02T07:48:55-07:00"), + # customer_master_key_spec: "ECC_NIST_P521", + # description: "", + # enabled: true, + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", + # key_manager: "CUSTOMER", + # key_spec: "ECC_NIST_P521", + # key_state: "Enabled", + # key_usage: "SIGN_VERIFY", + # multi_region: false, + # origin: "AWS_KMS", + # signing_algorithms: [ + # "ECDSA_SHA_512", + # ], + # }, # Detailed information about the KMS key that this operation creates. + # } + # @example Example: To create an HMAC KMS key + # + # # This example creates a 384-bit symmetric HMAC KMS key. The GENERATE_VERIFY_MAC key usage value is required even though + # # it's the only valid value for HMAC KMS keys. The key spec and key usage can't be changed after the key is created. + # + # resp = client.create_key({ + # key_spec: "HMAC_384", # Describes the type of key material in the KMS key. + # key_usage: "GENERATE_VERIFY_MAC", # The cryptographic operations for which you can use the KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # key_metadata: { + # aws_account_id: "111122223333", + # arn: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + # creation_date: Time.parse("2022-04-05T14:04:55-07:00"), + # customer_master_key_spec: "HMAC_384", + # description: "", + # enabled: true, + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", + # key_manager: "CUSTOMER", + # key_spec: "HMAC_384", + # key_state: "Enabled", + # key_usage: "GENERATE_VERIFY_MAC", + # mac_algorithms: [ + # "HMAC_SHA_384", + # ], + # multi_region: false, + # origin: "AWS_KMS", + # }, # Detailed information about the KMS key that this operation creates. + # } + # @example Example: To create a multi-Region primary KMS key + # + # # This example creates a multi-Region primary symmetric encryption key. Because the default values for all parameters + # # create a symmetric encryption key, only the MultiRegion parameter is required for this KMS key. + # + # resp = client.create_key({ + # multi_region: true, # Indicates whether the KMS key is a multi-Region (True) or regional (False) key. + # }) + # + # resp.to_h outputs the following: + # { + # key_metadata: { + # aws_account_id: "111122223333", + # arn: "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab", + # creation_date: Time.parse("2021-09-02T016:15:21-09:00"), + # customer_master_key_spec: "SYMMETRIC_DEFAULT", + # description: "", + # enabled: true, + # encryption_algorithms: [ + # "SYMMETRIC_DEFAULT", + # ], + # key_id: "mrk-1234abcd12ab34cd56ef12345678990ab", + # key_manager: "CUSTOMER", + # key_spec: "SYMMETRIC_DEFAULT", + # key_state: "Enabled", + # key_usage: "ENCRYPT_DECRYPT", + # multi_region: true, + # multi_region_configuration: { + # multi_region_key_type: "PRIMARY", + # primary_key: { + # arn: "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab", + # region: "us-west-2", + # }, + # replica_keys: [ + # ], + # }, + # origin: "AWS_KMS", + # }, # Detailed information about the KMS key that this operation creates. + # } + # @example Example: To create a KMS key for imported key material + # + # # This example creates a symmetric KMS key with no key material. When the operation is complete, you can import your own + # # key material into the KMS key. To create this KMS key, set the Origin parameter to EXTERNAL. + # + # resp = client.create_key({ + # origin: "EXTERNAL", # The source of the key material for the KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # key_metadata: { + # aws_account_id: "111122223333", + # arn: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + # creation_date: Time.parse("2019-12-02T07:48:55-07:00"), + # customer_master_key_spec: "SYMMETRIC_DEFAULT", + # description: "", + # enabled: false, + # encryption_algorithms: [ + # "SYMMETRIC_DEFAULT", + # ], + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", + # key_manager: "CUSTOMER", + # key_spec: "SYMMETRIC_DEFAULT", + # key_state: "PendingImport", + # key_usage: "ENCRYPT_DECRYPT", + # multi_region: false, + # origin: "EXTERNAL", + # }, # Detailed information about the KMS key that this operation creates. + # } + # @example Example: To create a KMS key in an AWS CloudHSM key store + # + # # This example creates a KMS key in the specified AWS CloudHSM key store. The operation creates the KMS key and its + # # metadata in AWS KMS and creates the key material in the AWS CloudHSM cluster associated with the custom key store. This + # # example requires the CustomKeyStoreId and Origin parameters. + # + # resp = client.create_key({ + # custom_key_store_id: "cks-1234567890abcdef0", # Identifies the custom key store that hosts the KMS key. + # origin: "AWS_CLOUDHSM", # Indicates the source of the key material for the KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # key_metadata: { + # aws_account_id: "111122223333", + # arn: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + # cloud_hsm_cluster_id: "cluster-234abcdefABC", + # creation_date: Time.parse("2019-12-02T07:48:55-07:00"), + # custom_key_store_id: "cks-1234567890abcdef0", + # customer_master_key_spec: "SYMMETRIC_DEFAULT", + # description: "", + # enabled: true, + # encryption_algorithms: [ + # "SYMMETRIC_DEFAULT", + # ], + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", + # key_manager: "CUSTOMER", + # key_spec: "SYMMETRIC_DEFAULT", + # key_state: "Enabled", + # key_usage: "ENCRYPT_DECRYPT", + # multi_region: false, + # origin: "AWS_CLOUDHSM", + # }, # Detailed information about the KMS key that this operation creates. + # } + # @example Example: To create a KMS key in an external key store + # + # # This example creates a KMS key in the specified external key store. It uses the XksKeyId parameter to associate the KMS + # # key with an existing symmetric encryption key in your external key manager. This CustomKeyStoreId, Origin, and XksKeyId + # # parameters are required in this operation. + # + # resp = client.create_key({ + # custom_key_store_id: "cks-9876543210fedcba9", # Identifies the custom key store that hosts the KMS key. + # origin: "EXTERNAL_KEY_STORE", # Indicates the source of the key material for the KMS key. + # xks_key_id: "bb8562717f809024", # Identifies the encryption key in your external key manager that is associated with the KMS key + # }) + # + # resp.to_h outputs the following: + # { + # key_metadata: { + # aws_account_id: "111122223333", + # arn: "arn:aws:kms:us-east-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", + # creation_date: Time.parse("2022-02-02T07:48:55-07:00"), + # custom_key_store_id: "cks-9876543210fedcba9", + # customer_master_key_spec: "SYMMETRIC_DEFAULT", + # description: "", + # enabled: true, + # encryption_algorithms: [ + # "SYMMETRIC_DEFAULT", + # ], + # key_id: "0987dcba-09fe-87dc-65ba-ab0987654321", + # key_manager: "CUSTOMER", + # key_spec: "SYMMETRIC_DEFAULT", + # key_state: "Enabled", + # key_usage: "ENCRYPT_DECRYPT", + # multi_region: false, + # origin: "EXTERNAL_KEY_STORE", + # xks_key_configuration: { + # id: "bb8562717f809024", + # }, + # }, # Detailed information about the KMS key that this operation creates. + # } + # @example Request syntax with placeholder values + # + # resp = client.create_key({ + # policy: "PolicyType", + # description: "DescriptionType", + # key_usage: "SIGN_VERIFY", # accepts SIGN_VERIFY, ENCRYPT_DECRYPT, GENERATE_VERIFY_MAC, KEY_AGREEMENT + # customer_master_key_spec: "RSA_2048", # accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SYMMETRIC_DEFAULT, HMAC_224, HMAC_256, HMAC_384, HMAC_512, SM2 + # key_spec: "RSA_2048", # accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SYMMETRIC_DEFAULT, HMAC_224, HMAC_256, HMAC_384, HMAC_512, SM2 + # origin: "AWS_KMS", # accepts AWS_KMS, EXTERNAL, AWS_CLOUDHSM, EXTERNAL_KEY_STORE + # custom_key_store_id: "CustomKeyStoreIdType", + # bypass_policy_lockout_safety_check: false, + # tags: [ + # { + # tag_key: "TagKeyType", # required + # tag_value: "TagValueType", # required + # }, + # ], + # multi_region: false, + # xks_key_id: "XksKeyIdType", + # }) + # @example Response structure + # + # resp.key_metadata.aws_account_id #=> String + # resp.key_metadata.key_id #=> String + # resp.key_metadata.arn #=> String + # resp.key_metadata.creation_date #=> Time + # resp.key_metadata.enabled #=> Boolean + # resp.key_metadata.description #=> String + # resp.key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC", "KEY_AGREEMENT" + # resp.key_metadata.key_state #=> String, one of "Creating", "Enabled", "Disabled", "PendingDeletion", "PendingImport", "PendingReplicaDeletion", "Unavailable", "Updating" + # resp.key_metadata.deletion_date #=> Time + # resp.key_metadata.valid_to #=> Time + # resp.key_metadata.origin #=> String, one of "AWS_KMS", "EXTERNAL", "AWS_CLOUDHSM", "EXTERNAL_KEY_STORE" + # resp.key_metadata.custom_key_store_id #=> String + # resp.key_metadata.cloud_hsm_cluster_id #=> String + # resp.key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE" + # resp.key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER" + # resp.key_metadata.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2" + # resp.key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2" + # resp.key_metadata.encryption_algorithms #=> Array + # resp.key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE" + # resp.key_metadata.signing_algorithms #=> Array + # resp.key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA" + # resp.key_metadata.key_agreement_algorithms #=> Array + # resp.key_metadata.key_agreement_algorithms[0] #=> String, one of "ECDH" + # resp.key_metadata.multi_region #=> Boolean + # resp.key_metadata.multi_region_configuration.multi_region_key_type #=> String, one of "PRIMARY", "REPLICA" + # resp.key_metadata.multi_region_configuration.primary_key.arn #=> String + # resp.key_metadata.multi_region_configuration.primary_key.region #=> String + # resp.key_metadata.multi_region_configuration.replica_keys #=> Array + # resp.key_metadata.multi_region_configuration.replica_keys[0].arn #=> String + # resp.key_metadata.multi_region_configuration.replica_keys[0].region #=> String + # resp.key_metadata.pending_deletion_window_in_days #=> Integer + # resp.key_metadata.mac_algorithms #=> Array + # resp.key_metadata.mac_algorithms[0] #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512" + # resp.key_metadata.xks_key_configuration.id #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload create_key + # @param params [Hash] ({}) + # @return [Types::CreateKeyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CreateKeyResponse#key_metadata #key_metadata} => Types::KeyMetadata + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateKey AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#2385 + def create_key(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Decrypts ciphertext that was encrypted by a KMS key using any of the + # following operations: + # + # * Encrypt + # + # * GenerateDataKey + # + # * GenerateDataKeyPair + # + # * GenerateDataKeyWithoutPlaintext + # + # * GenerateDataKeyPairWithoutPlaintext + # + # You can use this operation to decrypt ciphertext that was encrypted + # under a symmetric encryption KMS key or an asymmetric encryption KMS + # key. When the KMS key is asymmetric, you must specify the KMS key and + # the encryption algorithm that was used to encrypt the ciphertext. For + # information about asymmetric KMS keys, see [Asymmetric KMS keys][1] in + # the *Key Management Service Developer Guide*. + # + # The `Decrypt` operation also decrypts ciphertext that was encrypted + # outside of KMS by the public key in an KMS asymmetric KMS key. + # However, it cannot decrypt symmetric ciphertext produced by other + # libraries, such as the [Amazon Web Services Encryption SDK][2] or + # [Amazon S3 client-side encryption][3]. These libraries return a + # ciphertext format that is incompatible with KMS. + # + # If the ciphertext was encrypted under a symmetric encryption KMS key, + # the `KeyId` parameter is optional. KMS can get this information from + # metadata that it adds to the symmetric ciphertext blob. This feature + # adds durability to your implementation by ensuring that authorized + # users can decrypt ciphertext decades after it was encrypted, even if + # they've lost track of the key ID. However, specifying the KMS key is + # always recommended as a best practice. When you use the `KeyId` + # parameter to specify a KMS key, KMS only uses the KMS key you specify. + # If the ciphertext was encrypted under a different KMS key, the + # `Decrypt` operation fails. This practice ensures that you use the KMS + # key that you intend. + # + # Whenever possible, use key policies to give users permission to call + # the `Decrypt` operation on a particular KMS key, instead of using + # &IAM; policies. Otherwise, you might create an &IAM; policy + # that gives the user `Decrypt` permission on all KMS keys. This user + # could decrypt ciphertext that was encrypted by KMS keys in other + # accounts if the key policy for the cross-account KMS key permits it. + # If you must use an IAM policy for `Decrypt` permissions, limit the + # user to particular KMS keys or particular trusted accounts. For + # details, see [Best practices for IAM policies][4] in the *Key + # Management Service Developer Guide*. + # + # `Decrypt` also supports [Amazon Web Services Nitro Enclaves][5], which + # provide an isolated compute environment in Amazon EC2. To call + # `Decrypt` for a Nitro enclave, use the [Amazon Web Services Nitro + # Enclaves SDK][6] or any Amazon Web Services SDK. Use the `Recipient` + # parameter to provide the attestation document for the enclave. Instead + # of the plaintext data, the response includes the plaintext data + # encrypted with the public key from the attestation document + # (`CiphertextForRecipient`). For information about the interaction + # between KMS and Amazon Web Services Nitro Enclaves, see [How Amazon + # Web Services Nitro Enclaves uses KMS][7] in the *Key Management + # Service Developer Guide*. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][8] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: Yes. If you use the `KeyId` parameter to + # identify a KMS key in a different Amazon Web Services account, specify + # the key ARN or the alias ARN of the KMS key. + # + # **Required permissions**: [kms:Decrypt][9] (key policy) + # + # **Related operations:** + # + # * Encrypt + # + # * GenerateDataKey + # + # * GenerateDataKeyPair + # + # * ReEncrypt + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][10]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html + # [2]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/ + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policies-best-practices + # [5]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html + # [6]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html + # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To decrypt data with a symmetric encryption KMS key + # + # # The following example decrypts data that was encrypted with a symmetric encryption KMS key. The KeyId is not required + # # when decrypting with a symmetric encryption key, but it is a best practice. + # + # resp = client.decrypt({ + # ciphertext_blob: "", # The encrypted data (ciphertext). + # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # A key identifier for the KMS key to use to decrypt the data. + # }) + # + # resp.to_h outputs the following: + # { + # encryption_algorithm: "SYMMETRIC_DEFAULT", # The encryption algorithm that was used to decrypt the ciphertext. SYMMETRIC_DEFAULT is the only valid value for symmetric encryption in AWS KMS. + # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The Amazon Resource Name (ARN) of the KMS key that was used to decrypt the data. + # plaintext: "", # The decrypted (plaintext) data. + # } + # @example Example: To decrypt data with an asymmetric encryption KMS key + # + # # The following example decrypts data that was encrypted with an asymmetric encryption KMS key. When the KMS encryption + # # key is asymmetric, you must specify the KMS key ID and the encryption algorithm that was used to encrypt the data. + # + # resp = client.decrypt({ + # ciphertext_blob: "", # The encrypted data (ciphertext). + # encryption_algorithm: "RSAES_OAEP_SHA_256", # The encryption algorithm that was used to encrypt the data. This parameter is required to decrypt with an asymmetric KMS key. + # key_id: "0987dcba-09fe-87dc-65ba-ab0987654321", # A key identifier for the KMS key to use to decrypt the data. This parameter is required to decrypt with an asymmetric KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # encryption_algorithm: "RSAES_OAEP_SHA_256", # The encryption algorithm that was used to decrypt the ciphertext. + # key_id: "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", # The Amazon Resource Name (ARN) of the KMS key that was used to decrypt the data. + # plaintext: "", # The decrypted (plaintext) data. + # } + # @example Example: To decrypt data for a Nitro enclave + # + # # The following Decrypt example includes the Recipient parameter with a signed attestation document from an AWS Nitro + # # enclave. Instead of returning the decrypted data in plaintext (Plaintext), the operation returns the decrypted data + # # encrypted by the public key from the attestation document (CiphertextForRecipient). + # + # resp = client.decrypt({ + # ciphertext_blob: "", # The encrypted data. This ciphertext was encrypted with the KMS key + # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The KMS key to use to decrypt the ciphertext + # recipient: { + # attestation_document: "", + # key_encryption_algorithm: "RSAES_OAEP_SHA_256", + # }, # Specifies the attestation document from the Nitro enclave and the encryption algorithm to use with the public key from the attestation document + # }) + # + # resp.to_h outputs the following: + # { + # ciphertext_for_recipient: "", # The decrypted CiphertextBlob encrypted with the public key from the attestation document + # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The KMS key that was used to decrypt the encrypted data (CiphertextBlob) + # plaintext: "", # This field is null or empty + # } + # @example Request syntax with placeholder values + # + # resp = client.decrypt({ + # ciphertext_blob: "data", # required + # encryption_context: { + # "EncryptionContextKey" => "EncryptionContextValue", + # }, + # grant_tokens: ["GrantTokenType"], + # key_id: "KeyIdType", + # encryption_algorithm: "SYMMETRIC_DEFAULT", # accepts SYMMETRIC_DEFAULT, RSAES_OAEP_SHA_1, RSAES_OAEP_SHA_256, SM2PKE + # recipient: { + # key_encryption_algorithm: "RSAES_OAEP_SHA_256", # accepts RSAES_OAEP_SHA_256 + # attestation_document: "data", + # }, + # dry_run: false, + # }) + # @example Response structure + # + # resp.key_id #=> String + # resp.plaintext #=> String + # resp.encryption_algorithm #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE" + # resp.ciphertext_for_recipient #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload decrypt + # @param params [Hash] ({}) + # @return [Types::DecryptResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DecryptResponse#key_id #key_id} => String + # * {Types::DecryptResponse#plaintext #plaintext} => String + # * {Types::DecryptResponse#encryption_algorithm #encryption_algorithm} => String + # * {Types::DecryptResponse#ciphertext_for_recipient #ciphertext_for_recipient} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Decrypt AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#2701 + def decrypt(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Deletes the specified alias. + # + # Adding, deleting, or updating an alias can allow or deny permission to + # the KMS key. For details, see [ABAC for KMS][1] in the *Key Management + # Service Developer Guide*. + # + # + # + # Because an alias is not a property of a KMS key, you can delete and + # change the aliases of a KMS key without affecting the KMS key. Also, + # aliases do not appear in the response from the DescribeKey operation. + # To get the aliases of all KMS keys, use the ListAliases operation. + # + # Each KMS key can have multiple aliases. To change the alias of a KMS + # key, use DeleteAlias to delete the current alias and CreateAlias to + # create a new alias. To associate an existing alias with a different + # KMS key, call UpdateAlias. + # + # **Cross-account use**: No. You cannot perform this operation on an + # alias in a different Amazon Web Services account. + # + # **Required permissions** + # + # * [kms:DeleteAlias][2] on the alias (IAM policy). + # + # * [kms:DeleteAlias][2] on the KMS key (key policy). + # + # For details, see [Controlling access to aliases][3] in the *Key + # Management Service Developer Guide*. + # + # **Related operations:** + # + # * CreateAlias + # + # * ListAliases + # + # * UpdateAlias + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][4]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/abac.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To delete an alias + # + # # The following example deletes the specified alias. + # + # resp = client.delete_alias({ + # alias_name: "alias/ExampleAlias", # The alias to delete. + # }) + # @example Request syntax with placeholder values + # + # resp = client.delete_alias({ + # alias_name: "AliasNameType", # required + # }) + # @option params + # @overload delete_alias + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteAlias AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#2779 + def delete_alias(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Deletes a [custom key store][1]. This operation does not affect any + # backing elements of the custom key store. It does not delete the + # CloudHSM cluster that is associated with an CloudHSM key store, or + # affect any users or keys in the cluster. For an external key store, it + # does not affect the external key store proxy, external key manager, or + # any external keys. + # + # This operation is part of the [custom key stores][1] feature in KMS, + # which combines the convenience and extensive integration of KMS with + # the isolation and control of a key store that you own and manage. + # + # The custom key store that you delete cannot contain any [KMS keys][2]. + # Before deleting the key store, verify that you will never need to use + # any of the KMS keys in the key store for any [cryptographic + # operations][3]. Then, use ScheduleKeyDeletion to delete the KMS keys + # from the key store. After the required waiting period expires and all + # KMS keys are deleted from the custom key store, use + # DisconnectCustomKeyStore to disconnect the key store from KMS. Then, + # you can delete the custom key store. + # + # For keys in an CloudHSM key store, the `ScheduleKeyDeletion` operation + # makes a best effort to delete the key material from the associated + # cluster. However, you might need to manually [delete the orphaned key + # material][4] from the cluster and its backups. KMS never creates, + # manages, or deletes cryptographic keys in the external key manager + # associated with an external key store. You must manage them using your + # external key manager tools. + # + # Instead of deleting the custom key store, consider using the + # DisconnectCustomKeyStore operation to disconnect the custom key store + # from its backing key store. While the key store is disconnected, you + # cannot create or use the KMS keys in the key store. But, you do not + # need to delete KMS keys and you can reconnect a disconnected custom + # key store at any time. + # + # If the operation succeeds, it returns a JSON object with no + # properties. + # + # **Cross-account use**: No. You cannot perform this operation on a + # custom key store in a different Amazon Web Services account. + # + # **Required permissions**: [kms:DeleteCustomKeyStore][5] (IAM policy) + # + # **Related operations:** + # + # * ConnectCustomKeyStore + # + # * CreateCustomKeyStore + # + # * DescribeCustomKeyStores + # + # * DisconnectCustomKeyStore + # + # * UpdateCustomKeyStore + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][6]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To delete a custom key store from AWS KMS + # + # # This example deletes a custom key store from AWS KMS. This operation does not affect the backing key store, such as a + # # CloudHSM cluster, external key store proxy, or your external key manager. This operation doesn't return any data. To + # # verify that the operation was successful, use the DescribeCustomKeyStores operation. + # + # resp = client.delete_custom_key_store({ + # custom_key_store_id: "cks-1234567890abcdef0", # The ID of the custom key store to be deleted. + # }) + # + # resp.to_h outputs the following: + # { + # } + # @example Request syntax with placeholder values + # + # resp = client.delete_custom_key_store({ + # custom_key_store_id: "CustomKeyStoreIdType", # required + # }) + # @option params + # @overload delete_custom_key_store + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteCustomKeyStore AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#2882 + def delete_custom_key_store(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Deletes key material that was previously imported. This operation + # makes the specified KMS key temporarily unusable. To restore the + # usability of the KMS key, reimport the same key material. For more + # information about importing key material into KMS, see [Importing Key + # Material][1] in the *Key Management Service Developer Guide*. + # + # When the specified KMS key is in the `PendingDeletion` state, this + # operation does not change the KMS key's state. Otherwise, it changes + # the KMS key's state to `PendingImport`. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][2] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions**: [kms:DeleteImportedKeyMaterial][3] (key + # policy) + # + # **Related operations:** + # + # * GetParametersForImport + # + # * ImportKeyMaterial + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][4]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To delete imported key material + # + # # The following example deletes the imported key material from the specified KMS key. + # + # resp = client.delete_imported_key_material({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key whose imported key material you are deleting. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # }) + # @example Request syntax with placeholder values + # + # resp = client.delete_imported_key_material({ + # key_id: "KeyIdType", # required + # }) + # @option params + # @overload delete_imported_key_material + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteImportedKeyMaterial AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#2960 + def delete_imported_key_material(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Derives a shared secret using a key agreement algorithm. + # + # You must use an asymmetric NIST-recommended elliptic curve (ECC) or + # SM2 (China Regions only) KMS key pair with a `KeyUsage` value of + # `KEY_AGREEMENT` to call DeriveSharedSecret. + # + # + # + # DeriveSharedSecret uses the [Elliptic Curve Cryptography Cofactor + # Diffie-Hellman Primitive][1] (ECDH) to establish a key agreement + # between two peers by deriving a shared secret from their elliptic + # curve public-private key pairs. You can use the raw shared secret that + # DeriveSharedSecret returns to derive a symmetric key that can encrypt + # and decrypt data that is sent between the two peers, or that can + # generate and verify HMACs. KMS recommends that you follow [NIST + # recommendations for key derivation][2] when using the raw shared + # secret to derive a symmetric key. + # + # The following workflow demonstrates how to establish key agreement + # over an insecure communication channel using DeriveSharedSecret. + # + # 1. **Alice** calls CreateKey to create an asymmetric KMS key pair + # with a `KeyUsage` value of `KEY_AGREEMENT`. + # + # The asymmetric KMS key must use a NIST-recommended elliptic curve + # (ECC) or SM2 (China Regions only) key spec. + # + # 2. **Bob** creates an elliptic curve key pair. + # + # Bob can call CreateKey to create an asymmetric KMS key pair or + # generate a key pair outside of KMS. Bob's key pair must use the + # same NIST-recommended elliptic curve (ECC) or SM2 (China Regions + # ony) curve as Alice. + # + # 3. Alice and Bob **exchange their public keys** through an insecure + # communication channel (like the internet). + # + # Use GetPublicKey to download the public key of your asymmetric KMS + # key pair. + # + # KMS strongly recommends verifying that the public key you receive + # came from the expected party before using it to derive a shared + # secret. + # + # + # + # 4. **Alice** calls DeriveSharedSecret. + # + # KMS uses the private key from the KMS key pair generated in **Step + # 1**, Bob's public key, and the Elliptic Curve Cryptography + # Cofactor Diffie-Hellman Primitive to derive the shared secret. The + # private key in your KMS key pair never leaves KMS unencrypted. + # DeriveSharedSecret returns the raw shared secret. + # + # 5. **Bob** uses the Elliptic Curve Cryptography Cofactor + # Diffie-Hellman Primitive to calculate the same raw secret using + # his private key and Alice's public key. + # + # To derive a shared secret you must provide a key agreement algorithm, + # the private key of the caller's asymmetric NIST-recommended elliptic + # curve or SM2 (China Regions only) KMS key pair, and the public key + # from your peer's NIST-recommended elliptic curve or SM2 (China + # Regions only) key pair. The public key can be from another asymmetric + # KMS key pair or from a key pair generated outside of KMS, but both key + # pairs must be on the same elliptic curve. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][3] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: Yes. To perform this operation with a KMS key + # in a different Amazon Web Services account, specify the key ARN or + # alias ARN in the value of the `KeyId` parameter. + # + # **Required permissions**: [kms:DeriveSharedSecret][4] (key policy) + # + # **Related operations:** + # + # * CreateKey + # + # * GetPublicKey + # + # * DescribeKey + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][5]. + # + # + # + # [1]: https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf#page=60 + # [2]: https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Cr2.pdf + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To derive a shared secret + # + # # The following example derives a shared secret using a key agreement algorithm. + # + # resp = client.derive_shared_secret({ + # key_agreement_algorithm: "ECDH", # The key agreement algorithm used to derive the shared secret. The only valid value is ECDH. + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The key identifier for an asymmetric KMS key pair. The private key in the specified key pair is used to derive the shared secret. + # public_key: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvH3Yj0wbkLEpUl95Cv1cJVjsVNSjwGq3tCLnzXfhVwVvmzGN8pYj3U8nKwgouaHbBWNJYjP5VutbbkKS4Kv4GojwZBJyHN17kmxo8yTjRmjR15SKIQ8cqRA2uaERMLnpztIXdZp232PQPbWGxDyXYJ0aJ5EFSag", # The public key in your peer's asymmetric key pair. + # }) + # + # resp.to_h outputs the following: + # { + # key_agreement_algorithm: "ECDH", # The key agreement algorithm used to derive the shared secret. + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The asymmetric KMS key pair used to derive the shared secret. + # key_origin: "AWS_KMS", # The source of the key material for the specified KMS key. + # shared_secret: "MEYCIQCKZLWyTk5runarx6XiAkU9gv3lbwPO/pHa+DXFehzdDwIhANwpsIV2g/9SPWLLsF6p/hiSskuIXMTRwqrMdVKWTMHG", # The raw secret derived from the specified key agreement algorithm, private key in the asymmetric KMS key, and your peer's public key. + # } + # @example Request syntax with placeholder values + # + # resp = client.derive_shared_secret({ + # key_id: "KeyIdType", # required + # key_agreement_algorithm: "ECDH", # required, accepts ECDH + # public_key: "data", # required + # grant_tokens: ["GrantTokenType"], + # dry_run: false, + # recipient: { + # key_encryption_algorithm: "RSAES_OAEP_SHA_256", # accepts RSAES_OAEP_SHA_256 + # attestation_document: "data", + # }, + # }) + # @example Response structure + # + # resp.key_id #=> String + # resp.shared_secret #=> String + # resp.ciphertext_for_recipient #=> String + # resp.key_agreement_algorithm #=> String, one of "ECDH" + # resp.key_origin #=> String, one of "AWS_KMS", "EXTERNAL", "AWS_CLOUDHSM", "EXTERNAL_KEY_STORE" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload derive_shared_secret + # @param params [Hash] ({}) + # @return [Types::DeriveSharedSecretResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DeriveSharedSecretResponse#key_id #key_id} => String + # * {Types::DeriveSharedSecretResponse#shared_secret #shared_secret} => String + # * {Types::DeriveSharedSecretResponse#ciphertext_for_recipient #ciphertext_for_recipient} => String + # * {Types::DeriveSharedSecretResponse#key_agreement_algorithm #key_agreement_algorithm} => String + # * {Types::DeriveSharedSecretResponse#key_origin #key_origin} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeriveSharedSecret AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#3224 + def derive_shared_secret(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Gets information about [custom key stores][1] in the account and + # Region. + # + # This operation is part of the [custom key stores][1] feature in KMS, + # which combines the convenience and extensive integration of KMS with + # the isolation and control of a key store that you own and manage. + # + # By default, this operation returns information about all custom key + # stores in the account and Region. To get only information about a + # particular custom key store, use either the `CustomKeyStoreName` or + # `CustomKeyStoreId` parameter (but not both). + # + # To determine whether the custom key store is connected to its CloudHSM + # cluster or external key store proxy, use the `ConnectionState` element + # in the response. If an attempt to connect the custom key store failed, + # the `ConnectionState` value is `FAILED` and the `ConnectionErrorCode` + # element in the response indicates the cause of the failure. For help + # interpreting the `ConnectionErrorCode`, see CustomKeyStoresListEntry. + # + # Custom key stores have a `DISCONNECTED` connection state if the key + # store has never been connected or you used the + # DisconnectCustomKeyStore operation to disconnect it. Otherwise, the + # connection state is CONNECTED. If your custom key store connection + # state is `CONNECTED` but you are having trouble using it, verify that + # the backing store is active and available. For an CloudHSM key store, + # verify that the associated CloudHSM cluster is active and contains the + # minimum number of HSMs required for the operation, if any. For an + # external key store, verify that the external key store proxy and its + # associated external key manager are reachable and enabled. + # + # For help repairing your CloudHSM key store, see the [Troubleshooting + # CloudHSM key stores][2]. For help repairing your external key store, + # see the [Troubleshooting external key stores][3]. Both topics are in + # the *Key Management Service Developer Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on a + # custom key store in a different Amazon Web Services account. + # + # **Required permissions**: [kms:DescribeCustomKeyStores][4] (IAM + # policy) + # + # **Related operations:** + # + # * ConnectCustomKeyStore + # + # * CreateCustomKeyStore + # + # * DeleteCustomKeyStore + # + # * DisconnectCustomKeyStore + # + # * UpdateCustomKeyStore + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][5]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/xks-troubleshooting.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Example: To get detailed information about custom key stores in the account and Region + # + # # This example gets detailed information about all AWS KMS custom key stores in an AWS account and Region. To get all key + # # stores, do not enter a custom key store name or ID. + # + # resp = client.describe_custom_key_stores({ + # }) + # + # resp.to_h outputs the following: + # { + # custom_key_stores: [ + # ], # Details about each custom key store in the account and Region. + # } + # @example Example: To get detailed information about an AWS CloudHSM key store by specifying its friendly name + # + # # This example gets detailed information about a particular AWS CloudHSM key store by specifying its friendly name. To + # # limit the output to a particular custom key store, provide either the custom key store name or ID. + # + # resp = client.describe_custom_key_stores({ + # custom_key_store_name: "ExampleKeyStore", # The friendly name of the custom key store. + # }) + # + # resp.to_h outputs the following: + # { + # custom_key_stores: [ + # { + # cloud_hsm_cluster_id: "cluster-234abcdefABC", + # connection_state: "CONNECTED", + # creation_date: Time.parse("1.499288695918E9"), + # custom_key_store_id: "cks-1234567890abcdef0", + # custom_key_store_name: "ExampleKeyStore", + # custom_key_store_type: "AWS_CLOUDHSM", + # trust_anchor_certificate: "", + # }, + # ], # Detailed information about the specified custom key store. + # } + # @example Example: To get detailed information about an external key store by specifying its ID + # + # # This example gets detailed information about an external key store by specifying its ID. The example external key store + # # proxy uses public endpoint connectivity. + # + # resp = client.describe_custom_key_stores({ + # custom_key_store_id: "cks-9876543210fedcba9", # The ID of the custom key store. + # }) + # + # resp.to_h outputs the following: + # { + # custom_key_stores: [ + # { + # connection_state: "CONNECTED", + # creation_date: Time.parse("1.599288695918E9"), + # custom_key_store_id: "cks-9876543210fedcba9", + # custom_key_store_name: "ExampleExternalKeyStore", + # custom_key_store_type: "EXTERNAL_KEY_STORE", + # xks_proxy_configuration: { + # access_key_id: "ABCDE12345670EXAMPLE", + # connectivity: "PUBLIC_ENDPOINT", + # uri_endpoint: "https://myproxy.xks.example.com", + # uri_path: "/kms/xks/v1", + # }, + # }, + # ], # Detailed information about the specified custom key store. + # } + # @example Example: To get detailed information about an external key store VPC endpoint connectivity by specifying its friendly name + # + # # This example gets detailed information about a particular external key store by specifying its friendly name. To limit + # # the output to a particular custom key store, provide either the custom key store name or ID. The proxy URI path for this + # # external key store includes an optional prefix. Also, because this example external key store uses VPC endpoint + # # connectivity, the response includes the associated VPC endpoint service name. + # + # resp = client.describe_custom_key_stores({ + # custom_key_store_name: "VPCExternalKeystore", + # }) + # + # resp.to_h outputs the following: + # { + # custom_key_stores: [ + # { + # connection_state: "CONNECTED", + # creation_date: Time.parse("1.643057863.842"), + # custom_key_store_id: "cks-876543210fedcba98", + # custom_key_store_name: "ExampleVPCExternalKeyStore", + # custom_key_store_type: "EXTERNAL_KEY_STORE", + # xks_proxy_configuration: { + # access_key_id: "ABCDE12345670EXAMPLE", + # connectivity: "VPC_ENDPOINT_SERVICE", + # uri_endpoint: "https://myproxy-private.xks.example.com", + # uri_path: "/example-prefix/kms/xks/v1", + # vpc_endpoint_service_name: "com.amazonaws.vpce.us-east-1.vpce-svc-example1", + # }, + # }, + # ], # Detailed information about the specified custom key store. + # } + # @example Request syntax with placeholder values + # + # resp = client.describe_custom_key_stores({ + # custom_key_store_id: "CustomKeyStoreIdType", + # custom_key_store_name: "CustomKeyStoreNameType", + # limit: 1, + # marker: "MarkerType", + # }) + # @example Response structure + # + # resp.custom_key_stores #=> Array + # resp.custom_key_stores[0].custom_key_store_id #=> String + # resp.custom_key_stores[0].custom_key_store_name #=> String + # resp.custom_key_stores[0].cloud_hsm_cluster_id #=> String + # resp.custom_key_stores[0].trust_anchor_certificate #=> String + # resp.custom_key_stores[0].connection_state #=> String, one of "CONNECTED", "CONNECTING", "FAILED", "DISCONNECTED", "DISCONNECTING" + # resp.custom_key_stores[0].connection_error_code #=> String, one of "INVALID_CREDENTIALS", "CLUSTER_NOT_FOUND", "NETWORK_ERRORS", "INTERNAL_ERROR", "INSUFFICIENT_CLOUDHSM_HSMS", "USER_LOCKED_OUT", "USER_NOT_FOUND", "USER_LOGGED_IN", "SUBNET_NOT_FOUND", "INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET", "XKS_PROXY_ACCESS_DENIED", "XKS_PROXY_NOT_REACHABLE", "XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND", "XKS_PROXY_INVALID_RESPONSE", "XKS_PROXY_INVALID_CONFIGURATION", "XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION", "XKS_PROXY_TIMED_OUT", "XKS_PROXY_INVALID_TLS_CONFIGURATION" + # resp.custom_key_stores[0].creation_date #=> Time + # resp.custom_key_stores[0].custom_key_store_type #=> String, one of "AWS_CLOUDHSM", "EXTERNAL_KEY_STORE" + # resp.custom_key_stores[0].xks_proxy_configuration.connectivity #=> String, one of "PUBLIC_ENDPOINT", "VPC_ENDPOINT_SERVICE" + # resp.custom_key_stores[0].xks_proxy_configuration.access_key_id #=> String + # resp.custom_key_stores[0].xks_proxy_configuration.uri_endpoint #=> String + # resp.custom_key_stores[0].xks_proxy_configuration.uri_path #=> String + # resp.custom_key_stores[0].xks_proxy_configuration.vpc_endpoint_service_name #=> String + # resp.next_marker #=> String + # resp.truncated #=> Boolean + # @option params + # @option params + # @option params + # @option params + # @overload describe_custom_key_stores + # @param params [Hash] ({}) + # @return [Types::DescribeCustomKeyStoresResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DescribeCustomKeyStoresResponse#custom_key_stores #custom_key_stores} => Array<Types::CustomKeyStoresListEntry> + # * {Types::DescribeCustomKeyStoresResponse#next_marker #next_marker} => String + # * {Types::DescribeCustomKeyStoresResponse#truncated #truncated} => Boolean + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeCustomKeyStores AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#3459 + def describe_custom_key_stores(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Provides detailed information about a KMS key. You can run + # `DescribeKey` on a [customer managed key][1] or an [Amazon Web + # Services managed key][2]. + # + # This detailed information includes the key ARN, creation date (and + # deletion date, if applicable), the key state, and the origin and + # expiration date (if any) of the key material. It includes fields, like + # `KeySpec`, that help you distinguish different types of KMS keys. It + # also displays the key usage (encryption, signing, or generating and + # verifying MACs) and the algorithms that the KMS key supports. + # + # For [multi-Region keys][3], `DescribeKey` displays the primary key and + # all related replica keys. For KMS keys in [CloudHSM key stores][4], it + # includes information about the key store, such as the key store ID and + # the CloudHSM cluster ID. For KMS keys in [external key stores][5], it + # includes the custom key store ID and the ID of the external key. + # + # `DescribeKey` does not return the following information: + # + # * Aliases associated with the KMS key. To get this information, use + # ListAliases. + # + # * Whether automatic key rotation is enabled on the KMS key. To get + # this information, use GetKeyRotationStatus. Also, some key states + # prevent a KMS key from being automatically rotated. For details, see + # [How Automatic Key Rotation Works][6] in the *Key Management Service + # Developer Guide*. + # + # * Tags on the KMS key. To get this information, use ListResourceTags. + # + # * Key policies and grants on the KMS key. To get this information, use + # GetKeyPolicy and ListGrants. + # + # In general, `DescribeKey` is a non-mutating operation. It returns data + # about KMS keys, but doesn't change them. However, Amazon Web Services + # services use `DescribeKey` to create [Amazon Web Services managed + # keys][2] from a *predefined Amazon Web Services alias* with no key ID. + # + # **Cross-account use**: Yes. To perform this operation with a KMS key + # in a different Amazon Web Services account, specify the key ARN or + # alias ARN in the value of the `KeyId` parameter. + # + # **Required permissions**: [kms:DescribeKey][7] (key policy) + # + # **Related operations:** + # + # * GetKeyPolicy + # + # * GetKeyRotationStatus + # + # * ListAliases + # + # * ListGrants + # + # * ListKeys + # + # * ListResourceTags + # + # * ListRetirableGrants + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][8]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-how-it-works + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To get details about a KMS key + # + # # The following example gets metadata for a symmetric encryption KMS key. + # + # resp = client.describe_key({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # An identifier for the KMS key. You can use the key ID, key ARN, alias name, alias ARN of the KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # key_metadata: { + # aws_account_id: "111122223333", + # arn: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + # creation_date: Time.parse("2017-07-05T14:04:55-07:00"), + # customer_master_key_spec: "SYMMETRIC_DEFAULT", + # description: "", + # enabled: true, + # encryption_algorithms: [ + # "SYMMETRIC_DEFAULT", + # ], + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", + # key_manager: "CUSTOMER", + # key_spec: "SYMMETRIC_DEFAULT", + # key_state: "Enabled", + # key_usage: "ENCRYPT_DECRYPT", + # multi_region: false, + # origin: "AWS_KMS", + # }, # An object that contains information about the specified KMS key. + # } + # @example Example: To get details about an RSA asymmetric KMS key + # + # # The following example gets metadata for an asymmetric RSA KMS key used for signing and verification. + # + # resp = client.describe_key({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # An identifier for the KMS key. You can use the key ID, key ARN, alias name, alias ARN of the KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # key_metadata: { + # aws_account_id: "111122223333", + # arn: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + # creation_date: Time.parse(1571767572.317), + # customer_master_key_spec: "RSA_2048", + # description: "", + # enabled: false, + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", + # key_manager: "CUSTOMER", + # key_spec: "RSA_2048", + # key_state: "Disabled", + # key_usage: "SIGN_VERIFY", + # multi_region: false, + # origin: "AWS_KMS", + # signing_algorithms: [ + # "RSASSA_PKCS1_V1_5_SHA_256", + # "RSASSA_PKCS1_V1_5_SHA_384", + # "RSASSA_PKCS1_V1_5_SHA_512", + # "RSASSA_PSS_SHA_256", + # "RSASSA_PSS_SHA_384", + # "RSASSA_PSS_SHA_512", + # ], + # }, # An object that contains information about the specified KMS key. + # } + # @example Example: To get details about a multi-Region key + # + # # The following example gets metadata for a multi-Region replica key. This multi-Region key is a symmetric encryption key. + # # DescribeKey returns information about the primary key and all of its replicas. + # + # resp = client.describe_key({ + # key_id: "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", # An identifier for the KMS key. You can use the key ID, key ARN, alias name, alias ARN of the KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # key_metadata: { + # aws_account_id: "111122223333", + # arn: "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + # creation_date: Time.parse(1586329200.918), + # customer_master_key_spec: "SYMMETRIC_DEFAULT", + # description: "", + # enabled: true, + # encryption_algorithms: [ + # "SYMMETRIC_DEFAULT", + # ], + # key_id: "mrk-1234abcd12ab34cd56ef1234567890ab", + # key_manager: "CUSTOMER", + # key_state: "Enabled", + # key_usage: "ENCRYPT_DECRYPT", + # multi_region: true, + # multi_region_configuration: { + # multi_region_key_type: "PRIMARY", + # primary_key: { + # arn: "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + # region: "us-west-2", + # }, + # replica_keys: [ + # { + # arn: "arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + # region: "eu-west-1", + # }, + # { + # arn: "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + # region: "ap-northeast-1", + # }, + # { + # arn: "arn:aws:kms:sa-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + # region: "sa-east-1", + # }, + # ], + # }, + # origin: "AWS_KMS", + # }, # An object that contains information about the specified KMS key. + # } + # @example Example: To get details about an HMAC KMS key + # + # # The following example gets the metadata of an HMAC KMS key. + # + # resp = client.describe_key({ + # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # An identifier for the KMS key. You can use the key ID, key ARN, alias name, alias ARN of the KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # key_metadata: { + # aws_account_id: "123456789012", + # arn: "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", + # creation_date: Time.parse(1566160362.664), + # customer_master_key_spec: "HMAC_256", + # description: "Development test key", + # enabled: true, + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", + # key_manager: "CUSTOMER", + # key_state: "Enabled", + # key_usage: "GENERATE_VERIFY_MAC", + # mac_algorithms: [ + # "HMAC_SHA_256", + # ], + # multi_region: false, + # origin: "AWS_KMS", + # }, # An object that contains information about the specified KMS key. + # } + # @example Example: To get details about a KMS key in an AWS CloudHSM key store + # + # # The following example gets the metadata of a KMS key in an AWS CloudHSM key store. + # + # resp = client.describe_key({ + # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # An identifier for the KMS key. You can use the key ID, key ARN, alias name, alias ARN of the KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # key_metadata: { + # aws_account_id: "123456789012", + # arn: "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", + # cloud_hsm_cluster_id: "cluster-234abcdefABC", + # creation_date: Time.parse(1646160362.664), + # custom_key_store_id: "cks-1234567890abcdef0", + # customer_master_key_spec: "SYMMETRIC_DEFAULT", + # description: "CloudHSM key store test key", + # enabled: true, + # encryption_algorithms: [ + # "SYMMETRIC_DEFAULT", + # ], + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", + # key_manager: "CUSTOMER", + # key_spec: "SYMMETRIC_DEFAULT", + # key_state: "Enabled", + # key_usage: "ENCRYPT_DECRYPT", + # multi_region: false, + # origin: "AWS_CLOUDHSM", + # }, # An object that contains information about the specified KMS key. + # } + # @example Example: To get details about a KMS key in an external key store + # + # # The following example gets the metadata of a KMS key in an external key store. + # + # resp = client.describe_key({ + # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # An identifier for the KMS key. You can use the key ID, key ARN, alias name, alias ARN of the KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # key_metadata: { + # aws_account_id: "123456789012", + # arn: "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", + # creation_date: Time.parse(1646160362.664), + # custom_key_store_id: "cks-1234567890abcdef0", + # customer_master_key_spec: "SYMMETRIC_DEFAULT", + # description: "External key store test key", + # enabled: true, + # encryption_algorithms: [ + # "SYMMETRIC_DEFAULT", + # ], + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", + # key_manager: "CUSTOMER", + # key_spec: "SYMMETRIC_DEFAULT", + # key_state: "Enabled", + # key_usage: "ENCRYPT_DECRYPT", + # multi_region: false, + # origin: "EXTERNAL_KEY_STORE", + # xks_key_configuration: { + # id: "bb8562717f809024", + # }, + # }, # An object that contains information about the specified KMS key. + # } + # @example Request syntax with placeholder values + # + # resp = client.describe_key({ + # key_id: "KeyIdType", # required + # grant_tokens: ["GrantTokenType"], + # }) + # @example Response structure + # + # resp.key_metadata.aws_account_id #=> String + # resp.key_metadata.key_id #=> String + # resp.key_metadata.arn #=> String + # resp.key_metadata.creation_date #=> Time + # resp.key_metadata.enabled #=> Boolean + # resp.key_metadata.description #=> String + # resp.key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC", "KEY_AGREEMENT" + # resp.key_metadata.key_state #=> String, one of "Creating", "Enabled", "Disabled", "PendingDeletion", "PendingImport", "PendingReplicaDeletion", "Unavailable", "Updating" + # resp.key_metadata.deletion_date #=> Time + # resp.key_metadata.valid_to #=> Time + # resp.key_metadata.origin #=> String, one of "AWS_KMS", "EXTERNAL", "AWS_CLOUDHSM", "EXTERNAL_KEY_STORE" + # resp.key_metadata.custom_key_store_id #=> String + # resp.key_metadata.cloud_hsm_cluster_id #=> String + # resp.key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE" + # resp.key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER" + # resp.key_metadata.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2" + # resp.key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2" + # resp.key_metadata.encryption_algorithms #=> Array + # resp.key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE" + # resp.key_metadata.signing_algorithms #=> Array + # resp.key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA" + # resp.key_metadata.key_agreement_algorithms #=> Array + # resp.key_metadata.key_agreement_algorithms[0] #=> String, one of "ECDH" + # resp.key_metadata.multi_region #=> Boolean + # resp.key_metadata.multi_region_configuration.multi_region_key_type #=> String, one of "PRIMARY", "REPLICA" + # resp.key_metadata.multi_region_configuration.primary_key.arn #=> String + # resp.key_metadata.multi_region_configuration.primary_key.region #=> String + # resp.key_metadata.multi_region_configuration.replica_keys #=> Array + # resp.key_metadata.multi_region_configuration.replica_keys[0].arn #=> String + # resp.key_metadata.multi_region_configuration.replica_keys[0].region #=> String + # resp.key_metadata.pending_deletion_window_in_days #=> Integer + # resp.key_metadata.mac_algorithms #=> Array + # resp.key_metadata.mac_algorithms[0] #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512" + # resp.key_metadata.xks_key_configuration.id #=> String + # @option params + # @option params + # @overload describe_key + # @param params [Hash] ({}) + # @return [Types::DescribeKeyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DescribeKeyResponse#key_metadata #key_metadata} => Types::KeyMetadata + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeKey AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#3846 + def describe_key(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Sets the state of a KMS key to disabled. This change temporarily + # prevents use of the KMS key for [cryptographic operations][1]. + # + # For more information about how key state affects the use of a KMS key, + # see [Key states of KMS keys][2] in the Key Management Service + # Developer Guide . + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][2] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions**: [kms:DisableKey][3] (key policy) + # + # **Related operations**: EnableKey + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][4]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To disable a KMS key + # + # # The following example disables the specified KMS key. + # + # resp = client.disable_key({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key to disable. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # }) + # @example Request syntax with placeholder values + # + # resp = client.disable_key({ + # key_id: "KeyIdType", # required + # }) + # @option params + # @overload disable_key + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisableKey AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#3915 + def disable_key(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Disables [automatic rotation of the key material][1] of the specified + # symmetric encryption KMS key. + # + # Automatic key rotation is supported only on symmetric encryption KMS + # keys. You cannot enable automatic rotation of [asymmetric KMS + # keys][2], [HMAC KMS keys][3], KMS keys with [imported key + # material][4], or KMS keys in a [custom key store][5]. To enable or + # disable automatic rotation of a set of related [multi-Region keys][6], + # set the property on the primary key. + # + # You can enable (EnableKeyRotation) and disable automatic rotation of + # the key material in [customer managed KMS keys][7]. Key material + # rotation of [Amazon Web Services managed KMS keys][8] is not + # configurable. KMS always rotates the key material for every year. + # Rotation of [Amazon Web Services owned KMS keys][9] varies. + # + # In May 2022, KMS changed the rotation schedule for Amazon Web Services + # managed keys from every three years to every year. For details, see + # EnableKeyRotation. + # + # + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][10] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions**: [kms:DisableKeyRotation][11] (key policy) + # + # **Related operations:** + # + # * EnableKeyRotation + # + # * GetKeyRotationStatus + # + # * ListKeyRotations + # + # * RotateKeyOnDemand + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][12]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk + # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk + # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk + # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To disable automatic rotation of key material + # + # # The following example disables automatic annual rotation of the key material for the specified KMS key. + # + # resp = client.disable_key_rotation({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key whose key material will no longer be rotated. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # }) + # @example Request syntax with placeholder values + # + # resp = client.disable_key_rotation({ + # key_id: "KeyIdType", # required + # }) + # @option params + # @overload disable_key_rotation + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisableKeyRotation AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#4025 + def disable_key_rotation(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Disconnects the [custom key store][1] from its backing key store. This + # operation disconnects an CloudHSM key store from its associated + # CloudHSM cluster or disconnects an external key store from the + # external key store proxy that communicates with your external key + # manager. + # + # This operation is part of the [custom key stores][1] feature in KMS, + # which combines the convenience and extensive integration of KMS with + # the isolation and control of a key store that you own and manage. + # + # While a custom key store is disconnected, you can manage the custom + # key store and its KMS keys, but you cannot create or use its KMS keys. + # You can reconnect the custom key store at any time. + # + # While a custom key store is disconnected, all attempts to create KMS + # keys in the custom key store or to use existing KMS keys in + # [cryptographic operations][2] will fail. This action can prevent users + # from storing and accessing sensitive data. + # + # + # + # When you disconnect a custom key store, its `ConnectionState` changes + # to `Disconnected`. To find the connection state of a custom key store, + # use the DescribeCustomKeyStores operation. To reconnect a custom key + # store, use the ConnectCustomKeyStore operation. + # + # If the operation succeeds, it returns a JSON object with no + # properties. + # + # **Cross-account use**: No. You cannot perform this operation on a + # custom key store in a different Amazon Web Services account. + # + # **Required permissions**: [kms:DisconnectCustomKeyStore][3] (IAM + # policy) + # + # **Related operations:** + # + # * ConnectCustomKeyStore + # + # * CreateCustomKeyStore + # + # * DeleteCustomKeyStore + # + # * DescribeCustomKeyStores + # + # * UpdateCustomKeyStore + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][4]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To disconnect a custom key store from its CloudHSM cluster + # + # # This example disconnects an AWS KMS custom key store from its backing key store. For an AWS CloudHSM key store, it + # # disconnects the key store from its AWS CloudHSM cluster. For an external key store, it disconnects the key store from + # # the external key store proxy that communicates with your external key manager. This operation doesn't return any data. + # # To verify that the custom key store is disconnected, use the DescribeCustomKeyStores operation. + # + # resp = client.disconnect_custom_key_store({ + # custom_key_store_id: "cks-1234567890abcdef0", # The ID of the custom key store. + # }) + # + # resp.to_h outputs the following: + # { + # } + # @example Request syntax with placeholder values + # + # resp = client.disconnect_custom_key_store({ + # custom_key_store_id: "CustomKeyStoreIdType", # required + # }) + # @option params + # @overload disconnect_custom_key_store + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisconnectCustomKeyStore AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#4120 + def disconnect_custom_key_store(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Sets the key state of a KMS key to enabled. This allows you to use the + # KMS key for [cryptographic operations][1]. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][2] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions**: [kms:EnableKey][3] (key policy) + # + # **Related operations**: DisableKey + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][4]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To enable a KMS key + # + # # The following example enables the specified KMS key. + # + # resp = client.enable_key({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key to enable. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # }) + # @example Request syntax with placeholder values + # + # resp = client.enable_key({ + # key_id: "KeyIdType", # required + # }) + # @option params + # @overload enable_key + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EnableKey AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#4185 + def enable_key(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Enables [automatic rotation of the key material][1] of the specified + # symmetric encryption KMS key. + # + # By default, when you enable automatic rotation of a [customer managed + # KMS key][2], KMS rotates the key material of the KMS key one year + # (approximately 365 days) from the enable date and every year + # thereafter. You can use the optional `RotationPeriodInDays` parameter + # to specify a custom rotation period when you enable key rotation, or + # you can use `RotationPeriodInDays` to modify the rotation period of a + # key that you previously enabled automatic key rotation on. + # + # You can monitor rotation of the key material for your KMS keys in + # CloudTrail and Amazon CloudWatch. To disable rotation of the key + # material in a customer managed KMS key, use the DisableKeyRotation + # operation. You can use the GetKeyRotationStatus operation to identify + # any in progress rotations. You can use the ListKeyRotations operation + # to view the details of completed rotations. + # + # Automatic key rotation is supported only on [symmetric encryption KMS + # keys][3]. You cannot enable automatic rotation of [asymmetric KMS + # keys][4], [HMAC KMS keys][5], KMS keys with [imported key + # material][6], or KMS keys in a [custom key store][7]. To enable or + # disable automatic rotation of a set of related [multi-Region keys][8], + # set the property on the primary key. + # + # You cannot enable or disable automatic rotation of [Amazon Web + # Services managed KMS keys][9]. KMS always rotates the key material of + # Amazon Web Services managed keys every year. Rotation of [Amazon Web + # Services owned KMS keys][10] is managed by the Amazon Web Services + # service that owns the key. + # + # In May 2022, KMS changed the rotation schedule for Amazon Web Services + # managed keys from every three years (approximately 1,095 days) to + # every year (approximately 365 days). + # + # New Amazon Web Services managed keys are automatically rotated one + # year after they are created, and approximately every year thereafter. + # + # Existing Amazon Web Services managed keys are automatically rotated + # one year after their most recent rotation, and every year thereafter. + # + # + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][11] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions**: [kms:EnableKeyRotation][12] (key policy) + # + # **Related operations:** + # + # * DisableKeyRotation + # + # * GetKeyRotationStatus + # + # * ListKeyRotations + # + # * RotateKeyOnDemand + # + # You can perform on-demand (RotateKeyOnDemand) rotation of the key + # material in customer managed KMS keys, regardless of whether or not + # automatic key rotation is enabled. + # + # + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][13]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotating-keys-enable-disable + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html + # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate + # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk + # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk + # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [13]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To enable automatic rotation of key material + # + # # The following example enables automatic rotation with a rotation period of 365 days for the specified KMS key. + # + # resp = client.enable_key_rotation({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key whose key material will be automatically rotated. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # rotation_period_in_days: 365, # The number of days between each rotation date. Specify a value between 9 and 2560. If no value is specified, the default value is 365 days. + # }) + # @example Request syntax with placeholder values + # + # resp = client.enable_key_rotation({ + # key_id: "KeyIdType", # required + # rotation_period_in_days: 1, + # }) + # @option params + # @option params + # @overload enable_key_rotation + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EnableKeyRotation AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#4346 + def enable_key_rotation(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Encrypts plaintext of up to 4,096 bytes using a KMS key. You can use a + # symmetric or asymmetric KMS key with a `KeyUsage` of + # `ENCRYPT_DECRYPT`. + # + # You can use this operation to encrypt small amounts of arbitrary data, + # such as a personal identifier or database password, or other sensitive + # information. You don't need to use the `Encrypt` operation to encrypt + # a data key. The GenerateDataKey and GenerateDataKeyPair operations + # return a plaintext data key and an encrypted copy of that data key. + # + # If you use a symmetric encryption KMS key, you can use an encryption + # context to add additional security to your encryption operation. If + # you specify an `EncryptionContext` when encrypting data, you must + # specify the same encryption context (a case-sensitive exact match) + # when decrypting the data. Otherwise, the request to decrypt fails with + # an `InvalidCiphertextException`. For more information, see [Encryption + # Context][1] in the *Key Management Service Developer Guide*. + # + # If you specify an asymmetric KMS key, you must also specify the + # encryption algorithm. The algorithm must be compatible with the KMS + # key spec. + # + # When you use an asymmetric KMS key to encrypt or reencrypt data, be + # sure to record the KMS key and encryption algorithm that you choose. + # You will be required to provide the same KMS key and encryption + # algorithm when you decrypt the data. If the KMS key and algorithm do + # not match the values used to encrypt the data, the decrypt operation + # fails. + # + # You are not required to supply the key ID and encryption algorithm + # when you decrypt with symmetric encryption KMS keys because KMS stores + # this information in the ciphertext blob. KMS cannot store metadata in + # ciphertext generated with asymmetric keys. The standard format for + # asymmetric key ciphertext does not include configurable fields. + # + # The maximum size of the data that you can encrypt varies with the type + # of KMS key and the encryption algorithm that you choose. + # + # * Symmetric encryption KMS keys + # + # * `SYMMETRIC_DEFAULT`: 4096 bytes + # + # ^ + # + # * `RSA_2048` + # + # * `RSAES_OAEP_SHA_1`: 214 bytes + # + # * `RSAES_OAEP_SHA_256`: 190 bytes + # + # * `RSA_3072` + # + # * `RSAES_OAEP_SHA_1`: 342 bytes + # + # * `RSAES_OAEP_SHA_256`: 318 bytes + # + # * `RSA_4096` + # + # * `RSAES_OAEP_SHA_1`: 470 bytes + # + # * `RSAES_OAEP_SHA_256`: 446 bytes + # + # * `SM2PKE`: 1024 bytes (China Regions only) + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][2] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: Yes. To perform this operation with a KMS key + # in a different Amazon Web Services account, specify the key ARN or + # alias ARN in the value of the `KeyId` parameter. + # + # **Required permissions**: [kms:Encrypt][3] (key policy) + # + # **Related operations:** + # + # * Decrypt + # + # * GenerateDataKey + # + # * GenerateDataKeyPair + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][4]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To encrypt data with a symmetric encryption KMS key + # + # # The following example encrypts data with the specified symmetric encryption KMS key. + # + # resp = client.encrypt({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key to use for encryption. You can use the key ID or Amazon Resource Name (ARN) of the KMS key, or the name or ARN of an alias that refers to the KMS key. + # plaintext: "", # The data to encrypt. + # }) + # + # resp.to_h outputs the following: + # { + # ciphertext_blob: "", # The encrypted data (ciphertext). + # encryption_algorithm: "SYMMETRIC_DEFAULT", # The encryption algorithm that was used in the operation. For symmetric encryption keys, the encryption algorithm is always SYMMETRIC_DEFAULT. + # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The ARN of the KMS key that was used to encrypt the data. + # } + # @example Example: To encrypt data with an asymmetric encryption KMS key + # + # # The following example encrypts data with the specified RSA asymmetric KMS key. When you encrypt with an asymmetric key, + # # you must specify the encryption algorithm. + # + # resp = client.encrypt({ + # encryption_algorithm: "RSAES_OAEP_SHA_256", # The encryption algorithm to use in the operation. + # key_id: "0987dcba-09fe-87dc-65ba-ab0987654321", # The identifier of the KMS key to use for encryption. You can use the key ID or Amazon Resource Name (ARN) of the KMS key, or the name or ARN of an alias that refers to the KMS key. + # plaintext: "", # The data to encrypt. + # }) + # + # resp.to_h outputs the following: + # { + # ciphertext_blob: "", # The encrypted data (ciphertext). + # encryption_algorithm: "RSAES_OAEP_SHA_256", # The encryption algorithm that was used in the operation. + # key_id: "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", # The ARN of the KMS key that was used to encrypt the data. + # } + # @example Request syntax with placeholder values + # + # resp = client.encrypt({ + # key_id: "KeyIdType", # required + # plaintext: "data", # required + # encryption_context: { + # "EncryptionContextKey" => "EncryptionContextValue", + # }, + # grant_tokens: ["GrantTokenType"], + # encryption_algorithm: "SYMMETRIC_DEFAULT", # accepts SYMMETRIC_DEFAULT, RSAES_OAEP_SHA_1, RSAES_OAEP_SHA_256, SM2PKE + # dry_run: false, + # }) + # @example Response structure + # + # resp.ciphertext_blob #=> String + # resp.key_id #=> String + # resp.encryption_algorithm #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload encrypt + # @param params [Hash] ({}) + # @return [Types::EncryptResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::EncryptResponse#ciphertext_blob #ciphertext_blob} => String + # * {Types::EncryptResponse#key_id #key_id} => String + # * {Types::EncryptResponse#encryption_algorithm #encryption_algorithm} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Encrypt AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#4597 + def encrypt(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns a unique symmetric data key for use outside of KMS. This + # operation returns a plaintext copy of the data key and a copy that is + # encrypted under a symmetric encryption KMS key that you specify. The + # bytes in the plaintext key are random; they are not related to the + # caller or the KMS key. You can use the plaintext key to encrypt your + # data outside of KMS and store the encrypted data key with the + # encrypted data. + # + # To generate a data key, specify the symmetric encryption KMS key that + # will be used to encrypt the data key. You cannot use an asymmetric KMS + # key to encrypt data keys. To get the type of your KMS key, use the + # DescribeKey operation. + # + # You must also specify the length of the data key. Use either the + # `KeySpec` or `NumberOfBytes` parameters (but not both). For 128-bit + # and 256-bit data keys, use the `KeySpec` parameter. + # + # To generate a 128-bit SM4 data key (China Regions only), specify a + # `KeySpec` value of `AES_128` or a `NumberOfBytes` value of `16`. The + # symmetric encryption key used in China Regions to encrypt your data + # key is an SM4 encryption key. + # + # To get only an encrypted copy of the data key, use + # GenerateDataKeyWithoutPlaintext. To generate an asymmetric data key + # pair, use the GenerateDataKeyPair or + # GenerateDataKeyPairWithoutPlaintext operation. To get a + # cryptographically secure random byte string, use GenerateRandom. + # + # You can use an optional encryption context to add additional security + # to the encryption operation. If you specify an `EncryptionContext`, + # you must specify the same encryption context (a case-sensitive exact + # match) when decrypting the encrypted data key. Otherwise, the request + # to decrypt fails with an `InvalidCiphertextException`. For more + # information, see [Encryption Context][1] in the *Key Management + # Service Developer Guide*. + # + # `GenerateDataKey` also supports [Amazon Web Services Nitro + # Enclaves][2], which provide an isolated compute environment in Amazon + # EC2. To call `GenerateDataKey` for an Amazon Web Services Nitro + # enclave, use the [Amazon Web Services Nitro Enclaves SDK][3] or any + # Amazon Web Services SDK. Use the `Recipient` parameter to provide the + # attestation document for the enclave. `GenerateDataKey` returns a copy + # of the data key encrypted under the specified KMS key, as usual. But + # instead of a plaintext copy of the data key, the response includes a + # copy of the data key encrypted under the public key from the + # attestation document (`CiphertextForRecipient`). For information about + # the interaction between KMS and Amazon Web Services Nitro Enclaves, + # see [How Amazon Web Services Nitro Enclaves uses KMS][4] in the *Key + # Management Service Developer Guide*.. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][5] in the *Key + # Management Service Developer Guide*. + # + # **How to use your data key** + # + # We recommend that you use the following pattern to encrypt data + # locally in your application. You can write your own code or use a + # client-side encryption library, such as the [Amazon Web Services + # Encryption SDK][6], the [Amazon DynamoDB Encryption Client][7], or + # [Amazon S3 client-side encryption][8] to do these tasks for you. + # + # To encrypt data outside of KMS: + # + # 1. Use the `GenerateDataKey` operation to get a data key. + # + # 2. Use the plaintext data key (in the `Plaintext` field of the + # response) to encrypt your data outside of KMS. Then erase the + # plaintext data key from memory. + # + # 3. Store the encrypted data key (in the `CiphertextBlob` field of the + # response) with the encrypted data. + # + # To decrypt data outside of KMS: + # + # 1. Use the Decrypt operation to decrypt the encrypted data key. The + # operation returns a plaintext copy of the data key. + # + # 2. Use the plaintext data key to decrypt data outside of KMS, then + # erase the plaintext data key from memory. + # + # **Cross-account use**: Yes. To perform this operation with a KMS key + # in a different Amazon Web Services account, specify the key ARN or + # alias ARN in the value of the `KeyId` parameter. + # + # **Required permissions**: [kms:GenerateDataKey][9] (key policy) + # + # **Related operations:** + # + # * Decrypt + # + # * Encrypt + # + # * GenerateDataKeyPair + # + # * GenerateDataKeyPairWithoutPlaintext + # + # * GenerateDataKeyWithoutPlaintext + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][10]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context + # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html + # [3]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [6]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/ + # [7]: https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/ + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html + # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To generate a data key + # + # # The following example generates a 256-bit symmetric data encryption key (data key) in two formats. One is the + # # unencrypted (plainext) data key, and the other is the data key encrypted with the specified KMS key. + # + # resp = client.generate_data_key({ + # key_id: "alias/ExampleAlias", # The identifier of the KMS key to use to encrypt the data key. You can use the key ID or Amazon Resource Name (ARN) of the KMS key, or the name or ARN of an alias that refers to the KMS key. + # key_spec: "AES_256", # Specifies the type of data key to return. + # }) + # + # resp.to_h outputs the following: + # { + # ciphertext_blob: "", # The encrypted data key. + # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The ARN of the KMS key that was used to encrypt the data key. + # plaintext: "", # The unencrypted (plaintext) data key. + # } + # @example Example: To generate a data key pair for a Nitro enclave + # + # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave. + # # Instead of returning a copy of the data key encrypted by the KMS key and a plaintext copy of the data key, + # # GenerateDataKey returns one copy of the data key encrypted by the KMS key (CiphertextBlob) and one copy of the data key + # # encrypted by the public key from the attestation document (CiphertextForRecipient). The operation doesn't return a + # # plaintext data key. + # + # resp = client.generate_data_key({ + # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # Identifies the KMS key used to encrypt the encrypted data key (CiphertextBlob) + # key_spec: "AES_256", # Specifies the type of data key to return + # recipient: { + # attestation_document: "", + # key_encryption_algorithm: "RSAES_OAEP_SHA_256", + # }, # Specifies the attestation document from the Nitro enclave and the encryption algorithm to use with the public key from the attestation document + # }) + # + # resp.to_h outputs the following: + # { + # ciphertext_blob: "", # The data key encrypted by the specified KMS key + # ciphertext_for_recipient: "", # The plaintext data key encrypted by the public key from the attestation document + # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The KMS key used to encrypt the CiphertextBlob (encrypted data key) + # plaintext: "", # This field is null or empty + # } + # @example Request syntax with placeholder values + # + # resp = client.generate_data_key({ + # key_id: "KeyIdType", # required + # encryption_context: { + # "EncryptionContextKey" => "EncryptionContextValue", + # }, + # number_of_bytes: 1, + # key_spec: "AES_256", # accepts AES_256, AES_128 + # grant_tokens: ["GrantTokenType"], + # recipient: { + # key_encryption_algorithm: "RSAES_OAEP_SHA_256", # accepts RSAES_OAEP_SHA_256 + # attestation_document: "data", + # }, + # dry_run: false, + # }) + # @example Response structure + # + # resp.ciphertext_blob #=> String + # resp.plaintext #=> String + # resp.key_id #=> String + # resp.ciphertext_for_recipient #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload generate_data_key + # @param params [Hash] ({}) + # @return [Types::GenerateDataKeyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GenerateDataKeyResponse#ciphertext_blob #ciphertext_blob} => String + # * {Types::GenerateDataKeyResponse#plaintext #plaintext} => String + # * {Types::GenerateDataKeyResponse#key_id #key_id} => String + # * {Types::GenerateDataKeyResponse#ciphertext_for_recipient #ciphertext_for_recipient} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKey AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#4912 + def generate_data_key(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns a unique asymmetric data key pair for use outside of KMS. This + # operation returns a plaintext public key, a plaintext private key, and + # a copy of the private key that is encrypted under the symmetric + # encryption KMS key you specify. You can use the data key pair to + # perform asymmetric cryptography and implement digital signatures + # outside of KMS. The bytes in the keys are random; they are not related + # to the caller or to the KMS key that is used to encrypt the private + # key. + # + # You can use the public key that `GenerateDataKeyPair` returns to + # encrypt data or verify a signature outside of KMS. Then, store the + # encrypted private key with the data. When you are ready to decrypt + # data or sign a message, you can use the Decrypt operation to decrypt + # the encrypted private key. + # + # To generate a data key pair, you must specify a symmetric encryption + # KMS key to encrypt the private key in a data key pair. You cannot use + # an asymmetric KMS key or a KMS key in a custom key store. To get the + # type and origin of your KMS key, use the DescribeKey operation. + # + # Use the `KeyPairSpec` parameter to choose an RSA or Elliptic Curve + # (ECC) data key pair. In China Regions, you can also choose an SM2 data + # key pair. KMS recommends that you use ECC key pairs for signing, and + # use RSA and SM2 key pairs for either encryption or signing, but not + # both. However, KMS cannot enforce any restrictions on the use of data + # key pairs outside of KMS. + # + # If you are using the data key pair to encrypt data, or for any + # operation where you don't immediately need a private key, consider + # using the GenerateDataKeyPairWithoutPlaintext operation. + # `GenerateDataKeyPairWithoutPlaintext` returns a plaintext public key + # and an encrypted private key, but omits the plaintext private key that + # you need only to decrypt ciphertext or sign a message. Later, when you + # need to decrypt the data or sign a message, use the Decrypt operation + # to decrypt the encrypted private key in the data key pair. + # + # `GenerateDataKeyPair` returns a unique data key pair for each request. + # The bytes in the keys are random; they are not related to the caller + # or the KMS key that is used to encrypt the private key. The public key + # is a DER-encoded X.509 SubjectPublicKeyInfo, as specified in [RFC + # 5280][1]. The private key is a DER-encoded PKCS8 PrivateKeyInfo, as + # specified in [RFC 5958][2]. + # + # `GenerateDataKeyPair` also supports [Amazon Web Services Nitro + # Enclaves][3], which provide an isolated compute environment in Amazon + # EC2. To call `GenerateDataKeyPair` for an Amazon Web Services Nitro + # enclave, use the [Amazon Web Services Nitro Enclaves SDK][4] or any + # Amazon Web Services SDK. Use the `Recipient` parameter to provide the + # attestation document for the enclave. `GenerateDataKeyPair` returns + # the public data key and a copy of the private data key encrypted under + # the specified KMS key, as usual. But instead of a plaintext copy of + # the private data key (`PrivateKeyPlaintext`), the response includes a + # copy of the private data key encrypted under the public key from the + # attestation document (`CiphertextForRecipient`). For information about + # the interaction between KMS and Amazon Web Services Nitro Enclaves, + # see [How Amazon Web Services Nitro Enclaves uses KMS][5] in the *Key + # Management Service Developer Guide*.. + # + # You can use an optional encryption context to add additional security + # to the encryption operation. If you specify an `EncryptionContext`, + # you must specify the same encryption context (a case-sensitive exact + # match) when decrypting the encrypted data key. Otherwise, the request + # to decrypt fails with an `InvalidCiphertextException`. For more + # information, see [Encryption Context][6] in the *Key Management + # Service Developer Guide*. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][7] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: Yes. To perform this operation with a KMS key + # in a different Amazon Web Services account, specify the key ARN or + # alias ARN in the value of the `KeyId` parameter. + # + # **Required permissions**: [kms:GenerateDataKeyPair][8] (key policy) + # + # **Related operations:** + # + # * Decrypt + # + # * Encrypt + # + # * GenerateDataKey + # + # * GenerateDataKeyPairWithoutPlaintext + # + # * GenerateDataKeyWithoutPlaintext + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][9]. + # + # + # + # [1]: https://tools.ietf.org/html/rfc5280 + # [2]: https://tools.ietf.org/html/rfc5958 + # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html + # [4]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To generate an RSA key pair for encryption and decryption + # + # # This example generates an RSA data key pair for encryption and decryption. The operation returns a plaintext public key + # # and private key, and a copy of the private key that is encrypted under a symmetric encryption KMS key that you specify. + # + # resp = client.generate_data_key_pair({ + # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ID of the symmetric encryption KMS key that encrypts the private RSA key in the data key pair. + # key_pair_spec: "RSA_3072", # The requested key spec of the RSA data key pair. + # }) + # + # resp.to_h outputs the following: + # { + # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the symmetric encryption KMS key that was used to encrypt the private key. + # key_pair_spec: "RSA_3072", # The actual key spec of the RSA data key pair. + # private_key_ciphertext_blob: "", # The encrypted private key of the RSA data key pair. + # private_key_plaintext: "", # The plaintext private key of the RSA data key pair. + # public_key: "", # The public key (plaintext) of the RSA data key pair. + # } + # @example Example: To generate a data key pair for a Nitro enclave + # + # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave. + # # Instead of returning a plaintext copy of the private data key, GenerateDataKeyPair returns a copy of the private data + # # key encrypted by the public key from the attestation document (CiphertextForRecipient). It returns the public data key + # # (PublicKey) and a copy of private data key encrypted under the specified KMS key (PrivateKeyCiphertextBlob), as usual, + # # but plaintext private data key field (PrivateKeyPlaintext) is null or empty. + # + # resp = client.generate_data_key_pair({ + # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ID of the symmetric encryption KMS key that encrypts the private RSA key in the data key pair. + # key_pair_spec: "RSA_3072", # The requested key spec of the RSA data key pair. + # recipient: { + # attestation_document: "", + # key_encryption_algorithm: "RSAES_OAEP_SHA_256", + # }, # Specifies the attestation document from the Nitro enclave and the encryption algorithm to use with the public key from the attestation document. + # }) + # + # resp.to_h outputs the following: + # { + # ciphertext_for_recipient: "", # The private key of the RSA data key pair encrypted by the public key from the attestation document + # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the symmetric encryption KMS key that was used to encrypt the PrivateKeyCiphertextBlob. + # key_pair_spec: "RSA_3072", # The actual key spec of the RSA data key pair. + # private_key_ciphertext_blob: "", # The private key of the RSA data key pair encrypted by the KMS key. + # private_key_plaintext: "", # This field is null or empty + # public_key: "", # The public key (plaintext) of the RSA data key pair. + # } + # @example Request syntax with placeholder values + # + # resp = client.generate_data_key_pair({ + # encryption_context: { + # "EncryptionContextKey" => "EncryptionContextValue", + # }, + # key_id: "KeyIdType", # required + # key_pair_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SM2 + # grant_tokens: ["GrantTokenType"], + # recipient: { + # key_encryption_algorithm: "RSAES_OAEP_SHA_256", # accepts RSAES_OAEP_SHA_256 + # attestation_document: "data", + # }, + # dry_run: false, + # }) + # @example Response structure + # + # resp.private_key_ciphertext_blob #=> String + # resp.private_key_plaintext #=> String + # resp.public_key #=> String + # resp.key_id #=> String + # resp.key_pair_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SM2" + # resp.ciphertext_for_recipient #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload generate_data_key_pair + # @param params [Hash] ({}) + # @return [Types::GenerateDataKeyPairResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GenerateDataKeyPairResponse#private_key_ciphertext_blob #private_key_ciphertext_blob} => String + # * {Types::GenerateDataKeyPairResponse#private_key_plaintext #private_key_plaintext} => String + # * {Types::GenerateDataKeyPairResponse#public_key #public_key} => String + # * {Types::GenerateDataKeyPairResponse#key_id #key_id} => String + # * {Types::GenerateDataKeyPairResponse#key_pair_spec #key_pair_spec} => String + # * {Types::GenerateDataKeyPairResponse#ciphertext_for_recipient #ciphertext_for_recipient} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPair AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#5218 + def generate_data_key_pair(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns a unique asymmetric data key pair for use outside of KMS. This + # operation returns a plaintext public key and a copy of the private key + # that is encrypted under the symmetric encryption KMS key you specify. + # Unlike GenerateDataKeyPair, this operation does not return a plaintext + # private key. The bytes in the keys are random; they are not related to + # the caller or to the KMS key that is used to encrypt the private key. + # + # You can use the public key that `GenerateDataKeyPairWithoutPlaintext` + # returns to encrypt data or verify a signature outside of KMS. Then, + # store the encrypted private key with the data. When you are ready to + # decrypt data or sign a message, you can use the Decrypt operation to + # decrypt the encrypted private key. + # + # To generate a data key pair, you must specify a symmetric encryption + # KMS key to encrypt the private key in a data key pair. You cannot use + # an asymmetric KMS key or a KMS key in a custom key store. To get the + # type and origin of your KMS key, use the DescribeKey operation. + # + # Use the `KeyPairSpec` parameter to choose an RSA or Elliptic Curve + # (ECC) data key pair. In China Regions, you can also choose an SM2 data + # key pair. KMS recommends that you use ECC key pairs for signing, and + # use RSA and SM2 key pairs for either encryption or signing, but not + # both. However, KMS cannot enforce any restrictions on the use of data + # key pairs outside of KMS. + # + # `GenerateDataKeyPairWithoutPlaintext` returns a unique data key pair + # for each request. The bytes in the key are not related to the caller + # or KMS key that is used to encrypt the private key. The public key is + # a DER-encoded X.509 SubjectPublicKeyInfo, as specified in [RFC + # 5280][1]. + # + # You can use an optional encryption context to add additional security + # to the encryption operation. If you specify an `EncryptionContext`, + # you must specify the same encryption context (a case-sensitive exact + # match) when decrypting the encrypted data key. Otherwise, the request + # to decrypt fails with an `InvalidCiphertextException`. For more + # information, see [Encryption Context][2] in the *Key Management + # Service Developer Guide*. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][3] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: Yes. To perform this operation with a KMS key + # in a different Amazon Web Services account, specify the key ARN or + # alias ARN in the value of the `KeyId` parameter. + # + # **Required permissions**: [kms:GenerateDataKeyPairWithoutPlaintext][4] + # (key policy) + # + # **Related operations:** + # + # * Decrypt + # + # * Encrypt + # + # * GenerateDataKey + # + # * GenerateDataKeyPair + # + # * GenerateDataKeyWithoutPlaintext + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][5]. + # + # + # + # [1]: https://tools.ietf.org/html/rfc5280 + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To generate an asymmetric data key pair without a plaintext key + # + # # This example returns an asymmetric elliptic curve (ECC) data key pair. The private key is encrypted under the symmetric + # # encryption KMS key that you specify. This operation doesn't return a plaintext (unencrypted) private key. + # + # resp = client.generate_data_key_pair_without_plaintext({ + # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The symmetric encryption KMS key that encrypts the private key of the ECC data key pair. + # key_pair_spec: "ECC_NIST_P521", # The requested key spec of the ECC asymmetric data key pair. + # }) + # + # resp.to_h outputs the following: + # { + # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the symmetric encryption KMS key that encrypted the private key in the ECC asymmetric data key pair. + # key_pair_spec: "ECC_NIST_P521", # The actual key spec of the ECC asymmetric data key pair. + # private_key_ciphertext_blob: "", # The encrypted private key of the asymmetric ECC data key pair. + # public_key: "", # The public key (plaintext). + # } + # @example Request syntax with placeholder values + # + # resp = client.generate_data_key_pair_without_plaintext({ + # encryption_context: { + # "EncryptionContextKey" => "EncryptionContextValue", + # }, + # key_id: "KeyIdType", # required + # key_pair_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SM2 + # grant_tokens: ["GrantTokenType"], + # dry_run: false, + # }) + # @example Response structure + # + # resp.private_key_ciphertext_blob #=> String + # resp.public_key #=> String + # resp.key_id #=> String + # resp.key_pair_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SM2" + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload generate_data_key_pair_without_plaintext + # @param params [Hash] ({}) + # @return [Types::GenerateDataKeyPairWithoutPlaintextResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GenerateDataKeyPairWithoutPlaintextResponse#private_key_ciphertext_blob #private_key_ciphertext_blob} => String + # * {Types::GenerateDataKeyPairWithoutPlaintextResponse#public_key #public_key} => String + # * {Types::GenerateDataKeyPairWithoutPlaintextResponse#key_id #key_id} => String + # * {Types::GenerateDataKeyPairWithoutPlaintextResponse#key_pair_spec #key_pair_spec} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairWithoutPlaintext AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#5426 + def generate_data_key_pair_without_plaintext(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns a unique symmetric data key for use outside of KMS. This + # operation returns a data key that is encrypted under a symmetric + # encryption KMS key that you specify. The bytes in the key are random; + # they are not related to the caller or to the KMS key. + # + # `GenerateDataKeyWithoutPlaintext` is identical to the GenerateDataKey + # operation except that it does not return a plaintext copy of the data + # key. + # + # This operation is useful for systems that need to encrypt data at some + # point, but not immediately. When you need to encrypt the data, you + # call the Decrypt operation on the encrypted copy of the key. + # + # It's also useful in distributed systems with different levels of + # trust. For example, you might store encrypted data in containers. One + # component of your system creates new containers and stores an + # encrypted data key with each container. Then, a different component + # puts the data into the containers. That component first decrypts the + # data key, uses the plaintext data key to encrypt data, puts the + # encrypted data into the container, and then destroys the plaintext + # data key. In this system, the component that creates the containers + # never sees the plaintext data key. + # + # To request an asymmetric data key pair, use the GenerateDataKeyPair or + # GenerateDataKeyPairWithoutPlaintext operations. + # + # To generate a data key, you must specify the symmetric encryption KMS + # key that is used to encrypt the data key. You cannot use an asymmetric + # KMS key or a key in a custom key store to generate a data key. To get + # the type of your KMS key, use the DescribeKey operation. + # + # You must also specify the length of the data key. Use either the + # `KeySpec` or `NumberOfBytes` parameters (but not both). For 128-bit + # and 256-bit data keys, use the `KeySpec` parameter. + # + # To generate an SM4 data key (China Regions only), specify a `KeySpec` + # value of `AES_128` or `NumberOfBytes` value of `16`. The symmetric + # encryption key used in China Regions to encrypt your data key is an + # SM4 encryption key. + # + # If the operation succeeds, you will find the encrypted copy of the + # data key in the `CiphertextBlob` field. + # + # You can use an optional encryption context to add additional security + # to the encryption operation. If you specify an `EncryptionContext`, + # you must specify the same encryption context (a case-sensitive exact + # match) when decrypting the encrypted data key. Otherwise, the request + # to decrypt fails with an `InvalidCiphertextException`. For more + # information, see [Encryption Context][1] in the *Key Management + # Service Developer Guide*. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][2] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: Yes. To perform this operation with a KMS key + # in a different Amazon Web Services account, specify the key ARN or + # alias ARN in the value of the `KeyId` parameter. + # + # **Required permissions**: [kms:GenerateDataKeyWithoutPlaintext][3] + # (key policy) + # + # **Related operations:** + # + # * Decrypt + # + # * Encrypt + # + # * GenerateDataKey + # + # * GenerateDataKeyPair + # + # * GenerateDataKeyPairWithoutPlaintext + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][4]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To generate an encrypted data key + # + # # The following example generates an encrypted copy of a 256-bit symmetric data encryption key (data key). The data key is + # # encrypted with the specified KMS key. + # + # resp = client.generate_data_key_without_plaintext({ + # key_id: "alias/ExampleAlias", # The identifier of the KMS key to use to encrypt the data key. You can use the key ID or Amazon Resource Name (ARN) of the KMS key, or the name or ARN of an alias that refers to the KMS key. + # key_spec: "AES_256", # Specifies the type of data key to return. + # }) + # + # resp.to_h outputs the following: + # { + # ciphertext_blob: "", # The encrypted data key. + # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The ARN of the KMS key that was used to encrypt the data key. + # } + # @example Request syntax with placeholder values + # + # resp = client.generate_data_key_without_plaintext({ + # key_id: "KeyIdType", # required + # encryption_context: { + # "EncryptionContextKey" => "EncryptionContextValue", + # }, + # key_spec: "AES_256", # accepts AES_256, AES_128 + # number_of_bytes: 1, + # grant_tokens: ["GrantTokenType"], + # dry_run: false, + # }) + # @example Response structure + # + # resp.ciphertext_blob #=> String + # resp.key_id #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload generate_data_key_without_plaintext + # @param params [Hash] ({}) + # @return [Types::GenerateDataKeyWithoutPlaintextResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GenerateDataKeyWithoutPlaintextResponse#ciphertext_blob #ciphertext_blob} => String + # * {Types::GenerateDataKeyWithoutPlaintextResponse#key_id #key_id} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyWithoutPlaintext AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#5641 + def generate_data_key_without_plaintext(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Generates a hash-based message authentication code (HMAC) for a + # message using an HMAC KMS key and a MAC algorithm that the key + # supports. HMAC KMS keys and the HMAC algorithms that KMS uses conform + # to industry standards defined in [RFC 2104][1]. + # + # You can use value that GenerateMac returns in the VerifyMac operation + # to demonstrate that the original message has not changed. Also, + # because a secret key is used to create the hash, you can verify that + # the party that generated the hash has the required secret key. You can + # also use the raw result to implement HMAC-based algorithms such as key + # derivation functions. This operation is part of KMS support for HMAC + # KMS keys. For details, see [HMAC keys in KMS][2] in the Key + # Management Service Developer Guide . + # + # Best practices recommend that you limit the time during which any + # signing mechanism, including an HMAC, is effective. This deters an + # attack where the actor uses a signed message to establish validity + # repeatedly or long after the message is superseded. HMAC tags do not + # include a timestamp, but you can include a timestamp in the token or + # message to help you detect when its time to refresh the HMAC. + # + # + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][3] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: Yes. To perform this operation with a KMS key + # in a different Amazon Web Services account, specify the key ARN or + # alias ARN in the value of the `KeyId` parameter. + # + # **Required permissions**: [kms:GenerateMac][4] (key policy) + # + # **Related operations**: VerifyMac + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][5]. + # + # + # + # [1]: https://datatracker.ietf.org/doc/html/rfc2104 + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To generate an HMAC for a message + # + # # This example generates an HMAC for a message, an HMAC KMS key, and a MAC algorithm. The algorithm must be supported by + # # the specified HMAC KMS key. + # + # resp = client.generate_mac({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The HMAC KMS key input to the HMAC algorithm. + # mac_algorithm: "HMAC_SHA_384", # The HMAC algorithm requested for the operation. + # message: "Hello World", # The message input to the HMAC algorithm. + # }) + # + # resp.to_h outputs the following: + # { + # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the HMAC KMS key used in the operation. + # mac: "", # The HMAC tag that results from this operation. + # mac_algorithm: "HMAC_SHA_384", # The HMAC algorithm used in the operation. + # } + # @example Request syntax with placeholder values + # + # resp = client.generate_mac({ + # message: "data", # required + # key_id: "KeyIdType", # required + # mac_algorithm: "HMAC_SHA_224", # required, accepts HMAC_SHA_224, HMAC_SHA_256, HMAC_SHA_384, HMAC_SHA_512 + # grant_tokens: ["GrantTokenType"], + # dry_run: false, + # }) + # @example Response structure + # + # resp.mac #=> String + # resp.mac_algorithm #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512" + # resp.key_id #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload generate_mac + # @param params [Hash] ({}) + # @return [Types::GenerateMacResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GenerateMacResponse#mac #mac} => String + # * {Types::GenerateMacResponse#mac_algorithm #mac_algorithm} => String + # * {Types::GenerateMacResponse#key_id #key_id} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateMac AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#5787 + def generate_mac(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns a random byte string that is cryptographically secure. + # + # You must use the `NumberOfBytes` parameter to specify the length of + # the random byte string. There is no default value for string length. + # + # By default, the random byte string is generated in KMS. To generate + # the byte string in the CloudHSM cluster associated with an CloudHSM + # key store, use the `CustomKeyStoreId` parameter. + # + # `GenerateRandom` also supports [Amazon Web Services Nitro + # Enclaves][1], which provide an isolated compute environment in Amazon + # EC2. To call `GenerateRandom` for a Nitro enclave, use the [Amazon Web + # Services Nitro Enclaves SDK][2] or any Amazon Web Services SDK. Use + # the `Recipient` parameter to provide the attestation document for the + # enclave. Instead of plaintext bytes, the response includes the + # plaintext bytes encrypted under the public key from the attestation + # document (`CiphertextForRecipient`).For information about the + # interaction between KMS and Amazon Web Services Nitro Enclaves, see + # [How Amazon Web Services Nitro Enclaves uses KMS][3] in the *Key + # Management Service Developer Guide*. + # + # For more information about entropy and random number generation, see + # [Key Management Service Cryptographic Details][4]. + # + # **Cross-account use**: Not applicable. `GenerateRandom` does not use + # any account-specific resources, such as KMS keys. + # + # **Required permissions**: [kms:GenerateRandom][5] (IAM policy) + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][6]. + # + # + # + # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html + # [2]: https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html + # [4]: https://docs.aws.amazon.com/kms/latest/cryptographic-details/ + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To generate random data + # + # # The following example generates 32 bytes of random data. + # + # resp = client.generate_random({ + # number_of_bytes: 32, # The length of the random data, specified in number of bytes. + # }) + # + # resp.to_h outputs the following: + # { + # plaintext: "", # The random data. + # } + # @example Example: To generate random data + # + # # The following example includes the Recipient parameter with a signed attestation document from an AWS Nitro enclave. + # # Instead of returning a plaintext (unencrypted) byte string, GenerateRandom returns the byte string encrypted by the + # # public key from the enclave's attestation document. + # + # resp = client.generate_random({ + # number_of_bytes: 1024, # The length of the random byte string + # recipient: { + # attestation_document: "", + # key_encryption_algorithm: "RSAES_OAEP_SHA_256", + # }, # Specifies the attestation document from the Nitro enclave and the encryption algorithm to use with the public key from the attestation document + # }) + # + # resp.to_h outputs the following: + # { + # ciphertext_for_recipient: "", # The random data encrypted under the public key from the attestation document + # plaintext: "", # This field is null or empty + # } + # @example Request syntax with placeholder values + # + # resp = client.generate_random({ + # number_of_bytes: 1, + # custom_key_store_id: "CustomKeyStoreIdType", + # recipient: { + # key_encryption_algorithm: "RSAES_OAEP_SHA_256", # accepts RSAES_OAEP_SHA_256 + # attestation_document: "data", + # }, + # }) + # @example Response structure + # + # resp.plaintext #=> String + # resp.ciphertext_for_recipient #=> String + # @option params + # @option params + # @option params + # @overload generate_random + # @param params [Hash] ({}) + # @return [Types::GenerateRandomResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GenerateRandomResponse#plaintext #plaintext} => String + # * {Types::GenerateRandomResponse#ciphertext_for_recipient #ciphertext_for_recipient} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateRandom AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#5930 + def generate_random(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Gets a key policy attached to the specified KMS key. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions**: [kms:GetKeyPolicy][1] (key policy) + # + # **Related operations**: [PutKeyPolicy][2] + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][3]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [2]: https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To retrieve a key policy + # + # # The following example retrieves the key policy for the specified KMS key. + # + # resp = client.get_key_policy({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key whose key policy you want to retrieve. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # policy_name: "default", # The name of the key policy to retrieve. + # }) + # + # resp.to_h outputs the following: + # { + # policy: "{\n \"Version\" : \"2012-10-17\",\n \"Id\" : \"key-default-1\",\n \"Statement\" : [ {\n \"Sid\" : \"Enable IAM User Permissions\",\n \"Effect\" : \"Allow\",\n \"Principal\" : {\n \"AWS\" : \"arn:aws:iam::111122223333:root\"\n },\n \"Action\" : \"kms:*\",\n \"Resource\" : \"*\"\n } ]\n}", # The key policy document. + # } + # @example Request syntax with placeholder values + # + # resp = client.get_key_policy({ + # key_id: "KeyIdType", # required + # policy_name: "PolicyNameType", + # }) + # @example Response structure + # + # resp.policy #=> String + # resp.policy_name #=> String + # @option params + # @option params + # @overload get_key_policy + # @param params [Hash] ({}) + # @return [Types::GetKeyPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetKeyPolicyResponse#policy #policy} => String + # * {Types::GetKeyPolicyResponse#policy_name #policy_name} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyPolicy AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#6009 + def get_key_policy(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Provides detailed information about the rotation status for a KMS key, + # including whether [automatic rotation of the key material][1] is + # enabled for the specified KMS key, the [rotation period][2], and the + # next scheduled rotation date. + # + # Automatic key rotation is supported only on [symmetric encryption KMS + # keys][3]. You cannot enable automatic rotation of [asymmetric KMS + # keys][4], [HMAC KMS keys][5], KMS keys with [imported key + # material][6], or KMS keys in a [custom key store][7]. To enable or + # disable automatic rotation of a set of related [multi-Region keys][8], + # set the property on the primary key.. + # + # You can enable (EnableKeyRotation) and disable automatic rotation + # (DisableKeyRotation) of the key material in customer managed KMS keys. + # Key material rotation of [Amazon Web Services managed KMS keys][9] is + # not configurable. KMS always rotates the key material in Amazon Web + # Services managed KMS keys every year. The key rotation status for + # Amazon Web Services managed KMS keys is always `true`. + # + # You can perform on-demand (RotateKeyOnDemand) rotation of the key + # material in customer managed KMS keys, regardless of whether or not + # automatic key rotation is enabled. You can use GetKeyRotationStatus to + # identify the date and time that an in progress on-demand rotation was + # initiated. You can use ListKeyRotations to view the details of + # completed rotations. + # + # In May 2022, KMS changed the rotation schedule for Amazon Web Services + # managed keys from every three years to every year. For details, see + # EnableKeyRotation. + # + # + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][10] in the *Key + # Management Service Developer Guide*. + # + # * Disabled: The key rotation status does not change when you disable a + # KMS key. However, while the KMS key is disabled, KMS does not rotate + # the key material. When you re-enable the KMS key, rotation resumes. + # If the key material in the re-enabled KMS key hasn't been rotated + # in one year, KMS rotates it immediately, and every year thereafter. + # If it's been less than a year since the key material in the + # re-enabled KMS key was rotated, the KMS key resumes its prior + # rotation schedule. + # + # * Pending deletion: While a KMS key is pending deletion, its key + # rotation status is `false` and KMS does not rotate the key material. + # If you cancel the deletion, the original key rotation status returns + # to `true`. + # + # **Cross-account use**: Yes. To perform this operation on a KMS key in + # a different Amazon Web Services account, specify the key ARN in the + # value of the `KeyId` parameter. + # + # **Required permissions**: [kms:GetKeyRotationStatus][11] (key policy) + # + # **Related operations:** + # + # * DisableKeyRotation + # + # * EnableKeyRotation + # + # * ListKeyRotations + # + # * RotateKeyOnDemand + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][12]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotation-period + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html + # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate + # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk + # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To retrieve the rotation status for a KMS key + # + # # The following example retrieves detailed information about the rotation status for a KMS key, including whether + # # automatic key rotation is enabled for the specified KMS key, the rotation period, and the next scheduled rotation date. + # + # resp = client.get_key_rotation_status({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key whose key material rotation status you want to retrieve. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # Identifies the specified symmetric encryption KMS key. + # key_rotation_enabled: true, # A boolean that indicates the key material rotation status. Returns true when automatic rotation of the key material is enabled, or false when it is not. + # next_rotation_date: Time.parse("2024-04-05T15:14:47.757000+00:00"), # The next date that the key material will be automatically rotated. + # on_demand_rotation_start_date: Time.parse("2024-03-02T10:11:36.564000+00:00"), # Identifies the date and time that an in progress on-demand rotation was initiated. + # rotation_period_in_days: 365, # The number of days between each automatic rotation. The default value is 365 days. + # } + # @example Request syntax with placeholder values + # + # resp = client.get_key_rotation_status({ + # key_id: "KeyIdType", # required + # }) + # @example Response structure + # + # resp.key_rotation_enabled #=> Boolean + # resp.key_id #=> String + # resp.rotation_period_in_days #=> Integer + # resp.next_rotation_date #=> Time + # resp.on_demand_rotation_start_date #=> Time + # @option params + # @overload get_key_rotation_status + # @param params [Hash] ({}) + # @return [Types::GetKeyRotationStatusResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetKeyRotationStatusResponse#key_rotation_enabled #key_rotation_enabled} => Boolean + # * {Types::GetKeyRotationStatusResponse#key_id #key_id} => String + # * {Types::GetKeyRotationStatusResponse#rotation_period_in_days #rotation_period_in_days} => Integer + # * {Types::GetKeyRotationStatusResponse#next_rotation_date #next_rotation_date} => Time + # * {Types::GetKeyRotationStatusResponse#on_demand_rotation_start_date #on_demand_rotation_start_date} => Time + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyRotationStatus AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#6159 + def get_key_rotation_status(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns the public key and an import token you need to import or + # reimport key material for a KMS key. + # + # By default, KMS keys are created with key material that KMS generates. + # This operation supports [Importing key material][1], an advanced + # feature that lets you generate and import the cryptographic key + # material for a KMS key. For more information about importing key + # material into KMS, see [Importing key material][1] in the *Key + # Management Service Developer Guide*. + # + # Before calling `GetParametersForImport`, use the CreateKey operation + # with an `Origin` value of `EXTERNAL` to create a KMS key with no key + # material. You can import key material for a symmetric encryption KMS + # key, HMAC KMS key, asymmetric encryption KMS key, or asymmetric + # signing KMS key. You can also import key material into a [multi-Region + # key][2] of any supported type. However, you can't import key material + # into a KMS key in a [custom key store][3]. You can also use + # `GetParametersForImport` to get a public key and import token to + # [reimport the original key material][4] into a KMS key whose key + # material expired or was deleted. + # + # `GetParametersForImport` returns the items that you need to import + # your key material. + # + # * The public key (or "wrapping key") of an RSA key pair that KMS + # generates. + # + # You will use this public key to encrypt ("wrap") your key material + # while it's in transit to KMS. + # + # * A import token that ensures that KMS can decrypt your key material + # and associate it with the correct KMS key. + # + # The public key and its import token are permanently linked and must be + # used together. Each public key and import token set is valid for 24 + # hours. The expiration date and time appear in the `ParametersValidTo` + # field in the `GetParametersForImport` response. You cannot use an + # expired public key or import token in an ImportKeyMaterial request. If + # your key and token expire, send another `GetParametersForImport` + # request. + # + # `GetParametersForImport` requires the following information: + # + # * The key ID of the KMS key for which you are importing the key + # material. + # + # * The key spec of the public key ("wrapping key") that you will use + # to encrypt your key material during import. + # + # * The wrapping algorithm that you will use with the public key to + # encrypt your key material. + # + # You can use the same or a different public key spec and wrapping + # algorithm each time you import or reimport the same key material. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][5] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions**: [kms:GetParametersForImport][6] (key policy) + # + # **Related operations:** + # + # * ImportKeyMaterial + # + # * DeleteImportedKeyMaterial + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][7]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#reimport-key-material + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To download the public key and import token for a symmetric encryption KMS key + # + # # The following example downloads a public key and import token to import symmetric encryption key material. It uses the + # # default wrapping key spec and the RSAES_OAEP_SHA_256 wrapping algorithm. + # + # resp = client.get_parameters_for_import({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key that will be associated with the imported key material. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # wrapping_algorithm: "RSAES_OAEP_SHA_1", # The algorithm that you will use to encrypt the key material before importing it. + # wrapping_key_spec: "RSA_2048", # The type of wrapping key (public key) to return in the response. + # }) + # + # resp.to_h outputs the following: + # { + # import_token: "", # The import token to send with a subsequent ImportKeyMaterial request. + # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The ARN of the KMS key that will be associated with the imported key material. + # parameters_valid_to: Time.parse("2023-02-01T14:52:17-08:00"), # The date and time when the import token and public key expire. After this time, call GetParametersForImport again. + # public_key: "", # The public key to use to encrypt the key material before importing it. + # } + # @example Example: To download the public key and import token for an RSA asymmetric KMS key + # + # # The following example downloads a public key and import token to import an RSA private key. It uses a required RSA_AES + # # wrapping algorithm and the largest supported private key. + # + # resp = client.get_parameters_for_import({ + # key_id: "arn:aws:kms:us-east-2:111122223333:key/8888abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key that will be associated with the imported key material. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # wrapping_algorithm: "RSA_AES_KEY_WRAP_SHA_256", # The algorithm that you will use to encrypt the key material before importing it. + # wrapping_key_spec: "RSA_4096", # The type of wrapping key (public key) to return in the response. + # }) + # + # resp.to_h outputs the following: + # { + # import_token: "", # The import token to send with a subsequent ImportKeyMaterial request. + # key_id: "arn:aws:kms:us-east-2:111122223333:key/8888abcd-12ab-34cd-56ef-1234567890ab", # The ARN of the KMS key that will be associated with the imported key material. + # parameters_valid_to: Time.parse("2023-03-08T13:02:02-07:00"), # The date and time when the import token and public key expire. After this time, call GetParametersForImport again. + # public_key: "", # The public key to use to encrypt the key material before importing it. + # } + # @example Example: To download the public key and import token for an elliptic curve (ECC) asymmetric KMS key + # + # # The following example downloads a public key and import token to import an ECC_NIST_P521 (secp521r1) private key. You + # # cannot directly wrap this ECC key under an RSA_2048 public key, although you can use an RSA_2048 public key with an + # # RSA_AES wrapping algorithm to wrap any supported key material. This example requests an RSA_3072 public key for use with + # # the RSAES_OAEP_SHA_256. + # + # resp = client.get_parameters_for_import({ + # key_id: "arn:aws:kms:us-east-2:111122223333:key/9876abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key that will be associated with the imported key material. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # wrapping_algorithm: "RSAES_OAEP_SHA_256", # The algorithm that you will use to encrypt the key material before importing it. + # wrapping_key_spec: "RSA_3072", # The type of wrapping key (public key) to return in the response. + # }) + # + # resp.to_h outputs the following: + # { + # import_token: "", # The import token to send with a subsequent ImportKeyMaterial request. + # key_id: "arn:aws:kms:us-east-2:111122223333:key/9876abcd-12ab-34cd-56ef-1234567890ab", # The ARN of the KMS key that will be associated with the imported key material. + # parameters_valid_to: Time.parse("2023-09-12T03:15:01-20:00"), # The date and time when the import token and public key expire. After this time, call GetParametersForImport again. + # public_key: "", # The public key to use to encrypt the key material before importing it. + # } + # @example Example: To download the public key and import token for an HMAC KMS key + # + # # The following example downloads a public key and import token to import an HMAC key. It uses the RSAES_OAEP_SHA_256 + # # wrapping algorithm and an RSA_4096 private key. + # + # resp = client.get_parameters_for_import({ + # key_id: "2468abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key that will be associated with the imported key material. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # wrapping_algorithm: "RSAES_OAEP_SHA_256", # The algorithm that you will use to encrypt the key material before importing it. + # wrapping_key_spec: "RSA_4096", # The type of wrapping key (public key) to return in the response. + # }) + # + # resp.to_h outputs the following: + # { + # import_token: "", # The import token to send with a subsequent ImportKeyMaterial request. + # key_id: "arn:aws:kms:us-east-2:111122223333:key/2468abcd-12ab-34cd-56ef-1234567890ab", # The ARN of the KMS key that will be associated with the imported key material. + # parameters_valid_to: Time.parse("2023-04-02T13:02:02-07:00"), # The date and time when the import token and public key expire. After this time, call GetParametersForImport again. + # public_key: "", # The public key to use to encrypt the key material before importing it. + # } + # @example Request syntax with placeholder values + # + # resp = client.get_parameters_for_import({ + # key_id: "KeyIdType", # required + # wrapping_algorithm: "RSAES_PKCS1_V1_5", # required, accepts RSAES_PKCS1_V1_5, RSAES_OAEP_SHA_1, RSAES_OAEP_SHA_256, RSA_AES_KEY_WRAP_SHA_1, RSA_AES_KEY_WRAP_SHA_256, SM2PKE + # wrapping_key_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, SM2 + # }) + # @example Response structure + # + # resp.key_id #=> String + # resp.import_token #=> String + # resp.public_key #=> String + # resp.parameters_valid_to #=> Time + # @option params + # @option params + # @option params + # @overload get_parameters_for_import + # @param params [Hash] ({}) + # @return [Types::GetParametersForImportResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetParametersForImportResponse#key_id #key_id} => String + # * {Types::GetParametersForImportResponse#import_token #import_token} => String + # * {Types::GetParametersForImportResponse#public_key #public_key} => String + # * {Types::GetParametersForImportResponse#parameters_valid_to #parameters_valid_to} => Time + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetParametersForImport AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#6419 + def get_parameters_for_import(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns the public key of an asymmetric KMS key. Unlike the private + # key of a asymmetric KMS key, which never leaves KMS unencrypted, + # callers with `kms:GetPublicKey` permission can download the public key + # of an asymmetric KMS key. You can share the public key to allow others + # to encrypt messages and verify signatures outside of KMS. For + # information about asymmetric KMS keys, see [Asymmetric KMS keys][1] in + # the *Key Management Service Developer Guide*. + # + # You do not need to download the public key. Instead, you can use the + # public key within KMS by calling the Encrypt, ReEncrypt, or Verify + # operations with the identifier of an asymmetric KMS key. When you use + # the public key within KMS, you benefit from the authentication, + # authorization, and logging that are part of every KMS operation. You + # also reduce of risk of encrypting data that cannot be decrypted. These + # features are not effective outside of KMS. + # + # To help you use the public key safely outside of KMS, `GetPublicKey` + # returns important information about the public key in the response, + # including: + # + # * [KeySpec][2]: The type of key material in the public key, such as + # `RSA_4096` or `ECC_NIST_P521`. + # + # * [KeyUsage][3]: Whether the key is used for encryption, signing, or + # deriving a shared secret. + # + # * [EncryptionAlgorithms][4] or [SigningAlgorithms][5]: A list of the + # encryption algorithms or the signing algorithms for the key. + # + # Although KMS cannot enforce these restrictions on external operations, + # it is crucial that you use this information to prevent the public key + # from being used improperly. For example, you can prevent a public + # signing key from being used encrypt data, or prevent a public key from + # being used with an encryption algorithm that is not supported by KMS. + # You can also avoid errors, such as using the wrong signing algorithm + # in a verification operation. + # + # To verify a signature outside of KMS with an SM2 public key (China + # Regions only), you must specify the distinguishing ID. By default, KMS + # uses `1234567812345678` as the distinguishing ID. For more + # information, see [Offline verification with SM2 key pairs][6]. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][7] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: Yes. To perform this operation with a KMS key + # in a different Amazon Web Services account, specify the key ARN or + # alias ARN in the value of the `KeyId` parameter. + # + # **Required permissions**: [kms:GetPublicKey][8] (key policy) + # + # **Related operations**: CreateKey + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][9]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html + # [2]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeySpec + # [3]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeyUsage + # [4]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-EncryptionAlgorithms + # [5]: https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-SigningAlgorithms + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To download the public key of an asymmetric KMS key + # + # # This example gets the public key of an asymmetric RSA KMS key used for encryption and decryption. The operation returns + # # the key spec, key usage, and encryption or signing algorithms to help you use the public key correctly outside of AWS + # # KMS. + # + # resp = client.get_public_key({ + # key_id: "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", # The key ARN of the asymmetric KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # customer_master_key_spec: "RSA_4096", # The key spec of the asymmetric KMS key from which the public key was downloaded. + # encryption_algorithms: [ + # "RSAES_OAEP_SHA_1", + # "RSAES_OAEP_SHA_256", + # ], # The encryption algorithms supported by the asymmetric KMS key that was downloaded. + # key_id: "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", # The key ARN of the asymmetric KMS key from which the public key was downloaded. + # key_usage: "ENCRYPT_DECRYPT", # The key usage of the asymmetric KMS key from which the public key was downloaded. + # public_key: "", # The public key (plaintext) of the asymmetric KMS key. + # } + # @example Request syntax with placeholder values + # + # resp = client.get_public_key({ + # key_id: "KeyIdType", # required + # grant_tokens: ["GrantTokenType"], + # }) + # @example Response structure + # + # resp.key_id #=> String + # resp.public_key #=> String + # resp.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2" + # resp.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2" + # resp.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC", "KEY_AGREEMENT" + # resp.encryption_algorithms #=> Array + # resp.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE" + # resp.signing_algorithms #=> Array + # resp.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA" + # resp.key_agreement_algorithms #=> Array + # resp.key_agreement_algorithms[0] #=> String, one of "ECDH" + # @option params + # @option params + # @overload get_public_key + # @param params [Hash] ({}) + # @return [Types::GetPublicKeyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetPublicKeyResponse#key_id #key_id} => String + # * {Types::GetPublicKeyResponse#public_key #public_key} => String + # * {Types::GetPublicKeyResponse#customer_master_key_spec #customer_master_key_spec} => String + # * {Types::GetPublicKeyResponse#key_spec #key_spec} => String + # * {Types::GetPublicKeyResponse#key_usage #key_usage} => String + # * {Types::GetPublicKeyResponse#encryption_algorithms #encryption_algorithms} => Array<String> + # * {Types::GetPublicKeyResponse#signing_algorithms #signing_algorithms} => Array<String> + # * {Types::GetPublicKeyResponse#key_agreement_algorithms #key_agreement_algorithms} => Array<String> + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetPublicKey AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#6587 + def get_public_key(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Imports or reimports key material into an existing KMS key that was + # created without key material. `ImportKeyMaterial` also sets the + # expiration model and expiration date of the imported key material. + # + # By default, KMS keys are created with key material that KMS generates. + # This operation supports [Importing key material][1], an advanced + # feature that lets you generate and import the cryptographic key + # material for a KMS key. For more information about importing key + # material into KMS, see [Importing key material][1] in the *Key + # Management Service Developer Guide*. + # + # After you successfully import key material into a KMS key, you can + # [reimport the same key material][2] into that KMS key, but you cannot + # import different key material. You might reimport key material to + # replace key material that expired or key material that you deleted. + # You might also reimport key material to change the expiration model or + # expiration date of the key material. + # + # Each time you import key material into KMS, you can determine whether + # (`ExpirationModel`) and when (`ValidTo`) the key material expires. To + # change the expiration of your key material, you must import it again, + # either by calling `ImportKeyMaterial` or using the [import + # features](kms/latest/developerguide/importing-keys-import-key-material.html#importing-keys-import-key-material-console) + # of the KMS console. + # + # Before calling `ImportKeyMaterial`: + # + # * Create or identify a KMS key with no key material. The KMS key must + # have an `Origin` value of `EXTERNAL`, which indicates that the KMS + # key is designed for imported key material. + # + # To create an new KMS key for imported key material, call the + # CreateKey operation with an `Origin` value of `EXTERNAL`. You can + # create a symmetric encryption KMS key, HMAC KMS key, asymmetric + # encryption KMS key, or asymmetric signing KMS key. You can also + # import key material into a [multi-Region + # key](kms/latest/developerguide/multi-region-keys-overview.html) of + # any supported type. However, you can't import key material into a + # KMS key in a [custom key + # store](kms/latest/developerguide/custom-key-store-overview.html). + # + # * Use the DescribeKey operation to verify that the `KeyState` of the + # KMS key is `PendingImport`, which indicates that the KMS key has no + # key material. + # + # If you are reimporting the same key material into an existing KMS + # key, you might need to call the DeleteImportedKeyMaterial to delete + # its existing key material. + # + # * Call the GetParametersForImport operation to get a public key and + # import token set for importing key material. + # + # * Use the public key in the GetParametersForImport response to encrypt + # your key material. + # + # Then, in an `ImportKeyMaterial` request, you submit your encrypted key + # material and import token. When calling this operation, you must + # specify the following values: + # + # * The key ID or key ARN of the KMS key to associate with the imported + # key material. Its `Origin` must be `EXTERNAL` and its `KeyState` + # must be `PendingImport`. You cannot perform this operation on a KMS + # key in a [custom key + # store](kms/latest/developerguide/custom-key-store-overview.html), or + # on a KMS key in a different Amazon Web Services account. To get the + # `Origin` and `KeyState` of a KMS key, call DescribeKey. + # + # * The encrypted key material. + # + # * The import token that GetParametersForImport returned. You must use + # a public key and token from the same `GetParametersForImport` + # response. + # + # * Whether the key material expires (`ExpirationModel`) and, if so, + # when (`ValidTo`). For help with this choice, see [Setting an + # expiration time][3] in the *Key Management Service Developer Guide*. + # + # If you set an expiration date, KMS deletes the key material from the + # KMS key on the specified date, making the KMS key unusable. To use + # the KMS key in cryptographic operations again, you must reimport the + # same key material. However, you can delete and reimport the key + # material at any time, including before the key material expires. + # Each time you reimport, you can eliminate or reset the expiration + # time. + # + # When this operation is successful, the key state of the KMS key + # changes from `PendingImport` to `Enabled`, and you can use the KMS key + # in cryptographic operations. + # + # If this operation fails, use the exception to help determine the + # problem. If the error is related to the key material, the import + # token, or wrapping key, use GetParametersForImport to get a new public + # key and import token for the KMS key and repeat the import procedure. + # For help, see [How To Import Key Material][4] in the *Key Management + # Service Developer Guide*. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][5] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions**: [kms:ImportKeyMaterial][6] (key policy) + # + # **Related operations:** + # + # * DeleteImportedKeyMaterial + # + # * GetParametersForImport + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][7]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#reimport-key-material + # [3]: https://docs.aws.amazon.com/en_us/kms/latest/developerguide/importing-keys.html#importing-keys-expiration + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#importing-keys-overview + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To import key material into a KMS key + # + # # The following example imports key material into the specified KMS key. + # + # resp = client.import_key_material({ + # encrypted_key_material: "", # The encrypted key material to import. + # expiration_model: "KEY_MATERIAL_DOES_NOT_EXPIRE", # A value that specifies whether the key material expires. + # import_token: "", # The import token that you received in the response to a previous GetParametersForImport request. + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key to import the key material into. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # }) + # @example Example: To import key material into a KMS key + # + # # The following example imports key material that expires in 3 days. It might be part of an application that frequently + # # reimports the same key material to comply with business rules or regulations. + # + # resp = client.import_key_material({ + # encrypted_key_material: "", # The encrypted key material to import. + # expiration_model: "KEY_MATERIAL_EXPIRES", # A value that specifies whether the key material expires. + # import_token: "", # The import token that you received in the response to a previous GetParametersForImport request. + # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key to import the key material into. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # valid_to: Time.parse("2023-09-30T00:00:00-00:00"), # Specifies the date and time when the imported key material expires. + # }) + # @example Request syntax with placeholder values + # + # resp = client.import_key_material({ + # key_id: "KeyIdType", # required + # import_token: "data", # required + # encrypted_key_material: "data", # required + # valid_to: Time.now, + # expiration_model: "KEY_MATERIAL_EXPIRES", # accepts KEY_MATERIAL_EXPIRES, KEY_MATERIAL_DOES_NOT_EXPIRE + # }) + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload import_key_material + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ImportKeyMaterial AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#6830 + def import_key_material(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Gets a list of aliases in the caller's Amazon Web Services account + # and region. For more information about aliases, see CreateAlias. + # + # By default, the `ListAliases` operation returns all aliases in the + # account and region. To get only the aliases associated with a + # particular KMS key, use the `KeyId` parameter. + # + # The `ListAliases` response can include aliases that you created and + # associated with your customer managed keys, and aliases that Amazon + # Web Services created and associated with Amazon Web Services managed + # keys in your account. You can recognize Amazon Web Services aliases + # because their names have the format `aws/`, such as + # `aws/dynamodb`. + # + # The response might also include aliases that have no `TargetKeyId` + # field. These are predefined aliases that Amazon Web Services has + # created but has not yet associated with a KMS key. Aliases that Amazon + # Web Services creates in your account, including predefined aliases, do + # not count against your [KMS aliases quota][1]. + # + # **Cross-account use**: No. `ListAliases` does not return aliases in + # other Amazon Web Services accounts. + # + # **Required permissions**: [kms:ListAliases][2] (IAM policy) + # + # For details, see [Controlling access to aliases][3] in the *Key + # Management Service Developer Guide*. + # + # **Related operations:** + # + # * CreateAlias + # + # * DeleteAlias + # + # * UpdateAlias + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][4]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/limits.html#aliases-limit + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Example: To list aliases + # + # # The following example lists aliases. + # + # resp = client.list_aliases({ + # }) + # + # resp.to_h outputs the following: + # { + # aliases: [ + # { + # alias_arn: "arn:aws:kms:us-east-2:111122223333:alias/aws/acm", + # alias_name: "alias/aws/acm", + # target_key_id: "da03f6f7-d279-427a-9cae-de48d07e5b66", + # }, + # { + # alias_arn: "arn:aws:kms:us-east-2:111122223333:alias/aws/ebs", + # alias_name: "alias/aws/ebs", + # target_key_id: "25a217e7-7170-4b8c-8bf6-045ea5f70e5b", + # }, + # { + # alias_arn: "arn:aws:kms:us-east-2:111122223333:alias/aws/rds", + # alias_name: "alias/aws/rds", + # target_key_id: "7ec3104e-c3f2-4b5c-bf42-bfc4772c6685", + # }, + # { + # alias_arn: "arn:aws:kms:us-east-2:111122223333:alias/aws/redshift", + # alias_name: "alias/aws/redshift", + # target_key_id: "08f7a25a-69e2-4fb5-8f10-393db27326fa", + # }, + # { + # alias_arn: "arn:aws:kms:us-east-2:111122223333:alias/aws/s3", + # alias_name: "alias/aws/s3", + # target_key_id: "d2b0f1a3-580d-4f79-b836-bc983be8cfa5", + # }, + # { + # alias_arn: "arn:aws:kms:us-east-2:111122223333:alias/example1", + # alias_name: "alias/example1", + # target_key_id: "4da1e216-62d0-46c5-a7c0-5f3a3d2f8046", + # }, + # { + # alias_arn: "arn:aws:kms:us-east-2:111122223333:alias/example2", + # alias_name: "alias/example2", + # target_key_id: "f32fef59-2cc2-445b-8573-2d73328acbee", + # }, + # { + # alias_arn: "arn:aws:kms:us-east-2:111122223333:alias/example3", + # alias_name: "alias/example3", + # target_key_id: "1374ef38-d34e-4d5f-b2c9-4e0daee38855", + # }, + # ], # A list of aliases, including the key ID of the KMS key that each alias refers to. + # truncated: false, # A boolean that indicates whether there are more items in the list. Returns true when there are more items, or false when there are not. + # } + # @example Request syntax with placeholder values + # + # resp = client.list_aliases({ + # key_id: "KeyIdType", + # limit: 1, + # marker: "MarkerType", + # }) + # @example Response structure + # + # resp.aliases #=> Array + # resp.aliases[0].alias_name #=> String + # resp.aliases[0].alias_arn #=> String + # resp.aliases[0].target_key_id #=> String + # resp.aliases[0].creation_date #=> Time + # resp.aliases[0].last_updated_date #=> Time + # resp.next_marker #=> String + # resp.truncated #=> Boolean + # @option params + # @option params + # @option params + # @overload list_aliases + # @param params [Hash] ({}) + # @return [Types::ListAliasesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListAliasesResponse#aliases #aliases} => Array<Types::AliasListEntry> + # * {Types::ListAliasesResponse#next_marker #next_marker} => String + # * {Types::ListAliasesResponse#truncated #truncated} => Boolean + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListAliases AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#6999 + def list_aliases(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Gets a list of all grants for the specified KMS key. + # + # You must specify the KMS key in all requests. You can filter the grant + # list by grant ID or grantee principal. + # + # For detailed information about grants, including grant terminology, + # see [Grants in KMS][1] in the Key Management Service Developer + # Guide . For examples of working with grants in several + # programming languages, see [Programming grants][2]. + # + # The `GranteePrincipal` field in the `ListGrants` response usually + # contains the user or role designated as the grantee principal in the + # grant. However, when the grantee principal in the grant is an Amazon + # Web Services service, the `GranteePrincipal` field contains the + # [service principal][3], which might represent several different + # grantee principals. + # + # + # + # **Cross-account use**: Yes. To perform this operation on a KMS key in + # a different Amazon Web Services account, specify the key ARN in the + # value of the `KeyId` parameter. + # + # **Required permissions**: [kms:ListGrants][4] (key policy) + # + # **Related operations:** + # + # * CreateGrant + # + # * ListRetirableGrants + # + # * RetireGrant + # + # * RevokeGrant + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][5]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-grants.html + # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Example: To list grants for a KMS key + # + # # The following example lists grants for the specified KMS key. + # + # resp = client.list_grants({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key whose grants you want to list. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # grants: [ + # { + # creation_date: Time.parse("2016-10-25T14:37:41-07:00"), + # grant_id: "91ad875e49b04a9d1f3bdeb84d821f9db6ea95e1098813f6d47f0c65fbe2a172", + # grantee_principal: "acm.us-east-2.amazonaws.com", + # issuing_account: "arn:aws:iam::111122223333:root", + # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + # operations: [ + # "Encrypt", + # "ReEncryptFrom", + # "ReEncryptTo", + # ], + # retiring_principal: "acm.us-east-2.amazonaws.com", + # }, + # { + # creation_date: Time.parse("2016-10-25T14:37:41-07:00"), + # grant_id: "a5d67d3e207a8fc1f4928749ee3e52eb0440493a8b9cf05bbfad91655b056200", + # grantee_principal: "acm.us-east-2.amazonaws.com", + # issuing_account: "arn:aws:iam::111122223333:root", + # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + # operations: [ + # "ReEncryptFrom", + # "ReEncryptTo", + # ], + # retiring_principal: "acm.us-east-2.amazonaws.com", + # }, + # { + # creation_date: Time.parse("2016-10-25T14:37:41-07:00"), + # grant_id: "c541aaf05d90cb78846a73b346fc43e65be28b7163129488c738e0c9e0628f4f", + # grantee_principal: "acm.us-east-2.amazonaws.com", + # issuing_account: "arn:aws:iam::111122223333:root", + # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + # operations: [ + # "Encrypt", + # "ReEncryptFrom", + # "ReEncryptTo", + # ], + # retiring_principal: "acm.us-east-2.amazonaws.com", + # }, + # { + # creation_date: Time.parse("2016-10-25T14:37:41-07:00"), + # grant_id: "dd2052c67b4c76ee45caf1dc6a1e2d24e8dc744a51b36ae2f067dc540ce0105c", + # grantee_principal: "acm.us-east-2.amazonaws.com", + # issuing_account: "arn:aws:iam::111122223333:root", + # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + # operations: [ + # "Encrypt", + # "ReEncryptFrom", + # "ReEncryptTo", + # ], + # retiring_principal: "acm.us-east-2.amazonaws.com", + # }, + # ], # A list of grants. + # truncated: true, # A boolean that indicates whether there are more items in the list. Returns true when there are more items, or false when there are not. + # } + # @example Request syntax with placeholder values + # + # resp = client.list_grants({ + # limit: 1, + # marker: "MarkerType", + # key_id: "KeyIdType", # required + # grant_id: "GrantIdType", + # grantee_principal: "PrincipalIdType", + # }) + # @example Response structure + # + # resp.grants #=> Array + # resp.grants[0].key_id #=> String + # resp.grants[0].grant_id #=> String + # resp.grants[0].name #=> String + # resp.grants[0].creation_date #=> Time + # resp.grants[0].grantee_principal #=> String + # resp.grants[0].retiring_principal #=> String + # resp.grants[0].issuing_account #=> String + # resp.grants[0].operations #=> Array + # resp.grants[0].operations[0] #=> String, one of "Decrypt", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "Sign", "Verify", "GetPublicKey", "CreateGrant", "RetireGrant", "DescribeKey", "GenerateDataKeyPair", "GenerateDataKeyPairWithoutPlaintext", "GenerateMac", "VerifyMac", "DeriveSharedSecret" + # resp.grants[0].constraints.encryption_context_subset #=> Hash + # resp.grants[0].constraints.encryption_context_subset["EncryptionContextKey"] #=> String + # resp.grants[0].constraints.encryption_context_equals #=> Hash + # resp.grants[0].constraints.encryption_context_equals["EncryptionContextKey"] #=> String + # resp.next_marker #=> String + # resp.truncated #=> Boolean + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload list_grants + # @param params [Hash] ({}) + # @return [Types::ListGrantsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListGrantsResponse#grants #grants} => Array<Types::GrantListEntry> + # * {Types::ListGrantsResponse#next_marker #next_marker} => String + # * {Types::ListGrantsResponse#truncated #truncated} => Boolean + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListGrants AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#7196 + def list_grants(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Gets the names of the key policies that are attached to a KMS key. + # This operation is designed to get policy names that you can use in a + # GetKeyPolicy operation. However, the only valid policy name is + # `default`. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions**: [kms:ListKeyPolicies][1] (key policy) + # + # **Related operations:** + # + # * GetKeyPolicy + # + # * [PutKeyPolicy][2] + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][3]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [2]: https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Example: To list key policies for a KMS key + # + # # The following example lists key policies for the specified KMS key. + # + # resp = client.list_key_policies({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key whose key policies you want to list. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # policy_names: [ + # "default", + # ], # A list of key policy names. + # truncated: false, # A boolean that indicates whether there are more items in the list. Returns true when there are more items, or false when there are not. + # } + # @example Request syntax with placeholder values + # + # resp = client.list_key_policies({ + # key_id: "KeyIdType", # required + # limit: 1, + # marker: "MarkerType", + # }) + # @example Response structure + # + # resp.policy_names #=> Array + # resp.policy_names[0] #=> String + # resp.next_marker #=> String + # resp.truncated #=> Boolean + # @option params + # @option params + # @option params + # @overload list_key_policies + # @param params [Hash] ({}) + # @return [Types::ListKeyPoliciesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListKeyPoliciesResponse#policy_names #policy_names} => Array<String> + # * {Types::ListKeyPoliciesResponse#next_marker #next_marker} => String + # * {Types::ListKeyPoliciesResponse#truncated #truncated} => Boolean + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyPolicies AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#7301 + def list_key_policies(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns information about all completed key material rotations for the + # specified KMS key. + # + # You must specify the KMS key in all requests. You can refine the key + # rotations list by limiting the number of rotations returned. + # + # For detailed information about automatic and on-demand key rotations, + # see [Rotating KMS keys][1] in the *Key Management Service Developer + # Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions**: [kms:ListKeyRotations][2] (key policy) + # + # **Related operations:** + # + # * EnableKeyRotation + # + # * DisableKeyRotation + # + # * GetKeyRotationStatus + # + # * RotateKeyOnDemand + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][3]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Example: To retrieve information about all completed key material rotations + # + # # The following example returns information about all completed key material rotations for the specified KMS key. + # + # resp = client.list_key_rotations({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", + # }) + # + # resp.to_h outputs the following: + # { + # rotations: [ + # { + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", + # rotation_date: Time.parse("2024-03-02T10:11:36.564000+00:00"), + # rotation_type: "AUTOMATIC", + # }, + # { + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", + # rotation_date: Time.parse("2024-04-05T15:14:47.757000+00:00"), + # rotation_type: "ON_DEMAND", + # }, + # ], # A list of key rotations. + # truncated: false, # A flag that indicates whether there are more items in the list. When the value is true, the list in this response is truncated. To get more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request. + # } + # @example Request syntax with placeholder values + # + # resp = client.list_key_rotations({ + # key_id: "KeyIdType", # required + # limit: 1, + # marker: "MarkerType", + # }) + # @example Response structure + # + # resp.rotations #=> Array + # resp.rotations[0].key_id #=> String + # resp.rotations[0].rotation_date #=> Time + # resp.rotations[0].rotation_type #=> String, one of "AUTOMATIC", "ON_DEMAND" + # resp.next_marker #=> String + # resp.truncated #=> Boolean + # @option params + # @option params + # @option params + # @overload list_key_rotations + # @param params [Hash] ({}) + # @return [Types::ListKeyRotationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListKeyRotationsResponse#rotations #rotations} => Array<Types::RotationsListEntry> + # * {Types::ListKeyRotationsResponse#next_marker #next_marker} => String + # * {Types::ListKeyRotationsResponse#truncated #truncated} => Boolean + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyRotations AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#7424 + def list_key_rotations(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Gets a list of all KMS keys in the caller's Amazon Web Services + # account and Region. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions**: [kms:ListKeys][1] (IAM policy) + # + # **Related operations:** + # + # * CreateKey + # + # * DescribeKey + # + # * ListAliases + # + # * ListResourceTags + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][2]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Example: To list KMS keys + # + # # The following example lists KMS keys. + # + # resp = client.list_keys({ + # }) + # + # resp.to_h outputs the following: + # { + # keys: [ + # { + # key_arn: "arn:aws:kms:us-east-2:111122223333:key/0d990263-018e-4e65-a703-eff731de951e", + # key_id: "0d990263-018e-4e65-a703-eff731de951e", + # }, + # { + # key_arn: "arn:aws:kms:us-east-2:111122223333:key/144be297-0ae1-44ac-9c8f-93cd8c82f841", + # key_id: "144be297-0ae1-44ac-9c8f-93cd8c82f841", + # }, + # { + # key_arn: "arn:aws:kms:us-east-2:111122223333:key/21184251-b765-428e-b852-2c7353e72571", + # key_id: "21184251-b765-428e-b852-2c7353e72571", + # }, + # { + # key_arn: "arn:aws:kms:us-east-2:111122223333:key/214fe92f-5b03-4ae1-b350-db2a45dbe10c", + # key_id: "214fe92f-5b03-4ae1-b350-db2a45dbe10c", + # }, + # { + # key_arn: "arn:aws:kms:us-east-2:111122223333:key/339963f2-e523-49d3-af24-a0fe752aa458", + # key_id: "339963f2-e523-49d3-af24-a0fe752aa458", + # }, + # { + # key_arn: "arn:aws:kms:us-east-2:111122223333:key/b776a44b-df37-4438-9be4-a27494e4271a", + # key_id: "b776a44b-df37-4438-9be4-a27494e4271a", + # }, + # { + # key_arn: "arn:aws:kms:us-east-2:111122223333:key/deaf6c9e-cf2c-46a6-bf6d-0b6d487cffbb", + # key_id: "deaf6c9e-cf2c-46a6-bf6d-0b6d487cffbb", + # }, + # ], # A list of KMS keys, including the key ID and Amazon Resource Name (ARN) of each one. + # truncated: false, # A boolean that indicates whether there are more items in the list. Returns true when there are more items, or false when there are not. + # } + # @example Request syntax with placeholder values + # + # resp = client.list_keys({ + # limit: 1, + # marker: "MarkerType", + # }) + # @example Response structure + # + # resp.keys #=> Array + # resp.keys[0].key_id #=> String + # resp.keys[0].key_arn #=> String + # resp.next_marker #=> String + # resp.truncated #=> Boolean + # @option params + # @option params + # @overload list_keys + # @param params [Hash] ({}) + # @return [Types::ListKeysResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListKeysResponse#keys #keys} => Array<Types::KeyListEntry> + # * {Types::ListKeysResponse#next_marker #next_marker} => String + # * {Types::ListKeysResponse#truncated #truncated} => Boolean + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeys AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#7539 + def list_keys(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns all tags on the specified KMS key. + # + # For general information about tags, including the format and syntax, + # see [Tagging Amazon Web Services resources][1] in the *Amazon Web + # Services General Reference*. For information about using tags in KMS, + # see [Tagging keys][2]. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions**: [kms:ListResourceTags][3] (key policy) + # + # **Related operations:** + # + # * CreateKey + # + # * ReplicateKey + # + # * TagResource + # + # * UntagResource + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][4]. + # + # + # + # [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Example: To list tags for a KMS key + # + # # The following example lists tags for a KMS key. + # + # resp = client.list_resource_tags({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key whose tags you are listing. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # tags: [ + # { + # tag_key: "CostCenter", + # tag_value: "87654", + # }, + # { + # tag_key: "CreatedBy", + # tag_value: "ExampleUser", + # }, + # { + # tag_key: "Purpose", + # tag_value: "Test", + # }, + # ], # A list of tags. + # truncated: false, # A boolean that indicates whether there are more items in the list. Returns true when there are more items, or false when there are not. + # } + # @example Request syntax with placeholder values + # + # resp = client.list_resource_tags({ + # key_id: "KeyIdType", # required + # limit: 1, + # marker: "MarkerType", + # }) + # @example Response structure + # + # resp.tags #=> Array + # resp.tags[0].tag_key #=> String + # resp.tags[0].tag_value #=> String + # resp.next_marker #=> String + # resp.truncated #=> Boolean + # @option params + # @option params + # @option params + # @overload list_resource_tags + # @param params [Hash] ({}) + # @return [Types::ListResourceTagsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListResourceTagsResponse#tags #tags} => Array<Types::Tag> + # * {Types::ListResourceTagsResponse#next_marker #next_marker} => String + # * {Types::ListResourceTagsResponse#truncated #truncated} => Boolean + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListResourceTags AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#7663 + def list_resource_tags(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns information about all grants in the Amazon Web Services + # account and Region that have the specified retiring principal. + # + # You can specify any principal in your Amazon Web Services account. The + # grants that are returned include grants for KMS keys in your Amazon + # Web Services account and other Amazon Web Services accounts. You might + # use this operation to determine which grants you may retire. To retire + # a grant, use the RetireGrant operation. + # + # For detailed information about grants, including grant terminology, + # see [Grants in KMS][1] in the Key Management Service Developer + # Guide . For examples of working with grants in several + # programming languages, see [Programming grants][2]. + # + # **Cross-account use**: You must specify a principal in your Amazon Web + # Services account. This operation returns a list of grants where the + # retiring principal specified in the `ListRetirableGrants` request is + # the same retiring principal on the grant. This can include grants on + # KMS keys owned by other Amazon Web Services accounts, but you do not + # need `kms:ListRetirableGrants` permission (or any other additional + # permission) in any Amazon Web Services account other than your own. + # + # **Required permissions**: [kms:ListRetirableGrants][3] (IAM policy) in + # your Amazon Web Services account. + # + # KMS authorizes `ListRetirableGrants` requests by evaluating the caller + # account's kms:ListRetirableGrants permissions. The authorized + # resource in `ListRetirableGrants` calls is the retiring principal + # specified in the request. KMS does not evaluate the caller's + # permissions to verify their access to any KMS keys or grants that + # might be returned by the `ListRetirableGrants` call. + # + # + # + # **Related operations:** + # + # * CreateGrant + # + # * ListGrants + # + # * RetireGrant + # + # * RevokeGrant + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][4]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-grants.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Example: To list grants that the specified principal can retire + # + # # The following example lists the grants that the specified principal (identity) can retire. + # + # resp = client.list_retirable_grants({ + # retiring_principal: "arn:aws:iam::111122223333:role/ExampleRole", # The retiring principal whose grants you want to list. Use the Amazon Resource Name (ARN) of a principal such as an AWS account (root), IAM user, federated user, or assumed role user. + # }) + # + # resp.to_h outputs the following: + # { + # grants: [ + # { + # creation_date: Time.parse("2016-12-07T11:09:35-08:00"), + # grant_id: "0c237476b39f8bc44e45212e08498fbe3151305030726c0590dd8d3e9f3d6a60", + # grantee_principal: "arn:aws:iam::111122223333:role/ExampleRole", + # issuing_account: "arn:aws:iam::444455556666:root", + # key_id: "arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab", + # operations: [ + # "Decrypt", + # "Encrypt", + # ], + # retiring_principal: "arn:aws:iam::111122223333:role/ExampleRole", + # }, + # ], # A list of grants that the specified principal can retire. + # truncated: false, # A boolean that indicates whether there are more items in the list. Returns true when there are more items, or false when there are not. + # } + # @example Request syntax with placeholder values + # + # resp = client.list_retirable_grants({ + # limit: 1, + # marker: "MarkerType", + # retiring_principal: "PrincipalIdType", # required + # }) + # @example Response structure + # + # resp.grants #=> Array + # resp.grants[0].key_id #=> String + # resp.grants[0].grant_id #=> String + # resp.grants[0].name #=> String + # resp.grants[0].creation_date #=> Time + # resp.grants[0].grantee_principal #=> String + # resp.grants[0].retiring_principal #=> String + # resp.grants[0].issuing_account #=> String + # resp.grants[0].operations #=> Array + # resp.grants[0].operations[0] #=> String, one of "Decrypt", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "Sign", "Verify", "GetPublicKey", "CreateGrant", "RetireGrant", "DescribeKey", "GenerateDataKeyPair", "GenerateDataKeyPairWithoutPlaintext", "GenerateMac", "VerifyMac", "DeriveSharedSecret" + # resp.grants[0].constraints.encryption_context_subset #=> Hash + # resp.grants[0].constraints.encryption_context_subset["EncryptionContextKey"] #=> String + # resp.grants[0].constraints.encryption_context_equals #=> Hash + # resp.grants[0].constraints.encryption_context_equals["EncryptionContextKey"] #=> String + # resp.next_marker #=> String + # resp.truncated #=> Boolean + # @option params + # @option params + # @option params + # @overload list_retirable_grants + # @param params [Hash] ({}) + # @return [Types::ListGrantsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListGrantsResponse#grants #grants} => Array<Types::GrantListEntry> + # * {Types::ListGrantsResponse#next_marker #next_marker} => String + # * {Types::ListGrantsResponse#truncated #truncated} => Boolean + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListRetirableGrants AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#7818 + def list_retirable_grants(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Attaches a key policy to the specified KMS key. + # + # For more information about key policies, see [Key Policies][1] in the + # *Key Management Service Developer Guide*. For help writing and + # formatting a JSON policy document, see the [IAM JSON Policy + # Reference][2] in the Identity and Access Management User + # Guide . For examples of adding a key policy in multiple + # programming languages, see [Setting a key policy][3] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions**: [kms:PutKeyPolicy][4] (key policy) + # + # **Related operations**: GetKeyPolicy + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][5]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html + # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-key-policies.html#put-policy + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To attach a key policy to a KMS key + # + # # The following example attaches a key policy to the specified KMS key. + # + # resp = client.put_key_policy({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key to attach the key policy to. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # policy: "{\"Version\":\"2012-10-17\",\"Id\":\"custom-policy-2016-12-07\",\"Statement\":[{\"Sid\":\"EnableIAMUserPermissions\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::111122223333:root\"},\"Action\":\"kms:*\",\"Resource\":\"*\"},{\"Sid\":\"AllowaccessforKeyAdministrators\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam::111122223333:user/ExampleAdminUser\",\"arn:aws:iam::111122223333:role/ExampleAdminRole\"]},\"Action\":[\"kms:Create*\",\"kms:Describe*\",\"kms:Enable*\",\"kms:List*\",\"kms:Put*\",\"kms:Update*\",\"kms:Revoke*\",\"kms:Disable*\",\"kms:Get*\",\"kms:Delete*\",\"kms:ScheduleKeyDeletion\",\"kms:CancelKeyDeletion\"],\"Resource\":\"*\"},{\"Sid\":\"Allowuseofthekey\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::111122223333:role/ExamplePowerUserRole\"},\"Action\":[\"kms:Encrypt\",\"kms:Decrypt\",\"kms:ReEncrypt*\",\"kms:GenerateDataKey*\",\"kms:DescribeKey\"],\"Resource\":\"*\"},{\"Sid\":\"Allowattachmentofpersistentresources\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::111122223333:role/ExamplePowerUserRole\"},\"Action\":[\"kms:CreateGrant\",\"kms:ListGrants\",\"kms:RevokeGrant\"],\"Resource\":\"*\",\"Condition\":{\"Bool\":{\"kms:GrantIsForAWSResource\":\"true\"}}}]}", # The key policy document. + # policy_name: "default", # The name of the key policy. + # }) + # @example Request syntax with placeholder values + # + # resp = client.put_key_policy({ + # key_id: "KeyIdType", # required + # policy_name: "PolicyNameType", + # policy: "PolicyType", # required + # bypass_policy_lockout_safety_check: false, + # }) + # @option params + # @option params + # @option params + # @option params + # @overload put_key_policy + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/PutKeyPolicy AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#7959 + def put_key_policy(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Decrypts ciphertext and then reencrypts it entirely within KMS. You + # can use this operation to change the KMS key under which data is + # encrypted, such as when you [manually rotate][1] a KMS key or change + # the KMS key that protects a ciphertext. You can also use it to + # reencrypt ciphertext under the same KMS key, such as to change the + # [encryption context][2] of a ciphertext. + # + # The `ReEncrypt` operation can decrypt ciphertext that was encrypted by + # using a KMS key in an KMS operation, such as Encrypt or + # GenerateDataKey. It can also decrypt ciphertext that was encrypted by + # using the public key of an [asymmetric KMS key][3] outside of KMS. + # However, it cannot decrypt ciphertext produced by other libraries, + # such as the [Amazon Web Services Encryption SDK][4] or [Amazon S3 + # client-side encryption][5]. These libraries return a ciphertext format + # that is incompatible with KMS. + # + # When you use the `ReEncrypt` operation, you need to provide + # information for the decrypt operation and the subsequent encrypt + # operation. + # + # * If your ciphertext was encrypted under an asymmetric KMS key, you + # must use the `SourceKeyId` parameter to identify the KMS key that + # encrypted the ciphertext. You must also supply the encryption + # algorithm that was used. This information is required to decrypt the + # data. + # + # * If your ciphertext was encrypted under a symmetric encryption KMS + # key, the `SourceKeyId` parameter is optional. KMS can get this + # information from metadata that it adds to the symmetric ciphertext + # blob. This feature adds durability to your implementation by + # ensuring that authorized users can decrypt ciphertext decades after + # it was encrypted, even if they've lost track of the key ID. + # However, specifying the source KMS key is always recommended as a + # best practice. When you use the `SourceKeyId` parameter to specify a + # KMS key, KMS uses only the KMS key you specify. If the ciphertext + # was encrypted under a different KMS key, the `ReEncrypt` operation + # fails. This practice ensures that you use the KMS key that you + # intend. + # + # * To reencrypt the data, you must use the `DestinationKeyId` parameter + # to specify the KMS key that re-encrypts the data after it is + # decrypted. If the destination KMS key is an asymmetric KMS key, you + # must also provide the encryption algorithm. The algorithm that you + # choose must be compatible with the KMS key. + # + # When you use an asymmetric KMS key to encrypt or reencrypt data, be + # sure to record the KMS key and encryption algorithm that you choose. + # You will be required to provide the same KMS key and encryption + # algorithm when you decrypt the data. If the KMS key and algorithm do + # not match the values used to encrypt the data, the decrypt operation + # fails. + # + # You are not required to supply the key ID and encryption algorithm + # when you decrypt with symmetric encryption KMS keys because KMS + # stores this information in the ciphertext blob. KMS cannot store + # metadata in ciphertext generated with asymmetric keys. The standard + # format for asymmetric key ciphertext does not include configurable + # fields. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][6] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: Yes. The source KMS key and destination KMS key + # can be in different Amazon Web Services accounts. Either or both KMS + # keys can be in a different account than the caller. To specify a KMS + # key in a different account, you must use its key ARN or alias ARN. + # + # **Required permissions**: + # + # * [kms:ReEncryptFrom][7] permission on the source KMS key (key policy) + # + # * [kms:ReEncryptTo][7] permission on the destination KMS key (key + # policy) + # + # To permit reencryption from or to a KMS key, include the + # `"kms:ReEncrypt*"` permission in your [key policy][8]. This permission + # is automatically included in the key policy when you use the console + # to create a KMS key. But you must include it manually when you create + # a KMS key programmatically or when you use the PutKeyPolicy operation + # to set a key policy. + # + # **Related operations:** + # + # * Decrypt + # + # * Encrypt + # + # * GenerateDataKey + # + # * GenerateDataKeyPair + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][9]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-manually + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks + # [4]: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/ + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html + # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To reencrypt data + # + # # The following example reencrypts data with the specified KMS key. + # + # resp = client.re_encrypt({ + # ciphertext_blob: "", # The data to reencrypt. + # destination_key_id: "0987dcba-09fe-87dc-65ba-ab0987654321", # The identifier of the KMS key to use to reencrypt the data. You can use any valid key identifier. + # }) + # + # resp.to_h outputs the following: + # { + # ciphertext_blob: "", # The reencrypted data. + # key_id: "arn:aws:kms:us-east-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", # The ARN of the KMS key that was used to reencrypt the data. + # source_key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The ARN of the KMS key that was originally used to encrypt the data. + # } + # @example Request syntax with placeholder values + # + # resp = client.re_encrypt({ + # ciphertext_blob: "data", # required + # source_encryption_context: { + # "EncryptionContextKey" => "EncryptionContextValue", + # }, + # source_key_id: "KeyIdType", + # destination_key_id: "KeyIdType", # required + # destination_encryption_context: { + # "EncryptionContextKey" => "EncryptionContextValue", + # }, + # source_encryption_algorithm: "SYMMETRIC_DEFAULT", # accepts SYMMETRIC_DEFAULT, RSAES_OAEP_SHA_1, RSAES_OAEP_SHA_256, SM2PKE + # destination_encryption_algorithm: "SYMMETRIC_DEFAULT", # accepts SYMMETRIC_DEFAULT, RSAES_OAEP_SHA_1, RSAES_OAEP_SHA_256, SM2PKE + # grant_tokens: ["GrantTokenType"], + # dry_run: false, + # }) + # @example Response structure + # + # resp.ciphertext_blob #=> String + # resp.source_key_id #=> String + # resp.key_id #=> String + # resp.source_encryption_algorithm #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE" + # resp.destination_encryption_algorithm #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload re_encrypt + # @param params [Hash] ({}) + # @return [Types::ReEncryptResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ReEncryptResponse#ciphertext_blob #ciphertext_blob} => String + # * {Types::ReEncryptResponse#source_key_id #source_key_id} => String + # * {Types::ReEncryptResponse#key_id #key_id} => String + # * {Types::ReEncryptResponse#source_encryption_algorithm #source_encryption_algorithm} => String + # * {Types::ReEncryptResponse#destination_encryption_algorithm #destination_encryption_algorithm} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReEncrypt AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#8280 + def re_encrypt(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Replicates a multi-Region key into the specified Region. This + # operation creates a multi-Region replica key based on a multi-Region + # primary key in a different Region of the same Amazon Web Services + # partition. You can create multiple replicas of a primary key, but each + # must be in a different Region. To create a multi-Region primary key, + # use the CreateKey operation. + # + # This operation supports *multi-Region keys*, an KMS feature that lets + # you create multiple interoperable KMS keys in different Amazon Web + # Services Regions. Because these KMS keys have the same key ID, key + # material, and other metadata, you can use them interchangeably to + # encrypt data in one Amazon Web Services Region and decrypt it in a + # different Amazon Web Services Region without re-encrypting the data or + # making a cross-Region call. For more information about multi-Region + # keys, see [Multi-Region keys in KMS][1] in the *Key Management Service + # Developer Guide*. + # + # A *replica key* is a fully-functional KMS key that can be used + # independently of its primary and peer replica keys. A primary key and + # its replica keys share properties that make them interoperable. They + # have the same [key ID][2] and key material. They also have the same + # [key spec][3], [key usage][4], [key material origin][5], and + # [automatic key rotation status][6]. KMS automatically synchronizes + # these shared properties among related multi-Region keys. All other + # properties of a replica key can differ, including its [key policy][7], + # [tags][8], [aliases][9], and [Key states of KMS keys][10]. KMS pricing + # and quotas for KMS keys apply to each primary key and replica key. + # + # When this operation completes, the new replica key has a transient key + # state of `Creating`. This key state changes to `Enabled` (or + # `PendingImport`) after a few seconds when the process of creating the + # new replica key is complete. While the key state is `Creating`, you + # can manage key, but you cannot yet use it in cryptographic operations. + # If you are creating and using the replica key programmatically, retry + # on `KMSInvalidStateException` or call `DescribeKey` to check its + # `KeyState` value before using it. For details about the `Creating` key + # state, see [Key states of KMS keys][10] in the *Key Management Service + # Developer Guide*. + # + # You cannot create more than one replica of a primary key in any + # Region. If the Region already includes a replica of the key you're + # trying to replicate, `ReplicateKey` returns an + # `AlreadyExistsException` error. If the key state of the existing + # replica is `PendingDeletion`, you can cancel the scheduled key + # deletion (CancelKeyDeletion) or wait for the key to be deleted. The + # new replica key you create will have the same [shared properties][11] + # as the original replica key. + # + # The CloudTrail log of a `ReplicateKey` operation records a + # `ReplicateKey` operation in the primary key's Region and a CreateKey + # operation in the replica key's Region. + # + # If you replicate a multi-Region primary key with imported key + # material, the replica key is created with no key material. You must + # import the same key material that you imported into the primary key. + # For details, see [Importing key material into multi-Region keys][12] + # in the *Key Management Service Developer Guide*. + # + # To convert a replica key to a primary key, use the UpdatePrimaryRegion + # operation. + # + # `ReplicateKey` uses different default values for the `KeyPolicy` and + # `Tags` parameters than those used in the KMS console. For details, see + # the parameter descriptions. + # + # + # + # **Cross-account use**: No. You cannot use this operation to create a + # replica key in a different Amazon Web Services account. + # + # **Required permissions**: + # + # * `kms:ReplicateKey` on the primary key (in the primary key's + # Region). Include this permission in the primary key's key policy. + # + # * `kms:CreateKey` in an IAM policy in the replica Region. + # + # * To use the `Tags` parameter, `kms:TagResource` in an IAM policy in + # the replica Region. + # + # **Related operations** + # + # * CreateKey + # + # * UpdatePrimaryRegion + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][13]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-spec + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-usage + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-origin + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html + # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html + # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html + # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-sync-properties + # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-import.html + # [13]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To replicate a multi-Region key in a different AWS Region + # + # # This example creates a multi-Region replica key in us-west-2 of a multi-Region primary key in us-east-1. + # + # resp = client.replicate_key({ + # key_id: "arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", # The key ID or key ARN of the multi-Region primary key + # replica_region: "us-west-2", # The Region of the new replica. + # }) + # + # resp.to_h outputs the following: + # { + # replica_key_metadata: { + # aws_account_id: "111122223333", + # arn: "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + # creation_date: Time.parse(1607472987.918), + # customer_master_key_spec: "SYMMETRIC_DEFAULT", + # description: "", + # enabled: true, + # encryption_algorithms: [ + # "SYMMETRIC_DEFAULT", + # ], + # key_id: "mrk-1234abcd12ab34cd56ef1234567890ab", + # key_manager: "CUSTOMER", + # key_state: "Enabled", + # key_usage: "ENCRYPT_DECRYPT", + # multi_region: true, + # multi_region_configuration: { + # multi_region_key_type: "REPLICA", + # primary_key: { + # arn: "arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + # region: "us-east-1", + # }, + # replica_keys: [ + # { + # arn: "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + # region: "us-west-2", + # }, + # ], + # }, + # origin: "AWS_KMS", + # }, # An object that displays detailed information about the replica key. + # replica_policy: "{\n \"Version\" : \"2012-10-17\",\n \"Id\" : \"key-default-1\",...}", # The key policy of the replica key. If you don't specify a key policy, the replica key gets the default key policy for a KMS key. + # replica_tags: [ + # ], # The tags on the replica key, if any. + # } + # @example Request syntax with placeholder values + # + # resp = client.replicate_key({ + # key_id: "KeyIdType", # required + # replica_region: "RegionType", # required + # policy: "PolicyType", + # bypass_policy_lockout_safety_check: false, + # description: "DescriptionType", + # tags: [ + # { + # tag_key: "TagKeyType", # required + # tag_value: "TagValueType", # required + # }, + # ], + # }) + # @example Response structure + # + # resp.replica_key_metadata.aws_account_id #=> String + # resp.replica_key_metadata.key_id #=> String + # resp.replica_key_metadata.arn #=> String + # resp.replica_key_metadata.creation_date #=> Time + # resp.replica_key_metadata.enabled #=> Boolean + # resp.replica_key_metadata.description #=> String + # resp.replica_key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC", "KEY_AGREEMENT" + # resp.replica_key_metadata.key_state #=> String, one of "Creating", "Enabled", "Disabled", "PendingDeletion", "PendingImport", "PendingReplicaDeletion", "Unavailable", "Updating" + # resp.replica_key_metadata.deletion_date #=> Time + # resp.replica_key_metadata.valid_to #=> Time + # resp.replica_key_metadata.origin #=> String, one of "AWS_KMS", "EXTERNAL", "AWS_CLOUDHSM", "EXTERNAL_KEY_STORE" + # resp.replica_key_metadata.custom_key_store_id #=> String + # resp.replica_key_metadata.cloud_hsm_cluster_id #=> String + # resp.replica_key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE" + # resp.replica_key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER" + # resp.replica_key_metadata.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2" + # resp.replica_key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2" + # resp.replica_key_metadata.encryption_algorithms #=> Array + # resp.replica_key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE" + # resp.replica_key_metadata.signing_algorithms #=> Array + # resp.replica_key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA" + # resp.replica_key_metadata.key_agreement_algorithms #=> Array + # resp.replica_key_metadata.key_agreement_algorithms[0] #=> String, one of "ECDH" + # resp.replica_key_metadata.multi_region #=> Boolean + # resp.replica_key_metadata.multi_region_configuration.multi_region_key_type #=> String, one of "PRIMARY", "REPLICA" + # resp.replica_key_metadata.multi_region_configuration.primary_key.arn #=> String + # resp.replica_key_metadata.multi_region_configuration.primary_key.region #=> String + # resp.replica_key_metadata.multi_region_configuration.replica_keys #=> Array + # resp.replica_key_metadata.multi_region_configuration.replica_keys[0].arn #=> String + # resp.replica_key_metadata.multi_region_configuration.replica_keys[0].region #=> String + # resp.replica_key_metadata.pending_deletion_window_in_days #=> Integer + # resp.replica_key_metadata.mac_algorithms #=> Array + # resp.replica_key_metadata.mac_algorithms[0] #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512" + # resp.replica_key_metadata.xks_key_configuration.id #=> String + # resp.replica_policy #=> String + # resp.replica_tags #=> Array + # resp.replica_tags[0].tag_key #=> String + # resp.replica_tags[0].tag_value #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload replicate_key + # @param params [Hash] ({}) + # @return [Types::ReplicateKeyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ReplicateKeyResponse#replica_key_metadata #replica_key_metadata} => Types::KeyMetadata + # * {Types::ReplicateKeyResponse#replica_policy #replica_policy} => String + # * {Types::ReplicateKeyResponse#replica_tags #replica_tags} => Array<Types::Tag> + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReplicateKey AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#8681 + def replicate_key(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Deletes a grant. Typically, you retire a grant when you no longer need + # its permissions. To identify the grant to retire, use a [grant + # token][1], or both the grant ID and a key identifier (key ID or key + # ARN) of the KMS key. The CreateGrant operation returns both values. + # + # This operation can be called by the *retiring principal* for a grant, + # by the *grantee principal* if the grant allows the `RetireGrant` + # operation, and by the Amazon Web Services account in which the grant + # is created. It can also be called by principals to whom permission for + # retiring a grant is delegated. For details, see [Retiring and revoking + # grants][2] in the *Key Management Service Developer Guide*. + # + # For detailed information about grants, including grant terminology, + # see [Grants in KMS][3] in the Key Management Service Developer + # Guide . For examples of working with grants in several + # programming languages, see [Programming grants][4]. + # + # **Cross-account use**: Yes. You can retire a grant on a KMS key in a + # different Amazon Web Services account. + # + # **Required permissions**: Permission to retire a grant is determined + # primarily by the grant. For details, see [Retiring and revoking + # grants][2] in the *Key Management Service Developer Guide*. + # + # **Related operations:** + # + # * CreateGrant + # + # * ListGrants + # + # * ListRetirableGrants + # + # * RevokeGrant + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][5]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-grants.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To retire a grant + # + # # The following example retires a grant. + # + # resp = client.retire_grant({ + # grant_id: "0c237476b39f8bc44e45212e08498fbe3151305030726c0590dd8d3e9f3d6a60", # The identifier of the grant to retire. + # key_id: "arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The Amazon Resource Name (ARN) of the KMS key associated with the grant. + # }) + # @example Request syntax with placeholder values + # + # resp = client.retire_grant({ + # grant_token: "GrantTokenType", + # key_id: "KeyIdType", + # grant_id: "GrantIdType", + # dry_run: false, + # }) + # @option params + # @option params + # @option params + # @option params + # @overload retire_grant + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RetireGrant AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#8796 + def retire_grant(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Deletes the specified grant. You revoke a grant to terminate the + # permissions that the grant allows. For more information, see [Retiring + # and revoking grants][1] in the Key Management Service Developer + # Guide . + # + # When you create, retire, or revoke a grant, there might be a brief + # delay, usually less than five minutes, until the grant is available + # throughout KMS. This state is known as *eventual consistency*. For + # details, see [Eventual consistency][2] in the Key Management + # Service Developer Guide . + # + # For detailed information about grants, including grant terminology, + # see [Grants in KMS][3] in the Key Management Service Developer + # Guide . For examples of working with grants in several + # programming languages, see [Programming grants][4]. + # + # **Cross-account use**: Yes. To perform this operation on a KMS key in + # a different Amazon Web Services account, specify the key ARN in the + # value of the `KeyId` parameter. + # + # **Required permissions**: [kms:RevokeGrant][5] (key policy). + # + # **Related operations:** + # + # * CreateGrant + # + # * ListGrants + # + # * ListRetirableGrants + # + # * RetireGrant + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][6]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-eventual-consistency + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-grants.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To revoke a grant + # + # # The following example revokes a grant. + # + # resp = client.revoke_grant({ + # grant_id: "0c237476b39f8bc44e45212e08498fbe3151305030726c0590dd8d3e9f3d6a60", # The identifier of the grant to revoke. + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key associated with the grant. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # }) + # @example Request syntax with placeholder values + # + # resp = client.revoke_grant({ + # key_id: "KeyIdType", # required + # grant_id: "GrantIdType", # required + # dry_run: false, + # }) + # @option params + # @option params + # @option params + # @overload revoke_grant + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RevokeGrant AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#8901 + def revoke_grant(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Immediately initiates rotation of the key material of the specified + # symmetric encryption KMS key. + # + # You can perform [on-demand rotation][1] of the key material in + # customer managed KMS keys, regardless of whether or not [automatic key + # rotation][2] is enabled. On-demand rotations do not change existing + # automatic rotation schedules. For example, consider a KMS key that has + # automatic key rotation enabled with a rotation period of 730 days. If + # the key is scheduled to automatically rotate on April 14, 2024, and + # you perform an on-demand rotation on April 10, 2024, the key will + # automatically rotate, as scheduled, on April 14, 2024 and every 730 + # days thereafter. + # + # You can perform on-demand key rotation a **maximum of 10 times** per + # KMS key. You can use the KMS console to view the number of remaining + # on-demand rotations available for a KMS key. + # + # + # + # You can use GetKeyRotationStatus to identify any in progress on-demand + # rotations. You can use ListKeyRotations to identify the date that + # completed on-demand rotations were performed. You can monitor rotation + # of the key material for your KMS keys in CloudTrail and Amazon + # CloudWatch. + # + # On-demand key rotation is supported only on [symmetric encryption KMS + # keys][3]. You cannot perform on-demand rotation of [asymmetric KMS + # keys][4], [HMAC KMS keys][5], KMS keys with [imported key + # material][6], or KMS keys in a [custom key store][7]. To perform + # on-demand rotation of a set of related [multi-Region keys][8], invoke + # the on-demand rotation on the primary key. + # + # You cannot initiate on-demand rotation of [Amazon Web Services managed + # KMS keys][9]. KMS always rotates the key material of Amazon Web + # Services managed keys every year. Rotation of [Amazon Web Services + # owned KMS keys][10] is managed by the Amazon Web Services service that + # owns the key. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][11] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions**: [kms:RotateKeyOnDemand][12] (key policy) + # + # **Related operations:** + # + # * EnableKeyRotation + # + # * DisableKeyRotation + # + # * GetKeyRotationStatus + # + # * ListKeyRotations + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][13]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotating-keys-on-demand + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotating-keys-enable-disable + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html + # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate + # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk + # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk + # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [12]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [13]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To perform on-demand rotation of key material + # + # # The following example immediately initiates rotation of the key material for the specified KMS key. + # + # resp = client.rotate_key_on_demand({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key whose key material you want to initiate on-demand rotation on. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The KMS key that you initiated on-demand rotation on. + # } + # @example Request syntax with placeholder values + # + # resp = client.rotate_key_on_demand({ + # key_id: "KeyIdType", # required + # }) + # @example Response structure + # + # resp.key_id #=> String + # @option params + # @overload rotate_key_on_demand + # @param params [Hash] ({}) + # @return [Types::RotateKeyOnDemandResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::RotateKeyOnDemandResponse#key_id #key_id} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RotateKeyOnDemand AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#9042 + def rotate_key_on_demand(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Schedules the deletion of a KMS key. By default, KMS applies a waiting + # period of 30 days, but you can specify a waiting period of 7-30 days. + # When this operation is successful, the key state of the KMS key + # changes to `PendingDeletion` and the key can't be used in any + # cryptographic operations. It remains in this state for the duration of + # the waiting period. Before the waiting period ends, you can use + # CancelKeyDeletion to cancel the deletion of the KMS key. After the + # waiting period ends, KMS deletes the KMS key, its key material, and + # all KMS data associated with it, including all aliases that refer to + # it. + # + # Deleting a KMS key is a destructive and potentially dangerous + # operation. When a KMS key is deleted, all data that was encrypted + # under the KMS key is unrecoverable. (The only exception is a + # [multi-Region replica key][1], or an [asymmetric or HMAC KMS key with + # imported key + # material](kms/latest/developerguide/importing-keys-managing.html#import-delete-key).) + # To prevent the use of a KMS key without deleting it, use DisableKey. + # + # You can schedule the deletion of a multi-Region primary key and its + # replica keys at any time. However, KMS will not delete a multi-Region + # primary key with existing replica keys. If you schedule the deletion + # of a primary key with replicas, its key state changes to + # `PendingReplicaDeletion` and it cannot be replicated or used in + # cryptographic operations. This status can continue indefinitely. When + # the last of its replicas keys is deleted (not just scheduled), the key + # state of the primary key changes to `PendingDeletion` and its waiting + # period (`PendingWindowInDays`) begins. For details, see [Deleting + # multi-Region keys][1] in the *Key Management Service Developer Guide*. + # + # When KMS [deletes a KMS key from an CloudHSM key store][2], it makes a + # best effort to delete the associated key material from the associated + # CloudHSM cluster. However, you might need to manually [delete the + # orphaned key material][3] from the cluster and its backups. [Deleting + # a KMS key from an external key store][4] has no effect on the + # associated external key. However, for both types of custom key stores, + # deleting a KMS key is destructive and irreversible. You cannot decrypt + # ciphertext encrypted under the KMS key by using only its associated + # external key or CloudHSM key. Also, you cannot recreate a KMS key in + # an external key store by creating a new KMS key with the same key + # material. + # + # For more information about scheduling a KMS key for deletion, see + # [Deleting KMS keys][5] in the *Key Management Service Developer + # Guide*. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][6] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions**: kms:ScheduleKeyDeletion (key policy) + # + # **Related operations** + # + # * CancelKeyDeletion + # + # * DisableKey + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][7]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/delete-cmk-keystore.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/delete-xks-key.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To schedule a KMS key for deletion + # + # # The following example schedules the specified KMS key for deletion. + # + # resp = client.schedule_key_deletion({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key to schedule for deletion. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # pending_window_in_days: 7, # The waiting period, specified in number of days. After the waiting period ends, KMS deletes the KMS key. + # }) + # + # resp.to_h outputs the following: + # { + # deletion_date: Time.parse("2016-12-17T16:00:00-08:00"), # The date and time after which KMS deletes the KMS key. + # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The ARN of the KMS key that is scheduled for deletion. + # } + # @example Request syntax with placeholder values + # + # resp = client.schedule_key_deletion({ + # key_id: "KeyIdType", # required + # pending_window_in_days: 1, + # }) + # @example Response structure + # + # resp.key_id #=> String + # resp.deletion_date #=> Time + # resp.key_state #=> String, one of "Creating", "Enabled", "Disabled", "PendingDeletion", "PendingImport", "PendingReplicaDeletion", "Unavailable", "Updating" + # resp.pending_window_in_days #=> Integer + # @option params + # @option params + # @overload schedule_key_deletion + # @param params [Hash] ({}) + # @return [Types::ScheduleKeyDeletionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ScheduleKeyDeletionResponse#key_id #key_id} => String + # * {Types::ScheduleKeyDeletionResponse#deletion_date #deletion_date} => Time + # * {Types::ScheduleKeyDeletionResponse#key_state #key_state} => String + # * {Types::ScheduleKeyDeletionResponse#pending_window_in_days #pending_window_in_days} => Integer + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ScheduleKeyDeletion AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#9195 + def schedule_key_deletion(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Creates a [digital signature][1] for a message or message digest by + # using the private key in an asymmetric signing KMS key. To verify the + # signature, use the Verify operation, or use the public key in the same + # asymmetric KMS key outside of KMS. For information about asymmetric + # KMS keys, see [Asymmetric KMS keys][2] in the *Key Management Service + # Developer Guide*. + # + # Digital signatures are generated and verified by using asymmetric key + # pair, such as an RSA or ECC pair that is represented by an asymmetric + # KMS key. The key owner (or an authorized user) uses their private key + # to sign a message. Anyone with the public key can verify that the + # message was signed with that particular private key and that the + # message hasn't changed since it was signed. + # + # To use the `Sign` operation, provide the following information: + # + # * Use the `KeyId` parameter to identify an asymmetric KMS key with a + # `KeyUsage` value of `SIGN_VERIFY`. To get the `KeyUsage` value of a + # KMS key, use the DescribeKey operation. The caller must have + # `kms:Sign` permission on the KMS key. + # + # * Use the `Message` parameter to specify the message or message digest + # to sign. You can submit messages of up to 4096 bytes. To sign a + # larger message, generate a hash digest of the message, and then + # provide the hash digest in the `Message` parameter. To indicate + # whether the message is a full message or a digest, use the + # `MessageType` parameter. + # + # * Choose a signing algorithm that is compatible with the KMS key. + # + # When signing a message, be sure to record the KMS key and the signing + # algorithm. This information is required to verify the signature. + # + # Best practices recommend that you limit the time during which any + # signature is effective. This deters an attack where the actor uses a + # signed message to establish validity repeatedly or long after the + # message is superseded. Signatures do not include a timestamp, but you + # can include a timestamp in the signed message to help you detect when + # its time to refresh the signature. + # + # + # + # To verify the signature that this operation generates, use the Verify + # operation. Or use the GetPublicKey operation to download the public + # key and then use the public key to verify the signature outside of + # KMS. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][3] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: Yes. To perform this operation with a KMS key + # in a different Amazon Web Services account, specify the key ARN or + # alias ARN in the value of the `KeyId` parameter. + # + # **Required permissions**: [kms:Sign][4] (key policy) + # + # **Related operations**: Verify + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][5]. + # + # + # + # [1]: https://en.wikipedia.org/wiki/Digital_signature + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To digitally sign a message with an asymmetric KMS key. + # + # # This operation uses the private key in an asymmetric elliptic curve (ECC) KMS key to generate a digital signature for a + # # given message. + # + # resp = client.sign({ + # key_id: "alias/ECC_signing_key", # The asymmetric KMS key to be used to generate the digital signature. This example uses an alias of the KMS key. + # message: "", # Message to be signed. Use Base-64 for the CLI. + # message_type: "RAW", # Indicates whether the message is RAW or a DIGEST. + # signing_algorithm: "ECDSA_SHA_384", # The requested signing algorithm. This must be an algorithm that the KMS key supports. + # }) + # + # resp.to_h outputs the following: + # { + # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the asymmetric KMS key that was used to sign the message. + # signature: "", # The digital signature of the message. + # signing_algorithm: "ECDSA_SHA_384", # The actual signing algorithm that was used to generate the signature. + # } + # @example Example: To digitally sign a message digest with an asymmetric KMS key. + # + # # This operation uses the private key in an asymmetric RSA signing KMS key to generate a digital signature for a message + # # digest. In this example, a large message was hashed and the resulting digest is provided in the Message parameter. To + # # tell KMS not to hash the message again, the MessageType field is set to DIGEST + # + # resp = client.sign({ + # key_id: "alias/RSA_signing_key", # The asymmetric KMS key to be used to generate the digital signature. This example uses an alias of the KMS key. + # message: "", # Message to be signed. Use Base-64 for the CLI. + # message_type: "DIGEST", # Indicates whether the message is RAW or a DIGEST. When it is RAW, KMS hashes the message before signing. When it is DIGEST, KMS skips the hashing step and signs the Message value. + # signing_algorithm: "RSASSA_PKCS1_V1_5_SHA_256", # The requested signing algorithm. This must be an algorithm that the KMS key supports. + # }) + # + # resp.to_h outputs the following: + # { + # key_id: "arn:aws:kms:us-east-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", # The key ARN of the asymmetric KMS key that was used to sign the message. + # signature: "", # The digital signature of the message. + # signing_algorithm: "RSASSA_PKCS1_V1_5_SHA_256", # The actual signing algorithm that was used to generate the signature. + # } + # @example Request syntax with placeholder values + # + # resp = client.sign({ + # key_id: "KeyIdType", # required + # message: "data", # required + # message_type: "RAW", # accepts RAW, DIGEST + # grant_tokens: ["GrantTokenType"], + # signing_algorithm: "RSASSA_PSS_SHA_256", # required, accepts RSASSA_PSS_SHA_256, RSASSA_PSS_SHA_384, RSASSA_PSS_SHA_512, RSASSA_PKCS1_V1_5_SHA_256, RSASSA_PKCS1_V1_5_SHA_384, RSASSA_PKCS1_V1_5_SHA_512, ECDSA_SHA_256, ECDSA_SHA_384, ECDSA_SHA_512, SM2DSA + # dry_run: false, + # }) + # @example Response structure + # + # resp.key_id #=> String + # resp.signature #=> String + # resp.signing_algorithm #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload sign + # @param params [Hash] ({}) + # @return [Types::SignResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::SignResponse#key_id #key_id} => String + # * {Types::SignResponse#signature #signature} => String + # * {Types::SignResponse#signing_algorithm #signing_algorithm} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Sign AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#9443 + def sign(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Adds or edits tags on a [customer managed key][1]. + # + # Tagging or untagging a KMS key can allow or deny permission to the KMS + # key. For details, see [ABAC for KMS][2] in the *Key Management Service + # Developer Guide*. + # + # + # + # Each tag consists of a tag key and a tag value, both of which are + # case-sensitive strings. The tag value can be an empty (null) string. + # To add a tag, specify a new tag key and a tag value. To edit a tag, + # specify an existing tag key and a new tag value. + # + # You can use this operation to tag a [customer managed key][1], but you + # cannot tag an [Amazon Web Services managed key][3], an [Amazon Web + # Services owned key][4], a [custom key store][5], or an [alias][6]. + # + # You can also add tags to a KMS key while creating it (CreateKey) or + # replicating it (ReplicateKey). + # + # For information about using tags in KMS, see [Tagging keys][7]. For + # general information about tags, including the format and syntax, see + # [Tagging Amazon Web Services resources][8] in the *Amazon Web Services + # General Reference*. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][9] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions**: [kms:TagResource][10] (key policy) + # + # **Related operations** + # + # * CreateKey + # + # * ListResourceTags + # + # * ReplicateKey + # + # * UntagResource + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][11]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/abac.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#keystore-concept + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#alias-concept + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html + # [8]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html + # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [11]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To tag a KMS key + # + # # The following example tags a KMS key. + # + # resp = client.tag_resource({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key you are tagging. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # tags: [ + # { + # tag_key: "Purpose", + # tag_value: "Test", + # }, + # ], # A list of tags. + # }) + # @example Request syntax with placeholder values + # + # resp = client.tag_resource({ + # key_id: "KeyIdType", # required + # tags: [ # required + # { + # tag_key: "TagKeyType", # required + # tag_value: "TagValueType", # required + # }, + # ], + # }) + # @option params + # @option params + # @overload tag_resource + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/TagResource AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#9569 + def tag_resource(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Deletes tags from a [customer managed key][1]. To delete a tag, + # specify the tag key and the KMS key. + # + # Tagging or untagging a KMS key can allow or deny permission to the KMS + # key. For details, see [ABAC for KMS][2] in the *Key Management Service + # Developer Guide*. + # + # + # + # When it succeeds, the `UntagResource` operation doesn't return any + # output. Also, if the specified tag key isn't found on the KMS key, it + # doesn't throw an exception or return a response. To confirm that the + # operation worked, use the ListResourceTags operation. + # + # For information about using tags in KMS, see [Tagging keys][3]. For + # general information about tags, including the format and syntax, see + # [Tagging Amazon Web Services resources][4] in the *Amazon Web Services + # General Reference*. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][5] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions**: [kms:UntagResource][6] (key policy) + # + # **Related operations** + # + # * CreateKey + # + # * ListResourceTags + # + # * ReplicateKey + # + # * TagResource + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][7]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/abac.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html + # [4]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To remove tags from a KMS key + # + # # The following example removes tags from a KMS key. + # + # resp = client.untag_resource({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key whose tags you are removing. + # tag_keys: [ + # "Purpose", + # "CostCenter", + # ], # A list of tag keys. Provide only the tag keys, not the tag values. + # }) + # @example Request syntax with placeholder values + # + # resp = client.untag_resource({ + # key_id: "KeyIdType", # required + # tag_keys: ["TagKeyType"], # required + # }) + # @option params + # @option params + # @overload untag_resource + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UntagResource AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#9669 + def untag_resource(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Associates an existing KMS alias with a different KMS key. Each alias + # is associated with only one KMS key at a time, although a KMS key can + # have multiple aliases. The alias and the KMS key must be in the same + # Amazon Web Services account and Region. + # + # Adding, deleting, or updating an alias can allow or deny permission to + # the KMS key. For details, see [ABAC for KMS][1] in the *Key Management + # Service Developer Guide*. + # + # + # + # The current and new KMS key must be the same type (both symmetric or + # both asymmetric or both HMAC), and they must have the same key usage. + # This restriction prevents errors in code that uses aliases. If you + # must assign an alias to a different type of KMS key, use DeleteAlias + # to delete the old alias and CreateAlias to create a new alias. + # + # You cannot use `UpdateAlias` to change an alias name. To change an + # alias name, use DeleteAlias to delete the old alias and CreateAlias to + # create a new alias. + # + # Because an alias is not a property of a KMS key, you can create, + # update, and delete the aliases of a KMS key without affecting the KMS + # key. Also, aliases do not appear in the response from the DescribeKey + # operation. To get the aliases of all KMS keys in the account, use the + # ListAliases operation. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][2] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions** + # + # * [kms:UpdateAlias][3] on the alias (IAM policy). + # + # * [kms:UpdateAlias][3] on the current KMS key (key policy). + # + # * [kms:UpdateAlias][3] on the new KMS key (key policy). + # + # For details, see [Controlling access to aliases][4] in the *Key + # Management Service Developer Guide*. + # + # **Related operations:** + # + # * CreateAlias + # + # * DeleteAlias + # + # * ListAliases + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][5]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/abac.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To update an alias + # + # # The following example updates the specified alias to refer to the specified KMS key. + # + # resp = client.update_alias({ + # alias_name: "alias/ExampleAlias", # The alias to update. + # target_key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key that the alias will refer to after this operation succeeds. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # }) + # @example Request syntax with placeholder values + # + # resp = client.update_alias({ + # alias_name: "AliasNameType", # required + # target_key_id: "KeyIdType", # required + # }) + # @option params + # @option params + # @overload update_alias + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateAlias AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#9801 + def update_alias(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Changes the properties of a custom key store. You can use this + # operation to change the properties of an CloudHSM key store or an + # external key store. + # + # Use the required `CustomKeyStoreId` parameter to identify the custom + # key store. Use the remaining optional parameters to change its + # properties. This operation does not return any property values. To + # verify the updated property values, use the DescribeCustomKeyStores + # operation. + # + # This operation is part of the [custom key stores][1] feature in KMS, + # which combines the convenience and extensive integration of KMS with + # the isolation and control of a key store that you own and manage. + # + # When updating the properties of an external key store, verify that the + # updated settings connect your key store, via the external key store + # proxy, to the same external key manager as the previous settings, or + # to a backup or snapshot of the external key manager with the same + # cryptographic keys. If the updated connection settings fail, you can + # fix them and retry, although an extended delay might disrupt Amazon + # Web Services services. However, if KMS permanently loses its access to + # cryptographic keys, ciphertext encrypted under those keys is + # unrecoverable. + # + # For external key stores: + # + # Some external key managers provide a simpler method for updating an + # external key store. For details, see your external key manager + # documentation. + # + # When updating an external key store in the KMS console, you can upload + # a JSON-based proxy configuration file with the desired values. You + # cannot upload the proxy configuration file to the + # `UpdateCustomKeyStore` operation. However, you can use the file to + # help you determine the correct values for the `UpdateCustomKeyStore` + # parameters. + # + # + # + # For an CloudHSM key store, you can use this operation to change the + # custom key store friendly name (`NewCustomKeyStoreName`), to tell KMS + # about a change to the `kmsuser` crypto user password + # (`KeyStorePassword`), or to associate the custom key store with a + # different, but related, CloudHSM cluster (`CloudHsmClusterId`). To + # update any property of an CloudHSM key store, the `ConnectionState` of + # the CloudHSM key store must be `DISCONNECTED`. + # + # For an external key store, you can use this operation to change the + # custom key store friendly name (`NewCustomKeyStoreName`), or to tell + # KMS about a change to the external key store proxy authentication + # credentials (`XksProxyAuthenticationCredential`), connection method + # (`XksProxyConnectivity`), external proxy endpoint + # (`XksProxyUriEndpoint`) and path (`XksProxyUriPath`). For external key + # stores with an `XksProxyConnectivity` of `VPC_ENDPOINT_SERVICE`, you + # can also update the Amazon VPC endpoint service name + # (`XksProxyVpcEndpointServiceName`). To update most properties of an + # external key store, the `ConnectionState` of the external key store + # must be `DISCONNECTED`. However, you can update the + # `CustomKeyStoreName`, `XksProxyAuthenticationCredential`, and + # `XksProxyUriPath` of an external key store when it is in the CONNECTED + # or DISCONNECTED state. + # + # If your update requires a `DISCONNECTED` state, before using + # `UpdateCustomKeyStore`, use the DisconnectCustomKeyStore operation to + # disconnect the custom key store. After the `UpdateCustomKeyStore` + # operation completes, use the ConnectCustomKeyStore to reconnect the + # custom key store. To find the `ConnectionState` of the custom key + # store, use the DescribeCustomKeyStores operation. + # + # + # + # Before updating the custom key store, verify that the new values allow + # KMS to connect the custom key store to its backing key store. For + # example, before you change the `XksProxyUriPath` value, verify that + # the external key store proxy is reachable at the new path. + # + # If the operation succeeds, it returns a JSON object with no + # properties. + # + # **Cross-account use**: No. You cannot perform this operation on a + # custom key store in a different Amazon Web Services account. + # + # **Required permissions**: [kms:UpdateCustomKeyStore][2] (IAM policy) + # + # **Related operations:** + # + # * ConnectCustomKeyStore + # + # * CreateCustomKeyStore + # + # * DeleteCustomKeyStore + # + # * DescribeCustomKeyStores + # + # * DisconnectCustomKeyStore + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][3]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To edit the friendly name of a custom key store + # + # # This example changes the friendly name of the AWS KMS custom key store to the name that you specify. This operation does + # # not return any data. To verify that the operation worked, use the DescribeCustomKeyStores operation. + # + # resp = client.update_custom_key_store({ + # custom_key_store_id: "cks-1234567890abcdef0", # The ID of the custom key store that you are updating. + # new_custom_key_store_name: "DevelopmentKeys", # A new friendly name for the custom key store. + # }) + # + # resp.to_h outputs the following: + # { + # } + # @example Example: To edit the password of an AWS CloudHSM key store + # + # # This example tells AWS KMS the password for the kmsuser crypto user in the AWS CloudHSM cluster that is associated with + # # the AWS KMS custom key store. (It does not change the password in the CloudHSM cluster.) This operation does not return + # # any data. + # + # resp = client.update_custom_key_store({ + # custom_key_store_id: "cks-1234567890abcdef0", # The ID of the custom key store that you are updating. + # key_store_password: "ExamplePassword", # The password for the kmsuser crypto user in the CloudHSM cluster. + # }) + # + # resp.to_h outputs the following: + # { + # } + # @example Example: To associate the custom key store with a different, but related, AWS CloudHSM cluster. + # + # # This example changes the AWS CloudHSM cluster that is associated with an AWS CloudHSM key store to a related cluster, + # # such as a different backup of the same cluster. This operation does not return any data. To verify that the operation + # # worked, use the DescribeCustomKeyStores operation. + # + # resp = client.update_custom_key_store({ + # cloud_hsm_cluster_id: "cluster-234abcdefABC", # The ID of the AWS CloudHSM cluster that you want to associate with the custom key store. This cluster must be related to the original CloudHSM cluster for this key store. + # custom_key_store_id: "cks-1234567890abcdef0", # The ID of the custom key store that you are updating. + # }) + # + # resp.to_h outputs the following: + # { + # } + # @example Example: To update the proxy authentication credential of an external key store + # + # # To update the proxy authentication credential for your external key store, specify both the + # # RawSecretAccessKey and the AccessKeyId, even if you are changing only one of the values. You + # # can use this feature to fix an invalid credential or to change the credential when the external key store proxy rotates + # # it. + # + # resp = client.update_custom_key_store({ + # custom_key_store_id: "cks-1234567890abcdef0", # Identifies the custom key store + # xks_proxy_authentication_credential: { + # access_key_id: "ABCDE12345670EXAMPLE", + # raw_secret_access_key: "DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo=", + # }, # Specifies the values in the proxy authentication credential + # }) + # + # resp.to_h outputs the following: + # { + # } + # @example Example: To edit the proxy URI path of an external key store. + # + # # This example updates the proxy URI path for an external key store + # + # resp = client.update_custom_key_store({ + # custom_key_store_id: "cks-1234567890abcdef0", # The ID of the custom key store that you are updating + # xks_proxy_uri_path: "/new-path/kms/xks/v1", # The URI path to the external key store proxy APIs + # }) + # + # resp.to_h outputs the following: + # { + # } + # @example Example: To update the proxy connectivity of an external key store to VPC_ENDPOINT_SERVICE + # + # # To change the external key store proxy connectivity option from public endpoint connectivity to VPC endpoint service + # # connectivity, in addition to changing the XksProxyConnectivity value, you must change the + # # XksProxyUriEndpoint value to reflect the private DNS name associated with the VPC endpoint service. You + # # must also add an XksProxyVpcEndpointServiceName value. + # + # resp = client.update_custom_key_store({ + # custom_key_store_id: "cks-1234567890abcdef0", # Identifies the custom key store + # xks_proxy_connectivity: "VPC_ENDPOINT_SERVICE", # Specifies the connectivity option + # xks_proxy_uri_endpoint: "https://myproxy-private.xks.example.com", # Specifies the URI endpoint that AWS KMS uses when communicating with the external key store proxy + # xks_proxy_vpc_endpoint_service_name: "com.amazonaws.vpce.us-east-1.vpce-svc-example", # Specifies the name of the VPC endpoint service that the proxy uses for communication + # }) + # + # resp.to_h outputs the following: + # { + # } + # @example Request syntax with placeholder values + # + # resp = client.update_custom_key_store({ + # custom_key_store_id: "CustomKeyStoreIdType", # required + # new_custom_key_store_name: "CustomKeyStoreNameType", + # key_store_password: "KeyStorePasswordType", + # cloud_hsm_cluster_id: "CloudHsmClusterIdType", + # xks_proxy_uri_endpoint: "XksProxyUriEndpointType", + # xks_proxy_uri_path: "XksProxyUriPathType", + # xks_proxy_vpc_endpoint_service_name: "XksProxyVpcEndpointServiceNameType", + # xks_proxy_authentication_credential: { + # access_key_id: "XksProxyAuthenticationAccessKeyIdType", # required + # raw_secret_access_key: "XksProxyAuthenticationRawSecretAccessKeyType", # required + # }, + # xks_proxy_connectivity: "PUBLIC_ENDPOINT", # accepts PUBLIC_ENDPOINT, VPC_ENDPOINT_SERVICE + # }) + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload update_custom_key_store + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateCustomKeyStore AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#10157 + def update_custom_key_store(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Updates the description of a KMS key. To see the description of a KMS + # key, use DescribeKey. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][1] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: No. You cannot perform this operation on a KMS + # key in a different Amazon Web Services account. + # + # **Required permissions**: [kms:UpdateKeyDescription][2] (key policy) + # + # **Related operations** + # + # * CreateKey + # + # * DescribeKey + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][3]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To update the description of a KMS key + # + # # The following example updates the description of the specified KMS key. + # + # resp = client.update_key_description({ + # description: "Example description that indicates the intended use of this KMS key.", # The updated description. + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The identifier of the KMS key whose description you are updating. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key. + # }) + # @example Request syntax with placeholder values + # + # resp = client.update_key_description({ + # key_id: "KeyIdType", # required + # description: "DescriptionType", # required + # }) + # @option params + # @option params + # @overload update_key_description + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateKeyDescription AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#10234 + def update_key_description(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Changes the primary key of a multi-Region key. + # + # This operation changes the replica key in the specified Region to a + # primary key and changes the former primary key to a replica key. For + # example, suppose you have a primary key in `us-east-1` and a replica + # key in `eu-west-2`. If you run `UpdatePrimaryRegion` with a + # `PrimaryRegion` value of `eu-west-2`, the primary key is now the key + # in `eu-west-2`, and the key in `us-east-1` becomes a replica key. For + # details, see [Updating the primary Region][1] in the *Key Management + # Service Developer Guide*. + # + # This operation supports *multi-Region keys*, an KMS feature that lets + # you create multiple interoperable KMS keys in different Amazon Web + # Services Regions. Because these KMS keys have the same key ID, key + # material, and other metadata, you can use them interchangeably to + # encrypt data in one Amazon Web Services Region and decrypt it in a + # different Amazon Web Services Region without re-encrypting the data or + # making a cross-Region call. For more information about multi-Region + # keys, see [Multi-Region keys in KMS][2] in the *Key Management Service + # Developer Guide*. + # + # The *primary key* of a multi-Region key is the source for properties + # that are always shared by primary and replica keys, including the key + # material, [key ID][3], [key spec][4], [key usage][5], [key material + # origin][6], and [automatic key rotation][7]. It's the only key that + # can be replicated. You cannot [delete the primary key][8] until all + # replica keys are deleted. + # + # The key ID and primary Region that you specify uniquely identify the + # replica key that will become the primary key. The primary Region must + # already have a replica key. This operation does not create a KMS key + # in the specified Region. To find the replica keys, use the DescribeKey + # operation on the primary key or any replica key. To create a replica + # key, use the ReplicateKey operation. + # + # You can run this operation while using the affected multi-Region keys + # in cryptographic operations. This operation should not delay, + # interrupt, or cause failures in cryptographic operations. + # + # Even after this operation completes, the process of updating the + # primary Region might still be in progress for a few more seconds. + # Operations such as `DescribeKey` might display both the old and new + # primary keys as replicas. The old and new primary keys have a + # transient key state of `Updating`. The original key state is restored + # when the update is complete. While the key state is `Updating`, you + # can use the keys in cryptographic operations, but you cannot replicate + # the new primary key or perform certain management operations, such as + # enabling or disabling these keys. For details about the `Updating` key + # state, see [Key states of KMS keys][9] in the *Key Management Service + # Developer Guide*. + # + # This operation does not return any output. To verify that primary key + # is changed, use the DescribeKey operation. + # + # **Cross-account use**: No. You cannot use this operation in a + # different Amazon Web Services account. + # + # **Required permissions**: + # + # * `kms:UpdatePrimaryRegion` on the current primary key (in the primary + # key's Region). Include this permission primary key's key policy. + # + # * `kms:UpdatePrimaryRegion` on the current replica key (in the replica + # key's Region). Include this permission in the replica key's key + # policy. + # + # **Related operations** + # + # * CreateKey + # + # * ReplicateKey + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][10]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-update + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-spec + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-usage + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-origin + # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html + # [8]: https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html + # [9]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To update the primary Region of a multi-Region KMS key + # + # # The following UpdatePrimaryRegion example changes the multi-Region replica key in the eu-central-1 Region to the primary + # # key. The current primary key in the us-west-1 Region becomes a replica key. + # # The KeyId parameter identifies the current primary key in the us-west-1 Region. The PrimaryRegion parameter indicates + # # the Region of the replica key that will become the new primary key. + # # This operation does not return any output. To verify that primary key is changed, use the DescribeKey operation. + # + # resp = client.update_primary_region({ + # key_id: "arn:aws:kms:us-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", # The current primary key. + # primary_region: "eu-central-1", # The Region of the replica key that will become the primary key. + # }) + # @example Request syntax with placeholder values + # + # resp = client.update_primary_region({ + # key_id: "KeyIdType", # required + # primary_region: "RegionType", # required + # }) + # @option params + # @option params + # @overload update_primary_region + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdatePrimaryRegion AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#10378 + def update_primary_region(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Verifies a digital signature that was generated by the Sign operation. + # + # + # + # Verification confirms that an authorized user signed the message with + # the specified KMS key and signing algorithm, and the message hasn't + # changed since it was signed. If the signature is verified, the value + # of the `SignatureValid` field in the response is `True`. If the + # signature verification fails, the `Verify` operation fails with an + # `KMSInvalidSignatureException` exception. + # + # A digital signature is generated by using the private key in an + # asymmetric KMS key. The signature is verified by using the public key + # in the same asymmetric KMS key. For information about asymmetric KMS + # keys, see [Asymmetric KMS keys][1] in the *Key Management Service + # Developer Guide*. + # + # To use the `Verify` operation, specify the same asymmetric KMS key, + # message, and signing algorithm that were used to produce the + # signature. The message type does not need to be the same as the one + # used for signing, but it must indicate whether the value of the + # `Message` parameter should be hashed as part of the verification + # process. + # + # You can also verify the digital signature by using the public key of + # the KMS key outside of KMS. Use the GetPublicKey operation to download + # the public key in the asymmetric KMS key and then use the public key + # to verify the signature outside of KMS. The advantage of using the + # `Verify` operation is that it is performed within KMS. As a result, + # it's easy to call, the operation is performed within the FIPS + # boundary, it is logged in CloudTrail, and you can use key policy and + # IAM policy to determine who is authorized to use the KMS key to verify + # signatures. + # + # To verify a signature outside of KMS with an SM2 public key (China + # Regions only), you must specify the distinguishing ID. By default, KMS + # uses `1234567812345678` as the distinguishing ID. For more + # information, see [Offline verification with SM2 key pairs][2]. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][3] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: Yes. To perform this operation with a KMS key + # in a different Amazon Web Services account, specify the key ARN or + # alias ARN in the value of the `KeyId` parameter. + # + # **Required permissions**: [kms:Verify][4] (key policy) + # + # **Related operations**: Sign + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][5]. + # + # + # + # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To use an asymmetric KMS key to verify a digital signature + # + # # This operation uses the public key in an elliptic curve (ECC) asymmetric key to verify a digital signature within AWS + # # KMS. + # + # resp = client.verify({ + # key_id: "alias/ECC_signing_key", # The asymmetric KMS key to be used to verify the digital signature. This example uses an alias to identify the KMS key. + # message: "", # The message that was signed. + # message_type: "RAW", # Indicates whether the message is RAW or a DIGEST. + # signature: "", # The signature to be verified. + # signing_algorithm: "ECDSA_SHA_384", # The signing algorithm to be used to verify the signature. + # }) + # + # resp.to_h outputs the following: + # { + # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the asymmetric KMS key that was used to verify the digital signature. + # signature_valid: true, # A value of 'true' Indicates that the signature was verified. If verification fails, the call to Verify fails. + # signing_algorithm: "ECDSA_SHA_384", # The signing algorithm that was used to verify the signature. + # } + # @example Example: To use an asymmetric KMS key to verify a digital signature on a message digest + # + # # This operation uses the public key in an RSA asymmetric signing key pair to verify the digital signature of a message + # # digest. Hashing a message into a digest before sending it to KMS lets you verify messages that exceed the 4096-byte + # # message size limit. To indicate that the value of Message is a digest, use the MessageType parameter + # + # resp = client.verify({ + # key_id: "arn:aws:kms:us-east-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", # The asymmetric KMS key to be used to verify the digital signature. This example uses an alias to identify the KMS key. + # message: "", # The message that was signed. + # message_type: "DIGEST", # Indicates whether the message is RAW or a DIGEST. When it is RAW, KMS hashes the message before signing. When it is DIGEST, KMS skips the hashing step and signs the Message value. + # signature: "", # The signature to be verified. + # signing_algorithm: "RSASSA_PSS_SHA_512", # The signing algorithm to be used to verify the signature. + # }) + # + # resp.to_h outputs the following: + # { + # key_id: "arn:aws:kms:us-east-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", # The key ARN of the asymmetric KMS key that was used to verify the digital signature. + # signature_valid: true, # A value of 'true' Indicates that the signature was verified. If verification fails, the call to Verify fails. + # signing_algorithm: "RSASSA_PSS_SHA_512", # The signing algorithm that was used to verify the signature. + # } + # @example Request syntax with placeholder values + # + # resp = client.verify({ + # key_id: "KeyIdType", # required + # message: "data", # required + # message_type: "RAW", # accepts RAW, DIGEST + # signature: "data", # required + # signing_algorithm: "RSASSA_PSS_SHA_256", # required, accepts RSASSA_PSS_SHA_256, RSASSA_PSS_SHA_384, RSASSA_PSS_SHA_512, RSASSA_PKCS1_V1_5_SHA_256, RSASSA_PKCS1_V1_5_SHA_384, RSASSA_PKCS1_V1_5_SHA_512, ECDSA_SHA_256, ECDSA_SHA_384, ECDSA_SHA_512, SM2DSA + # grant_tokens: ["GrantTokenType"], + # dry_run: false, + # }) + # @example Response structure + # + # resp.key_id #=> String + # resp.signature_valid #=> Boolean + # resp.signing_algorithm #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload verify + # @param params [Hash] ({}) + # @return [Types::VerifyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::VerifyResponse#key_id #key_id} => String + # * {Types::VerifyResponse#signature_valid #signature_valid} => Boolean + # * {Types::VerifyResponse#signing_algorithm #signing_algorithm} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Verify AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#10622 + def verify(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Verifies the hash-based message authentication code (HMAC) for a + # specified message, HMAC KMS key, and MAC algorithm. To verify the + # HMAC, `VerifyMac` computes an HMAC using the message, HMAC KMS key, + # and MAC algorithm that you specify, and compares the computed HMAC to + # the HMAC that you specify. If the HMACs are identical, the + # verification succeeds; otherwise, it fails. Verification indicates + # that the message hasn't changed since the HMAC was calculated, and + # the specified key was used to generate and verify the HMAC. + # + # HMAC KMS keys and the HMAC algorithms that KMS uses conform to + # industry standards defined in [RFC 2104][1]. + # + # This operation is part of KMS support for HMAC KMS keys. For details, + # see [HMAC keys in KMS][2] in the *Key Management Service Developer + # Guide*. + # + # The KMS key that you use for this operation must be in a compatible + # key state. For details, see [Key states of KMS keys][3] in the *Key + # Management Service Developer Guide*. + # + # **Cross-account use**: Yes. To perform this operation with a KMS key + # in a different Amazon Web Services account, specify the key ARN or + # alias ARN in the value of the `KeyId` parameter. + # + # **Required permissions**: [kms:VerifyMac][4] (key policy) + # + # **Related operations**: GenerateMac + # + # **Eventual consistency**: The KMS API follows an eventual consistency + # model. For more information, see [KMS eventual consistency][5]. + # + # + # + # [1]: https://datatracker.ietf.org/doc/html/rfc2104 + # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html + # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html + # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/programming-eventual-consistency.html + # + # @example Example: To verify an HMAC + # + # # This example verifies an HMAC for a particular message, HMAC KMS keys, and MAC algorithm. A value of 'true' in the + # # MacValid value in the response indicates that the HMAC is valid. + # + # resp = client.verify_mac({ + # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The HMAC KMS key input to the HMAC algorithm. + # mac: "", # The HMAC to be verified. + # mac_algorithm: "HMAC_SHA_384", # The HMAC algorithm requested for the operation. + # message: "Hello World", # The message input to the HMAC algorithm. + # }) + # + # resp.to_h outputs the following: + # { + # key_id: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the HMAC key used in the operation. + # mac_algorithm: "HMAC_SHA_384", # The HMAC algorithm used in the operation. + # mac_valid: true, # A value of 'true' indicates that verification succeeded. If verification fails, the call to VerifyMac fails. + # } + # @example Request syntax with placeholder values + # + # resp = client.verify_mac({ + # message: "data", # required + # key_id: "KeyIdType", # required + # mac_algorithm: "HMAC_SHA_224", # required, accepts HMAC_SHA_224, HMAC_SHA_256, HMAC_SHA_384, HMAC_SHA_512 + # mac: "data", # required + # grant_tokens: ["GrantTokenType"], + # dry_run: false, + # }) + # @example Response structure + # + # resp.key_id #=> String + # resp.mac_valid #=> Boolean + # resp.mac_algorithm #=> String, one of "HMAC_SHA_224", "HMAC_SHA_256", "HMAC_SHA_384", "HMAC_SHA_512" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload verify_mac + # @param params [Hash] ({}) + # @return [Types::VerifyMacResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::VerifyMacResponse#key_id #key_id} => String + # * {Types::VerifyMacResponse#mac_valid #mac_valid} => Boolean + # * {Types::VerifyMacResponse#mac_algorithm #mac_algorithm} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/VerifyMac AWS API Documentation + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#10762 + def verify_mac(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # @api private + # @deprecated + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#10791 + def waiter_names; end + + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#10801 + def errors_module; end + + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/client.rb#10798 + def identifier; end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#13 +module Aws::KMS::ClientApi + include ::Seahorse::Model +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#1011 +Aws::KMS::ClientApi::API = T.let(T.unsafe(nil), Seahorse::Model::Api) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#17 +Aws::KMS::ClientApi::AWSAccountIdType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#18 +Aws::KMS::ClientApi::AlgorithmSpec = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#19 +Aws::KMS::ClientApi::AliasList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#20 +Aws::KMS::ClientApi::AliasListEntry = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#21 +Aws::KMS::ClientApi::AliasNameType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#22 +Aws::KMS::ClientApi::AlreadyExistsException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#23 +Aws::KMS::ClientApi::ArnType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#24 +Aws::KMS::ClientApi::AttestationDocumentType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BlobShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#25 +Aws::KMS::ClientApi::BooleanType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#26 +Aws::KMS::ClientApi::CancelKeyDeletionRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#27 +Aws::KMS::ClientApi::CancelKeyDeletionResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#28 +Aws::KMS::ClientApi::CiphertextType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BlobShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#29 +Aws::KMS::ClientApi::CloudHsmClusterIdType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#30 +Aws::KMS::ClientApi::CloudHsmClusterInUseException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#31 +Aws::KMS::ClientApi::CloudHsmClusterInvalidConfigurationException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#32 +Aws::KMS::ClientApi::CloudHsmClusterNotActiveException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#33 +Aws::KMS::ClientApi::CloudHsmClusterNotFoundException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#34 +Aws::KMS::ClientApi::CloudHsmClusterNotRelatedException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#35 +Aws::KMS::ClientApi::ConflictException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#36 +Aws::KMS::ClientApi::ConnectCustomKeyStoreRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#37 +Aws::KMS::ClientApi::ConnectCustomKeyStoreResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#38 +Aws::KMS::ClientApi::ConnectionErrorCodeType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#39 +Aws::KMS::ClientApi::ConnectionStateType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#40 +Aws::KMS::ClientApi::CreateAliasRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#41 +Aws::KMS::ClientApi::CreateCustomKeyStoreRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#42 +Aws::KMS::ClientApi::CreateCustomKeyStoreResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#43 +Aws::KMS::ClientApi::CreateGrantRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#44 +Aws::KMS::ClientApi::CreateGrantResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#45 +Aws::KMS::ClientApi::CreateKeyRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#46 +Aws::KMS::ClientApi::CreateKeyResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#47 +Aws::KMS::ClientApi::CustomKeyStoreHasCMKsException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#48 +Aws::KMS::ClientApi::CustomKeyStoreIdType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#49 +Aws::KMS::ClientApi::CustomKeyStoreInvalidStateException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#50 +Aws::KMS::ClientApi::CustomKeyStoreNameInUseException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#51 +Aws::KMS::ClientApi::CustomKeyStoreNameType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#52 +Aws::KMS::ClientApi::CustomKeyStoreNotFoundException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#53 +Aws::KMS::ClientApi::CustomKeyStoreType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#54 +Aws::KMS::ClientApi::CustomKeyStoresList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#55 +Aws::KMS::ClientApi::CustomKeyStoresListEntry = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#56 +Aws::KMS::ClientApi::CustomerMasterKeySpec = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#57 +Aws::KMS::ClientApi::DataKeyPairSpec = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#58 +Aws::KMS::ClientApi::DataKeySpec = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#59 +Aws::KMS::ClientApi::DateType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::TimestampShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#60 +Aws::KMS::ClientApi::DecryptRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#61 +Aws::KMS::ClientApi::DecryptResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#62 +Aws::KMS::ClientApi::DeleteAliasRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#63 +Aws::KMS::ClientApi::DeleteCustomKeyStoreRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#64 +Aws::KMS::ClientApi::DeleteCustomKeyStoreResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#65 +Aws::KMS::ClientApi::DeleteImportedKeyMaterialRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#66 +Aws::KMS::ClientApi::DependencyTimeoutException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#67 +Aws::KMS::ClientApi::DeriveSharedSecretRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#68 +Aws::KMS::ClientApi::DeriveSharedSecretResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#69 +Aws::KMS::ClientApi::DescribeCustomKeyStoresRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#70 +Aws::KMS::ClientApi::DescribeCustomKeyStoresResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#71 +Aws::KMS::ClientApi::DescribeKeyRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#72 +Aws::KMS::ClientApi::DescribeKeyResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#73 +Aws::KMS::ClientApi::DescriptionType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#74 +Aws::KMS::ClientApi::DisableKeyRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#75 +Aws::KMS::ClientApi::DisableKeyRotationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#76 +Aws::KMS::ClientApi::DisabledException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#77 +Aws::KMS::ClientApi::DisconnectCustomKeyStoreRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#78 +Aws::KMS::ClientApi::DisconnectCustomKeyStoreResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#79 +Aws::KMS::ClientApi::DryRunOperationException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#80 +Aws::KMS::ClientApi::EnableKeyRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#81 +Aws::KMS::ClientApi::EnableKeyRotationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#82 +Aws::KMS::ClientApi::EncryptRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#83 +Aws::KMS::ClientApi::EncryptResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#84 +Aws::KMS::ClientApi::EncryptionAlgorithmSpec = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#85 +Aws::KMS::ClientApi::EncryptionAlgorithmSpecList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#86 +Aws::KMS::ClientApi::EncryptionContextKey = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#87 +Aws::KMS::ClientApi::EncryptionContextType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::MapShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#88 +Aws::KMS::ClientApi::EncryptionContextValue = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#89 +Aws::KMS::ClientApi::ErrorMessageType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#90 +Aws::KMS::ClientApi::ExpirationModelType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#91 +Aws::KMS::ClientApi::ExpiredImportTokenException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#92 +Aws::KMS::ClientApi::GenerateDataKeyPairRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#93 +Aws::KMS::ClientApi::GenerateDataKeyPairResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#94 +Aws::KMS::ClientApi::GenerateDataKeyPairWithoutPlaintextRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#95 +Aws::KMS::ClientApi::GenerateDataKeyPairWithoutPlaintextResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#96 +Aws::KMS::ClientApi::GenerateDataKeyRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#97 +Aws::KMS::ClientApi::GenerateDataKeyResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#98 +Aws::KMS::ClientApi::GenerateDataKeyWithoutPlaintextRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#99 +Aws::KMS::ClientApi::GenerateDataKeyWithoutPlaintextResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#100 +Aws::KMS::ClientApi::GenerateMacRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#101 +Aws::KMS::ClientApi::GenerateMacResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#102 +Aws::KMS::ClientApi::GenerateRandomRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#103 +Aws::KMS::ClientApi::GenerateRandomResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#104 +Aws::KMS::ClientApi::GetKeyPolicyRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#105 +Aws::KMS::ClientApi::GetKeyPolicyResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#106 +Aws::KMS::ClientApi::GetKeyRotationStatusRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#107 +Aws::KMS::ClientApi::GetKeyRotationStatusResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#108 +Aws::KMS::ClientApi::GetParametersForImportRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#109 +Aws::KMS::ClientApi::GetParametersForImportResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#110 +Aws::KMS::ClientApi::GetPublicKeyRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#111 +Aws::KMS::ClientApi::GetPublicKeyResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#112 +Aws::KMS::ClientApi::GrantConstraints = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#113 +Aws::KMS::ClientApi::GrantIdType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#114 +Aws::KMS::ClientApi::GrantList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#115 +Aws::KMS::ClientApi::GrantListEntry = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#116 +Aws::KMS::ClientApi::GrantNameType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#117 +Aws::KMS::ClientApi::GrantOperation = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#118 +Aws::KMS::ClientApi::GrantOperationList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#119 +Aws::KMS::ClientApi::GrantTokenList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#120 +Aws::KMS::ClientApi::GrantTokenType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#121 +Aws::KMS::ClientApi::ImportKeyMaterialRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#122 +Aws::KMS::ClientApi::ImportKeyMaterialResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#123 +Aws::KMS::ClientApi::IncorrectKeyException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#124 +Aws::KMS::ClientApi::IncorrectKeyMaterialException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#125 +Aws::KMS::ClientApi::IncorrectTrustAnchorException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#126 +Aws::KMS::ClientApi::InvalidAliasNameException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#127 +Aws::KMS::ClientApi::InvalidArnException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#128 +Aws::KMS::ClientApi::InvalidCiphertextException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#129 +Aws::KMS::ClientApi::InvalidGrantIdException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#130 +Aws::KMS::ClientApi::InvalidGrantTokenException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#131 +Aws::KMS::ClientApi::InvalidImportTokenException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#132 +Aws::KMS::ClientApi::InvalidKeyUsageException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#133 +Aws::KMS::ClientApi::InvalidMarkerException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#134 +Aws::KMS::ClientApi::KMSInternalException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#135 +Aws::KMS::ClientApi::KMSInvalidMacException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#136 +Aws::KMS::ClientApi::KMSInvalidSignatureException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#137 +Aws::KMS::ClientApi::KMSInvalidStateException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#138 +Aws::KMS::ClientApi::KeyAgreementAlgorithmSpec = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#139 +Aws::KMS::ClientApi::KeyAgreementAlgorithmSpecList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#140 +Aws::KMS::ClientApi::KeyEncryptionMechanism = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#141 +Aws::KMS::ClientApi::KeyIdType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#142 +Aws::KMS::ClientApi::KeyList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#143 +Aws::KMS::ClientApi::KeyListEntry = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#144 +Aws::KMS::ClientApi::KeyManagerType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#145 +Aws::KMS::ClientApi::KeyMetadata = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#146 +Aws::KMS::ClientApi::KeySpec = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#147 +Aws::KMS::ClientApi::KeyState = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#148 +Aws::KMS::ClientApi::KeyStorePasswordType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#149 +Aws::KMS::ClientApi::KeyUnavailableException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#150 +Aws::KMS::ClientApi::KeyUsageType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#151 +Aws::KMS::ClientApi::LimitExceededException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#152 +Aws::KMS::ClientApi::LimitType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#153 +Aws::KMS::ClientApi::ListAliasesRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#154 +Aws::KMS::ClientApi::ListAliasesResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#155 +Aws::KMS::ClientApi::ListGrantsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#156 +Aws::KMS::ClientApi::ListGrantsResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#157 +Aws::KMS::ClientApi::ListKeyPoliciesRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#158 +Aws::KMS::ClientApi::ListKeyPoliciesResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#159 +Aws::KMS::ClientApi::ListKeyRotationsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#160 +Aws::KMS::ClientApi::ListKeyRotationsResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#161 +Aws::KMS::ClientApi::ListKeysRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#162 +Aws::KMS::ClientApi::ListKeysResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#163 +Aws::KMS::ClientApi::ListResourceTagsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#164 +Aws::KMS::ClientApi::ListResourceTagsResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#165 +Aws::KMS::ClientApi::ListRetirableGrantsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#166 +Aws::KMS::ClientApi::MacAlgorithmSpec = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#167 +Aws::KMS::ClientApi::MacAlgorithmSpecList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#168 +Aws::KMS::ClientApi::MalformedPolicyDocumentException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#169 +Aws::KMS::ClientApi::MarkerType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#170 +Aws::KMS::ClientApi::MessageType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#171 +Aws::KMS::ClientApi::MultiRegionConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#172 +Aws::KMS::ClientApi::MultiRegionKey = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#173 +Aws::KMS::ClientApi::MultiRegionKeyList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#174 +Aws::KMS::ClientApi::MultiRegionKeyType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#175 +Aws::KMS::ClientApi::NotFoundException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#176 +Aws::KMS::ClientApi::NullableBooleanType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#177 +Aws::KMS::ClientApi::NumberOfBytesType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#178 +Aws::KMS::ClientApi::OriginType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#179 +Aws::KMS::ClientApi::PendingWindowInDaysType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#180 +Aws::KMS::ClientApi::PlaintextType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BlobShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#181 +Aws::KMS::ClientApi::PolicyNameList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#182 +Aws::KMS::ClientApi::PolicyNameType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#183 +Aws::KMS::ClientApi::PolicyType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#184 +Aws::KMS::ClientApi::PrincipalIdType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#185 +Aws::KMS::ClientApi::PublicKeyType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BlobShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#186 +Aws::KMS::ClientApi::PutKeyPolicyRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#187 +Aws::KMS::ClientApi::ReEncryptRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#188 +Aws::KMS::ClientApi::ReEncryptResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#189 +Aws::KMS::ClientApi::RecipientInfo = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#190 +Aws::KMS::ClientApi::RegionType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#191 +Aws::KMS::ClientApi::ReplicateKeyRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#192 +Aws::KMS::ClientApi::ReplicateKeyResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#193 +Aws::KMS::ClientApi::RetireGrantRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#194 +Aws::KMS::ClientApi::RevokeGrantRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#195 +Aws::KMS::ClientApi::RotateKeyOnDemandRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#196 +Aws::KMS::ClientApi::RotateKeyOnDemandResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#197 +Aws::KMS::ClientApi::RotationPeriodInDaysType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#198 +Aws::KMS::ClientApi::RotationType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#199 +Aws::KMS::ClientApi::RotationsList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#200 +Aws::KMS::ClientApi::RotationsListEntry = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#201 +Aws::KMS::ClientApi::ScheduleKeyDeletionRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#202 +Aws::KMS::ClientApi::ScheduleKeyDeletionResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#203 +Aws::KMS::ClientApi::SignRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#204 +Aws::KMS::ClientApi::SignResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#205 +Aws::KMS::ClientApi::SigningAlgorithmSpec = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#206 +Aws::KMS::ClientApi::SigningAlgorithmSpecList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#207 +Aws::KMS::ClientApi::Tag = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#208 +Aws::KMS::ClientApi::TagException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#209 +Aws::KMS::ClientApi::TagKeyList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#210 +Aws::KMS::ClientApi::TagKeyType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#211 +Aws::KMS::ClientApi::TagList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#212 +Aws::KMS::ClientApi::TagResourceRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#213 +Aws::KMS::ClientApi::TagValueType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#214 +Aws::KMS::ClientApi::TrustAnchorCertificateType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#215 +Aws::KMS::ClientApi::UnsupportedOperationException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#216 +Aws::KMS::ClientApi::UntagResourceRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#217 +Aws::KMS::ClientApi::UpdateAliasRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#218 +Aws::KMS::ClientApi::UpdateCustomKeyStoreRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#219 +Aws::KMS::ClientApi::UpdateCustomKeyStoreResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#220 +Aws::KMS::ClientApi::UpdateKeyDescriptionRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#221 +Aws::KMS::ClientApi::UpdatePrimaryRegionRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#222 +Aws::KMS::ClientApi::VerifyMacRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#223 +Aws::KMS::ClientApi::VerifyMacResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#224 +Aws::KMS::ClientApi::VerifyRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#225 +Aws::KMS::ClientApi::VerifyResponse = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#226 +Aws::KMS::ClientApi::WrappingKeySpec = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#227 +Aws::KMS::ClientApi::XksKeyAlreadyInUseException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#228 +Aws::KMS::ClientApi::XksKeyConfigurationType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#229 +Aws::KMS::ClientApi::XksKeyIdType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#230 +Aws::KMS::ClientApi::XksKeyInvalidConfigurationException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#231 +Aws::KMS::ClientApi::XksKeyNotFoundException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#232 +Aws::KMS::ClientApi::XksProxyAuthenticationAccessKeyIdType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#233 +Aws::KMS::ClientApi::XksProxyAuthenticationCredentialType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#234 +Aws::KMS::ClientApi::XksProxyAuthenticationRawSecretAccessKeyType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#235 +Aws::KMS::ClientApi::XksProxyConfigurationType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#236 +Aws::KMS::ClientApi::XksProxyConnectivityType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#237 +Aws::KMS::ClientApi::XksProxyIncorrectAuthenticationCredentialException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#238 +Aws::KMS::ClientApi::XksProxyInvalidConfigurationException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#239 +Aws::KMS::ClientApi::XksProxyInvalidResponseException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#240 +Aws::KMS::ClientApi::XksProxyUriEndpointInUseException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#241 +Aws::KMS::ClientApi::XksProxyUriEndpointType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#242 +Aws::KMS::ClientApi::XksProxyUriInUseException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#243 +Aws::KMS::ClientApi::XksProxyUriPathType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#244 +Aws::KMS::ClientApi::XksProxyUriUnreachableException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#245 +Aws::KMS::ClientApi::XksProxyVpcEndpointServiceInUseException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#246 +Aws::KMS::ClientApi::XksProxyVpcEndpointServiceInvalidConfigurationException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#247 +Aws::KMS::ClientApi::XksProxyVpcEndpointServiceNameType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/client_api.rb#248 +Aws::KMS::ClientApi::XksProxyVpcEndpointServiceNotFoundException = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# Endpoint parameters used to influence endpoints per request. +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoint_parameters.rb#33 +class Aws::KMS::EndpointParameters < ::Struct + include ::Aws::Structure + + # @return [EndpointParameters] a new instance of EndpointParameters + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoint_parameters.rb#51 + def initialize(options = T.unsafe(nil)); end + + # Override the endpoint used to send this request + # + # @return [String] + def endpoint; end + + # Override the endpoint used to send this request + # + # @return [String] + def endpoint=(_); end + + # The AWS region used to dispatch the request. + # + # @return [String] + def region; end + + # The AWS region used to dispatch the request. + # + # @return [String] + def region=(_); end + + # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. + # + # @return [Boolean] + def use_dual_stack; end + + # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. + # + # @return [Boolean] + def use_dual_stack=(_); end + + # When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. + # + # @return [Boolean] + def use_fips; end + + # When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. + # + # @return [Boolean] + def use_fips=(_); end + + class << self + def [](*_arg0); end + def inspect; end + def keyword_init?; end + def members; end + def new(*_arg0); end + end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoint_provider.rb#11 +class Aws::KMS::EndpointProvider + # @raise [ArgumentError] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoint_provider.rb#12 + def resolve_endpoint(parameters); end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#13 +module Aws::KMS::Endpoints; end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#15 +class Aws::KMS::Endpoints::CancelKeyDeletion + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#16 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#26 +class Aws::KMS::Endpoints::ConnectCustomKeyStore + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#27 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#37 +class Aws::KMS::Endpoints::CreateAlias + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#38 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#48 +class Aws::KMS::Endpoints::CreateCustomKeyStore + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#49 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#59 +class Aws::KMS::Endpoints::CreateGrant + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#60 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#70 +class Aws::KMS::Endpoints::CreateKey + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#71 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#81 +class Aws::KMS::Endpoints::Decrypt + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#82 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#92 +class Aws::KMS::Endpoints::DeleteAlias + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#93 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#103 +class Aws::KMS::Endpoints::DeleteCustomKeyStore + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#104 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#114 +class Aws::KMS::Endpoints::DeleteImportedKeyMaterial + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#115 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#125 +class Aws::KMS::Endpoints::DeriveSharedSecret + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#126 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#136 +class Aws::KMS::Endpoints::DescribeCustomKeyStores + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#137 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#147 +class Aws::KMS::Endpoints::DescribeKey + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#148 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#158 +class Aws::KMS::Endpoints::DisableKey + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#159 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#169 +class Aws::KMS::Endpoints::DisableKeyRotation + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#170 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#180 +class Aws::KMS::Endpoints::DisconnectCustomKeyStore + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#181 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#191 +class Aws::KMS::Endpoints::EnableKey + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#192 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#202 +class Aws::KMS::Endpoints::EnableKeyRotation + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#203 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#213 +class Aws::KMS::Endpoints::Encrypt + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#214 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#224 +class Aws::KMS::Endpoints::GenerateDataKey + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#225 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#235 +class Aws::KMS::Endpoints::GenerateDataKeyPair + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#236 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#246 +class Aws::KMS::Endpoints::GenerateDataKeyPairWithoutPlaintext + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#247 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#257 +class Aws::KMS::Endpoints::GenerateDataKeyWithoutPlaintext + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#258 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#268 +class Aws::KMS::Endpoints::GenerateMac + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#269 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#279 +class Aws::KMS::Endpoints::GenerateRandom + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#280 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#290 +class Aws::KMS::Endpoints::GetKeyPolicy + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#291 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#301 +class Aws::KMS::Endpoints::GetKeyRotationStatus + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#302 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#312 +class Aws::KMS::Endpoints::GetParametersForImport + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#313 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#323 +class Aws::KMS::Endpoints::GetPublicKey + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#324 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#334 +class Aws::KMS::Endpoints::ImportKeyMaterial + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#335 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#345 +class Aws::KMS::Endpoints::ListAliases + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#346 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#356 +class Aws::KMS::Endpoints::ListGrants + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#357 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#367 +class Aws::KMS::Endpoints::ListKeyPolicies + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#368 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#378 +class Aws::KMS::Endpoints::ListKeyRotations + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#379 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#389 +class Aws::KMS::Endpoints::ListKeys + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#390 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#400 +class Aws::KMS::Endpoints::ListResourceTags + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#401 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#411 +class Aws::KMS::Endpoints::ListRetirableGrants + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#412 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#422 +class Aws::KMS::Endpoints::PutKeyPolicy + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#423 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#433 +class Aws::KMS::Endpoints::ReEncrypt + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#434 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#444 +class Aws::KMS::Endpoints::ReplicateKey + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#445 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#455 +class Aws::KMS::Endpoints::RetireGrant + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#456 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#466 +class Aws::KMS::Endpoints::RevokeGrant + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#467 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#477 +class Aws::KMS::Endpoints::RotateKeyOnDemand + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#478 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#488 +class Aws::KMS::Endpoints::ScheduleKeyDeletion + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#489 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#499 +class Aws::KMS::Endpoints::Sign + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#500 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#510 +class Aws::KMS::Endpoints::TagResource + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#511 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#521 +class Aws::KMS::Endpoints::UntagResource + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#522 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#532 +class Aws::KMS::Endpoints::UpdateAlias + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#533 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#543 +class Aws::KMS::Endpoints::UpdateCustomKeyStore + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#544 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#554 +class Aws::KMS::Endpoints::UpdateKeyDescription + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#555 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#565 +class Aws::KMS::Endpoints::UpdatePrimaryRegion + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#566 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#576 +class Aws::KMS::Endpoints::Verify + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#577 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#587 +class Aws::KMS::Endpoints::VerifyMac + class << self + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/endpoints.rb#588 + def build(context); end + end +end + +# When KMS returns an error response, the Ruby SDK constructs and raises an error. +# These errors all extend Aws::KMS::Errors::ServiceError < {Aws::Errors::ServiceError} +# +# You can rescue all KMS errors using ServiceError: +# +# begin +# # do stuff +# rescue Aws::KMS::Errors::ServiceError +# # rescues all KMS API errors +# end +# +# +# ## Request Context +# ServiceError objects have a {Aws::Errors::ServiceError#context #context} method that returns +# information about the request that generated the error. +# See {Seahorse::Client::RequestContext} for more information. +# +# ## Error Classes +# * {AlreadyExistsException} +# * {CloudHsmClusterInUseException} +# * {CloudHsmClusterInvalidConfigurationException} +# * {CloudHsmClusterNotActiveException} +# * {CloudHsmClusterNotFoundException} +# * {CloudHsmClusterNotRelatedException} +# * {ConflictException} +# * {CustomKeyStoreHasCMKsException} +# * {CustomKeyStoreInvalidStateException} +# * {CustomKeyStoreNameInUseException} +# * {CustomKeyStoreNotFoundException} +# * {DependencyTimeoutException} +# * {DisabledException} +# * {DryRunOperationException} +# * {ExpiredImportTokenException} +# * {IncorrectKeyException} +# * {IncorrectKeyMaterialException} +# * {IncorrectTrustAnchorException} +# * {InvalidAliasNameException} +# * {InvalidArnException} +# * {InvalidCiphertextException} +# * {InvalidGrantIdException} +# * {InvalidGrantTokenException} +# * {InvalidImportTokenException} +# * {InvalidKeyUsageException} +# * {InvalidMarkerException} +# * {KMSInternalException} +# * {KMSInvalidMacException} +# * {KMSInvalidSignatureException} +# * {KMSInvalidStateException} +# * {KeyUnavailableException} +# * {LimitExceededException} +# * {MalformedPolicyDocumentException} +# * {NotFoundException} +# * {TagException} +# * {UnsupportedOperationException} +# * {XksKeyAlreadyInUseException} +# * {XksKeyInvalidConfigurationException} +# * {XksKeyNotFoundException} +# * {XksProxyIncorrectAuthenticationCredentialException} +# * {XksProxyInvalidConfigurationException} +# * {XksProxyInvalidResponseException} +# * {XksProxyUriEndpointInUseException} +# * {XksProxyUriInUseException} +# * {XksProxyUriUnreachableException} +# * {XksProxyVpcEndpointServiceInUseException} +# * {XksProxyVpcEndpointServiceInvalidConfigurationException} +# * {XksProxyVpcEndpointServiceNotFoundException} +# +# Additionally, error classes are dynamically generated for service errors based on the error code +# if they are not defined above. +# +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#81 +module Aws::KMS::Errors + extend ::Aws::Errors::DynamicErrors +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#85 +class Aws::KMS::Errors::AlreadyExistsException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::AlreadyExistsException] + # @return [AlreadyExistsException] a new instance of AlreadyExistsException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#90 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#95 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#100 +class Aws::KMS::Errors::CloudHsmClusterInUseException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::CloudHsmClusterInUseException] + # @return [CloudHsmClusterInUseException] a new instance of CloudHsmClusterInUseException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#105 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#110 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#115 +class Aws::KMS::Errors::CloudHsmClusterInvalidConfigurationException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::CloudHsmClusterInvalidConfigurationException] + # @return [CloudHsmClusterInvalidConfigurationException] a new instance of CloudHsmClusterInvalidConfigurationException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#120 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#125 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#130 +class Aws::KMS::Errors::CloudHsmClusterNotActiveException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::CloudHsmClusterNotActiveException] + # @return [CloudHsmClusterNotActiveException] a new instance of CloudHsmClusterNotActiveException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#135 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#140 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#145 +class Aws::KMS::Errors::CloudHsmClusterNotFoundException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::CloudHsmClusterNotFoundException] + # @return [CloudHsmClusterNotFoundException] a new instance of CloudHsmClusterNotFoundException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#150 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#155 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#160 +class Aws::KMS::Errors::CloudHsmClusterNotRelatedException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::CloudHsmClusterNotRelatedException] + # @return [CloudHsmClusterNotRelatedException] a new instance of CloudHsmClusterNotRelatedException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#165 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#170 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#175 +class Aws::KMS::Errors::ConflictException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::ConflictException] + # @return [ConflictException] a new instance of ConflictException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#180 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#185 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#190 +class Aws::KMS::Errors::CustomKeyStoreHasCMKsException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::CustomKeyStoreHasCMKsException] + # @return [CustomKeyStoreHasCMKsException] a new instance of CustomKeyStoreHasCMKsException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#195 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#200 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#205 +class Aws::KMS::Errors::CustomKeyStoreInvalidStateException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::CustomKeyStoreInvalidStateException] + # @return [CustomKeyStoreInvalidStateException] a new instance of CustomKeyStoreInvalidStateException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#210 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#215 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#220 +class Aws::KMS::Errors::CustomKeyStoreNameInUseException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::CustomKeyStoreNameInUseException] + # @return [CustomKeyStoreNameInUseException] a new instance of CustomKeyStoreNameInUseException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#225 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#230 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#235 +class Aws::KMS::Errors::CustomKeyStoreNotFoundException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::CustomKeyStoreNotFoundException] + # @return [CustomKeyStoreNotFoundException] a new instance of CustomKeyStoreNotFoundException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#240 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#245 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#250 +class Aws::KMS::Errors::DependencyTimeoutException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::DependencyTimeoutException] + # @return [DependencyTimeoutException] a new instance of DependencyTimeoutException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#255 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#260 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#265 +class Aws::KMS::Errors::DisabledException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::DisabledException] + # @return [DisabledException] a new instance of DisabledException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#270 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#275 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#280 +class Aws::KMS::Errors::DryRunOperationException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::DryRunOperationException] + # @return [DryRunOperationException] a new instance of DryRunOperationException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#285 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#290 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#295 +class Aws::KMS::Errors::ExpiredImportTokenException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::ExpiredImportTokenException] + # @return [ExpiredImportTokenException] a new instance of ExpiredImportTokenException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#300 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#305 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#310 +class Aws::KMS::Errors::IncorrectKeyException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::IncorrectKeyException] + # @return [IncorrectKeyException] a new instance of IncorrectKeyException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#315 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#320 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#325 +class Aws::KMS::Errors::IncorrectKeyMaterialException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::IncorrectKeyMaterialException] + # @return [IncorrectKeyMaterialException] a new instance of IncorrectKeyMaterialException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#330 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#335 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#340 +class Aws::KMS::Errors::IncorrectTrustAnchorException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::IncorrectTrustAnchorException] + # @return [IncorrectTrustAnchorException] a new instance of IncorrectTrustAnchorException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#345 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#350 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#355 +class Aws::KMS::Errors::InvalidAliasNameException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::InvalidAliasNameException] + # @return [InvalidAliasNameException] a new instance of InvalidAliasNameException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#360 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#365 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#370 +class Aws::KMS::Errors::InvalidArnException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::InvalidArnException] + # @return [InvalidArnException] a new instance of InvalidArnException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#375 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#380 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#385 +class Aws::KMS::Errors::InvalidCiphertextException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::InvalidCiphertextException] + # @return [InvalidCiphertextException] a new instance of InvalidCiphertextException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#390 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#395 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#400 +class Aws::KMS::Errors::InvalidGrantIdException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::InvalidGrantIdException] + # @return [InvalidGrantIdException] a new instance of InvalidGrantIdException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#405 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#410 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#415 +class Aws::KMS::Errors::InvalidGrantTokenException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::InvalidGrantTokenException] + # @return [InvalidGrantTokenException] a new instance of InvalidGrantTokenException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#420 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#425 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#430 +class Aws::KMS::Errors::InvalidImportTokenException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::InvalidImportTokenException] + # @return [InvalidImportTokenException] a new instance of InvalidImportTokenException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#435 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#440 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#445 +class Aws::KMS::Errors::InvalidKeyUsageException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::InvalidKeyUsageException] + # @return [InvalidKeyUsageException] a new instance of InvalidKeyUsageException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#450 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#455 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#460 +class Aws::KMS::Errors::InvalidMarkerException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::InvalidMarkerException] + # @return [InvalidMarkerException] a new instance of InvalidMarkerException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#465 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#470 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#475 +class Aws::KMS::Errors::KMSInternalException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::KMSInternalException] + # @return [KMSInternalException] a new instance of KMSInternalException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#480 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#485 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#490 +class Aws::KMS::Errors::KMSInvalidMacException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::KMSInvalidMacException] + # @return [KMSInvalidMacException] a new instance of KMSInvalidMacException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#495 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#500 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#505 +class Aws::KMS::Errors::KMSInvalidSignatureException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::KMSInvalidSignatureException] + # @return [KMSInvalidSignatureException] a new instance of KMSInvalidSignatureException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#510 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#515 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#520 +class Aws::KMS::Errors::KMSInvalidStateException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::KMSInvalidStateException] + # @return [KMSInvalidStateException] a new instance of KMSInvalidStateException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#525 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#530 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#535 +class Aws::KMS::Errors::KeyUnavailableException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::KeyUnavailableException] + # @return [KeyUnavailableException] a new instance of KeyUnavailableException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#540 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#545 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#550 +class Aws::KMS::Errors::LimitExceededException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::LimitExceededException] + # @return [LimitExceededException] a new instance of LimitExceededException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#555 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#560 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#565 +class Aws::KMS::Errors::MalformedPolicyDocumentException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::MalformedPolicyDocumentException] + # @return [MalformedPolicyDocumentException] a new instance of MalformedPolicyDocumentException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#570 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#575 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#580 +class Aws::KMS::Errors::NotFoundException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::NotFoundException] + # @return [NotFoundException] a new instance of NotFoundException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#585 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#590 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#0 +class Aws::KMS::Errors::ServiceError < ::Aws::Errors::ServiceError; end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#595 +class Aws::KMS::Errors::TagException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::TagException] + # @return [TagException] a new instance of TagException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#600 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#605 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#610 +class Aws::KMS::Errors::UnsupportedOperationException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::UnsupportedOperationException] + # @return [UnsupportedOperationException] a new instance of UnsupportedOperationException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#615 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#620 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#625 +class Aws::KMS::Errors::XksKeyAlreadyInUseException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::XksKeyAlreadyInUseException] + # @return [XksKeyAlreadyInUseException] a new instance of XksKeyAlreadyInUseException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#630 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#635 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#640 +class Aws::KMS::Errors::XksKeyInvalidConfigurationException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::XksKeyInvalidConfigurationException] + # @return [XksKeyInvalidConfigurationException] a new instance of XksKeyInvalidConfigurationException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#645 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#650 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#655 +class Aws::KMS::Errors::XksKeyNotFoundException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::XksKeyNotFoundException] + # @return [XksKeyNotFoundException] a new instance of XksKeyNotFoundException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#660 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#665 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#670 +class Aws::KMS::Errors::XksProxyIncorrectAuthenticationCredentialException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::XksProxyIncorrectAuthenticationCredentialException] + # @return [XksProxyIncorrectAuthenticationCredentialException] a new instance of XksProxyIncorrectAuthenticationCredentialException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#675 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#680 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#685 +class Aws::KMS::Errors::XksProxyInvalidConfigurationException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::XksProxyInvalidConfigurationException] + # @return [XksProxyInvalidConfigurationException] a new instance of XksProxyInvalidConfigurationException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#690 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#695 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#700 +class Aws::KMS::Errors::XksProxyInvalidResponseException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::XksProxyInvalidResponseException] + # @return [XksProxyInvalidResponseException] a new instance of XksProxyInvalidResponseException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#705 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#710 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#715 +class Aws::KMS::Errors::XksProxyUriEndpointInUseException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::XksProxyUriEndpointInUseException] + # @return [XksProxyUriEndpointInUseException] a new instance of XksProxyUriEndpointInUseException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#720 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#725 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#730 +class Aws::KMS::Errors::XksProxyUriInUseException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::XksProxyUriInUseException] + # @return [XksProxyUriInUseException] a new instance of XksProxyUriInUseException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#735 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#740 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#745 +class Aws::KMS::Errors::XksProxyUriUnreachableException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::XksProxyUriUnreachableException] + # @return [XksProxyUriUnreachableException] a new instance of XksProxyUriUnreachableException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#750 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#755 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#760 +class Aws::KMS::Errors::XksProxyVpcEndpointServiceInUseException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::XksProxyVpcEndpointServiceInUseException] + # @return [XksProxyVpcEndpointServiceInUseException] a new instance of XksProxyVpcEndpointServiceInUseException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#765 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#770 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#775 +class Aws::KMS::Errors::XksProxyVpcEndpointServiceInvalidConfigurationException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::XksProxyVpcEndpointServiceInvalidConfigurationException] + # @return [XksProxyVpcEndpointServiceInvalidConfigurationException] a new instance of XksProxyVpcEndpointServiceInvalidConfigurationException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#780 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#785 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#790 +class Aws::KMS::Errors::XksProxyVpcEndpointServiceNotFoundException < ::Aws::KMS::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::KMS::Types::XksProxyVpcEndpointServiceNotFoundException] + # @return [XksProxyVpcEndpointServiceNotFoundException] a new instance of XksProxyVpcEndpointServiceNotFoundException + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#795 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/errors.rb#800 + def message; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms.rb#57 +Aws::KMS::GEM_VERSION = T.let(T.unsafe(nil), String) + +# source://aws-sdk-kms//lib/aws-sdk-kms.rb#47 +module Aws::KMS::Plugins; end + +# source://aws-sdk-kms//lib/aws-sdk-kms/plugins/endpoints.rb#13 +class Aws::KMS::Plugins::Endpoints < ::Seahorse::Client::Plugin + # source://aws-sdk-kms//lib/aws-sdk-kms/plugins/endpoints.rb#183 + def add_handlers(handlers, _config); end +end + +# @api private +# +# source://aws-sdk-kms//lib/aws-sdk-kms/plugins/endpoints.rb#27 +class Aws::KMS::Plugins::Endpoints::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/plugins/endpoints.rb#28 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/plugins/endpoints.rb#60 + def apply_endpoint_headers(context, headers); end + + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/plugins/endpoints.rb#71 + def parameters_for_operation(context); end + + # @api private + # + # source://aws-sdk-kms//lib/aws-sdk-kms/plugins/endpoints.rb#48 + def with_metrics(context, &block); end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/resource.rb#12 +class Aws::KMS::Resource + # @option options + # @param options [{}] + # @return [Resource] a new instance of Resource + # + # source://aws-sdk-kms//lib/aws-sdk-kms/resource.rb#16 + def initialize(options = T.unsafe(nil)); end + + # @return [Client] + # + # source://aws-sdk-kms//lib/aws-sdk-kms/resource.rb#21 + def client; end +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#11 +module Aws::KMS::Types; end + +# Contains information about an alias. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/AliasListEntry AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#45 +class Aws::KMS::Types::AliasListEntry < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#46 +Aws::KMS::Types::AliasListEntry::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because it attempted to create a resource +# that already exists. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/AlreadyExistsException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#59 +class Aws::KMS::Types::AlreadyExistsException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#60 +Aws::KMS::Types::AlreadyExistsException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CancelKeyDeletionRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#83 +class Aws::KMS::Types::CancelKeyDeletionRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#84 +Aws::KMS::Types::CancelKeyDeletionRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CancelKeyDeletionResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#100 +class Aws::KMS::Types::CancelKeyDeletionResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#101 +Aws::KMS::Types::CancelKeyDeletionResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the specified CloudHSM cluster is +# already associated with an CloudHSM key store in the account, or it +# shares a backup history with an CloudHSM key store in the account. +# Each CloudHSM key store in the account must be associated with a +# different CloudHSM cluster. +# +# CloudHSM clusters that share a backup history have the same cluster +# certificate. To view the cluster certificate of an CloudHSM cluster, +# use the [DescribeClusters][1] operation. +# +# +# +# [1]: https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CloudHsmClusterInUseException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#125 +class Aws::KMS::Types::CloudHsmClusterInUseException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#126 +Aws::KMS::Types::CloudHsmClusterInUseException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the associated CloudHSM cluster did +# not meet the configuration requirements for an CloudHSM key store. +# +# * The CloudHSM cluster must be configured with private subnets in at +# least two different Availability Zones in the Region. +# +# * The [security group for the cluster][1] +# (cloudhsm-cluster-*<cluster-id>*-sg) must include inbound +# rules and outbound rules that allow TCP traffic on ports 2223-2225. +# The **Source** in the inbound rules and the **Destination** in the +# outbound rules must match the security group ID. These rules are set +# by default when you create the CloudHSM cluster. Do not delete or +# change them. To get information about a particular security group, +# use the [DescribeSecurityGroups][2] operation. +# +# * The CloudHSM cluster must contain at least as many HSMs as the +# operation requires. To add HSMs, use the CloudHSM [CreateHsm][3] +# operation. +# +# For the CreateCustomKeyStore, UpdateCustomKeyStore, and CreateKey +# operations, the CloudHSM cluster must have at least two active HSMs, +# each in a different Availability Zone. For the ConnectCustomKeyStore +# operation, the CloudHSM must contain at least one active HSM. +# +# For information about the requirements for an CloudHSM cluster that is +# associated with an CloudHSM key store, see [Assemble the +# Prerequisites][4] in the *Key Management Service Developer Guide*. For +# information about creating a private subnet for an CloudHSM cluster, +# see [Create a Private Subnet][5] in the *CloudHSM User Guide*. For +# information about cluster security groups, see [Configure a Default +# Security Group][1] in the CloudHSM User Guide . +# +# +# +# [1]: https://docs.aws.amazon.com/cloudhsm/latest/userguide/configure-sg.html +# [2]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html +# [3]: https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html +# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore +# [5]: https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-subnets.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CloudHsmClusterInvalidConfigurationException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#176 +class Aws::KMS::Types::CloudHsmClusterInvalidConfigurationException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#177 +Aws::KMS::Types::CloudHsmClusterInvalidConfigurationException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the CloudHSM cluster associated with +# the CloudHSM key store is not active. Initialize and activate the +# cluster and try the command again. For detailed instructions, see +# [Getting Started][1] in the *CloudHSM User Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/cloudhsm/latest/userguide/getting-started.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CloudHsmClusterNotActiveException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#196 +class Aws::KMS::Types::CloudHsmClusterNotActiveException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#197 +Aws::KMS::Types::CloudHsmClusterNotActiveException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because KMS cannot find the CloudHSM cluster +# with the specified cluster ID. Retry the request with a different +# cluster ID. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CloudHsmClusterNotFoundException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#211 +class Aws::KMS::Types::CloudHsmClusterNotFoundException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#212 +Aws::KMS::Types::CloudHsmClusterNotFoundException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the specified CloudHSM cluster has a +# different cluster certificate than the original cluster. You cannot +# use the operation to specify an unrelated cluster for an CloudHSM key +# store. +# +# Specify an CloudHSM cluster that shares a backup history with the +# original cluster. This includes clusters that were created from a +# backup of the current cluster, and clusters that were created from the +# same backup that produced the current cluster. +# +# CloudHSM clusters that share a backup history have the same cluster +# certificate. To view the cluster certificate of an CloudHSM cluster, +# use the [DescribeClusters][1] operation. +# +# +# +# [1]: https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CloudHsmClusterNotRelatedException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#240 +class Aws::KMS::Types::CloudHsmClusterNotRelatedException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#241 +Aws::KMS::Types::CloudHsmClusterNotRelatedException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because an automatic rotation of this key is +# currently in progress or scheduled to begin within the next 20 +# minutes. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ConflictException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#255 +class Aws::KMS::Types::ConflictException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#256 +Aws::KMS::Types::ConflictException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ConnectCustomKeyStoreRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#269 +class Aws::KMS::Types::ConnectCustomKeyStoreRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#270 +Aws::KMS::Types::ConnectCustomKeyStoreRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ConnectCustomKeyStoreResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#276 +class Aws::KMS::Types::ConnectCustomKeyStoreResponse < ::Aws::EmptyStructure; end + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateAliasRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#330 +class Aws::KMS::Types::CreateAliasRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#331 +Aws::KMS::Types::CreateAliasRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateCustomKeyStoreRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#553 +class Aws::KMS::Types::CreateCustomKeyStoreRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#554 +Aws::KMS::Types::CreateCustomKeyStoreRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateCustomKeyStoreResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#565 +class Aws::KMS::Types::CreateCustomKeyStoreResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#566 +Aws::KMS::Types::CreateCustomKeyStoreResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateGrantRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#743 +class Aws::KMS::Types::CreateGrantRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#744 +Aws::KMS::Types::CreateGrantRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateGrantResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#773 +class Aws::KMS::Types::CreateGrantResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#774 +Aws::KMS::Types::CreateGrantResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateKeyRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1143 +class Aws::KMS::Types::CreateKeyRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1144 +Aws::KMS::Types::CreateKeyRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateKeyResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1155 +class Aws::KMS::Types::CreateKeyResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1156 +Aws::KMS::Types::CreateKeyResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the custom key store contains KMS +# keys. After verifying that you do not need to use the KMS keys, use +# the ScheduleKeyDeletion operation to delete the KMS keys. After they +# are deleted, you can delete the custom key store. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CustomKeyStoreHasCMKsException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1171 +class Aws::KMS::Types::CustomKeyStoreHasCMKsException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1172 +Aws::KMS::Types::CustomKeyStoreHasCMKsException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because of the `ConnectionState` of the +# custom key store. To get the `ConnectionState` of a custom key store, +# use the DescribeCustomKeyStores operation. +# +# This exception is thrown under the following conditions: +# +# * You requested the ConnectCustomKeyStore operation on a custom key +# store with a `ConnectionState` of `DISCONNECTING` or `FAILED`. This +# operation is valid for all other `ConnectionState` values. To +# reconnect a custom key store in a `FAILED` state, disconnect it +# (DisconnectCustomKeyStore), then connect it +# (`ConnectCustomKeyStore`). +# +# * You requested the CreateKey operation in a custom key store that is +# not connected. This operations is valid only when the custom key +# store `ConnectionState` is `CONNECTED`. +# +# * You requested the DisconnectCustomKeyStore operation on a custom key +# store with a `ConnectionState` of `DISCONNECTING` or `DISCONNECTED`. +# This operation is valid for all other `ConnectionState` values. +# +# * You requested the UpdateCustomKeyStore or DeleteCustomKeyStore +# operation on a custom key store that is not disconnected. This +# operation is valid only when the custom key store `ConnectionState` +# is `DISCONNECTED`. +# +# * You requested the GenerateRandom operation in an CloudHSM key store +# that is not connected. This operation is valid only when the +# CloudHSM key store `ConnectionState` is `CONNECTED`. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CustomKeyStoreInvalidStateException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1212 +class Aws::KMS::Types::CustomKeyStoreInvalidStateException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1213 +Aws::KMS::Types::CustomKeyStoreInvalidStateException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the specified custom key store name +# is already assigned to another custom key store in the account. Try +# again with a custom key store name that is unique in the account. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CustomKeyStoreNameInUseException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1227 +class Aws::KMS::Types::CustomKeyStoreNameInUseException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1228 +Aws::KMS::Types::CustomKeyStoreNameInUseException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because KMS cannot find a custom key store +# with the specified key store name or ID. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CustomKeyStoreNotFoundException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1241 +class Aws::KMS::Types::CustomKeyStoreNotFoundException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1242 +Aws::KMS::Types::CustomKeyStoreNotFoundException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Contains information about each custom key store in the custom key +# store list. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CustomKeyStoresListEntry AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1505 +class Aws::KMS::Types::CustomKeyStoresListEntry < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1506 +Aws::KMS::Types::CustomKeyStoresListEntry::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DecryptRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1648 +class Aws::KMS::Types::DecryptRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1649 +Aws::KMS::Types::DecryptRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DecryptResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1697 +class Aws::KMS::Types::DecryptResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1698 +Aws::KMS::Types::DecryptResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteAliasRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1710 +class Aws::KMS::Types::DeleteAliasRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1711 +Aws::KMS::Types::DeleteAliasRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteCustomKeyStoreRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1723 +class Aws::KMS::Types::DeleteCustomKeyStoreRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1724 +Aws::KMS::Types::DeleteCustomKeyStoreRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteCustomKeyStoreResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1730 +class Aws::KMS::Types::DeleteCustomKeyStoreResponse < ::Aws::EmptyStructure; end + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteImportedKeyMaterialRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1752 +class Aws::KMS::Types::DeleteImportedKeyMaterialRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1753 +Aws::KMS::Types::DeleteImportedKeyMaterialRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The system timed out while trying to fulfill the request. You can +# retry the request. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DependencyTimeoutException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1766 +class Aws::KMS::Types::DependencyTimeoutException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1767 +Aws::KMS::Types::DependencyTimeoutException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeriveSharedSecretRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1898 +class Aws::KMS::Types::DeriveSharedSecretRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1899 +Aws::KMS::Types::DeriveSharedSecretRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeriveSharedSecretResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1955 +class Aws::KMS::Types::DeriveSharedSecretResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1956 +Aws::KMS::Types::DeriveSharedSecretResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeCustomKeyStoresRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1998 +class Aws::KMS::Types::DescribeCustomKeyStoresRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#1999 +Aws::KMS::Types::DescribeCustomKeyStoresRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeCustomKeyStoresResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2024 +class Aws::KMS::Types::DescribeCustomKeyStoresResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2025 +Aws::KMS::Types::DescribeCustomKeyStoresResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeKeyRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2079 +class Aws::KMS::Types::DescribeKeyRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2080 +Aws::KMS::Types::DescribeKeyRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeKeyResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2091 +class Aws::KMS::Types::DescribeKeyResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2092 +Aws::KMS::Types::DescribeKeyResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisableKeyRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2115 +class Aws::KMS::Types::DisableKeyRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2116 +Aws::KMS::Types::DisableKeyRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisableKeyRotationRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2149 +class Aws::KMS::Types::DisableKeyRotationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2150 +Aws::KMS::Types::DisableKeyRotationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the specified KMS key is not enabled. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisabledException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2162 +class Aws::KMS::Types::DisabledException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2163 +Aws::KMS::Types::DisabledException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisconnectCustomKeyStoreRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2176 +class Aws::KMS::Types::DisconnectCustomKeyStoreRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2177 +Aws::KMS::Types::DisconnectCustomKeyStoreRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisconnectCustomKeyStoreResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2183 +class Aws::KMS::Types::DisconnectCustomKeyStoreResponse < ::Aws::EmptyStructure; end + +# The request was rejected because the DryRun parameter was specified. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DryRunOperationException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2193 +class Aws::KMS::Types::DryRunOperationException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2194 +Aws::KMS::Types::DryRunOperationException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EnableKeyRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2217 +class Aws::KMS::Types::EnableKeyRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2218 +Aws::KMS::Types::EnableKeyRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EnableKeyRotationRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2274 +class Aws::KMS::Types::EnableKeyRotationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2275 +Aws::KMS::Types::EnableKeyRotationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EncryptRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2384 +class Aws::KMS::Types::EncryptRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2385 +Aws::KMS::Types::EncryptRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EncryptResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2413 +class Aws::KMS::Types::EncryptResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2414 +Aws::KMS::Types::EncryptResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the specified import token is +# expired. Use GetParametersForImport to get a new import token and +# public key, use the new public key to encrypt the key material, and +# then try the request again. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ExpiredImportTokenException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2429 +class Aws::KMS::Types::ExpiredImportTokenException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2430 +Aws::KMS::Types::ExpiredImportTokenException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2563 +class Aws::KMS::Types::GenerateDataKeyPairRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2564 +Aws::KMS::Types::GenerateDataKeyPairRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2627 +class Aws::KMS::Types::GenerateDataKeyPairResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2628 +Aws::KMS::Types::GenerateDataKeyPairResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairWithoutPlaintextRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2726 +class Aws::KMS::Types::GenerateDataKeyPairWithoutPlaintextRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2727 +Aws::KMS::Types::GenerateDataKeyPairWithoutPlaintextRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairWithoutPlaintextResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2762 +class Aws::KMS::Types::GenerateDataKeyPairWithoutPlaintextResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2763 +Aws::KMS::Types::GenerateDataKeyPairWithoutPlaintextResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2902 +class Aws::KMS::Types::GenerateDataKeyRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2903 +Aws::KMS::Types::GenerateDataKeyRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2955 +class Aws::KMS::Types::GenerateDataKeyResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#2956 +Aws::KMS::Types::GenerateDataKeyResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyWithoutPlaintextRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3057 +class Aws::KMS::Types::GenerateDataKeyWithoutPlaintextRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3058 +Aws::KMS::Types::GenerateDataKeyWithoutPlaintextRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyWithoutPlaintextResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3081 +class Aws::KMS::Types::GenerateDataKeyWithoutPlaintextResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3082 +Aws::KMS::Types::GenerateDataKeyWithoutPlaintextResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateMacRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3148 +class Aws::KMS::Types::GenerateMacRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3149 +Aws::KMS::Types::GenerateMacRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateMacResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3177 +class Aws::KMS::Types::GenerateMacResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3178 +Aws::KMS::Types::GenerateMacResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateRandomRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3229 +class Aws::KMS::Types::GenerateRandomRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3230 +Aws::KMS::Types::GenerateRandomRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateRandomResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3264 +class Aws::KMS::Types::GenerateRandomResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3265 +Aws::KMS::Types::GenerateRandomResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyPolicyRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3295 +class Aws::KMS::Types::GetKeyPolicyRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3296 +Aws::KMS::Types::GetKeyPolicyRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyPolicyResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3312 +class Aws::KMS::Types::GetKeyPolicyResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3313 +Aws::KMS::Types::GetKeyPolicyResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyRotationStatusRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3338 +class Aws::KMS::Types::GetKeyRotationStatusRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3339 +Aws::KMS::Types::GetKeyRotationStatusRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyRotationStatusResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3382 +class Aws::KMS::Types::GetKeyRotationStatusResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3383 +Aws::KMS::Types::GetKeyRotationStatusResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetParametersForImportRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3465 +class Aws::KMS::Types::GetParametersForImportRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3466 +Aws::KMS::Types::GetParametersForImportRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetParametersForImportResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3502 +class Aws::KMS::Types::GetParametersForImportResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3503 +Aws::KMS::Types::GetParametersForImportResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetPublicKeyRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3548 +class Aws::KMS::Types::GetPublicKeyRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3549 +Aws::KMS::Types::GetPublicKeyRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetPublicKeyResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3632 +class Aws::KMS::Types::GetPublicKeyResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3633 +Aws::KMS::Types::GetPublicKeyResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Use this structure to allow [cryptographic operations][1] in the grant +# only when the operation request includes the specified [encryption +# context][2]. +# +# KMS applies the grant constraints only to cryptographic operations +# that support an encryption context, that is, all cryptographic +# operations with a [symmetric KMS key][3]. Grant constraints are not +# applied to operations that do not support an encryption context, such +# as cryptographic operations with asymmetric KMS keys and management +# operations, such as DescribeKey or RetireGrant. +# +# In a cryptographic operation, the encryption context in the decryption +# operation must be an exact, case-sensitive match for the keys and +# values in the encryption context of the encryption operation. Only the +# order of the pairs can vary. +# +# However, in a grant constraint, the key in each key-value pair is not +# case sensitive, but the value is case sensitive. +# +# To avoid confusion, do not use multiple encryption context pairs that +# differ only by case. To require a fully case-sensitive encryption +# context, use the `kms:EncryptionContext:` and +# `kms:EncryptionContextKeys` conditions in an IAM or key policy. For +# details, see [kms:EncryptionContext:][4] in the Key Management +# Service Developer Guide . +# +# +# +# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations +# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context +# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#symmetric-cmks +# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GrantConstraints AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3697 +class Aws::KMS::Types::GrantConstraints < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3698 +Aws::KMS::Types::GrantConstraints::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Contains information about a grant. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GrantListEntry AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3765 +class Aws::KMS::Types::GrantListEntry < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3766 +Aws::KMS::Types::GrantListEntry::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ImportKeyMaterialRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3857 +class Aws::KMS::Types::ImportKeyMaterialRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3858 +Aws::KMS::Types::ImportKeyMaterialRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ImportKeyMaterialResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3864 +class Aws::KMS::Types::ImportKeyMaterialResponse < ::Aws::EmptyStructure; end + +# The request was rejected because the specified KMS key cannot decrypt +# the data. The `KeyId` in a Decrypt request and the `SourceKeyId` in a +# ReEncrypt request must identify the same KMS key that was used to +# encrypt the ciphertext. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/IncorrectKeyException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3877 +class Aws::KMS::Types::IncorrectKeyException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3878 +Aws::KMS::Types::IncorrectKeyException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the key material in the request is, +# expired, invalid, or is not the same key material that was previously +# imported into this KMS key. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/IncorrectKeyMaterialException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3892 +class Aws::KMS::Types::IncorrectKeyMaterialException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3893 +Aws::KMS::Types::IncorrectKeyMaterialException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the trust anchor certificate in the +# request to create an CloudHSM key store is not the trust anchor +# certificate for the specified CloudHSM cluster. +# +# When you [initialize the CloudHSM cluster][1], you create the trust +# anchor certificate and save it in the `customerCA.crt` file. +# +# +# +# [1]: https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html#sign-csr +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/IncorrectTrustAnchorException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3914 +class Aws::KMS::Types::IncorrectTrustAnchorException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3915 +Aws::KMS::Types::IncorrectTrustAnchorException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the specified alias name is not +# valid. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/InvalidAliasNameException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3928 +class Aws::KMS::Types::InvalidAliasNameException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3929 +Aws::KMS::Types::InvalidAliasNameException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because a specified ARN, or an ARN in a key +# policy, is not valid. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/InvalidArnException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3942 +class Aws::KMS::Types::InvalidArnException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3943 +Aws::KMS::Types::InvalidArnException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# From the Decrypt or ReEncrypt operation, the request was rejected +# because the specified ciphertext, or additional authenticated data +# incorporated into the ciphertext, such as the encryption context, is +# corrupted, missing, or otherwise invalid. +# +# From the ImportKeyMaterial operation, the request was rejected because +# KMS could not decrypt the encrypted (wrapped) key material. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/InvalidCiphertextException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3961 +class Aws::KMS::Types::InvalidCiphertextException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3962 +Aws::KMS::Types::InvalidCiphertextException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the specified `GrantId` is not valid. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/InvalidGrantIdException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3974 +class Aws::KMS::Types::InvalidGrantIdException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3975 +Aws::KMS::Types::InvalidGrantIdException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the specified grant token is not +# valid. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/InvalidGrantTokenException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3988 +class Aws::KMS::Types::InvalidGrantTokenException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#3989 +Aws::KMS::Types::InvalidGrantTokenException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the provided import token is invalid +# or is associated with a different KMS key. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/InvalidImportTokenException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4002 +class Aws::KMS::Types::InvalidImportTokenException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4003 +Aws::KMS::Types::InvalidImportTokenException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected for one of the following reasons: +# +# * The `KeyUsage` value of the KMS key is incompatible with the API +# operation. +# +# * The encryption algorithm or signing algorithm specified for the +# operation is incompatible with the type of key material in the KMS +# key `(KeySpec`). +# +# For encrypting, decrypting, re-encrypting, and generating data keys, +# the `KeyUsage` must be `ENCRYPT_DECRYPT`. For signing and verifying +# messages, the `KeyUsage` must be `SIGN_VERIFY`. For generating and +# verifying message authentication codes (MACs), the `KeyUsage` must be +# `GENERATE_VERIFY_MAC`. For deriving key agreement secrets, the +# `KeyUsage` must be `KEY_AGREEMENT`. To find the `KeyUsage` of a KMS +# key, use the DescribeKey operation. +# +# To find the encryption or signing algorithms supported for a +# particular KMS key, use the DescribeKey operation. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/InvalidKeyUsageException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4033 +class Aws::KMS::Types::InvalidKeyUsageException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4034 +Aws::KMS::Types::InvalidKeyUsageException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the marker that specifies where +# pagination should next begin is not valid. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/InvalidMarkerException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4047 +class Aws::KMS::Types::InvalidMarkerException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4048 +Aws::KMS::Types::InvalidMarkerException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because an internal exception occurred. The +# request can be retried. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/KMSInternalException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4061 +class Aws::KMS::Types::KMSInternalException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4062 +Aws::KMS::Types::KMSInternalException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the HMAC verification failed. HMAC +# verification fails when the HMAC computed by using the specified +# message, HMAC KMS key, and MAC algorithm does not match the HMAC +# specified in the request. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/KMSInvalidMacException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4077 +class Aws::KMS::Types::KMSInvalidMacException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4078 +Aws::KMS::Types::KMSInvalidMacException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the signature verification failed. +# Signature verification fails when it cannot confirm that signature was +# produced by signing the specified message with the specified KMS key +# and signing algorithm. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/KMSInvalidSignatureException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4093 +class Aws::KMS::Types::KMSInvalidSignatureException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4094 +Aws::KMS::Types::KMSInvalidSignatureException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the state of the specified resource +# is not valid for this request. +# +# This exceptions means one of the following: +# +# * The key state of the KMS key is not compatible with the operation. +# +# To find the key state, use the DescribeKey operation. For more +# information about which key states are compatible with each KMS +# operation, see [Key states of KMS keys][1] in the Key +# Management Service Developer Guide . +# +# * For cryptographic operations on KMS keys in custom key stores, this +# exception represents a general failure with many possible causes. To +# identify the cause, see the error message that accompanies the +# exception. +# +# +# +# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/KMSInvalidStateException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4125 +class Aws::KMS::Types::KMSInvalidStateException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4126 +Aws::KMS::Types::KMSInvalidStateException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Contains information about each entry in the key list. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/KeyListEntry AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4144 +class Aws::KMS::Types::KeyListEntry < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4145 +Aws::KMS::Types::KeyListEntry::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Contains metadata about a KMS key. +# +# This data type is used as a response element for the CreateKey, +# DescribeKey, and ReplicateKey operations. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/KeyMetadata AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4403 +class Aws::KMS::Types::KeyMetadata < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4404 +Aws::KMS::Types::KeyMetadata::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the specified KMS key was not +# available. You can retry the request. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/KeyUnavailableException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4417 +class Aws::KMS::Types::KeyUnavailableException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4418 +Aws::KMS::Types::KeyUnavailableException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because a quota was exceeded. For more +# information, see [Quotas][1] in the *Key Management Service Developer +# Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/limits.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/LimitExceededException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4436 +class Aws::KMS::Types::LimitExceededException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4437 +Aws::KMS::Types::LimitExceededException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListAliasesRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4482 +class Aws::KMS::Types::ListAliasesRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4483 +Aws::KMS::Types::ListAliasesRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListAliasesResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4508 +class Aws::KMS::Types::ListAliasesResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4509 +Aws::KMS::Types::ListAliasesResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListGrantsRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4565 +class Aws::KMS::Types::ListGrantsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4566 +Aws::KMS::Types::ListGrantsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListGrantsResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4591 +class Aws::KMS::Types::ListGrantsResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4592 +Aws::KMS::Types::ListGrantsResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyPoliciesRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4635 +class Aws::KMS::Types::ListKeyPoliciesRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4636 +Aws::KMS::Types::ListKeyPoliciesRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyPoliciesResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4661 +class Aws::KMS::Types::ListKeyPoliciesResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4662 +Aws::KMS::Types::ListKeyPoliciesResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyRotationsRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4703 +class Aws::KMS::Types::ListKeyRotationsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4704 +Aws::KMS::Types::ListKeyRotationsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyRotationsResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4729 +class Aws::KMS::Types::ListKeyRotationsResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4730 +Aws::KMS::Types::ListKeyRotationsResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeysRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4754 +class Aws::KMS::Types::ListKeysRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4755 +Aws::KMS::Types::ListKeysRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeysResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4780 +class Aws::KMS::Types::ListKeysResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4781 +Aws::KMS::Types::ListKeysResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListResourceTagsRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4824 +class Aws::KMS::Types::ListResourceTagsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4825 +Aws::KMS::Types::ListResourceTagsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListResourceTagsResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4862 +class Aws::KMS::Types::ListResourceTagsResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4863 +Aws::KMS::Types::ListResourceTagsResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListRetirableGrantsRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4905 +class Aws::KMS::Types::ListRetirableGrantsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4906 +Aws::KMS::Types::ListRetirableGrantsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the specified policy is not +# syntactically or semantically correct. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/MalformedPolicyDocumentException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4919 +class Aws::KMS::Types::MalformedPolicyDocumentException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4920 +Aws::KMS::Types::MalformedPolicyDocumentException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Describes the configuration of this multi-Region key. This field +# appears only when the KMS key is a primary or replica of a +# multi-Region key. +# +# For more information about any listed KMS key, use the DescribeKey +# operation. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/MultiRegionConfiguration AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4950 +class Aws::KMS::Types::MultiRegionConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4951 +Aws::KMS::Types::MultiRegionConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Describes the primary or replica key in a multi-Region key. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/MultiRegionKey AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4971 +class Aws::KMS::Types::MultiRegionKey < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4972 +Aws::KMS::Types::MultiRegionKey::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the specified entity or resource +# could not be found. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/NotFoundException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4985 +class Aws::KMS::Types::NotFoundException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#4986 +Aws::KMS::Types::NotFoundException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/PutKeyPolicyRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5084 +class Aws::KMS::Types::PutKeyPolicyRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5085 +Aws::KMS::Types::PutKeyPolicyRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReEncryptRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5265 +class Aws::KMS::Types::ReEncryptRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5266 +Aws::KMS::Types::ReEncryptRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReEncryptResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5306 +class Aws::KMS::Types::ReEncryptResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5307 +Aws::KMS::Types::ReEncryptResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Contains information about the party that receives the response from +# the API operation. +# +# This data type is designed to support Amazon Web Services Nitro +# Enclaves, which lets you create an isolated compute environment in +# Amazon EC2. For information about the interaction between KMS and +# Amazon Web Services Nitro Enclaves, see [How Amazon Web Services Nitro +# Enclaves uses KMS][1] in the *Key Management Service Developer Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RecipientInfo AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5339 +class Aws::KMS::Types::RecipientInfo < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5340 +Aws::KMS::Types::RecipientInfo::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReplicateKeyRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5538 +class Aws::KMS::Types::ReplicateKeyRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5539 +Aws::KMS::Types::ReplicateKeyRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReplicateKeyResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5570 +class Aws::KMS::Types::ReplicateKeyResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5571 +Aws::KMS::Types::ReplicateKeyResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RetireGrantRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5626 +class Aws::KMS::Types::RetireGrantRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5627 +Aws::KMS::Types::RetireGrantRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RevokeGrantRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5673 +class Aws::KMS::Types::RevokeGrantRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5674 +Aws::KMS::Types::RevokeGrantRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RotateKeyOnDemandRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5710 +class Aws::KMS::Types::RotateKeyOnDemandRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5711 +Aws::KMS::Types::RotateKeyOnDemandRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RotateKeyOnDemandResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5723 +class Aws::KMS::Types::RotateKeyOnDemandResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5724 +Aws::KMS::Types::RotateKeyOnDemandResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Contains information about completed key material rotations. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RotationsListEntry AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5754 +class Aws::KMS::Types::RotationsListEntry < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5755 +Aws::KMS::Types::RotationsListEntry::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ScheduleKeyDeletionRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5798 +class Aws::KMS::Types::ScheduleKeyDeletionRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5799 +Aws::KMS::Types::ScheduleKeyDeletionRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ScheduleKeyDeletionResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5846 +class Aws::KMS::Types::ScheduleKeyDeletionResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5847 +Aws::KMS::Types::ScheduleKeyDeletionResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/SignRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5973 +class Aws::KMS::Types::SignRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#5974 +Aws::KMS::Types::SignRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/SignResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6017 +class Aws::KMS::Types::SignResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6018 +Aws::KMS::Types::SignResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A key-value pair. A tag consists of a tag key and a tag value. Tag +# keys and tag values are both required, but tag values can be empty +# (null) strings. +# +# Do not include confidential or sensitive information in this field. +# This field may be displayed in plaintext in CloudTrail logs and other +# output. +# +# For information about the rules that apply to tag keys and tag values, +# see [User-Defined Tag Restrictions][1] in the *Amazon Web Services +# Billing and Cost Management User Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Tag AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6050 +class Aws::KMS::Types::Tag < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6051 +Aws::KMS::Types::Tag::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because one or more tags are not valid. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/TagException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6063 +class Aws::KMS::Types::TagException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6064 +Aws::KMS::Types::TagException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/TagResourceRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6101 +class Aws::KMS::Types::TagResourceRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6102 +Aws::KMS::Types::TagResourceRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because a specified parameter is not +# supported or a specified resource is not valid for this operation. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UnsupportedOperationException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6115 +class Aws::KMS::Types::UnsupportedOperationException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6116 +Aws::KMS::Types::UnsupportedOperationException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UntagResourceRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6144 +class Aws::KMS::Types::UntagResourceRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6145 +Aws::KMS::Types::UntagResourceRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateAliasRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6195 +class Aws::KMS::Types::UpdateAliasRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6196 +Aws::KMS::Types::UpdateAliasRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateCustomKeyStoreRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6350 +class Aws::KMS::Types::UpdateCustomKeyStoreRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6351 +Aws::KMS::Types::UpdateCustomKeyStoreRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateCustomKeyStoreResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6357 +class Aws::KMS::Types::UpdateCustomKeyStoreResponse < ::Aws::EmptyStructure; end + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateKeyDescriptionRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6387 +class Aws::KMS::Types::UpdateKeyDescriptionRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6388 +Aws::KMS::Types::UpdateKeyDescriptionRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdatePrimaryRegionRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6422 +class Aws::KMS::Types::UpdatePrimaryRegionRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6423 +Aws::KMS::Types::UpdatePrimaryRegionRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/VerifyMacRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6490 +class Aws::KMS::Types::VerifyMacRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6491 +Aws::KMS::Types::VerifyMacRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/VerifyMacResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6518 +class Aws::KMS::Types::VerifyMacResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6519 +Aws::KMS::Types::VerifyMacResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/VerifyRequest AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6648 +class Aws::KMS::Types::VerifyRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6649 +Aws::KMS::Types::VerifyRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/VerifyResponse AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6679 +class Aws::KMS::Types::VerifyResponse < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6680 +Aws::KMS::Types::VerifyResponse::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the (`XksKeyId`) is already +# associated with another KMS key in this external key store. Each KMS +# key in an external key store must be associated with a different +# external key. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/XksKeyAlreadyInUseException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6695 +class Aws::KMS::Types::XksKeyAlreadyInUseException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6696 +Aws::KMS::Types::XksKeyAlreadyInUseException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Information about the [external key ][1]that is associated with a KMS +# key in an external key store. +# +# This element appears in a CreateKey or DescribeKey response only for a +# KMS key in an external key store. +# +# The *external key* is a symmetric encryption key that is hosted by an +# external key manager outside of Amazon Web Services. When you use the +# KMS key in an external key store in a cryptographic operation, the +# cryptographic operation is performed in the external key manager using +# the specified external key. For more information, see [External +# key][1] in the *Key Management Service Developer Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/XksKeyConfigurationType AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6726 +class Aws::KMS::Types::XksKeyConfigurationType < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6727 +Aws::KMS::Types::XksKeyConfigurationType::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the external key specified by the +# `XksKeyId` parameter did not meet the configuration requirements for +# an external key store. +# +# The external key must be an AES-256 symmetric key that is enabled and +# performs encryption and decryption. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/XksKeyInvalidConfigurationException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6744 +class Aws::KMS::Types::XksKeyInvalidConfigurationException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6745 +Aws::KMS::Types::XksKeyInvalidConfigurationException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the external key store proxy could +# not find the external key. This exception is thrown when the value of +# the `XksKeyId` parameter doesn't identify a key in the external key +# manager associated with the external key proxy. +# +# Verify that the `XksKeyId` represents an existing key in the external +# key manager. Use the key identifier that the external key store proxy +# uses to identify the key. For details, see the documentation provided +# with your external key store proxy or key manager. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/XksKeyNotFoundException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6765 +class Aws::KMS::Types::XksKeyNotFoundException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6766 +Aws::KMS::Types::XksKeyNotFoundException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# KMS uses the authentication credential to sign requests that it sends +# to the external key store proxy (XKS proxy) on your behalf. You +# establish these credentials on your external key store proxy and +# report them to KMS. +# +# The `XksProxyAuthenticationCredential` includes two required elements. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/XksProxyAuthenticationCredentialType AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6790 +class Aws::KMS::Types::XksProxyAuthenticationCredentialType < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6791 +Aws::KMS::Types::XksProxyAuthenticationCredentialType::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Detailed information about the external key store proxy (XKS proxy). +# Your external key store proxy translates KMS requests into a format +# that your external key manager can understand. These fields appear in +# a DescribeCustomKeyStores response only when the `CustomKeyStoreType` +# is `EXTERNAL_KEY_STORE`. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/XksProxyConfigurationType AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6844 +class Aws::KMS::Types::XksProxyConfigurationType < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6845 +Aws::KMS::Types::XksProxyConfigurationType::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the proxy credentials failed to +# authenticate to the specified external key store proxy. The specified +# external key store proxy rejected a status request from KMS due to +# invalid credentials. This can indicate an error in the credentials or +# in the identification of the external key store proxy. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/XksProxyIncorrectAuthenticationCredentialException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6861 +class Aws::KMS::Types::XksProxyIncorrectAuthenticationCredentialException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6862 +Aws::KMS::Types::XksProxyIncorrectAuthenticationCredentialException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the external key store proxy is not +# configured correctly. To identify the cause, see the error message +# that accompanies the exception. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/XksProxyInvalidConfigurationException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6876 +class Aws::KMS::Types::XksProxyInvalidConfigurationException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6877 +Aws::KMS::Types::XksProxyInvalidConfigurationException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# KMS cannot interpret the response it received from the external key +# store proxy. The problem might be a poorly constructed response, but +# it could also be a transient network issue. If you see this error +# repeatedly, report it to the proxy vendor. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/XksProxyInvalidResponseException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6892 +class Aws::KMS::Types::XksProxyInvalidResponseException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6893 +Aws::KMS::Types::XksProxyInvalidResponseException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the `XksProxyUriEndpoint` is already +# associated with another external key store in this Amazon Web Services +# Region. To identify the cause, see the error message that accompanies +# the exception. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/XksProxyUriEndpointInUseException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6908 +class Aws::KMS::Types::XksProxyUriEndpointInUseException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6909 +Aws::KMS::Types::XksProxyUriEndpointInUseException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the concatenation of the +# `XksProxyUriEndpoint` and `XksProxyUriPath` is already associated with +# another external key store in this Amazon Web Services Region. Each +# external key store in a Region must use a unique external key store +# proxy API address. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/XksProxyUriInUseException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6925 +class Aws::KMS::Types::XksProxyUriInUseException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6926 +Aws::KMS::Types::XksProxyUriInUseException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# KMS was unable to reach the specified `XksProxyUriPath`. The path must +# be reachable before you create the external key store or update its +# settings. +# +# This exception is also thrown when the external key store proxy +# response to a `GetHealthStatus` request indicates that all external +# key manager instances are unavailable. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/XksProxyUriUnreachableException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6944 +class Aws::KMS::Types::XksProxyUriUnreachableException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6945 +Aws::KMS::Types::XksProxyUriUnreachableException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the specified Amazon VPC endpoint +# service is already associated with another external key store in this +# Amazon Web Services Region. Each external key store in a Region must +# use a different Amazon VPC endpoint service. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/XksProxyVpcEndpointServiceInUseException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6960 +class Aws::KMS::Types::XksProxyVpcEndpointServiceInUseException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6961 +Aws::KMS::Types::XksProxyVpcEndpointServiceInUseException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because the Amazon VPC endpoint service +# configuration does not fulfill the requirements for an external key +# store. To identify the cause, see the error message that accompanies +# the exception and [review the requirements][1] for Amazon VPC endpoint +# service connectivity for an external key store. +# +# +# +# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/vpc-connectivity.html#xks-vpc-requirements +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/XksProxyVpcEndpointServiceInvalidConfigurationException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6981 +class Aws::KMS::Types::XksProxyVpcEndpointServiceInvalidConfigurationException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6982 +Aws::KMS::Types::XksProxyVpcEndpointServiceInvalidConfigurationException::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The request was rejected because KMS could not find the specified VPC +# endpoint service. Use DescribeCustomKeyStores to verify the VPC +# endpoint service name for the external key store. Also, confirm that +# the `Allow principals` list for the VPC endpoint service includes the +# KMS service principal for the Region, such as +# `cks.kms.us-east-1.amazonaws.com`. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/XksProxyVpcEndpointServiceNotFoundException AWS API Documentation +# +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#6999 +class Aws::KMS::Types::XksProxyVpcEndpointServiceNotFoundException < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-kms//lib/aws-sdk-kms/types.rb#7000 +Aws::KMS::Types::XksProxyVpcEndpointServiceNotFoundException::SENSITIVE = T.let(T.unsafe(nil), Array) diff --git a/sorbet/rbi/gems/aws-sdk-s3@1.167.0.rbi b/sorbet/rbi/gems/aws-sdk-s3@1.167.0.rbi new file mode 100644 index 00000000..4fd27a5d --- /dev/null +++ b/sorbet/rbi/gems/aws-sdk-s3@1.167.0.rbi @@ -0,0 +1,32884 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for types exported from the `aws-sdk-s3` gem. +# Please instead update this file by running `bin/tapioca gem aws-sdk-s3`. + + +# source://aws-sdk-s3//lib/aws-sdk-s3/customizations.rb#3 +module Aws + class << self + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#93 + def config; end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#96 + def config=(config); end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#155 + def eager_autoload!(*args); end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#148 + def empty_connection_pools!; end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#105 + def partition(partition_name); end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#110 + def partitions; end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#86 + def shared_config; end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#125 + def use_bundled_cert!; end + end +end + +# This module provides support for Amazon Simple Storage Service. This module is available in the +# `aws-sdk-s3` gem. +# +# # Client +# +# The {Client} class provides one method for each API operation. Operation +# methods each accept a hash of request parameters and return a response +# structure. +# +# s3 = Aws::S3::Client.new +# resp = s3.abort_multipart_upload(params) +# +# See {Client} for more information. +# +# # Errors +# +# Errors returned from Amazon Simple Storage Service are defined in the +# {Errors} module and all extend {Errors::ServiceError}. +# +# begin +# # do stuff +# rescue Aws::S3::Errors::ServiceError +# # rescues all Amazon Simple Storage Service API errors +# end +# +# See {Errors} for more information. +# +# source://aws-sdk-s3//lib/aws-sdk-s3.rb#45 +module Aws::S3 + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#11 + def access_grants_account_id_cache; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#6 + def access_grants_credentials_cache; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#8 + def bucket_region_cache; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/express_credentials_provider.rb#6 + def express_credentials_cache; end + end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption.rb#20 +Aws::S3::AES_GCM_TAG_LEN_BYTES = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials.rb#8 +class Aws::S3::AccessGrantsCredentials + include ::Aws::CredentialProvider + include ::Aws::RefreshingCredentials + + # @api private + # @return [AccessGrantsCredentials] a new instance of AccessGrantsCredentials + # + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials.rb#12 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @return [S3Control::Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials.rb#25 + def client; end + + # @api private + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials.rb#28 + def matched_grant_target; end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials.rb#32 + def refresh; end + + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials.rb#47 + def get_data_access_options; end + end +end + +# Returns Credentials class for S3 Access Grants. Accepts GetDataAccess +# params and other configuration as options. See +# {Aws::S3Control::Client#get_data_access} for details. +# +# source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#21 +class Aws::S3::AccessGrantsCredentialsProvider + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] + # @return [AccessGrantsCredentialsProvider] a new instance of AccessGrantsCredentialsProvider + # + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#42 + def initialize(options = T.unsafe(nil)); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#58 + def access_grants_credentials_for(options = T.unsafe(nil)); end + + # Returns the value of attribute s3_client. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#79 + def s3_client; end + + # Sets the attribute s3_client + # + # @param value the value to set the attribute s3_client to. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#79 + def s3_client=(_arg0); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#156 + def account_id_for_access_grants(target, credentials); end + + # returns the account id for the configured credentials + # + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#213 + def account_id_for_credentials(region, credentials); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#133 + def broad_search_credentials_cache_characters(target, permission, credentials); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#122 + def broad_search_credentials_cache_prefix(target, permission, credentials); end + + # extracts bucket name from target prefix + # + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#245 + def bucket_name_from(target); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#185 + def bucket_region_for_access_grants(target); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#164 + def cached_account_id_for(target, credentials); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#191 + def cached_bucket_region_for(bucket); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#95 + def cached_credentials_for(target, permission, credentials); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#239 + def credentials_cache_key(target, permission, credentials); end + + # returns the account id associated with the access grants instance + # + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#175 + def new_account_id_for(target, credentials); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#199 + def new_bucket_region_for(bucket); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#144 + def new_credentials_for(target, permission, credentials); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#83 + def s3_control_client(bucket_region); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/access_grants_credentials_provider.rb#229 + def target_prefix(bucket, key, prefix); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#12 +class Aws::S3::Bucket + extend ::Aws::Deprecations + + # @overload initialize + # @overload initialize + # @return [Bucket] a new instance of Bucket + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#22 + def initialize(*args); end + + # @return [BucketAcl] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1051 + def acl; end + + # Deletes all objects and versioned objects from this bucket + # + # @example + # + # bucket.clear! + # @return [void] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/bucket.rb#15 + def clear!; end + + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#47 + def client; end + + # @return [BucketCors] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1059 + def cors; end + + # @example Request syntax with placeholder values + # + # bucket.create({ + # acl: "private", # accepts private, public-read, public-read-write, authenticated-read + # create_bucket_configuration: { + # location_constraint: "af-south-1", # accepts af-south-1, ap-east-1, ap-northeast-1, ap-northeast-2, ap-northeast-3, ap-south-1, ap-south-2, ap-southeast-1, ap-southeast-2, ap-southeast-3, ca-central-1, cn-north-1, cn-northwest-1, EU, eu-central-1, eu-north-1, eu-south-1, eu-south-2, eu-west-1, eu-west-2, eu-west-3, me-south-1, sa-east-1, us-east-2, us-gov-east-1, us-gov-west-1, us-west-1, us-west-2 + # location: { + # type: "AvailabilityZone", # accepts AvailabilityZone + # name: "LocationNameAsString", + # }, + # bucket: { + # data_redundancy: "SingleAvailabilityZone", # accepts SingleAvailabilityZone + # type: "Directory", # accepts Directory + # }, + # }, + # grant_full_control: "GrantFullControl", + # grant_read: "GrantRead", + # grant_read_acp: "GrantReadACP", + # grant_write: "GrantWrite", + # grant_write_acp: "GrantWriteACP", + # object_lock_enabled_for_bucket: false, + # object_ownership: "BucketOwnerPreferred", # accepts BucketOwnerPreferred, ObjectWriter, BucketOwnerEnforced + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::CreateBucketOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#335 + def create(options = T.unsafe(nil)); end + + # Date the bucket was created. This date can change when making changes + # to your bucket, such as editing its bucket policy. + # + # @return [Time] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#40 + def creation_date; end + + # @raise [NotImplementedError] Raises when {#data_loaded?} is `false`. + # @return [Types::Bucket] Returns the data for this {Bucket}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#62 + def data; end + + # @return [Boolean] Returns `true` if this resource is loaded. Accessing attributes or + # {#data} on an unloaded resource will trigger a call to {#load}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#70 + def data_loaded?; end + + # @example Request syntax with placeholder values + # + # bucket.delete({ + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @param options [Hash] ({}) + # @return [EmptyStructure] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#360 + def delete(options = T.unsafe(nil)); end + + # Deletes all objects and versioned objects from this bucket and + # then deletes the bucket. + # + # @example + # + # bucket.delete! + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [void] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/bucket.rb#35 + def delete!(options = T.unsafe(nil)); end + + # @example Request syntax with placeholder values + # + # bucket.delete_objects({ + # delete: { # required + # objects: [ # required + # { + # key: "ObjectKey", # required + # version_id: "ObjectVersionId", + # }, + # ], + # quiet: false, + # }, + # mfa: "MFA", + # request_payer: "requester", # accepts requester + # bypass_governance_retention: false, + # expected_bucket_owner: "AccountId", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::DeleteObjectsOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#474 + def delete_objects(options = T.unsafe(nil)); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1507 + def deprecated_identifiers; end + + # @param options [Hash] ({}) + # @return [Boolean] Returns `true` if the Bucket exists. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#77 + def exists?(options = T.unsafe(nil)); end + + # @api private + # @deprecated + # + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def identifiers(*args, &block); end + + # @return [BucketLifecycle] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1067 + def lifecycle; end + + # @return [BucketLifecycleConfiguration] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1075 + def lifecycle_configuration; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/bucket.rb#136 + def load; end + + # @return [BucketLogging] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1083 + def logging; end + + # @example Request syntax with placeholder values + # + # multipart_uploads = bucket.multipart_uploads({ + # delimiter: "Delimiter", + # encoding_type: "url", # accepts url + # key_marker: "KeyMarker", + # prefix: "Prefix", + # upload_id_marker: "UploadIdMarker", + # expected_bucket_owner: "AccountId", + # request_payer: "requester", # accepts requester + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [MultipartUpload::Collection] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1207 + def multipart_uploads(options = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#33 + def name; end + + # @return [BucketNotification] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1231 + def notification; end + + # @param key [String] + # @return [Object] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1240 + def object(key); end + + # @example Request syntax with placeholder values + # + # object_versions = bucket.object_versions({ + # delimiter: "Delimiter", + # encoding_type: "url", # accepts url + # key_marker: "KeyMarker", + # prefix: "Prefix", + # version_id_marker: "VersionIdMarker", + # expected_bucket_owner: "AccountId", + # request_payer: "requester", # accepts requester + # optional_object_attributes: ["RestoreStatus"], # accepts RestoreStatus + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [ObjectVersion::Collection] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1324 + def object_versions(options = T.unsafe(nil)); end + + # @example Request syntax with placeholder values + # + # objects = bucket.objects({ + # delimiter: "Delimiter", + # encoding_type: "url", # accepts url + # prefix: "Prefix", + # fetch_owner: false, + # start_after: "StartAfter", + # request_payer: "requester", # accepts requester + # expected_bucket_owner: "AccountId", + # optional_object_attributes: ["RestoreStatus"], # accepts RestoreStatus + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [ObjectSummary::Collection] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1443 + def objects(options = T.unsafe(nil)); end + + # @return [BucketPolicy] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1466 + def policy; end + + # Creates a {PresignedPost} that makes it easy to upload a file from + # a web browser direct to Amazon S3 using an HTML post form with + # a file field. + # + # See the {PresignedPost} documentation for more information. + # + # @note You must specify `:key` or `:key_starts_with`. All other options + # are optional. + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @return [PresignedPost] + # @see PresignedPost + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/bucket.rb#126 + def presigned_post(options = T.unsafe(nil)); end + + # @example Request syntax with placeholder values + # + # object = bucket.put_object({ + # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control + # body: source_file, + # cache_control: "CacheControl", + # content_disposition: "ContentDisposition", + # content_encoding: "ContentEncoding", + # content_language: "ContentLanguage", + # content_length: 1, + # content_md5: "ContentMD5", + # content_type: "ContentType", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # checksum_crc32: "ChecksumCRC32", + # checksum_crc32c: "ChecksumCRC32C", + # checksum_sha1: "ChecksumSHA1", + # checksum_sha256: "ChecksumSHA256", + # expires: Time.now, + # if_none_match: "IfNoneMatch", + # grant_full_control: "GrantFullControl", + # grant_read: "GrantRead", + # grant_read_acp: "GrantReadACP", + # grant_write_acp: "GrantWriteACP", + # key: "ObjectKey", # required + # metadata: { + # "MetadataKey" => "MetadataValue", + # }, + # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse + # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE + # website_redirect_location: "WebsiteRedirectLocation", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # ssekms_key_id: "SSEKMSKeyId", + # ssekms_encryption_context: "SSEKMSEncryptionContext", + # bucket_key_enabled: false, + # request_payer: "requester", # accepts requester + # tagging: "TaggingHeader", + # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE + # object_lock_retain_until_date: Time.now, + # object_lock_legal_hold_status: "ON", # accepts ON, OFF + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Object] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1036 + def put_object(options = T.unsafe(nil)); end + + # @api private + # @raise [NotImplementedError] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#53 + def reload; end + + # @return [BucketRequestPayment] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1474 + def request_payment; end + + # @return [BucketTagging] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1482 + def tagging; end + + # Returns a public URL for this bucket. + # + # It will also work when provided an Access Point ARN. + # + # You can pass `virtual_host: true` to use the bucket name as the + # host name. + # + # bucket = s3.bucket('my-bucket.com') + # bucket.url(virtual_host: true) + # #=> "http://my-bucket.com" + # + # @example + # + # bucket = s3.bucket('bucket-name') + # bucket.url + # #=> "https://bucket-name.s3.amazonaws.com" + # @example + # + # bucket = s3.bucket( + # 'arn:aws:s3:us-east-1:123456789012:accesspoint:myendpoint' + # ) + # bucket.url + # #=> "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com" + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [String] the URL for this bucket. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/bucket.rb#88 + def url(options = T.unsafe(nil)); end + + # @return [BucketVersioning] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1490 + def versioning; end + + # Waiter polls an API operation until a resource enters a desired + # state. + # + # ## Basic Usage + # + # Waiter will polls until it is successful, it fails by + # entering a terminal state, or until a maximum number of attempts + # are made. + # + # # polls in a loop until condition is true + # resource.wait_until(options) {|resource| condition} + # + # ## Example + # + # instance.wait_until(max_attempts:10, delay:5) do |instance| + # instance.state.name == 'running' + # end + # + # ## Configuration + # + # You can configure the maximum number of polling attempts, and the + # delay (in seconds) between each polling attempt. The waiting condition is + # set by passing a block to {#wait_until}: + # + # # poll for ~25 seconds + # resource.wait_until(max_attempts:5,delay:5) {|resource|...} + # + # ## Callbacks + # + # You can be notified before each polling attempt and before each + # delay. If you throw `:success` or `:failure` from these callbacks, + # it will terminate the waiter. + # + # started_at = Time.now + # # poll for 1 hour, instead of a number of attempts + # proc = Proc.new do |attempts, response| + # throw :failure if Time.now - started_at > 3600 + # end + # + # # disable max attempts + # instance.wait_until(before_wait:proc, max_attempts:nil) {...} + # + # ## Handling Errors + # + # When a waiter is successful, it returns the Resource. When a waiter + # fails, it raises an error. + # + # begin + # resource.wait_until(...) + # rescue Aws::Waiters::Errors::WaiterFailed + # # resource did not enter the desired state in time + # end + # + # attempts + # attempt in seconds + # invoked before each attempt + # invoked before each wait + # + # @deprecated Use [Aws::S3::Client] #wait_until instead + # @note The waiting operation is performed on a copy. The original resource + # remains unchanged. + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter + # terminates because the waiter has entered a state that it will not + # transition out of, preventing success. + # + # yet successful. + # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is + # encountered while polling for a resource that is not expected. + # @raise [NotImplementedError] Raised when the resource does not + # @return [Resource] if the waiter was successful + # @yieldparam resource [Resource] to be used in the waiting condition. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#206 + def wait_until(options = T.unsafe(nil), &block); end + + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Bucket] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#94 + def wait_until_exists(options = T.unsafe(nil), &block); end + + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Bucket] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#113 + def wait_until_not_exists(options = T.unsafe(nil), &block); end + + # @return [BucketWebsite] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1498 + def website; end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1514 + def extract_name(args, options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1535 + def separate_params_and_options(options); end + + # @yield [waiter.waiter] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1525 + def yield_waiter_and_warn(waiter, &block); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket.rb#1552 +class Aws::S3::Bucket::Collection < ::Aws::Resources::Collection; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_acl.rb#12 +class Aws::S3::BucketAcl + extend ::Aws::Deprecations + + # @overload initialize + # @overload initialize + # @return [BucketAcl] a new instance of BucketAcl + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_acl.rb#22 + def initialize(*args); end + + # @return [Bucket] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_acl.rb#281 + def bucket; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_acl.rb#33 + def bucket_name; end + + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_acl.rb#52 + def client; end + + # @return [Types::GetBucketAclOutput] Returns the data for this {BucketAcl}. Calls + # {Client#get_bucket_acl} if {#data_loaded?} is `false`. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_acl.rb#74 + def data; end + + # @return [Boolean] Returns `true` if this resource is loaded. Accessing attributes or + # {#data} on an unloaded resource will trigger a call to {#load}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_acl.rb#82 + def data_loaded?; end + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_acl.rb#290 + def deprecated_identifiers; end + + # A list of grants. + # + # @return [Array] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_acl.rb#45 + def grants; end + + # @api private + # @deprecated + # + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def identifiers(*args, &block); end + + # Loads, or reloads {#data} for the current {BucketAcl}. + # Returns `self` making it possible to chain methods. + # + # bucket_acl.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_acl.rb#62 + def load; end + + # Container for the bucket owner's display name and ID. + # + # @return [Types::Owner] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_acl.rb#39 + def owner; end + + # @example Request syntax with placeholder values + # + # bucket_acl.put({ + # acl: "private", # accepts private, public-read, public-read-write, authenticated-read + # access_control_policy: { + # grants: [ + # { + # grantee: { + # display_name: "DisplayName", + # email_address: "EmailAddress", + # id: "ID", + # type: "CanonicalUser", # required, accepts CanonicalUser, AmazonCustomerByEmail, Group + # uri: "URI", + # }, + # permission: "FULL_CONTROL", # accepts FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP + # }, + # ], + # owner: { + # display_name: "DisplayName", + # id: "ID", + # }, + # }, + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # grant_full_control: "GrantFullControl", + # grant_read: "GrantRead", + # grant_read_acp: "GrantReadACP", + # grant_write: "GrantWrite", + # grant_write_acp: "GrantWriteACP", + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [EmptyStructure] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_acl.rb#270 + def put(options = T.unsafe(nil)); end + + # Loads, or reloads {#data} for the current {BucketAcl}. + # Returns `self` making it possible to chain methods. + # + # bucket_acl.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_acl.rb#62 + def reload; end + + # Waiter polls an API operation until a resource enters a desired + # state. + # + # ## Basic Usage + # + # Waiter will polls until it is successful, it fails by + # entering a terminal state, or until a maximum number of attempts + # are made. + # + # # polls in a loop until condition is true + # resource.wait_until(options) {|resource| condition} + # + # ## Example + # + # instance.wait_until(max_attempts:10, delay:5) do |instance| + # instance.state.name == 'running' + # end + # + # ## Configuration + # + # You can configure the maximum number of polling attempts, and the + # delay (in seconds) between each polling attempt. The waiting condition is + # set by passing a block to {#wait_until}: + # + # # poll for ~25 seconds + # resource.wait_until(max_attempts:5,delay:5) {|resource|...} + # + # ## Callbacks + # + # You can be notified before each polling attempt and before each + # delay. If you throw `:success` or `:failure` from these callbacks, + # it will terminate the waiter. + # + # started_at = Time.now + # # poll for 1 hour, instead of a number of attempts + # proc = Proc.new do |attempts, response| + # throw :failure if Time.now - started_at > 3600 + # end + # + # # disable max attempts + # instance.wait_until(before_wait:proc, max_attempts:nil) {...} + # + # ## Handling Errors + # + # When a waiter is successful, it returns the Resource. When a waiter + # fails, it raises an error. + # + # begin + # resource.wait_until(...) + # rescue Aws::Waiters::Errors::WaiterFailed + # # resource did not enter the desired state in time + # end + # + # attempts + # attempt in seconds + # invoked before each attempt + # invoked before each wait + # + # @deprecated Use [Aws::S3::Client] #wait_until instead + # @note The waiting operation is performed on a copy. The original resource + # remains unchanged. + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter + # terminates because the waiter has entered a state that it will not + # transition out of, preventing success. + # + # yet successful. + # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is + # encountered while polling for a resource that is not expected. + # @raise [NotImplementedError] Raised when the resource does not + # @return [Resource] if the waiter was successful + # @yieldparam resource [Resource] to be used in the waiting condition. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_acl.rb#166 + def wait_until(options = T.unsafe(nil), &block); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_acl.rb#297 + def extract_bucket_name(args, options); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_acl.rb#308 +class Aws::S3::BucketAcl::Collection < ::Aws::Resources::Collection; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_cors.rb#12 +class Aws::S3::BucketCors + extend ::Aws::Deprecations + + # @overload initialize + # @overload initialize + # @return [BucketCors] a new instance of BucketCors + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_cors.rb#22 + def initialize(*args); end + + # @return [Bucket] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_cors.rb#272 + def bucket; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_cors.rb#33 + def bucket_name; end + + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_cors.rb#47 + def client; end + + # A set of origins and methods (cross-origin access that you want to + # allow). You can add up to 100 rules to the configuration. + # + # @return [Array] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_cors.rb#40 + def cors_rules; end + + # @return [Types::GetBucketCorsOutput] Returns the data for this {BucketCors}. Calls + # {Client#get_bucket_cors} if {#data_loaded?} is `false`. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_cors.rb#69 + def data; end + + # @return [Boolean] Returns `true` if this resource is loaded. Accessing attributes or + # {#data} on an unloaded resource will trigger a call to {#load}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_cors.rb#77 + def data_loaded?; end + + # @example Request syntax with placeholder values + # + # bucket_cors.delete({ + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @param options [Hash] ({}) + # @return [EmptyStructure] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_cors.rb#193 + def delete(options = T.unsafe(nil)); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_cors.rb#281 + def deprecated_identifiers; end + + # @api private + # @deprecated + # + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def identifiers(*args, &block); end + + # Loads, or reloads {#data} for the current {BucketCors}. + # Returns `self` making it possible to chain methods. + # + # bucket_cors.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_cors.rb#57 + def load; end + + # @example Request syntax with placeholder values + # + # bucket_cors.put({ + # cors_configuration: { # required + # cors_rules: [ # required + # { + # id: "ID", + # allowed_headers: ["AllowedHeader"], + # allowed_methods: ["AllowedMethod"], # required + # allowed_origins: ["AllowedOrigin"], # required + # expose_headers: ["ExposeHeader"], + # max_age_seconds: 1, + # }, + # ], + # }, + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [EmptyStructure] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_cors.rb#261 + def put(options = T.unsafe(nil)); end + + # Loads, or reloads {#data} for the current {BucketCors}. + # Returns `self` making it possible to chain methods. + # + # bucket_cors.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_cors.rb#57 + def reload; end + + # Waiter polls an API operation until a resource enters a desired + # state. + # + # ## Basic Usage + # + # Waiter will polls until it is successful, it fails by + # entering a terminal state, or until a maximum number of attempts + # are made. + # + # # polls in a loop until condition is true + # resource.wait_until(options) {|resource| condition} + # + # ## Example + # + # instance.wait_until(max_attempts:10, delay:5) do |instance| + # instance.state.name == 'running' + # end + # + # ## Configuration + # + # You can configure the maximum number of polling attempts, and the + # delay (in seconds) between each polling attempt. The waiting condition is + # set by passing a block to {#wait_until}: + # + # # poll for ~25 seconds + # resource.wait_until(max_attempts:5,delay:5) {|resource|...} + # + # ## Callbacks + # + # You can be notified before each polling attempt and before each + # delay. If you throw `:success` or `:failure` from these callbacks, + # it will terminate the waiter. + # + # started_at = Time.now + # # poll for 1 hour, instead of a number of attempts + # proc = Proc.new do |attempts, response| + # throw :failure if Time.now - started_at > 3600 + # end + # + # # disable max attempts + # instance.wait_until(before_wait:proc, max_attempts:nil) {...} + # + # ## Handling Errors + # + # When a waiter is successful, it returns the Resource. When a waiter + # fails, it raises an error. + # + # begin + # resource.wait_until(...) + # rescue Aws::Waiters::Errors::WaiterFailed + # # resource did not enter the desired state in time + # end + # + # attempts + # attempt in seconds + # invoked before each attempt + # invoked before each wait + # + # @deprecated Use [Aws::S3::Client] #wait_until instead + # @note The waiting operation is performed on a copy. The original resource + # remains unchanged. + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter + # terminates because the waiter has entered a state that it will not + # transition out of, preventing success. + # + # yet successful. + # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is + # encountered while polling for a resource that is not expected. + # @raise [NotImplementedError] Raised when the resource does not + # @return [Resource] if the waiter was successful + # @yieldparam resource [Resource] to be used in the waiting condition. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_cors.rb#161 + def wait_until(options = T.unsafe(nil), &block); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_cors.rb#288 + def extract_bucket_name(args, options); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_cors.rb#299 +class Aws::S3::BucketCors::Collection < ::Aws::Resources::Collection; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle.rb#12 +class Aws::S3::BucketLifecycle + extend ::Aws::Deprecations + + # @overload initialize + # @overload initialize + # @return [BucketLifecycle] a new instance of BucketLifecycle + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle.rb#22 + def initialize(*args); end + + # @return [Bucket] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle.rb#275 + def bucket; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle.rb#33 + def bucket_name; end + + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle.rb#46 + def client; end + + # @return [Types::GetBucketLifecycleOutput] Returns the data for this {BucketLifecycle}. Calls + # {Client#get_bucket_lifecycle} if {#data_loaded?} is `false`. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle.rb#68 + def data; end + + # @return [Boolean] Returns `true` if this resource is loaded. Accessing attributes or + # {#data} on an unloaded resource will trigger a call to {#load}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle.rb#76 + def data_loaded?; end + + # @example Request syntax with placeholder values + # + # bucket_lifecycle.delete({ + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @param options [Hash] ({}) + # @return [EmptyStructure] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle.rb#192 + def delete(options = T.unsafe(nil)); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle.rb#284 + def deprecated_identifiers; end + + # @api private + # @deprecated + # + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def identifiers(*args, &block); end + + # Loads, or reloads {#data} for the current {BucketLifecycle}. + # Returns `self` making it possible to chain methods. + # + # bucket_lifecycle.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle.rb#56 + def load; end + + # @example Request syntax with placeholder values + # + # bucket_lifecycle.put({ + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # lifecycle_configuration: { + # rules: [ # required + # { + # expiration: { + # date: Time.now, + # days: 1, + # expired_object_delete_marker: false, + # }, + # id: "ID", + # prefix: "Prefix", # required + # status: "Enabled", # required, accepts Enabled, Disabled + # transition: { + # date: Time.now, + # days: 1, + # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE, GLACIER_IR + # }, + # noncurrent_version_transition: { + # noncurrent_days: 1, + # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE, GLACIER_IR + # newer_noncurrent_versions: 1, + # }, + # noncurrent_version_expiration: { + # noncurrent_days: 1, + # newer_noncurrent_versions: 1, + # }, + # abort_incomplete_multipart_upload: { + # days_after_initiation: 1, + # }, + # }, + # ], + # }, + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [EmptyStructure] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle.rb#264 + def put(options = T.unsafe(nil)); end + + # Loads, or reloads {#data} for the current {BucketLifecycle}. + # Returns `self` making it possible to chain methods. + # + # bucket_lifecycle.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle.rb#56 + def reload; end + + # Container for a lifecycle rule. + # + # @return [Array] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle.rb#39 + def rules; end + + # Waiter polls an API operation until a resource enters a desired + # state. + # + # ## Basic Usage + # + # Waiter will polls until it is successful, it fails by + # entering a terminal state, or until a maximum number of attempts + # are made. + # + # # polls in a loop until condition is true + # resource.wait_until(options) {|resource| condition} + # + # ## Example + # + # instance.wait_until(max_attempts:10, delay:5) do |instance| + # instance.state.name == 'running' + # end + # + # ## Configuration + # + # You can configure the maximum number of polling attempts, and the + # delay (in seconds) between each polling attempt. The waiting condition is + # set by passing a block to {#wait_until}: + # + # # poll for ~25 seconds + # resource.wait_until(max_attempts:5,delay:5) {|resource|...} + # + # ## Callbacks + # + # You can be notified before each polling attempt and before each + # delay. If you throw `:success` or `:failure` from these callbacks, + # it will terminate the waiter. + # + # started_at = Time.now + # # poll for 1 hour, instead of a number of attempts + # proc = Proc.new do |attempts, response| + # throw :failure if Time.now - started_at > 3600 + # end + # + # # disable max attempts + # instance.wait_until(before_wait:proc, max_attempts:nil) {...} + # + # ## Handling Errors + # + # When a waiter is successful, it returns the Resource. When a waiter + # fails, it raises an error. + # + # begin + # resource.wait_until(...) + # rescue Aws::Waiters::Errors::WaiterFailed + # # resource did not enter the desired state in time + # end + # + # attempts + # attempt in seconds + # invoked before each attempt + # invoked before each wait + # + # @deprecated Use [Aws::S3::Client] #wait_until instead + # @note The waiting operation is performed on a copy. The original resource + # remains unchanged. + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter + # terminates because the waiter has entered a state that it will not + # transition out of, preventing success. + # + # yet successful. + # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is + # encountered while polling for a resource that is not expected. + # @raise [NotImplementedError] Raised when the resource does not + # @return [Resource] if the waiter was successful + # @yieldparam resource [Resource] to be used in the waiting condition. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle.rb#160 + def wait_until(options = T.unsafe(nil), &block); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle.rb#291 + def extract_bucket_name(args, options); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle.rb#302 +class Aws::S3::BucketLifecycle::Collection < ::Aws::Resources::Collection; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle_configuration.rb#12 +class Aws::S3::BucketLifecycleConfiguration + extend ::Aws::Deprecations + + # @overload initialize + # @overload initialize + # @return [BucketLifecycleConfiguration] a new instance of BucketLifecycleConfiguration + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle_configuration.rb#22 + def initialize(*args); end + + # @return [Bucket] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle_configuration.rb#332 + def bucket; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle_configuration.rb#33 + def bucket_name; end + + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle_configuration.rb#66 + def client; end + + # @return [Types::GetBucketLifecycleConfigurationOutput] Returns the data for this {BucketLifecycleConfiguration}. Calls + # {Client#get_bucket_lifecycle_configuration} if {#data_loaded?} is `false`. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle_configuration.rb#88 + def data; end + + # @return [Boolean] Returns `true` if this resource is loaded. Accessing attributes or + # {#data} on an unloaded resource will trigger a call to {#load}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle_configuration.rb#96 + def data_loaded?; end + + # @example Request syntax with placeholder values + # + # bucket_lifecycle_configuration.delete({ + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @param options [Hash] ({}) + # @return [EmptyStructure] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle_configuration.rb#212 + def delete(options = T.unsafe(nil)); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle_configuration.rb#341 + def deprecated_identifiers; end + + # @api private + # @deprecated + # + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def identifiers(*args, &block); end + + # Loads, or reloads {#data} for the current {BucketLifecycleConfiguration}. + # Returns `self` making it possible to chain methods. + # + # bucket_lifecycle_configuration.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle_configuration.rb#76 + def load; end + + # @example Request syntax with placeholder values + # + # bucket_lifecycle_configuration.put({ + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # lifecycle_configuration: { + # rules: [ # required + # { + # expiration: { + # date: Time.now, + # days: 1, + # expired_object_delete_marker: false, + # }, + # id: "ID", + # prefix: "Prefix", + # filter: { + # prefix: "Prefix", + # tag: { + # key: "ObjectKey", # required + # value: "Value", # required + # }, + # object_size_greater_than: 1, + # object_size_less_than: 1, + # and: { + # prefix: "Prefix", + # tags: [ + # { + # key: "ObjectKey", # required + # value: "Value", # required + # }, + # ], + # object_size_greater_than: 1, + # object_size_less_than: 1, + # }, + # }, + # status: "Enabled", # required, accepts Enabled, Disabled + # transitions: [ + # { + # date: Time.now, + # days: 1, + # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE, GLACIER_IR + # }, + # ], + # noncurrent_version_transitions: [ + # { + # noncurrent_days: 1, + # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE, GLACIER_IR + # newer_noncurrent_versions: 1, + # }, + # ], + # noncurrent_version_expiration: { + # noncurrent_days: 1, + # newer_noncurrent_versions: 1, + # }, + # abort_incomplete_multipart_upload: { + # days_after_initiation: 1, + # }, + # }, + # ], + # }, + # expected_bucket_owner: "AccountId", + # transition_default_minimum_object_size: "varies_by_storage_class", # accepts varies_by_storage_class, all_storage_classes_128K + # }) + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::PutBucketLifecycleConfigurationOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle_configuration.rb#321 + def put(options = T.unsafe(nil)); end + + # Loads, or reloads {#data} for the current {BucketLifecycleConfiguration}. + # Returns `self` making it possible to chain methods. + # + # bucket_lifecycle_configuration.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle_configuration.rb#76 + def reload; end + + # Container for a lifecycle rule. + # + # @return [Array] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle_configuration.rb#39 + def rules; end + + # Indicates which default minimum object size behavior is applied to the + # lifecycle configuration. + # + # * `all_storage_classes_128K` - Objects smaller than 128 KB will not + # transition to any storage class by default. + # + # * `varies_by_storage_class` - Objects smaller than 128 KB will + # transition to Glacier Flexible Retrieval or Glacier Deep Archive + # storage classes. By default, all other storage classes will prevent + # transitions smaller than 128 KB. + # + # To customize the minimum object size for any transition you can add a + # filter that specifies a custom `ObjectSizeGreaterThan` or + # `ObjectSizeLessThan` in the body of your transition rule. Custom + # filters always take precedence over the default transition behavior. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle_configuration.rb#59 + def transition_default_minimum_object_size; end + + # Waiter polls an API operation until a resource enters a desired + # state. + # + # ## Basic Usage + # + # Waiter will polls until it is successful, it fails by + # entering a terminal state, or until a maximum number of attempts + # are made. + # + # # polls in a loop until condition is true + # resource.wait_until(options) {|resource| condition} + # + # ## Example + # + # instance.wait_until(max_attempts:10, delay:5) do |instance| + # instance.state.name == 'running' + # end + # + # ## Configuration + # + # You can configure the maximum number of polling attempts, and the + # delay (in seconds) between each polling attempt. The waiting condition is + # set by passing a block to {#wait_until}: + # + # # poll for ~25 seconds + # resource.wait_until(max_attempts:5,delay:5) {|resource|...} + # + # ## Callbacks + # + # You can be notified before each polling attempt and before each + # delay. If you throw `:success` or `:failure` from these callbacks, + # it will terminate the waiter. + # + # started_at = Time.now + # # poll for 1 hour, instead of a number of attempts + # proc = Proc.new do |attempts, response| + # throw :failure if Time.now - started_at > 3600 + # end + # + # # disable max attempts + # instance.wait_until(before_wait:proc, max_attempts:nil) {...} + # + # ## Handling Errors + # + # When a waiter is successful, it returns the Resource. When a waiter + # fails, it raises an error. + # + # begin + # resource.wait_until(...) + # rescue Aws::Waiters::Errors::WaiterFailed + # # resource did not enter the desired state in time + # end + # + # attempts + # attempt in seconds + # invoked before each attempt + # invoked before each wait + # + # @deprecated Use [Aws::S3::Client] #wait_until instead + # @note The waiting operation is performed on a copy. The original resource + # remains unchanged. + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter + # terminates because the waiter has entered a state that it will not + # transition out of, preventing success. + # + # yet successful. + # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is + # encountered while polling for a resource that is not expected. + # @raise [NotImplementedError] Raised when the resource does not + # @return [Resource] if the waiter was successful + # @yieldparam resource [Resource] to be used in the waiting condition. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle_configuration.rb#180 + def wait_until(options = T.unsafe(nil), &block); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle_configuration.rb#348 + def extract_bucket_name(args, options); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_lifecycle_configuration.rb#359 +class Aws::S3::BucketLifecycleConfiguration::Collection < ::Aws::Resources::Collection; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_logging.rb#12 +class Aws::S3::BucketLogging + extend ::Aws::Deprecations + + # @overload initialize + # @overload initialize + # @return [BucketLogging] a new instance of BucketLogging + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_logging.rb#22 + def initialize(*args); end + + # @return [Bucket] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_logging.rb#259 + def bucket; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_logging.rb#33 + def bucket_name; end + + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_logging.rb#52 + def client; end + + # @return [Types::GetBucketLoggingOutput] Returns the data for this {BucketLogging}. Calls + # {Client#get_bucket_logging} if {#data_loaded?} is `false`. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_logging.rb#74 + def data; end + + # @return [Boolean] Returns `true` if this resource is loaded. Accessing attributes or + # {#data} on an unloaded resource will trigger a call to {#load}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_logging.rb#82 + def data_loaded?; end + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_logging.rb#268 + def deprecated_identifiers; end + + # @api private + # @deprecated + # + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def identifiers(*args, &block); end + + # Loads, or reloads {#data} for the current {BucketLogging}. + # Returns `self` making it possible to chain methods. + # + # bucket_logging.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_logging.rb#62 + def load; end + + # Describes where logs are stored and the prefix that Amazon S3 assigns + # to all log object keys for a bucket. For more information, see [PUT + # Bucket logging][1] in the *Amazon S3 API Reference*. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html + # + # @return [Types::LoggingEnabled] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_logging.rb#45 + def logging_enabled; end + + # @example Request syntax with placeholder values + # + # bucket_logging.put({ + # bucket_logging_status: { # required + # logging_enabled: { + # target_bucket: "TargetBucket", # required + # target_grants: [ + # { + # grantee: { + # display_name: "DisplayName", + # email_address: "EmailAddress", + # id: "ID", + # type: "CanonicalUser", # required, accepts CanonicalUser, AmazonCustomerByEmail, Group + # uri: "URI", + # }, + # permission: "FULL_CONTROL", # accepts FULL_CONTROL, READ, WRITE + # }, + # ], + # target_prefix: "TargetPrefix", # required + # target_object_key_format: { + # simple_prefix: { + # }, + # partitioned_prefix: { + # partition_date_source: "EventTime", # accepts EventTime, DeliveryTime + # }, + # }, + # }, + # }, + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [EmptyStructure] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_logging.rb#248 + def put(options = T.unsafe(nil)); end + + # Loads, or reloads {#data} for the current {BucketLogging}. + # Returns `self` making it possible to chain methods. + # + # bucket_logging.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_logging.rb#62 + def reload; end + + # Waiter polls an API operation until a resource enters a desired + # state. + # + # ## Basic Usage + # + # Waiter will polls until it is successful, it fails by + # entering a terminal state, or until a maximum number of attempts + # are made. + # + # # polls in a loop until condition is true + # resource.wait_until(options) {|resource| condition} + # + # ## Example + # + # instance.wait_until(max_attempts:10, delay:5) do |instance| + # instance.state.name == 'running' + # end + # + # ## Configuration + # + # You can configure the maximum number of polling attempts, and the + # delay (in seconds) between each polling attempt. The waiting condition is + # set by passing a block to {#wait_until}: + # + # # poll for ~25 seconds + # resource.wait_until(max_attempts:5,delay:5) {|resource|...} + # + # ## Callbacks + # + # You can be notified before each polling attempt and before each + # delay. If you throw `:success` or `:failure` from these callbacks, + # it will terminate the waiter. + # + # started_at = Time.now + # # poll for 1 hour, instead of a number of attempts + # proc = Proc.new do |attempts, response| + # throw :failure if Time.now - started_at > 3600 + # end + # + # # disable max attempts + # instance.wait_until(before_wait:proc, max_attempts:nil) {...} + # + # ## Handling Errors + # + # When a waiter is successful, it returns the Resource. When a waiter + # fails, it raises an error. + # + # begin + # resource.wait_until(...) + # rescue Aws::Waiters::Errors::WaiterFailed + # # resource did not enter the desired state in time + # end + # + # attempts + # attempt in seconds + # invoked before each attempt + # invoked before each wait + # + # @deprecated Use [Aws::S3::Client] #wait_until instead + # @note The waiting operation is performed on a copy. The original resource + # remains unchanged. + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter + # terminates because the waiter has entered a state that it will not + # transition out of, preventing success. + # + # yet successful. + # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is + # encountered while polling for a resource that is not expected. + # @raise [NotImplementedError] Raised when the resource does not + # @return [Resource] if the waiter was successful + # @yieldparam resource [Resource] to be used in the waiting condition. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_logging.rb#166 + def wait_until(options = T.unsafe(nil), &block); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_logging.rb#275 + def extract_bucket_name(args, options); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_logging.rb#286 +class Aws::S3::BucketLogging::Collection < ::Aws::Resources::Collection; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_notification.rb#12 +class Aws::S3::BucketNotification + extend ::Aws::Deprecations + + # @overload initialize + # @overload initialize + # @return [BucketNotification] a new instance of BucketNotification + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_notification.rb#22 + def initialize(*args); end + + # @return [Bucket] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_notification.rb#287 + def bucket; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_notification.rb#33 + def bucket_name; end + + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_notification.rb#67 + def client; end + + # @return [Types::NotificationConfiguration] Returns the data for this {BucketNotification}. Calls + # {Client#get_bucket_notification_configuration} if {#data_loaded?} is `false`. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_notification.rb#89 + def data; end + + # @return [Boolean] Returns `true` if this resource is loaded. Accessing attributes or + # {#data} on an unloaded resource will trigger a call to {#load}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_notification.rb#97 + def data_loaded?; end + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_notification.rb#296 + def deprecated_identifiers; end + + # Enables delivery of events to Amazon EventBridge. + # + # @return [Types::EventBridgeConfiguration] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_notification.rb#60 + def event_bridge_configuration; end + + # @api private + # @deprecated + # + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def identifiers(*args, &block); end + + # Describes the Lambda functions to invoke and the events for which to + # invoke them. + # + # @return [Array] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_notification.rb#54 + def lambda_function_configurations; end + + # Loads, or reloads {#data} for the current {BucketNotification}. + # Returns `self` making it possible to chain methods. + # + # bucket_notification.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_notification.rb#77 + def load; end + + # @example Request syntax with placeholder values + # + # bucket_notification.put({ + # notification_configuration: { # required + # topic_configurations: [ + # { + # id: "NotificationId", + # topic_arn: "TopicArn", # required + # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete + # filter: { + # key: { + # filter_rules: [ + # { + # name: "prefix", # accepts prefix, suffix + # value: "FilterRuleValue", + # }, + # ], + # }, + # }, + # }, + # ], + # queue_configurations: [ + # { + # id: "NotificationId", + # queue_arn: "QueueArn", # required + # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete + # filter: { + # key: { + # filter_rules: [ + # { + # name: "prefix", # accepts prefix, suffix + # value: "FilterRuleValue", + # }, + # ], + # }, + # }, + # }, + # ], + # lambda_function_configurations: [ + # { + # id: "NotificationId", + # lambda_function_arn: "LambdaFunctionArn", # required + # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete + # filter: { + # key: { + # filter_rules: [ + # { + # name: "prefix", # accepts prefix, suffix + # value: "FilterRuleValue", + # }, + # ], + # }, + # }, + # }, + # ], + # event_bridge_configuration: { + # }, + # }, + # expected_bucket_owner: "AccountId", + # skip_destination_validation: false, + # }) + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [EmptyStructure] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_notification.rb#276 + def put(options = T.unsafe(nil)); end + + # The Amazon Simple Queue Service queues to publish messages to and the + # events for which to publish messages. + # + # @return [Array] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_notification.rb#47 + def queue_configurations; end + + # Loads, or reloads {#data} for the current {BucketNotification}. + # Returns `self` making it possible to chain methods. + # + # bucket_notification.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_notification.rb#77 + def reload; end + + # The topic to which notifications are sent and the events for which + # notifications are generated. + # + # @return [Array] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_notification.rb#40 + def topic_configurations; end + + # Waiter polls an API operation until a resource enters a desired + # state. + # + # ## Basic Usage + # + # Waiter will polls until it is successful, it fails by + # entering a terminal state, or until a maximum number of attempts + # are made. + # + # # polls in a loop until condition is true + # resource.wait_until(options) {|resource| condition} + # + # ## Example + # + # instance.wait_until(max_attempts:10, delay:5) do |instance| + # instance.state.name == 'running' + # end + # + # ## Configuration + # + # You can configure the maximum number of polling attempts, and the + # delay (in seconds) between each polling attempt. The waiting condition is + # set by passing a block to {#wait_until}: + # + # # poll for ~25 seconds + # resource.wait_until(max_attempts:5,delay:5) {|resource|...} + # + # ## Callbacks + # + # You can be notified before each polling attempt and before each + # delay. If you throw `:success` or `:failure` from these callbacks, + # it will terminate the waiter. + # + # started_at = Time.now + # # poll for 1 hour, instead of a number of attempts + # proc = Proc.new do |attempts, response| + # throw :failure if Time.now - started_at > 3600 + # end + # + # # disable max attempts + # instance.wait_until(before_wait:proc, max_attempts:nil) {...} + # + # ## Handling Errors + # + # When a waiter is successful, it returns the Resource. When a waiter + # fails, it raises an error. + # + # begin + # resource.wait_until(...) + # rescue Aws::Waiters::Errors::WaiterFailed + # # resource did not enter the desired state in time + # end + # + # attempts + # attempt in seconds + # invoked before each attempt + # invoked before each wait + # + # @deprecated Use [Aws::S3::Client] #wait_until instead + # @note The waiting operation is performed on a copy. The original resource + # remains unchanged. + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter + # terminates because the waiter has entered a state that it will not + # transition out of, preventing success. + # + # yet successful. + # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is + # encountered while polling for a resource that is not expected. + # @raise [NotImplementedError] Raised when the resource does not + # @return [Resource] if the waiter was successful + # @yieldparam resource [Resource] to be used in the waiting condition. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_notification.rb#181 + def wait_until(options = T.unsafe(nil), &block); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_notification.rb#303 + def extract_bucket_name(args, options); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_notification.rb#314 +class Aws::S3::BucketNotification::Collection < ::Aws::Resources::Collection; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_policy.rb#12 +class Aws::S3::BucketPolicy + extend ::Aws::Deprecations + + # @overload initialize + # @overload initialize + # @return [BucketPolicy] a new instance of BucketPolicy + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_policy.rb#22 + def initialize(*args); end + + # @return [Bucket] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_policy.rb#296 + def bucket; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_policy.rb#33 + def bucket_name; end + + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_policy.rb#46 + def client; end + + # @return [Types::GetBucketPolicyOutput] Returns the data for this {BucketPolicy}. Calls + # {Client#get_bucket_policy} if {#data_loaded?} is `false`. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_policy.rb#68 + def data; end + + # @return [Boolean] Returns `true` if this resource is loaded. Accessing attributes or + # {#data} on an unloaded resource will trigger a call to {#load}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_policy.rb#76 + def data_loaded?; end + + # @example Request syntax with placeholder values + # + # bucket_policy.delete({ + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @param options [Hash] ({}) + # @return [EmptyStructure] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_policy.rb#198 + def delete(options = T.unsafe(nil)); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_policy.rb#305 + def deprecated_identifiers; end + + # @api private + # @deprecated + # + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def identifiers(*args, &block); end + + # Loads, or reloads {#data} for the current {BucketPolicy}. + # Returns `self` making it possible to chain methods. + # + # bucket_policy.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_policy.rb#56 + def load; end + + # The bucket policy as a JSON document. + # + # @return [IO] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_policy.rb#39 + def policy; end + + # @example Request syntax with placeholder values + # + # bucket_policy.put({ + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # confirm_remove_self_bucket_access: false, + # policy: "Policy", # required + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [EmptyStructure] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_policy.rb#285 + def put(options = T.unsafe(nil)); end + + # Loads, or reloads {#data} for the current {BucketPolicy}. + # Returns `self` making it possible to chain methods. + # + # bucket_policy.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_policy.rb#56 + def reload; end + + # Waiter polls an API operation until a resource enters a desired + # state. + # + # ## Basic Usage + # + # Waiter will polls until it is successful, it fails by + # entering a terminal state, or until a maximum number of attempts + # are made. + # + # # polls in a loop until condition is true + # resource.wait_until(options) {|resource| condition} + # + # ## Example + # + # instance.wait_until(max_attempts:10, delay:5) do |instance| + # instance.state.name == 'running' + # end + # + # ## Configuration + # + # You can configure the maximum number of polling attempts, and the + # delay (in seconds) between each polling attempt. The waiting condition is + # set by passing a block to {#wait_until}: + # + # # poll for ~25 seconds + # resource.wait_until(max_attempts:5,delay:5) {|resource|...} + # + # ## Callbacks + # + # You can be notified before each polling attempt and before each + # delay. If you throw `:success` or `:failure` from these callbacks, + # it will terminate the waiter. + # + # started_at = Time.now + # # poll for 1 hour, instead of a number of attempts + # proc = Proc.new do |attempts, response| + # throw :failure if Time.now - started_at > 3600 + # end + # + # # disable max attempts + # instance.wait_until(before_wait:proc, max_attempts:nil) {...} + # + # ## Handling Errors + # + # When a waiter is successful, it returns the Resource. When a waiter + # fails, it raises an error. + # + # begin + # resource.wait_until(...) + # rescue Aws::Waiters::Errors::WaiterFailed + # # resource did not enter the desired state in time + # end + # + # attempts + # attempt in seconds + # invoked before each attempt + # invoked before each wait + # + # @deprecated Use [Aws::S3::Client] #wait_until instead + # @note The waiting operation is performed on a copy. The original resource + # remains unchanged. + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter + # terminates because the waiter has entered a state that it will not + # transition out of, preventing success. + # + # yet successful. + # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is + # encountered while polling for a resource that is not expected. + # @raise [NotImplementedError] Raised when the resource does not + # @return [Resource] if the waiter was successful + # @yieldparam resource [Resource] to be used in the waiting condition. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_policy.rb#160 + def wait_until(options = T.unsafe(nil), &block); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_policy.rb#312 + def extract_bucket_name(args, options); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_policy.rb#323 +class Aws::S3::BucketPolicy::Collection < ::Aws::Resources::Collection; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_region_cache.rb#7 +class Aws::S3::BucketRegionCache + # @return [BucketRegionCache] a new instance of BucketRegionCache + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_region_cache.rb#9 + def initialize; end + + # @api private + # @param bucket_name [String] + # @return [String, nil] Returns the cached region for the named bucket. + # Returns `nil` if the bucket is not in the cache. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_region_cache.rb#45 + def [](bucket_name); end + + # Caches a bucket's region. Calling this method will trigger each + # of the {#bucket_added} listener callbacks. + # + # @api private + # @param bucket_name [String] + # @param region_name [String] + # @return [void] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_region_cache.rb#55 + def []=(bucket_name, region_name); end + + # Registers a block as a callback. This listener is called when a + # new bucket/region pair is added to the cache. + # + # Aws::S3.bucket_region_cache.bucket_added do |bucket_name, region_name| + # # ... + # end + # + # This happens when a request is made against the classic endpoint, + # "s3.amazonaws.com" and an error is returned requiring the request + # to be resent with Signature Version 4. At this point, multiple + # requests are made to discover the bucket region so that a v4 + # signature can be generated. + # + # An application can register listeners here to avoid these extra + # requests in the future. By constructing an {S3::Client} with + # the proper region, a proper signature can be generated and redirects + # avoided. + # + # @return [void] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_region_cache.rb#33 + def bucket_added(&block); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_region_cache.rb#71 + def clear; end + + # @param key [String] + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_region_cache.rb#64 + def key?(key); end + + # @return [Hash] Returns a hash of cached bucket names and region names. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_region_cache.rb#76 + def to_h; end + + # @return [Hash] Returns a hash of cached bucket names and region names. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_region_cache.rb#76 + def to_hash; end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_request_payment.rb#12 +class Aws::S3::BucketRequestPayment + extend ::Aws::Deprecations + + # @overload initialize + # @overload initialize + # @return [BucketRequestPayment] a new instance of BucketRequestPayment + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_request_payment.rb#22 + def initialize(*args); end + + # @return [Bucket] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_request_payment.rb#237 + def bucket; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_request_payment.rb#33 + def bucket_name; end + + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_request_payment.rb#46 + def client; end + + # @return [Types::GetBucketRequestPaymentOutput] Returns the data for this {BucketRequestPayment}. Calls + # {Client#get_bucket_request_payment} if {#data_loaded?} is `false`. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_request_payment.rb#68 + def data; end + + # @return [Boolean] Returns `true` if this resource is loaded. Accessing attributes or + # {#data} on an unloaded resource will trigger a call to {#load}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_request_payment.rb#76 + def data_loaded?; end + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_request_payment.rb#246 + def deprecated_identifiers; end + + # @api private + # @deprecated + # + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def identifiers(*args, &block); end + + # Loads, or reloads {#data} for the current {BucketRequestPayment}. + # Returns `self` making it possible to chain methods. + # + # bucket_request_payment.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_request_payment.rb#56 + def load; end + + # Specifies who pays for the download and request fees. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_request_payment.rb#39 + def payer; end + + # @example Request syntax with placeholder values + # + # bucket_request_payment.put({ + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # request_payment_configuration: { # required + # payer: "Requester", # required, accepts Requester, BucketOwner + # }, + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [EmptyStructure] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_request_payment.rb#226 + def put(options = T.unsafe(nil)); end + + # Loads, or reloads {#data} for the current {BucketRequestPayment}. + # Returns `self` making it possible to chain methods. + # + # bucket_request_payment.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_request_payment.rb#56 + def reload; end + + # Waiter polls an API operation until a resource enters a desired + # state. + # + # ## Basic Usage + # + # Waiter will polls until it is successful, it fails by + # entering a terminal state, or until a maximum number of attempts + # are made. + # + # # polls in a loop until condition is true + # resource.wait_until(options) {|resource| condition} + # + # ## Example + # + # instance.wait_until(max_attempts:10, delay:5) do |instance| + # instance.state.name == 'running' + # end + # + # ## Configuration + # + # You can configure the maximum number of polling attempts, and the + # delay (in seconds) between each polling attempt. The waiting condition is + # set by passing a block to {#wait_until}: + # + # # poll for ~25 seconds + # resource.wait_until(max_attempts:5,delay:5) {|resource|...} + # + # ## Callbacks + # + # You can be notified before each polling attempt and before each + # delay. If you throw `:success` or `:failure` from these callbacks, + # it will terminate the waiter. + # + # started_at = Time.now + # # poll for 1 hour, instead of a number of attempts + # proc = Proc.new do |attempts, response| + # throw :failure if Time.now - started_at > 3600 + # end + # + # # disable max attempts + # instance.wait_until(before_wait:proc, max_attempts:nil) {...} + # + # ## Handling Errors + # + # When a waiter is successful, it returns the Resource. When a waiter + # fails, it raises an error. + # + # begin + # resource.wait_until(...) + # rescue Aws::Waiters::Errors::WaiterFailed + # # resource did not enter the desired state in time + # end + # + # attempts + # attempt in seconds + # invoked before each attempt + # invoked before each wait + # + # @deprecated Use [Aws::S3::Client] #wait_until instead + # @note The waiting operation is performed on a copy. The original resource + # remains unchanged. + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter + # terminates because the waiter has entered a state that it will not + # transition out of, preventing success. + # + # yet successful. + # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is + # encountered while polling for a resource that is not expected. + # @raise [NotImplementedError] Raised when the resource does not + # @return [Resource] if the waiter was successful + # @yieldparam resource [Resource] to be used in the waiting condition. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_request_payment.rb#160 + def wait_until(options = T.unsafe(nil), &block); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_request_payment.rb#253 + def extract_bucket_name(args, options); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_request_payment.rb#264 +class Aws::S3::BucketRequestPayment::Collection < ::Aws::Resources::Collection; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_tagging.rb#12 +class Aws::S3::BucketTagging + extend ::Aws::Deprecations + + # @overload initialize + # @overload initialize + # @return [BucketTagging] a new instance of BucketTagging + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_tagging.rb#22 + def initialize(*args); end + + # @return [Bucket] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_tagging.rb#261 + def bucket; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_tagging.rb#33 + def bucket_name; end + + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_tagging.rb#46 + def client; end + + # @return [Types::GetBucketTaggingOutput] Returns the data for this {BucketTagging}. Calls + # {Client#get_bucket_tagging} if {#data_loaded?} is `false`. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_tagging.rb#68 + def data; end + + # @return [Boolean] Returns `true` if this resource is loaded. Accessing attributes or + # {#data} on an unloaded resource will trigger a call to {#load}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_tagging.rb#76 + def data_loaded?; end + + # @example Request syntax with placeholder values + # + # bucket_tagging.delete({ + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @param options [Hash] ({}) + # @return [EmptyStructure] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_tagging.rb#192 + def delete(options = T.unsafe(nil)); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_tagging.rb#270 + def deprecated_identifiers; end + + # @api private + # @deprecated + # + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def identifiers(*args, &block); end + + # Loads, or reloads {#data} for the current {BucketTagging}. + # Returns `self` making it possible to chain methods. + # + # bucket_tagging.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_tagging.rb#56 + def load; end + + # @example Request syntax with placeholder values + # + # bucket_tagging.put({ + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # tagging: { # required + # tag_set: [ # required + # { + # key: "ObjectKey", # required + # value: "Value", # required + # }, + # ], + # }, + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [EmptyStructure] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_tagging.rb#250 + def put(options = T.unsafe(nil)); end + + # Loads, or reloads {#data} for the current {BucketTagging}. + # Returns `self` making it possible to chain methods. + # + # bucket_tagging.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_tagging.rb#56 + def reload; end + + # Contains the tag set. + # + # @return [Array] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_tagging.rb#39 + def tag_set; end + + # Waiter polls an API operation until a resource enters a desired + # state. + # + # ## Basic Usage + # + # Waiter will polls until it is successful, it fails by + # entering a terminal state, or until a maximum number of attempts + # are made. + # + # # polls in a loop until condition is true + # resource.wait_until(options) {|resource| condition} + # + # ## Example + # + # instance.wait_until(max_attempts:10, delay:5) do |instance| + # instance.state.name == 'running' + # end + # + # ## Configuration + # + # You can configure the maximum number of polling attempts, and the + # delay (in seconds) between each polling attempt. The waiting condition is + # set by passing a block to {#wait_until}: + # + # # poll for ~25 seconds + # resource.wait_until(max_attempts:5,delay:5) {|resource|...} + # + # ## Callbacks + # + # You can be notified before each polling attempt and before each + # delay. If you throw `:success` or `:failure` from these callbacks, + # it will terminate the waiter. + # + # started_at = Time.now + # # poll for 1 hour, instead of a number of attempts + # proc = Proc.new do |attempts, response| + # throw :failure if Time.now - started_at > 3600 + # end + # + # # disable max attempts + # instance.wait_until(before_wait:proc, max_attempts:nil) {...} + # + # ## Handling Errors + # + # When a waiter is successful, it returns the Resource. When a waiter + # fails, it raises an error. + # + # begin + # resource.wait_until(...) + # rescue Aws::Waiters::Errors::WaiterFailed + # # resource did not enter the desired state in time + # end + # + # attempts + # attempt in seconds + # invoked before each attempt + # invoked before each wait + # + # @deprecated Use [Aws::S3::Client] #wait_until instead + # @note The waiting operation is performed on a copy. The original resource + # remains unchanged. + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter + # terminates because the waiter has entered a state that it will not + # transition out of, preventing success. + # + # yet successful. + # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is + # encountered while polling for a resource that is not expected. + # @raise [NotImplementedError] Raised when the resource does not + # @return [Resource] if the waiter was successful + # @yieldparam resource [Resource] to be used in the waiting condition. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_tagging.rb#160 + def wait_until(options = T.unsafe(nil), &block); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_tagging.rb#277 + def extract_bucket_name(args, options); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_tagging.rb#288 +class Aws::S3::BucketTagging::Collection < ::Aws::Resources::Collection; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_versioning.rb#12 +class Aws::S3::BucketVersioning + extend ::Aws::Deprecations + + # @overload initialize + # @overload initialize + # @return [BucketVersioning] a new instance of BucketVersioning + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_versioning.rb#22 + def initialize(*args); end + + # @return [Bucket] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_versioning.rb#368 + def bucket; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_versioning.rb#33 + def bucket_name; end + + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_versioning.rb#55 + def client; end + + # @return [Types::GetBucketVersioningOutput] Returns the data for this {BucketVersioning}. Calls + # {Client#get_bucket_versioning} if {#data_loaded?} is `false`. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_versioning.rb#77 + def data; end + + # @return [Boolean] Returns `true` if this resource is loaded. Accessing attributes or + # {#data} on an unloaded resource will trigger a call to {#load}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_versioning.rb#85 + def data_loaded?; end + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_versioning.rb#377 + def deprecated_identifiers; end + + # @example Request syntax with placeholder values + # + # bucket_versioning.enable({ + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # mfa: "MFA", + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [EmptyStructure] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_versioning.rb#235 + def enable(options = T.unsafe(nil)); end + + # @api private + # @deprecated + # + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def identifiers(*args, &block); end + + # Loads, or reloads {#data} for the current {BucketVersioning}. + # Returns `self` making it possible to chain methods. + # + # bucket_versioning.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_versioning.rb#65 + def load; end + + # Specifies whether MFA delete is enabled in the bucket versioning + # configuration. This element is only returned if the bucket has been + # configured with MFA delete. If the bucket has never been so + # configured, this element is not returned. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_versioning.rb#48 + def mfa_delete; end + + # @example Request syntax with placeholder values + # + # bucket_versioning.put({ + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # mfa: "MFA", + # versioning_configuration: { # required + # mfa_delete: "Enabled", # accepts Enabled, Disabled + # status: "Enabled", # accepts Enabled, Suspended + # }, + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [EmptyStructure] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_versioning.rb#299 + def put(options = T.unsafe(nil)); end + + # Loads, or reloads {#data} for the current {BucketVersioning}. + # Returns `self` making it possible to chain methods. + # + # bucket_versioning.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_versioning.rb#65 + def reload; end + + # The versioning state of the bucket. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_versioning.rb#39 + def status; end + + # @example Request syntax with placeholder values + # + # bucket_versioning.suspend({ + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # mfa: "MFA", + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [EmptyStructure] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_versioning.rb#352 + def suspend(options = T.unsafe(nil)); end + + # Waiter polls an API operation until a resource enters a desired + # state. + # + # ## Basic Usage + # + # Waiter will polls until it is successful, it fails by + # entering a terminal state, or until a maximum number of attempts + # are made. + # + # # polls in a loop until condition is true + # resource.wait_until(options) {|resource| condition} + # + # ## Example + # + # instance.wait_until(max_attempts:10, delay:5) do |instance| + # instance.state.name == 'running' + # end + # + # ## Configuration + # + # You can configure the maximum number of polling attempts, and the + # delay (in seconds) between each polling attempt. The waiting condition is + # set by passing a block to {#wait_until}: + # + # # poll for ~25 seconds + # resource.wait_until(max_attempts:5,delay:5) {|resource|...} + # + # ## Callbacks + # + # You can be notified before each polling attempt and before each + # delay. If you throw `:success` or `:failure` from these callbacks, + # it will terminate the waiter. + # + # started_at = Time.now + # # poll for 1 hour, instead of a number of attempts + # proc = Proc.new do |attempts, response| + # throw :failure if Time.now - started_at > 3600 + # end + # + # # disable max attempts + # instance.wait_until(before_wait:proc, max_attempts:nil) {...} + # + # ## Handling Errors + # + # When a waiter is successful, it returns the Resource. When a waiter + # fails, it raises an error. + # + # begin + # resource.wait_until(...) + # rescue Aws::Waiters::Errors::WaiterFailed + # # resource did not enter the desired state in time + # end + # + # attempts + # attempt in seconds + # invoked before each attempt + # invoked before each wait + # + # @deprecated Use [Aws::S3::Client] #wait_until instead + # @note The waiting operation is performed on a copy. The original resource + # remains unchanged. + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter + # terminates because the waiter has entered a state that it will not + # transition out of, preventing success. + # + # yet successful. + # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is + # encountered while polling for a resource that is not expected. + # @raise [NotImplementedError] Raised when the resource does not + # @return [Resource] if the waiter was successful + # @yieldparam resource [Resource] to be used in the waiting condition. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_versioning.rb#169 + def wait_until(options = T.unsafe(nil), &block); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_versioning.rb#384 + def extract_bucket_name(args, options); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_versioning.rb#395 +class Aws::S3::BucketVersioning::Collection < ::Aws::Resources::Collection; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_website.rb#12 +class Aws::S3::BucketWebsite + extend ::Aws::Deprecations + + # @overload initialize + # @overload initialize + # @return [BucketWebsite] a new instance of BucketWebsite + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_website.rb#22 + def initialize(*args); end + + # @return [Bucket] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_website.rb#302 + def bucket; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_website.rb#33 + def bucket_name; end + + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_website.rb#68 + def client; end + + # @return [Types::GetBucketWebsiteOutput] Returns the data for this {BucketWebsite}. Calls + # {Client#get_bucket_website} if {#data_loaded?} is `false`. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_website.rb#90 + def data; end + + # @return [Boolean] Returns `true` if this resource is loaded. Accessing attributes or + # {#data} on an unloaded resource will trigger a call to {#load}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_website.rb#98 + def data_loaded?; end + + # @example Request syntax with placeholder values + # + # bucket_website.delete({ + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @param options [Hash] ({}) + # @return [EmptyStructure] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_website.rb#214 + def delete(options = T.unsafe(nil)); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_website.rb#311 + def deprecated_identifiers; end + + # The object key name of the website error document to use for 4XX class + # errors. + # + # @return [Types::ErrorDocument] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_website.rb#54 + def error_document; end + + # @api private + # @deprecated + # + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def identifiers(*args, &block); end + + # The name of the index document for the website (for example + # `index.html`). + # + # @return [Types::IndexDocument] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_website.rb#47 + def index_document; end + + # Loads, or reloads {#data} for the current {BucketWebsite}. + # Returns `self` making it possible to chain methods. + # + # bucket_website.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_website.rb#78 + def load; end + + # @example Request syntax with placeholder values + # + # bucket_website.put({ + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # website_configuration: { # required + # error_document: { + # key: "ObjectKey", # required + # }, + # index_document: { + # suffix: "Suffix", # required + # }, + # redirect_all_requests_to: { + # host_name: "HostName", # required + # protocol: "http", # accepts http, https + # }, + # routing_rules: [ + # { + # condition: { + # http_error_code_returned_equals: "HttpErrorCodeReturnedEquals", + # key_prefix_equals: "KeyPrefixEquals", + # }, + # redirect: { # required + # host_name: "HostName", + # http_redirect_code: "HttpRedirectCode", + # protocol: "http", # accepts http, https + # replace_key_prefix_with: "ReplaceKeyPrefixWith", + # replace_key_with: "ReplaceKeyWith", + # }, + # }, + # ], + # }, + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [EmptyStructure] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_website.rb#291 + def put(options = T.unsafe(nil)); end + + # Specifies the redirect behavior of all requests to a website endpoint + # of an Amazon S3 bucket. + # + # @return [Types::RedirectAllRequestsTo] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_website.rb#40 + def redirect_all_requests_to; end + + # Loads, or reloads {#data} for the current {BucketWebsite}. + # Returns `self` making it possible to chain methods. + # + # bucket_website.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_website.rb#78 + def reload; end + + # Rules that define when a redirect is applied and the redirect + # behavior. + # + # @return [Array] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_website.rb#61 + def routing_rules; end + + # Waiter polls an API operation until a resource enters a desired + # state. + # + # ## Basic Usage + # + # Waiter will polls until it is successful, it fails by + # entering a terminal state, or until a maximum number of attempts + # are made. + # + # # polls in a loop until condition is true + # resource.wait_until(options) {|resource| condition} + # + # ## Example + # + # instance.wait_until(max_attempts:10, delay:5) do |instance| + # instance.state.name == 'running' + # end + # + # ## Configuration + # + # You can configure the maximum number of polling attempts, and the + # delay (in seconds) between each polling attempt. The waiting condition is + # set by passing a block to {#wait_until}: + # + # # poll for ~25 seconds + # resource.wait_until(max_attempts:5,delay:5) {|resource|...} + # + # ## Callbacks + # + # You can be notified before each polling attempt and before each + # delay. If you throw `:success` or `:failure` from these callbacks, + # it will terminate the waiter. + # + # started_at = Time.now + # # poll for 1 hour, instead of a number of attempts + # proc = Proc.new do |attempts, response| + # throw :failure if Time.now - started_at > 3600 + # end + # + # # disable max attempts + # instance.wait_until(before_wait:proc, max_attempts:nil) {...} + # + # ## Handling Errors + # + # When a waiter is successful, it returns the Resource. When a waiter + # fails, it raises an error. + # + # begin + # resource.wait_until(...) + # rescue Aws::Waiters::Errors::WaiterFailed + # # resource did not enter the desired state in time + # end + # + # attempts + # attempt in seconds + # invoked before each attempt + # invoked before each wait + # + # @deprecated Use [Aws::S3::Client] #wait_until instead + # @note The waiting operation is performed on a copy. The original resource + # remains unchanged. + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter + # terminates because the waiter has entered a state that it will not + # transition out of, preventing success. + # + # yet successful. + # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is + # encountered while polling for a resource that is not expected. + # @raise [NotImplementedError] Raised when the resource does not + # @return [Resource] if the waiter was successful + # @yieldparam resource [Resource] to be used in the waiting condition. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_website.rb#182 + def wait_until(options = T.unsafe(nil), &block); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/bucket_website.rb#318 + def extract_bucket_name(args, options); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/bucket_website.rb#329 +class Aws::S3::BucketWebsite::Collection < ::Aws::Resources::Collection; end + +# An API client for S3. To construct a client, you need to configure a `:region` and `:credentials`. +# +# client = Aws::S3::Client.new( +# region: region_name, +# credentials: credentials, +# # ... +# ) +# +# For details on configuring region and credentials see +# the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html). +# +# See {#initialize} for a full list of supported configuration options. +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#73 +class Aws::S3::Client < ::Seahorse::Client::Base + include ::Aws::ClientStubs + + # @overload initialize + # @return [Client] a new instance of Client + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#551 + def initialize(*args); end + + # This operation aborts a multipart upload. After a multipart upload is + # aborted, no additional parts can be uploaded using that upload ID. The + # storage consumed by any previously uploaded parts will be freed. + # However, if any part uploads are currently in progress, those part + # uploads might or might not succeed. As a result, it might be necessary + # to abort a given multipart upload multiple times in order to + # completely free all storage consumed by all parts. + # + # To verify that all parts have been removed and prevent getting charged + # for the part storage, you should call the [ListParts][1] API operation + # and ensure that the parts list is empty. + # + # * **Directory buckets** - If multipart uploads in a directory bucket + # are in progress, you can't delete the bucket until all the + # in-progress multipart uploads are aborted or completed. To delete + # these in-progress multipart uploads, use the `ListMultipartUploads` + # operation to list the in-progress multipart uploads in the bucket + # and use the `AbortMultupartUpload` operation to abort all the + # in-progress multipart uploads. + # + # * **Directory buckets** - For directory buckets, you must make + # requests for this API operation to the Zonal endpoint. These + # endpoints support virtual-hosted-style requests in the format + # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name + # `. Path-style requests are not supported. For more information, see + # [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*. + # + # + # + # Permissions + # : * **General purpose bucket permissions** - For information about + # permissions required to use the multipart upload, see [Multipart + # Upload and Permissions][3] in the *Amazon S3 User Guide*. + # + # * **Directory bucket permissions** - To grant access to this API + # operation on a directory bucket, we recommend that you use the [ + # `CreateSession` ][4] API operation for session-based + # authorization. Specifically, you grant the + # `s3express:CreateSession` permission to the directory bucket in a + # bucket policy or an IAM identity-based policy. Then, you make the + # `CreateSession` API call on the bucket to obtain a session token. + # With the session token in your request header, you can make API + # requests to this operation. After the session token expires, you + # make another `CreateSession` API call to generate a new session + # token for use. Amazon Web Services CLI or SDKs create session and + # refresh the session token automatically to avoid service + # interruptions when a session expires. For more information about + # authorization, see [ `CreateSession` ][4]. + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is ` + # Bucket_name.s3express-az_id.region.amazonaws.com`. + # + # The following operations are related to `AbortMultipartUpload`: + # + # * [CreateMultipartUpload][5] + # + # * [UploadPart][6] + # + # * [CompleteMultipartUpload][7] + # + # * [ListParts][1] + # + # * [ListMultipartUploads][8] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html + # + # @example Example: To abort a multipart upload + # + # # The following example aborts a multipart upload. + # + # resp = client.abort_multipart_upload({ + # bucket: "examplebucket", + # key: "bigobject", + # upload_id: "xadcOB_7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--", + # }) + # + # resp.to_h outputs the following: + # { + # } + # @example Request syntax with placeholder values + # + # resp = client.abort_multipart_upload({ + # bucket: "BucketName", # required + # key: "ObjectKey", # required + # upload_id: "MultipartUploadId", # required + # request_payer: "requester", # accepts requester + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.request_charged #=> String, one of "requester" + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload abort_multipart_upload + # @param params [Hash] ({}) + # @return [Types::AbortMultipartUploadOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::AbortMultipartUploadOutput#request_charged #request_charged} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AbortMultipartUpload AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#743 + def abort_multipart_upload(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # @api private + # @param params [{}] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#19830 + def build_request(operation_name, params = T.unsafe(nil)); end + + # Completes a multipart upload by assembling previously uploaded parts. + # + # You first initiate the multipart upload and then upload all parts + # using the [UploadPart][1] operation or the [UploadPartCopy][2] + # operation. After successfully uploading all relevant parts of an + # upload, you call this `CompleteMultipartUpload` operation to complete + # the upload. Upon receiving this request, Amazon S3 concatenates all + # the parts in ascending order by part number to create a new object. In + # the CompleteMultipartUpload request, you must provide the parts list + # and ensure that the parts list is complete. The + # CompleteMultipartUpload API operation concatenates the parts that you + # provide in the list. For each part in the list, you must provide the + # `PartNumber` value and the `ETag` value that are returned after that + # part was uploaded. + # + # The processing of a CompleteMultipartUpload request could take several + # minutes to finalize. After Amazon S3 begins processing the request, it + # sends an HTTP response header that specifies a `200 OK` response. + # While processing is in progress, Amazon S3 periodically sends white + # space characters to keep the connection from timing out. A request + # could fail after the initial `200 OK` response has been sent. This + # means that a `200 OK` response can contain either a success or an + # error. The error response might be embedded in the `200 OK` response. + # If you call this API operation directly, make sure to design your + # application to parse the contents of the response and handle it + # appropriately. If you use Amazon Web Services SDKs, SDKs handle this + # condition. The SDKs detect the embedded error and apply error handling + # per your configuration settings (including automatically retrying the + # request as appropriate). If the condition persists, the SDKs throw an + # exception (or, for the SDKs that don't use exceptions, they return an + # error). + # + # Note that if `CompleteMultipartUpload` fails, applications should be + # prepared to retry any failed requests (including 500 error responses). + # For more information, see [Amazon S3 Error Best Practices][3]. + # + # You can't use `Content-Type: application/x-www-form-urlencoded` for + # the CompleteMultipartUpload requests. Also, if you don't provide a + # `Content-Type` header, `CompleteMultipartUpload` can still return a + # `200 OK` response. + # + # For more information about multipart uploads, see [Uploading Objects + # Using Multipart Upload][4] in the *Amazon S3 User Guide*. + # + # **Directory buckets** - For directory buckets, you must make requests + # for this API operation to the Zonal endpoint. These endpoints support + # virtual-hosted-style requests in the format + # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `. + # Path-style requests are not supported. For more information, see + # [Regional and Zonal endpoints][5] in the *Amazon S3 User Guide*. + # + # + # + # Permissions + # : * **General purpose bucket permissions** - For information about + # permissions required to use the multipart upload API, see + # [Multipart Upload and Permissions][6] in the *Amazon S3 User + # Guide*. + # + # If you provide an [additional checksum value][7] in your + # `MultipartUpload` requests and the object is encrypted with Key + # Management Service, you must have permission to use the + # `kms:Decrypt` action for the `CompleteMultipartUpload` request to + # succeed. + # + # * **Directory bucket permissions** - To grant access to this API + # operation on a directory bucket, we recommend that you use the [ + # `CreateSession` ][8] API operation for session-based + # authorization. Specifically, you grant the + # `s3express:CreateSession` permission to the directory bucket in a + # bucket policy or an IAM identity-based policy. Then, you make the + # `CreateSession` API call on the bucket to obtain a session token. + # With the session token in your request header, you can make API + # requests to this operation. After the session token expires, you + # make another `CreateSession` API call to generate a new session + # token for use. Amazon Web Services CLI or SDKs create session and + # refresh the session token automatically to avoid service + # interruptions when a session expires. For more information about + # authorization, see [ `CreateSession` ][8]. + # + # If the object is encrypted with SSE-KMS, you must also have the + # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + # identity-based policies and KMS key policies for the KMS key. + # + # Special errors + # : * Error Code: `EntityTooSmall` + # + # * Description: Your proposed upload is smaller than the minimum + # allowed object size. Each part must be at least 5 MB in size, + # except the last part. + # + # * HTTP Status Code: 400 Bad Request + # + # * Error Code: `InvalidPart` + # + # * Description: One or more of the specified parts could not be + # found. The part might not have been uploaded, or the specified + # ETag might not have matched the uploaded part's ETag. + # + # * HTTP Status Code: 400 Bad Request + # + # * Error Code: `InvalidPartOrder` + # + # * Description: The list of parts was not in ascending order. The + # parts list must be specified in order by part number. + # + # * HTTP Status Code: 400 Bad Request + # + # * Error Code: `NoSuchUpload` + # + # * Description: The specified multipart upload does not exist. The + # upload ID might be invalid, or the multipart upload might have + # been aborted or completed. + # + # * HTTP Status Code: 404 Not Found + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is ` + # Bucket_name.s3express-az_id.region.amazonaws.com`. + # + # The following operations are related to `CompleteMultipartUpload`: + # + # * [CreateMultipartUpload][9] + # + # * [UploadPart][1] + # + # * [AbortMultipartUpload][10] + # + # * [ListParts][11] + # + # * [ListMultipartUploads][12] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html + # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html + # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html + # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html + # + # @example Example: To complete multipart upload + # + # # The following example completes a multipart upload. + # + # resp = client.complete_multipart_upload({ + # bucket: "examplebucket", + # key: "bigobject", + # multipart_upload: { + # parts: [ + # { + # etag: "\"d8c2eafd90c266e19ab9dcacc479f8af\"", + # part_number: 1, + # }, + # { + # etag: "\"d8c2eafd90c266e19ab9dcacc479f8af\"", + # part_number: 2, + # }, + # ], + # }, + # upload_id: "7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--", + # }) + # + # resp.to_h outputs the following: + # { + # bucket: "acexamplebucket", + # etag: "\"4d9031c7644d8081c2829f4ea23c55f7-2\"", + # key: "bigobject", + # location: "https://examplebucket.s3..amazonaws.com/bigobject", + # } + # @example Request syntax with placeholder values + # + # resp = client.complete_multipart_upload({ + # bucket: "BucketName", # required + # key: "ObjectKey", # required + # multipart_upload: { + # parts: [ + # { + # etag: "ETag", + # checksum_crc32: "ChecksumCRC32", + # checksum_crc32c: "ChecksumCRC32C", + # checksum_sha1: "ChecksumSHA1", + # checksum_sha256: "ChecksumSHA256", + # part_number: 1, + # }, + # ], + # }, + # upload_id: "MultipartUploadId", # required + # checksum_crc32: "ChecksumCRC32", + # checksum_crc32c: "ChecksumCRC32C", + # checksum_sha1: "ChecksumSHA1", + # checksum_sha256: "ChecksumSHA256", + # request_payer: "requester", # accepts requester + # expected_bucket_owner: "AccountId", + # if_none_match: "IfNoneMatch", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # }) + # @example Response structure + # + # resp.location #=> String + # resp.bucket #=> String + # resp.key #=> String + # resp.expiration #=> String + # resp.etag #=> String + # resp.checksum_crc32 #=> String + # resp.checksum_crc32c #=> String + # resp.checksum_sha1 #=> String + # resp.checksum_sha256 #=> String + # resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse" + # resp.version_id #=> String + # resp.ssekms_key_id #=> String + # resp.bucket_key_enabled #=> Boolean + # resp.request_charged #=> String, one of "requester" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload complete_multipart_upload + # @param params [Hash] ({}) + # @return [Types::CompleteMultipartUploadOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CompleteMultipartUploadOutput#location #location} => String + # * {Types::CompleteMultipartUploadOutput#bucket #bucket} => String + # * {Types::CompleteMultipartUploadOutput#key #key} => String + # * {Types::CompleteMultipartUploadOutput#expiration #expiration} => String + # * {Types::CompleteMultipartUploadOutput#etag #etag} => String + # * {Types::CompleteMultipartUploadOutput#checksum_crc32 #checksum_crc32} => String + # * {Types::CompleteMultipartUploadOutput#checksum_crc32c #checksum_crc32c} => String + # * {Types::CompleteMultipartUploadOutput#checksum_sha1 #checksum_sha1} => String + # * {Types::CompleteMultipartUploadOutput#checksum_sha256 #checksum_sha256} => String + # * {Types::CompleteMultipartUploadOutput#server_side_encryption #server_side_encryption} => String + # * {Types::CompleteMultipartUploadOutput#version_id #version_id} => String + # * {Types::CompleteMultipartUploadOutput#ssekms_key_id #ssekms_key_id} => String + # * {Types::CompleteMultipartUploadOutput#bucket_key_enabled #bucket_key_enabled} => Boolean + # * {Types::CompleteMultipartUploadOutput#request_charged #request_charged} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CompleteMultipartUpload AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#1177 + def complete_multipart_upload(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Creates a copy of an object that is already stored in Amazon S3. + # + # You can store individual objects of up to 5 TB in Amazon S3. You + # create a copy of your object up to 5 GB in size in a single atomic + # action using this API. However, to copy an object greater than 5 GB, + # you must use the multipart upload Upload Part - Copy (UploadPartCopy) + # API. For more information, see [Copy Object Using the REST Multipart + # Upload API][1]. + # + # + # + # You can copy individual objects between general purpose buckets, + # between directory buckets, and between general purpose buckets and + # directory buckets. + # + # * Amazon S3 supports copy operations using Multi-Region Access Points + # only as a destination when using the Multi-Region Access Point ARN. + # + # * Directory buckets - For directory buckets, you must make + # requests for this API operation to the Zonal endpoint. These + # endpoints support virtual-hosted-style requests in the format + # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name + # `. Path-style requests are not supported. For more information, see + # [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*. + # + # * VPC endpoints don't support cross-Region requests (including + # copies). If you're using VPC endpoints, your source and destination + # buckets should be in the same Amazon Web Services Region as your VPC + # endpoint. + # + # + # + # Both the Region that you want to copy the object from and the Region + # that you want to copy the object to must be enabled for your account. + # For more information about how to enable a Region for your account, + # see [Enable or disable a Region for standalone accounts][3] in the + # *Amazon Web Services Account Management Guide*. + # + # Amazon S3 transfer acceleration does not support cross-Region copies. + # If you request a cross-Region copy using a transfer acceleration + # endpoint, you get a `400 Bad Request` error. For more information, see + # [Transfer Acceleration][4]. + # + # Authentication and authorization + # + # : All `CopyObject` requests must be authenticated and signed by using + # IAM credentials (access key ID and secret access key for the IAM + # identities). All headers with the `x-amz-` prefix, including + # `x-amz-copy-source`, must be signed. For more information, see [REST + # Authentication][5]. + # + # **Directory buckets** - You must use the IAM credentials to + # authenticate and authorize your access to the `CopyObject` API + # operation, instead of using the temporary security credentials + # through the `CreateSession` API operation. + # + # Amazon Web Services CLI or SDKs handles authentication and + # authorization on your behalf. + # + # Permissions + # + # : You must have *read* access to the source object and *write* access + # to the destination bucket. + # + # * **General purpose bucket permissions** - You must have permissions + # in an IAM policy based on the source and destination bucket types + # in a `CopyObject` operation. + # + # * If the source object is in a general purpose bucket, you must + # have s3:GetObject permission to read the + # source object that is being copied. + # + # * If the destination bucket is a general purpose bucket, you must + # have s3:PutObject permission to write the + # object copy to the destination bucket. + # + # * **Directory bucket permissions** - You must have permissions in a + # bucket policy or an IAM identity-based policy based on the source + # and destination bucket types in a `CopyObject` operation. + # + # * If the source object that you want to copy is in a directory + # bucket, you must have the + # s3express:CreateSession permission in the + # `Action` element of a policy to read the object. By default, the + # session is in the `ReadWrite` mode. If you want to restrict the + # access, you can explicitly set the `s3express:SessionMode` + # condition key to `ReadOnly` on the copy source bucket. + # + # * If the copy destination is a directory bucket, you must have the + # s3express:CreateSession permission in the + # `Action` element of a policy to write the object to the + # destination. The `s3express:SessionMode` condition key can't be + # set to `ReadOnly` on the copy destination bucket. + # + # If the object is encrypted with SSE-KMS, you must also have the + # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + # identity-based policies and KMS key policies for the KMS key. + # + # For example policies, see [Example bucket policies for S3 Express + # One Zone][6] and [Amazon Web Services Identity and Access + # Management (IAM) identity-based policies for S3 Express One + # Zone][7] in the *Amazon S3 User Guide*. + # + # Response and special errors + # + # : When the request is an HTTP 1.1 request, the response is chunk + # encoded. When the request is not an HTTP 1.1 request, the response + # would not contain the `Content-Length`. You always need to read the + # entire response body to check if the copy succeeds. + # + # * If the copy is successful, you receive a response with information + # about the copied object. + # + # * A copy request might return an error when Amazon S3 receives the + # copy request or while Amazon S3 is copying the files. A `200 OK` + # response can contain either a success or an error. + # + # * If the error occurs before the copy action starts, you receive a + # standard Amazon S3 error. + # + # * If the error occurs during the copy operation, the error + # response is embedded in the `200 OK` response. For example, in a + # cross-region copy, you may encounter throttling and receive a + # `200 OK` response. For more information, see [Resolve the Error + # 200 response when copying objects to Amazon S3][8]. The `200 OK` + # status code means the copy was accepted, but it doesn't mean + # the copy is complete. Another example is when you disconnect + # from Amazon S3 before the copy is complete, Amazon S3 might + # cancel the copy and you may receive a `200 OK` response. You + # must stay connected to Amazon S3 until the entire response is + # successfully received and processed. + # + # If you call this API operation directly, make sure to design + # your application to parse the content of the response and handle + # it appropriately. If you use Amazon Web Services SDKs, SDKs + # handle this condition. The SDKs detect the embedded error and + # apply error handling per your configuration settings (including + # automatically retrying the request as appropriate). If the + # condition persists, the SDKs throw an exception (or, for the + # SDKs that don't use exceptions, they return an error). + # + # Charge + # + # : The copy request charge is based on the storage class and Region + # that you specify for the destination object. The request can also + # result in a data retrieval charge for the source if the source + # storage class bills for data retrieval. If the copy source is in a + # different region, the data transfer is billed to the copy source + # account. For pricing information, see [Amazon S3 pricing][9]. + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is ` + # Bucket_name.s3express-az_id.region.amazonaws.com`. + # + # The following operations are related to `CopyObject`: + # + # * [PutObject][10] + # + # * [GetObject][11] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [3]: https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html#manage-acct-regions-enable-standalone + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html + # [8]: https://repost.aws/knowledge-center/s3-resolve-200-internalerror + # [9]: http://aws.amazon.com/s3/pricing/ + # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html + # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html + # + # @example Example: To copy an object + # + # # The following example copies an object from one bucket to another. + # + # resp = client.copy_object({ + # bucket: "destinationbucket", + # copy_source: "/sourcebucket/HappyFacejpg", + # key: "HappyFaceCopyjpg", + # }) + # + # resp.to_h outputs the following: + # { + # copy_object_result: { + # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"", + # last_modified: Time.parse("2016-12-15T17:38:53.000Z"), + # }, + # } + # @example Request syntax with placeholder values + # + # resp = client.copy_object({ + # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control + # bucket: "BucketName", # required + # cache_control: "CacheControl", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # content_disposition: "ContentDisposition", + # content_encoding: "ContentEncoding", + # content_language: "ContentLanguage", + # content_type: "ContentType", + # copy_source: "CopySource", # required + # copy_source_if_match: "CopySourceIfMatch", + # copy_source_if_modified_since: Time.now, + # copy_source_if_none_match: "CopySourceIfNoneMatch", + # copy_source_if_unmodified_since: Time.now, + # expires: Time.now, + # grant_full_control: "GrantFullControl", + # grant_read: "GrantRead", + # grant_read_acp: "GrantReadACP", + # grant_write_acp: "GrantWriteACP", + # key: "ObjectKey", # required + # metadata: { + # "MetadataKey" => "MetadataValue", + # }, + # metadata_directive: "COPY", # accepts COPY, REPLACE + # tagging_directive: "COPY", # accepts COPY, REPLACE + # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse + # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE + # website_redirect_location: "WebsiteRedirectLocation", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # ssekms_key_id: "SSEKMSKeyId", + # ssekms_encryption_context: "SSEKMSEncryptionContext", + # bucket_key_enabled: false, + # copy_source_sse_customer_algorithm: "CopySourceSSECustomerAlgorithm", + # copy_source_sse_customer_key: "CopySourceSSECustomerKey", + # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5", + # request_payer: "requester", # accepts requester + # tagging: "TaggingHeader", + # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE + # object_lock_retain_until_date: Time.now, + # object_lock_legal_hold_status: "ON", # accepts ON, OFF + # expected_bucket_owner: "AccountId", + # expected_source_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.copy_object_result.etag #=> String + # resp.copy_object_result.last_modified #=> Time + # resp.copy_object_result.checksum_crc32 #=> String + # resp.copy_object_result.checksum_crc32c #=> String + # resp.copy_object_result.checksum_sha1 #=> String + # resp.copy_object_result.checksum_sha256 #=> String + # resp.expiration #=> String + # resp.copy_source_version_id #=> String + # resp.version_id #=> String + # resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse" + # resp.sse_customer_algorithm #=> String + # resp.sse_customer_key_md5 #=> String + # resp.ssekms_key_id #=> String + # resp.ssekms_encryption_context #=> String + # resp.bucket_key_enabled #=> Boolean + # resp.request_charged #=> String, one of "requester" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload copy_object + # @param params [Hash] ({}) + # @return [Types::CopyObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CopyObjectOutput#copy_object_result #copy_object_result} => Types::CopyObjectResult + # * {Types::CopyObjectOutput#expiration #expiration} => String + # * {Types::CopyObjectOutput#copy_source_version_id #copy_source_version_id} => String + # * {Types::CopyObjectOutput#version_id #version_id} => String + # * {Types::CopyObjectOutput#server_side_encryption #server_side_encryption} => String + # * {Types::CopyObjectOutput#sse_customer_algorithm #sse_customer_algorithm} => String + # * {Types::CopyObjectOutput#sse_customer_key_md5 #sse_customer_key_md5} => String + # * {Types::CopyObjectOutput#ssekms_key_id #ssekms_key_id} => String + # * {Types::CopyObjectOutput#ssekms_encryption_context #ssekms_encryption_context} => String + # * {Types::CopyObjectOutput#bucket_key_enabled #bucket_key_enabled} => Boolean + # * {Types::CopyObjectOutput#request_charged #request_charged} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CopyObject AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#2217 + def copy_object(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This action creates an Amazon S3 bucket. To create an Amazon S3 on + # Outposts bucket, see [ `CreateBucket` ][1]. + # + # + # + # Creates a new S3 bucket. To create a bucket, you must set up Amazon S3 + # and have a valid Amazon Web Services Access Key ID to authenticate + # requests. Anonymous requests are never allowed to create buckets. By + # creating the bucket, you become the bucket owner. + # + # There are two types of buckets: general purpose buckets and directory + # buckets. For more information about these bucket types, see [Creating, + # configuring, and working with Amazon S3 buckets][2] in the *Amazon S3 + # User Guide*. + # + # * **General purpose buckets** - If you send your `CreateBucket` + # request to the `s3.amazonaws.com` global endpoint, the request goes + # to the `us-east-1` Region. So the signature calculations in + # Signature Version 4 must use `us-east-1` as the Region, even if the + # location constraint in the request specifies another Region where + # the bucket is to be created. If you create a bucket in a Region + # other than US East (N. Virginia), your application must be able to + # handle 307 redirect. For more information, see [Virtual hosting of + # buckets][3] in the *Amazon S3 User Guide*. + # + # * Directory buckets - For directory buckets, you must make + # requests for this API operation to the Regional endpoint. These + # endpoints support path-style requests in the format + # `https://s3express-control.region_code.amazonaws.com/bucket-name `. + # Virtual-hosted-style requests aren't supported. For more + # information, see [Regional and Zonal endpoints][4] in the *Amazon S3 + # User Guide*. + # + # + # + # Permissions + # : * **General purpose bucket permissions** - In addition to the + # `s3:CreateBucket` permission, the following permissions are + # required in a policy when your `CreateBucket` request includes + # specific headers: + # + # * **Access control lists (ACLs)** - In your `CreateBucket` + # request, if you specify an access control list (ACL) and set it + # to `public-read`, `public-read-write`, `authenticated-read`, or + # if you explicitly specify any other custom ACLs, both + # `s3:CreateBucket` and `s3:PutBucketAcl` permissions are + # required. In your `CreateBucket` request, if you set the ACL to + # `private`, or if you don't specify any ACLs, only the + # `s3:CreateBucket` permission is required. + # + # * **Object Lock** - In your `CreateBucket` request, if you set + # `x-amz-bucket-object-lock-enabled` to true, the + # `s3:PutBucketObjectLockConfiguration` and + # `s3:PutBucketVersioning` permissions are required. + # + # * **S3 Object Ownership** - If your `CreateBucket` request + # includes the `x-amz-object-ownership` header, then the + # `s3:PutBucketOwnershipControls` permission is required. + # + # To set an ACL on a bucket as part of a `CreateBucket` request, + # you must explicitly set S3 Object Ownership for the bucket to a + # different value than the default, `BucketOwnerEnforced`. + # Additionally, if your desired bucket ACL grants public access, + # you must first create the bucket (without the bucket ACL) and + # then explicitly disable Block Public Access on the bucket before + # using `PutBucketAcl` to set the ACL. If you try to create a + # bucket with a public ACL, the request will fail. + # + # For the majority of modern use cases in S3, we recommend that + # you keep all Block Public Access settings enabled and keep ACLs + # disabled. If you would like to share data with users outside of + # your account, you can use bucket policies as needed. For more + # information, see [Controlling ownership of objects and disabling + # ACLs for your bucket ][5] and [Blocking public access to your + # Amazon S3 storage ][6] in the *Amazon S3 User Guide*. + # + # * **S3 Block Public Access** - If your specific use case requires + # granting public access to your S3 resources, you can disable + # Block Public Access. Specifically, you can create a new bucket + # with Block Public Access enabled, then separately call the [ + # `DeletePublicAccessBlock` ][7] API. To use this operation, you + # must have the `s3:PutBucketPublicAccessBlock` permission. For + # more information about S3 Block Public Access, see [Blocking + # public access to your Amazon S3 storage ][6] in the *Amazon S3 + # User Guide*. + # + # * **Directory bucket permissions** - You must have the + # `s3express:CreateBucket` permission in an IAM identity-based + # policy instead of a bucket policy. Cross-account access to this + # API operation isn't supported. This operation can only be + # performed by the Amazon Web Services account that owns the + # resource. For more information about directory bucket policies and + # permissions, see [Amazon Web Services Identity and Access + # Management (IAM) for S3 Express One Zone][8] in the *Amazon S3 + # User Guide*. + # + # The permissions for ACLs, Object Lock, S3 Object Ownership, and S3 + # Block Public Access are not supported for directory buckets. For + # directory buckets, all Block Public Access settings are enabled at + # the bucket level and S3 Object Ownership is set to Bucket owner + # enforced (ACLs disabled). These settings can't be modified. + # + # For more information about permissions for creating and working + # with directory buckets, see [Directory buckets][9] in the *Amazon + # S3 User Guide*. For more information about supported S3 features + # for directory buckets, see [Features of S3 Express One Zone][10] + # in the *Amazon S3 User Guide*. + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is + # `s3express-control.region.amazonaws.com`. + # + # The following operations are related to `CreateBucket`: + # + # * [PutObject][11] + # + # * [DeleteBucket][12] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html + # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html + # [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-one-zone.html#s3-express-features + # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html + # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html + # + # @example Example: To create a bucket in a specific region + # + # # The following example creates a bucket. The request specifies an AWS region where to create the bucket. + # + # resp = client.create_bucket({ + # bucket: "examplebucket", + # create_bucket_configuration: { + # location_constraint: "eu-west-1", + # }, + # }) + # + # resp.to_h outputs the following: + # { + # location: "http://examplebucket..s3.amazonaws.com/", + # } + # @example Example: To create a bucket + # + # # The following example creates a bucket. + # + # resp = client.create_bucket({ + # bucket: "examplebucket", + # }) + # + # resp.to_h outputs the following: + # { + # location: "/examplebucket", + # } + # @example Request syntax with placeholder values + # + # resp = client.create_bucket({ + # acl: "private", # accepts private, public-read, public-read-write, authenticated-read + # bucket: "BucketName", # required + # create_bucket_configuration: { + # location_constraint: "af-south-1", # accepts af-south-1, ap-east-1, ap-northeast-1, ap-northeast-2, ap-northeast-3, ap-south-1, ap-south-2, ap-southeast-1, ap-southeast-2, ap-southeast-3, ca-central-1, cn-north-1, cn-northwest-1, EU, eu-central-1, eu-north-1, eu-south-1, eu-south-2, eu-west-1, eu-west-2, eu-west-3, me-south-1, sa-east-1, us-east-2, us-gov-east-1, us-gov-west-1, us-west-1, us-west-2 + # location: { + # type: "AvailabilityZone", # accepts AvailabilityZone + # name: "LocationNameAsString", + # }, + # bucket: { + # data_redundancy: "SingleAvailabilityZone", # accepts SingleAvailabilityZone + # type: "Directory", # accepts Directory + # }, + # }, + # grant_full_control: "GrantFullControl", + # grant_read: "GrantRead", + # grant_read_acp: "GrantReadACP", + # grant_write: "GrantWrite", + # grant_write_acp: "GrantWriteACP", + # object_lock_enabled_for_bucket: false, + # object_ownership: "BucketOwnerPreferred", # accepts BucketOwnerPreferred, ObjectWriter, BucketOwnerEnforced + # }) + # @example Response structure + # + # resp.location #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload create_bucket + # @param params [Hash] ({}) + # @return [Types::CreateBucketOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CreateBucketOutput#location #location} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucket AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#2537 + def create_bucket(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This action initiates a multipart upload and returns an upload ID. + # This upload ID is used to associate all of the parts in the specific + # multipart upload. You specify this upload ID in each of your + # subsequent upload part requests (see [UploadPart][1]). You also + # include this upload ID in the final request to either complete or + # abort the multipart upload request. For more information about + # multipart uploads, see [Multipart Upload Overview][2] in the *Amazon + # S3 User Guide*. + # + # After you initiate a multipart upload and upload one or more parts, to + # stop being charged for storing the uploaded parts, you must either + # complete or abort the multipart upload. Amazon S3 frees up the space + # used to store the parts and stops charging you for storing them only + # after you either complete or abort a multipart upload. + # + # + # + # If you have configured a lifecycle rule to abort incomplete multipart + # uploads, the created multipart upload must be completed within the + # number of days specified in the bucket lifecycle configuration. + # Otherwise, the incomplete multipart upload becomes eligible for an + # abort action and Amazon S3 aborts the multipart upload. For more + # information, see [Aborting Incomplete Multipart Uploads Using a Bucket + # Lifecycle Configuration][3]. + # + # * Directory buckets - S3 Lifecycle is not supported by + # directory buckets. + # + # * Directory buckets - For directory buckets, you must make + # requests for this API operation to the Zonal endpoint. These + # endpoints support virtual-hosted-style requests in the format + # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name + # `. Path-style requests are not supported. For more information, see + # [Regional and Zonal endpoints][4] in the *Amazon S3 User Guide*. + # + # + # + # Request signing + # + # : For request signing, multipart upload is just a series of regular + # requests. You initiate a multipart upload, send one or more requests + # to upload parts, and then complete the multipart upload process. You + # sign each request individually. There is nothing special about + # signing multipart upload requests. For more information about + # signing, see [Authenticating Requests (Amazon Web Services Signature + # Version 4)][5] in the *Amazon S3 User Guide*. + # + # Permissions + # : * **General purpose bucket permissions** - To perform a multipart + # upload with encryption using an Key Management Service (KMS) KMS + # key, the requester must have permission to the `kms:Decrypt` and + # `kms:GenerateDataKey` actions on the key. The requester must also + # have permissions for the `kms:GenerateDataKey` action for the + # `CreateMultipartUpload` API. Then, the requester needs permissions + # for the `kms:Decrypt` action on the `UploadPart` and + # `UploadPartCopy` APIs. These permissions are required because + # Amazon S3 must decrypt and read data from the encrypted file parts + # before it completes the multipart upload. For more information, + # see [Multipart upload API and permissions][6] and [Protecting data + # using server-side encryption with Amazon Web Services KMS][7] in + # the *Amazon S3 User Guide*. + # + # * **Directory bucket permissions** - To grant access to this API + # operation on a directory bucket, we recommend that you use the [ + # `CreateSession` ][8] API operation for session-based + # authorization. Specifically, you grant the + # `s3express:CreateSession` permission to the directory bucket in a + # bucket policy or an IAM identity-based policy. Then, you make the + # `CreateSession` API call on the bucket to obtain a session token. + # With the session token in your request header, you can make API + # requests to this operation. After the session token expires, you + # make another `CreateSession` API call to generate a new session + # token for use. Amazon Web Services CLI or SDKs create session and + # refresh the session token automatically to avoid service + # interruptions when a session expires. For more information about + # authorization, see [ `CreateSession` ][8]. + # + # Encryption + # : * **General purpose buckets** - Server-side encryption is for data + # encryption at rest. Amazon S3 encrypts your data as it writes it + # to disks in its data centers and decrypts it when you access it. + # Amazon S3 automatically encrypts all new objects that are uploaded + # to an S3 bucket. When doing a multipart upload, if you don't + # specify encryption information in your request, the encryption + # setting of the uploaded parts is set to the default encryption + # configuration of the destination bucket. By default, all buckets + # have a base level of encryption configuration that uses + # server-side encryption with Amazon S3 managed keys (SSE-S3). If + # the destination bucket has a default encryption configuration that + # uses server-side encryption with an Key Management Service (KMS) + # key (SSE-KMS), or a customer-provided encryption key (SSE-C), + # Amazon S3 uses the corresponding KMS key, or a customer-provided + # key to encrypt the uploaded parts. When you perform a + # CreateMultipartUpload operation, if you want to use a different + # type of encryption setting for the uploaded parts, you can request + # that Amazon S3 encrypts the object with a different encryption key + # (such as an Amazon S3 managed key, a KMS key, or a + # customer-provided key). When the encryption setting in your + # request is different from the default encryption configuration of + # the destination bucket, the encryption setting in your request + # takes precedence. If you choose to provide your own encryption + # key, the request headers you provide in [UploadPart][1] and + # [UploadPartCopy][9] requests must match the headers you used in + # the `CreateMultipartUpload` request. + # + # * Use KMS keys (SSE-KMS) that include the Amazon Web Services + # managed key (`aws/s3`) and KMS customer managed keys stored in + # Key Management Service (KMS) – If you want Amazon Web Services + # to manage the keys used to encrypt data, specify the following + # headers in the request. + # + # * `x-amz-server-side-encryption` + # + # * `x-amz-server-side-encryption-aws-kms-key-id` + # + # * `x-amz-server-side-encryption-context` + # + # * If you specify `x-amz-server-side-encryption:aws:kms`, but + # don't provide `x-amz-server-side-encryption-aws-kms-key-id`, + # Amazon S3 uses the Amazon Web Services managed key (`aws/s3` + # key) in KMS to protect the data. + # + # * To perform a multipart upload with encryption by using an + # Amazon Web Services KMS key, the requester must have + # permission to the `kms:Decrypt` and `kms:GenerateDataKey*` + # actions on the key. These permissions are required because + # Amazon S3 must decrypt and read data from the encrypted file + # parts before it completes the multipart upload. For more + # information, see [Multipart upload API and permissions][6] and + # [Protecting data using server-side encryption with Amazon Web + # Services KMS][7] in the *Amazon S3 User Guide*. + # + # * If your Identity and Access Management (IAM) user or role is + # in the same Amazon Web Services account as the KMS key, then + # you must have these permissions on the key policy. If your IAM + # user or role is in a different account from the key, then you + # must have the permissions on both the key policy and your IAM + # user or role. + # + # * All `GET` and `PUT` requests for an object protected by KMS + # fail if you don't make them by using Secure Sockets Layer + # (SSL), Transport Layer Security (TLS), or Signature Version 4. + # For information about configuring any of the officially + # supported Amazon Web Services SDKs and Amazon Web Services + # CLI, see [Specifying the Signature Version in Request + # Authentication][10] in the *Amazon S3 User Guide*. + # + # + # + # For more information about server-side encryption with KMS keys + # (SSE-KMS), see [Protecting Data Using Server-Side Encryption + # with KMS keys][7] in the *Amazon S3 User Guide*. + # + # * Use customer-provided encryption keys (SSE-C) – If you want to + # manage your own encryption keys, provide all the following + # headers in the request. + # + # * `x-amz-server-side-encryption-customer-algorithm` + # + # * `x-amz-server-side-encryption-customer-key` + # + # * `x-amz-server-side-encryption-customer-key-MD5` + # + # For more information about server-side encryption with + # customer-provided encryption keys (SSE-C), see [ Protecting data + # using server-side encryption with customer-provided encryption + # keys (SSE-C)][11] in the *Amazon S3 User Guide*. + # + # * **Directory buckets** - For directory buckets, there are only two + # supported options for server-side encryption: server-side + # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and + # server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We + # recommend that the bucket's default encryption uses the desired + # encryption configuration and you don't override the bucket + # default encryption in your `CreateSession` requests or `PUT` + # object requests. Then, new objects are automatically encrypted + # with the desired encryption settings. For more information, see + # [Protecting data with server-side encryption][12] in the *Amazon + # S3 User Guide*. For more information about the encryption + # overriding behaviors in directory buckets, see [Specifying + # server-side encryption with KMS for new object uploads][13]. + # + # In the Zonal endpoint API calls (except [CopyObject][14] and + # [UploadPartCopy][9]) using the REST API, the encryption request + # headers must match the encryption settings that are specified in + # the `CreateSession` request. You can't override the values of the + # encryption settings (`x-amz-server-side-encryption`, + # `x-amz-server-side-encryption-aws-kms-key-id`, + # `x-amz-server-side-encryption-context`, and + # `x-amz-server-side-encryption-bucket-key-enabled`) that are + # specified in the `CreateSession` request. You don't need to + # explicitly specify these encryption settings values in Zonal + # endpoint API calls, and Amazon S3 will use the encryption settings + # values from the `CreateSession` request to protect new objects in + # the directory bucket. + # + # When you use the CLI or the Amazon Web Services SDKs, for + # `CreateSession`, the session token refreshes automatically to + # avoid service interruptions when a session expires. The CLI or the + # Amazon Web Services SDKs use the bucket's default encryption + # configuration for the `CreateSession` request. It's not supported + # to override the encryption settings values in the `CreateSession` + # request. So in the Zonal endpoint API calls (except + # [CopyObject][14] and [UploadPartCopy][9]), the encryption request + # headers must match the default encryption configuration of the + # directory bucket. + # + # + # + # For directory buckets, when you perform a `CreateMultipartUpload` + # operation and an `UploadPartCopy` operation, the request headers + # you provide in the `CreateMultipartUpload` request must match the + # default encryption configuration of the destination bucket. + # + # + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is ` + # Bucket_name.s3express-az_id.region.amazonaws.com`. + # + # The following operations are related to `CreateMultipartUpload`: + # + # * [UploadPart][1] + # + # * [CompleteMultipartUpload][15] + # + # * [AbortMultipartUpload][16] + # + # * [ListParts][17] + # + # * [ListMultipartUploads][18] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html + # [10]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version + # [11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html + # [12]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html + # [13]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html + # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html + # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html + # [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html + # [17]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html + # [18]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html + # + # @example Example: To initiate a multipart upload + # + # # The following example initiates a multipart upload. + # + # resp = client.create_multipart_upload({ + # bucket: "examplebucket", + # key: "largeobject", + # }) + # + # resp.to_h outputs the following: + # { + # bucket: "examplebucket", + # key: "largeobject", + # upload_id: "ibZBv_75gd9r8lH_gqXatLdxMVpAlj6ZQjEs.OwyF3953YdwbcQnMA2BLGn8Lx12fQNICtMw5KyteFeHw.Sjng--", + # } + # @example Request syntax with placeholder values + # + # resp = client.create_multipart_upload({ + # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control + # bucket: "BucketName", # required + # cache_control: "CacheControl", + # content_disposition: "ContentDisposition", + # content_encoding: "ContentEncoding", + # content_language: "ContentLanguage", + # content_type: "ContentType", + # expires: Time.now, + # grant_full_control: "GrantFullControl", + # grant_read: "GrantRead", + # grant_read_acp: "GrantReadACP", + # grant_write_acp: "GrantWriteACP", + # key: "ObjectKey", # required + # metadata: { + # "MetadataKey" => "MetadataValue", + # }, + # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse + # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE + # website_redirect_location: "WebsiteRedirectLocation", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # ssekms_key_id: "SSEKMSKeyId", + # ssekms_encryption_context: "SSEKMSEncryptionContext", + # bucket_key_enabled: false, + # request_payer: "requester", # accepts requester + # tagging: "TaggingHeader", + # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE + # object_lock_retain_until_date: Time.now, + # object_lock_legal_hold_status: "ON", # accepts ON, OFF + # expected_bucket_owner: "AccountId", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # }) + # @example Response structure + # + # resp.abort_date #=> Time + # resp.abort_rule_id #=> String + # resp.bucket #=> String + # resp.key #=> String + # resp.upload_id #=> String + # resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse" + # resp.sse_customer_algorithm #=> String + # resp.sse_customer_key_md5 #=> String + # resp.ssekms_key_id #=> String + # resp.ssekms_encryption_context #=> String + # resp.bucket_key_enabled #=> Boolean + # resp.request_charged #=> String, one of "requester" + # resp.checksum_algorithm #=> String, one of "CRC32", "CRC32C", "SHA1", "SHA256" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload create_multipart_upload + # @param params [Hash] ({}) + # @return [Types::CreateMultipartUploadOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CreateMultipartUploadOutput#abort_date #abort_date} => Time + # * {Types::CreateMultipartUploadOutput#abort_rule_id #abort_rule_id} => String + # * {Types::CreateMultipartUploadOutput#bucket #bucket} => String + # * {Types::CreateMultipartUploadOutput#key #key} => String + # * {Types::CreateMultipartUploadOutput#upload_id #upload_id} => String + # * {Types::CreateMultipartUploadOutput#server_side_encryption #server_side_encryption} => String + # * {Types::CreateMultipartUploadOutput#sse_customer_algorithm #sse_customer_algorithm} => String + # * {Types::CreateMultipartUploadOutput#sse_customer_key_md5 #sse_customer_key_md5} => String + # * {Types::CreateMultipartUploadOutput#ssekms_key_id #ssekms_key_id} => String + # * {Types::CreateMultipartUploadOutput#ssekms_encryption_context #ssekms_encryption_context} => String + # * {Types::CreateMultipartUploadOutput#bucket_key_enabled #bucket_key_enabled} => Boolean + # * {Types::CreateMultipartUploadOutput#request_charged #request_charged} => String + # * {Types::CreateMultipartUploadOutput#checksum_algorithm #checksum_algorithm} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateMultipartUpload AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#3479 + def create_multipart_upload(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Creates a session that establishes temporary security credentials to + # support fast authentication and authorization for the Zonal endpoint + # API operations on directory buckets. For more information about Zonal + # endpoint API operations that include the Availability Zone in the + # request endpoint, see [S3 Express One Zone APIs][1] in the *Amazon S3 + # User Guide*. + # + # To make Zonal endpoint API requests on a directory bucket, use the + # `CreateSession` API operation. Specifically, you grant + # `s3express:CreateSession` permission to a bucket in a bucket policy or + # an IAM identity-based policy. Then, you use IAM credentials to make + # the `CreateSession` API request on the bucket, which returns temporary + # security credentials that include the access key ID, secret access + # key, session token, and expiration. These credentials have associated + # permissions to access the Zonal endpoint API operations. After the + # session is created, you don’t need to use other policies to grant + # permissions to each Zonal endpoint API individually. Instead, in your + # Zonal endpoint API requests, you sign your requests by applying the + # temporary security credentials of the session to the request headers + # and following the SigV4 protocol for authentication. You also apply + # the session token to the `x-amz-s3session-token` request header for + # authorization. Temporary security credentials are scoped to the bucket + # and expire after 5 minutes. After the expiration time, any calls that + # you make with those credentials will fail. You must use IAM + # credentials again to make a `CreateSession` API request that generates + # a new set of temporary credentials for use. Temporary credentials + # cannot be extended or refreshed beyond the original specified + # interval. + # + # If you use Amazon Web Services SDKs, SDKs handle the session token + # refreshes automatically to avoid service interruptions when a session + # expires. We recommend that you use the Amazon Web Services SDKs to + # initiate and manage requests to the CreateSession API. For more + # information, see [Performance guidelines and design patterns][2] in + # the *Amazon S3 User Guide*. + # + # * You must make requests for this API operation to the Zonal endpoint. + # These endpoints support virtual-hosted-style requests in the format + # `https://bucket_name.s3express-az_id.region.amazonaws.com`. + # Path-style requests are not supported. For more information, see + # [Regional and Zonal endpoints][3] in the *Amazon S3 User Guide*. + # + # * CopyObject API operation - Unlike other Zonal + # endpoint API operations, the `CopyObject` API operation doesn't use + # the temporary security credentials returned from the `CreateSession` + # API operation for authentication and authorization. For information + # about authentication and authorization of the `CopyObject` API + # operation on directory buckets, see [CopyObject][4]. + # + # * HeadBucket API operation - Unlike other Zonal + # endpoint API operations, the `HeadBucket` API operation doesn't use + # the temporary security credentials returned from the `CreateSession` + # API operation for authentication and authorization. For information + # about authentication and authorization of the `HeadBucket` API + # operation on directory buckets, see [HeadBucket][5]. + # + # + # + # Permissions + # + # : To obtain temporary security credentials, you must create a bucket + # policy or an IAM identity-based policy that grants + # `s3express:CreateSession` permission to the bucket. In a policy, you + # can have the `s3express:SessionMode` condition key to control who + # can create a `ReadWrite` or `ReadOnly` session. For more information + # about `ReadWrite` or `ReadOnly` sessions, see [ + # `x-amz-create-session-mode` ][6]. For example policies, see [Example + # bucket policies for S3 Express One Zone][7] and [Amazon Web Services + # Identity and Access Management (IAM) identity-based policies for S3 + # Express One Zone][8] in the *Amazon S3 User Guide*. + # + # To grant cross-account access to Zonal endpoint API operations, the + # bucket policy should also grant both accounts the + # `s3express:CreateSession` permission. + # + # If you want to encrypt objects with SSE-KMS, you must also have the + # `kms:GenerateDataKey` and the `kms:Decrypt` permissions in IAM + # identity-based policies and KMS key policies for the target KMS key. + # + # Encryption + # + # : For directory buckets, there are only two supported options for + # server-side encryption: server-side encryption with Amazon S3 + # managed keys (SSE-S3) (`AES256`) and server-side encryption with KMS + # keys (SSE-KMS) (`aws:kms`). We recommend that the bucket's default + # encryption uses the desired encryption configuration and you don't + # override the bucket default encryption in your `CreateSession` + # requests or `PUT` object requests. Then, new objects are + # automatically encrypted with the desired encryption settings. For + # more information, see [Protecting data with server-side + # encryption][9] in the *Amazon S3 User Guide*. For more information + # about the encryption overriding behaviors in directory buckets, see + # [Specifying server-side encryption with KMS for new object + # uploads][10]. + # + # For [Zonal endpoint (object-level) API operations][11] except + # [CopyObject][4] and [UploadPartCopy][12], you authenticate and + # authorize requests through [CreateSession][13] for low latency. To + # encrypt new objects in a directory bucket with SSE-KMS, you must + # specify SSE-KMS as the directory bucket's default encryption + # configuration with a KMS key (specifically, a [customer managed + # key][14]). Then, when a session is created for Zonal endpoint API + # operations, new objects are automatically encrypted and decrypted + # with SSE-KMS and S3 Bucket Keys during the session. + # + # Only 1 [customer managed key][14] is supported per directory bucket + # for the lifetime of the bucket. [Amazon Web Services managed + # key][15] (`aws/s3`) isn't supported. After you specify SSE-KMS as + # your bucket's default encryption configuration with a customer + # managed key, you can't change the customer managed key for the + # bucket's SSE-KMS configuration. + # + # + # + # In the Zonal endpoint API calls (except [CopyObject][4] and + # [UploadPartCopy][12]) using the REST API, you can't override the + # values of the encryption settings (`x-amz-server-side-encryption`, + # `x-amz-server-side-encryption-aws-kms-key-id`, + # `x-amz-server-side-encryption-context`, and + # `x-amz-server-side-encryption-bucket-key-enabled`) from the + # `CreateSession` request. You don't need to explicitly specify these + # encryption settings values in Zonal endpoint API calls, and Amazon + # S3 will use the encryption settings values from the `CreateSession` + # request to protect new objects in the directory bucket. + # + # When you use the CLI or the Amazon Web Services SDKs, for + # `CreateSession`, the session token refreshes automatically to avoid + # service interruptions when a session expires. The CLI or the Amazon + # Web Services SDKs use the bucket's default encryption configuration + # for the `CreateSession` request. It's not supported to override the + # encryption settings values in the `CreateSession` request. Also, in + # the Zonal endpoint API calls (except [CopyObject][4] and + # [UploadPartCopy][12]), it's not supported to override the values of + # the encryption settings from the `CreateSession` request. + # + # + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is ` + # Bucket_name.s3express-az_id.region.amazonaws.com`. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-APIs.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-optimizing-performance-guidelines-design-patterns.html#s3-express-optimizing-performance-session-authentication + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html#API_CreateSession_RequestParameters + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html + # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html + # [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html + # [11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-differences.html#s3-express-differences-api-operations + # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html + # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + # [14]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk + # [15]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk + # + # @example Request syntax with placeholder values + # + # resp = client.create_session({ + # session_mode: "ReadOnly", # accepts ReadOnly, ReadWrite + # bucket: "BucketName", # required + # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse + # ssekms_key_id: "SSEKMSKeyId", + # ssekms_encryption_context: "SSEKMSEncryptionContext", + # bucket_key_enabled: false, + # }) + # @example Response structure + # + # resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse" + # resp.ssekms_key_id #=> String + # resp.ssekms_encryption_context #=> String + # resp.bucket_key_enabled #=> Boolean + # resp.credentials.access_key_id #=> String + # resp.credentials.secret_access_key #=> String + # resp.credentials.session_token #=> String + # resp.credentials.expiration #=> Time + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload create_session + # @param params [Hash] ({}) + # @return [Types::CreateSessionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CreateSessionOutput#server_side_encryption #server_side_encryption} => String + # * {Types::CreateSessionOutput#ssekms_key_id #ssekms_key_id} => String + # * {Types::CreateSessionOutput#ssekms_encryption_context #ssekms_encryption_context} => String + # * {Types::CreateSessionOutput#bucket_key_enabled #bucket_key_enabled} => Boolean + # * {Types::CreateSessionOutput#credentials #credentials} => Types::SessionCredentials + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateSession AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#3768 + def create_session(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Deletes the S3 bucket. All objects (including all object versions and + # delete markers) in the bucket must be deleted before the bucket itself + # can be deleted. + # + # * **Directory buckets** - If multipart uploads in a directory bucket + # are in progress, you can't delete the bucket until all the + # in-progress multipart uploads are aborted or completed. + # + # * Directory buckets - For directory buckets, you must make + # requests for this API operation to the Regional endpoint. These + # endpoints support path-style requests in the format + # `https://s3express-control.region_code.amazonaws.com/bucket-name `. + # Virtual-hosted-style requests aren't supported. For more + # information, see [Regional and Zonal endpoints][1] in the *Amazon S3 + # User Guide*. + # + # + # + # Permissions + # : * **General purpose bucket permissions** - You must have the + # `s3:DeleteBucket` permission on the specified bucket in a policy. + # + # * **Directory bucket permissions** - You must have the + # `s3express:DeleteBucket` permission in an IAM identity-based + # policy instead of a bucket policy. Cross-account access to this + # API operation isn't supported. This operation can only be + # performed by the Amazon Web Services account that owns the + # resource. For more information about directory bucket policies and + # permissions, see [Amazon Web Services Identity and Access + # Management (IAM) for S3 Express One Zone][2] in the *Amazon S3 + # User Guide*. + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is + # `s3express-control.region.amazonaws.com`. + # + # The following operations are related to `DeleteBucket`: + # + # * [CreateBucket][3] + # + # * [DeleteObject][4] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html + # + # @example Example: To delete a bucket + # + # # The following example deletes the specified bucket. + # + # resp = client.delete_bucket({ + # bucket: "forrandall2", + # }) + # @example Request syntax with placeholder values + # + # resp = client.delete_bucket({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @overload delete_bucket + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucket AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#3873 + def delete_bucket(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Deletes an analytics configuration for the bucket (specified by the + # analytics configuration ID). + # + # To use this operation, you must have permissions to perform the + # `s3:PutAnalyticsConfiguration` action. The 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][1] and [Managing Access + # Permissions to Your Amazon S3 Resources][2]. + # + # For information about the Amazon S3 analytics feature, see [Amazon S3 + # Analytics – Storage Class Analysis][3]. + # + # The following operations are related to + # `DeleteBucketAnalyticsConfiguration`: + # + # * [GetBucketAnalyticsConfiguration][4] + # + # * [ListBucketAnalyticsConfigurations][5] + # + # * [PutBucketAnalyticsConfiguration][6] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html + # + # @example Request syntax with placeholder values + # + # resp = client.delete_bucket_analytics_configuration({ + # bucket: "BucketName", # required + # id: "AnalyticsId", # required + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @option params + # @overload delete_bucket_analytics_configuration + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketAnalyticsConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#3939 + def delete_bucket_analytics_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Deletes the `cors` configuration information set for the bucket. + # + # To use this operation, you must have permission to perform the + # `s3:PutBucketCORS` action. The bucket owner has this permission by + # default and can grant this permission to others. + # + # For information about `cors`, see [Enabling Cross-Origin Resource + # Sharing][1] in the *Amazon S3 User Guide*. + # + # **Related Resources** + # + # * [PutBucketCors][2] + # + # * [RESTOPTIONSobject][3] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html + # + # @example Example: To delete cors configuration on a bucket. + # + # # The following example deletes CORS configuration on a bucket. + # + # resp = client.delete_bucket_cors({ + # bucket: "examplebucket", + # }) + # @example Request syntax with placeholder values + # + # resp = client.delete_bucket_cors({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @overload delete_bucket_cors + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketCors AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#3999 + def delete_bucket_cors(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This implementation of the DELETE action resets the default encryption + # for the bucket as server-side encryption with Amazon S3 managed keys + # (SSE-S3). + # + # * **General purpose buckets** - For information about the bucket + # default encryption feature, see [Amazon S3 Bucket Default + # Encryption][1] in the *Amazon S3 User Guide*. + # + # * **Directory buckets** - For directory buckets, there are only two + # supported options for server-side encryption: SSE-S3 and SSE-KMS. + # For information about the default encryption configuration in + # directory buckets, see [Setting default server-side encryption + # behavior for directory buckets][2]. + # + # + # + # Permissions + # : * **General purpose bucket permissions** - The + # `s3:PutEncryptionConfiguration` permission is required in a + # policy. The 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 + # Operations][3] and [Managing Access Permissions to Your Amazon S3 + # Resources][4]. + # + # * **Directory bucket permissions** - To grant access to this API + # operation, you must have the + # `s3express:PutEncryptionConfiguration` permission in an IAM + # identity-based policy instead of a bucket policy. Cross-account + # access to this API operation isn't supported. This operation can + # only be performed by the Amazon Web Services account that owns the + # resource. For more information about directory bucket policies and + # permissions, see [Amazon Web Services Identity and Access + # Management (IAM) for S3 Express One Zone][5] in the *Amazon S3 + # User Guide*. + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is + # `s3express-control.region.amazonaws.com`. + # + # The following operations are related to `DeleteBucketEncryption`: + # + # * [PutBucketEncryption][6] + # + # * [GetBucketEncryption][7] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-bucket-encryption.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html + # + # @example Request syntax with placeholder values + # + # resp = client.delete_bucket_encryption({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @overload delete_bucket_encryption + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketEncryption AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#4103 + def delete_bucket_encryption(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Deletes the S3 Intelligent-Tiering configuration from the specified + # bucket. + # + # The S3 Intelligent-Tiering storage class is designed to optimize + # storage costs by automatically moving data to the most cost-effective + # storage access tier, without performance impact or operational + # overhead. S3 Intelligent-Tiering delivers automatic cost savings in + # three low latency and high throughput access tiers. To get the lowest + # storage cost on data that can be accessed in minutes to hours, you can + # choose to activate additional archiving capabilities. + # + # The S3 Intelligent-Tiering storage class is the ideal storage class + # for data with unknown, changing, or unpredictable access patterns, + # independent of object size or retention period. If the size of an + # object is less than 128 KB, it is not monitored and not eligible for + # auto-tiering. Smaller objects can be stored, but they are always + # charged at the Frequent Access tier rates in the S3 + # Intelligent-Tiering storage class. + # + # For more information, see [Storage class for automatically optimizing + # frequently and infrequently accessed objects][1]. + # + # Operations related to `DeleteBucketIntelligentTieringConfiguration` + # include: + # + # * [GetBucketIntelligentTieringConfiguration][2] + # + # * [PutBucketIntelligentTieringConfiguration][3] + # + # * [ListBucketIntelligentTieringConfigurations][4] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html + # + # @example Request syntax with placeholder values + # + # resp = client.delete_bucket_intelligent_tiering_configuration({ + # bucket: "BucketName", # required + # id: "IntelligentTieringId", # required + # }) + # @option params + # @option params + # @overload delete_bucket_intelligent_tiering_configuration + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketIntelligentTieringConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#4170 + def delete_bucket_intelligent_tiering_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Deletes an inventory configuration (identified by the inventory ID) + # from the bucket. + # + # To use this operation, you must have permissions to perform the + # `s3:PutInventoryConfiguration` action. The 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][1] and [Managing Access + # Permissions to Your Amazon S3 Resources][2]. + # + # For information about the Amazon S3 inventory feature, see [Amazon S3 + # Inventory][3]. + # + # Operations related to `DeleteBucketInventoryConfiguration` include: + # + # * [GetBucketInventoryConfiguration][4] + # + # * [PutBucketInventoryConfiguration][5] + # + # * [ListBucketInventoryConfigurations][6] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html + # + # @example Request syntax with placeholder values + # + # resp = client.delete_bucket_inventory_configuration({ + # bucket: "BucketName", # required + # id: "InventoryId", # required + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @option params + # @overload delete_bucket_inventory_configuration + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketInventoryConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#4235 + def delete_bucket_inventory_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Deletes the lifecycle configuration from the specified bucket. Amazon + # S3 removes all the lifecycle configuration rules in the lifecycle + # subresource associated with the bucket. Your objects never expire, and + # Amazon S3 no longer automatically deletes any objects on the basis of + # rules contained in the deleted lifecycle configuration. + # + # To use this operation, you must have permission to perform the + # `s3:PutLifecycleConfiguration` action. By default, the bucket owner + # has this permission and the bucket owner can grant this permission to + # others. + # + # There is usually some time lag before lifecycle configuration deletion + # is fully propagated to all the Amazon S3 systems. + # + # For more information about the object expiration, see [Elements to + # Describe Lifecycle Actions][1]. + # + # Related actions include: + # + # * [PutBucketLifecycleConfiguration][2] + # + # * [GetBucketLifecycleConfiguration][3] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html + # + # @example Example: To delete lifecycle configuration on a bucket. + # + # # The following example deletes lifecycle configuration on a bucket. + # + # resp = client.delete_bucket_lifecycle({ + # bucket: "examplebucket", + # }) + # @example Request syntax with placeholder values + # + # resp = client.delete_bucket_lifecycle({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @overload delete_bucket_lifecycle + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketLifecycle AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#4303 + def delete_bucket_lifecycle(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Deletes a metrics configuration for the Amazon CloudWatch request + # metrics (specified by the metrics configuration ID) from the bucket. + # Note that this doesn't include the daily storage metrics. + # + # To use this operation, you must have permissions to perform the + # `s3:PutMetricsConfiguration` action. The 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][1] and [Managing Access + # Permissions to Your Amazon S3 Resources][2]. + # + # For information about CloudWatch request metrics for Amazon S3, see + # [Monitoring Metrics with Amazon CloudWatch][3]. + # + # The following operations are related to + # `DeleteBucketMetricsConfiguration`: + # + # * [GetBucketMetricsConfiguration][4] + # + # * [PutBucketMetricsConfiguration][5] + # + # * [ListBucketMetricsConfigurations][6] + # + # * [Monitoring Metrics with Amazon CloudWatch][3] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html + # + # @example Request syntax with placeholder values + # + # resp = client.delete_bucket_metrics_configuration({ + # bucket: "BucketName", # required + # id: "MetricsId", # required + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @option params + # @overload delete_bucket_metrics_configuration + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketMetricsConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#4373 + def delete_bucket_metrics_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Removes `OwnershipControls` for an Amazon S3 bucket. To use this + # operation, you must have the `s3:PutBucketOwnershipControls` + # permission. For more information about Amazon S3 permissions, see + # [Specifying Permissions in a Policy][1]. + # + # For information about Amazon S3 Object Ownership, see [Using Object + # Ownership][2]. + # + # The following operations are related to + # `DeleteBucketOwnershipControls`: + # + # * GetBucketOwnershipControls + # + # * PutBucketOwnershipControls + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html + # + # @example Request syntax with placeholder values + # + # resp = client.delete_bucket_ownership_controls({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @overload delete_bucket_ownership_controls + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketOwnershipControls AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#4423 + def delete_bucket_ownership_controls(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Deletes the policy of a specified bucket. + # + # Directory buckets - For directory buckets, you must make + # requests for this API operation to the Regional endpoint. These + # endpoints support path-style requests in the format + # `https://s3express-control.region_code.amazonaws.com/bucket-name `. + # Virtual-hosted-style requests aren't supported. For more information, + # see [Regional and Zonal endpoints][1] in the *Amazon S3 User Guide*. + # + # + # + # Permissions + # + # : 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 + # both have the `DeleteBucketPolicy` permissions on the specified + # bucket and belong to the bucket owner's account in order to use + # this operation. + # + # 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. + # + # To ensure that bucket owners don't inadvertently lock themselves + # out of their own buckets, the root principal in a bucket owner's + # Amazon Web Services account can perform the `GetBucketPolicy`, + # `PutBucketPolicy`, and `DeleteBucketPolicy` API actions, even if + # their bucket policy explicitly denies the root principal's access. + # Bucket owner root principals can only be blocked from performing + # these API actions by VPC endpoint policies and Amazon Web Services + # Organizations policies. + # + # * **General purpose bucket permissions** - The + # `s3:DeleteBucketPolicy` permission is required in a policy. For + # more information about general purpose buckets bucket policies, + # see [Using Bucket Policies and User Policies][2] in the *Amazon S3 + # User Guide*. + # + # * **Directory bucket permissions** - To grant access to this API + # operation, you must have the `s3express:DeleteBucketPolicy` + # permission in an IAM identity-based policy instead of a bucket + # policy. Cross-account access to this API operation isn't + # supported. This operation can only be performed by the Amazon Web + # Services account that owns the resource. For more information + # about directory bucket policies and permissions, see [Amazon Web + # Services Identity and Access Management (IAM) for S3 Express One + # Zone][3] in the *Amazon S3 User Guide*. + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is + # `s3express-control.region.amazonaws.com`. + # + # The following operations are related to `DeleteBucketPolicy` + # + # * [CreateBucket][4] + # + # * [DeleteObject][5] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html + # + # @example Example: To delete bucket policy + # + # # The following example deletes bucket policy on the specified bucket. + # + # resp = client.delete_bucket_policy({ + # bucket: "examplebucket", + # }) + # @example Request syntax with placeholder values + # + # resp = client.delete_bucket_policy({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @overload delete_bucket_policy + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketPolicy AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#4547 + def delete_bucket_policy(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Deletes the replication configuration from the bucket. + # + # To use this operation, you must have permissions to perform the + # `s3:PutReplicationConfiguration` action. The bucket owner has these + # permissions by default and can grant it to others. For more + # information about permissions, see [Permissions Related to Bucket + # Subresource Operations][1] and [Managing Access Permissions to Your + # Amazon S3 Resources][2]. + # + # It can take a while for the deletion of a replication configuration to + # fully propagate. + # + # + # + # For information about replication configuration, see [Replication][3] + # in the *Amazon S3 User Guide*. + # + # The following operations are related to `DeleteBucketReplication`: + # + # * [PutBucketReplication][4] + # + # * [GetBucketReplication][5] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html + # + # @example Example: To delete bucket replication configuration + # + # # The following example deletes replication configuration set on bucket. + # + # resp = client.delete_bucket_replication({ + # bucket: "example", + # }) + # @example Request syntax with placeholder values + # + # resp = client.delete_bucket_replication({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @overload delete_bucket_replication + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketReplication AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#4617 + def delete_bucket_replication(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Deletes the tags from the bucket. + # + # To use this operation, you must have permission to perform the + # `s3:PutBucketTagging` action. By default, the bucket owner has this + # permission and can grant this permission to others. + # + # The following operations are related to `DeleteBucketTagging`: + # + # * [GetBucketTagging][1] + # + # * [PutBucketTagging][2] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html + # + # @example Example: To delete bucket tags + # + # # The following example deletes bucket tags. + # + # resp = client.delete_bucket_tagging({ + # bucket: "examplebucket", + # }) + # @example Request syntax with placeholder values + # + # resp = client.delete_bucket_tagging({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @overload delete_bucket_tagging + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketTagging AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#4673 + def delete_bucket_tagging(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # This action removes the website configuration for a bucket. Amazon S3 + # returns a `200 OK` response upon successfully deleting a website + # configuration on the specified bucket. You will get a `200 OK` + # response if the website configuration you are trying to delete does + # not exist on the bucket. Amazon S3 returns a `404` response if the + # bucket specified in the request does not exist. + # + # This DELETE action requires the `S3:DeleteBucketWebsite` permission. + # By default, only the bucket owner can delete the website configuration + # attached to a bucket. However, bucket owners can grant other users + # permission to delete the website configuration by writing a bucket + # policy granting them the `S3:DeleteBucketWebsite` permission. + # + # For more information about hosting websites, see [Hosting Websites on + # Amazon S3][1]. + # + # The following operations are related to `DeleteBucketWebsite`: + # + # * [GetBucketWebsite][2] + # + # * [PutBucketWebsite][3] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html + # + # @example Example: To delete bucket website configuration + # + # # The following example deletes bucket website configuration. + # + # resp = client.delete_bucket_website({ + # bucket: "examplebucket", + # }) + # @example Request syntax with placeholder values + # + # resp = client.delete_bucket_website({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @overload delete_bucket_website + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketWebsite AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#4741 + def delete_bucket_website(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Removes an object from a bucket. The behavior depends on the bucket's + # versioning state: + # + # * If bucket versioning is not enabled, the operation permanently + # deletes the object. + # + # * If bucket versioning is enabled, the operation inserts a delete + # marker, which becomes the current version of the object. To + # permanently delete an object in a versioned bucket, you must include + # the object’s `versionId` in the request. For more information about + # versioning-enabled buckets, see [Deleting object versions from a + # versioning-enabled bucket][1]. + # + # * If bucket versioning is suspended, the operation removes the object + # that has a null `versionId`, if there is one, and inserts a delete + # marker that becomes the current version of the object. If there + # isn't an object with a null `versionId`, and all versions of the + # object have a `versionId`, Amazon S3 does not remove the object and + # only inserts a delete marker. To permanently delete an object that + # has a `versionId`, you must include the object’s `versionId` in the + # request. For more information about versioning-suspended buckets, + # see [Deleting objects from versioning-suspended buckets][2]. + # + # * **Directory buckets** - S3 Versioning isn't enabled and supported + # for directory buckets. For this API operation, only the `null` value + # of the version ID is supported by directory buckets. You can only + # specify `null` to the `versionId` query parameter in the request. + # + # * **Directory buckets** - For directory buckets, you must make + # requests for this API operation to the Zonal endpoint. These + # endpoints support virtual-hosted-style requests in the format + # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name + # `. Path-style requests are not supported. For more information, see + # [Regional and Zonal endpoints][3] in the *Amazon S3 User Guide*. + # + # + # + # To remove a specific version, you must use the `versionId` query + # parameter. Using this query parameter permanently deletes the version. + # If the object deleted is a delete marker, Amazon S3 sets the response + # header `x-amz-delete-marker` to true. + # + # If the object you want to delete is in a bucket where the bucket + # versioning configuration is MFA Delete enabled, you must include the + # `x-amz-mfa` request header in the DELETE `versionId` request. Requests + # that include `x-amz-mfa` must use HTTPS. For more information about + # MFA Delete, see [Using MFA Delete][4] in the *Amazon S3 User Guide*. + # To see sample requests that use versioning, see [Sample Request][5]. + # + # **Directory buckets** - MFA delete is not supported by directory + # buckets. + # + # + # + # You can delete objects by explicitly calling DELETE Object or calling + # ([PutBucketLifecycle][6]) to enable Amazon S3 to remove them for you. + # If you want to block users or accounts from removing or deleting + # objects from your bucket, you must deny them the `s3:DeleteObject`, + # `s3:DeleteObjectVersion`, and `s3:PutLifeCycleConfiguration` actions. + # + # **Directory buckets** - S3 Lifecycle is not supported by directory + # buckets. + # + # + # + # Permissions + # : * **General purpose bucket permissions** - The following permissions + # are required in your policies when your `DeleteObjects` request + # includes specific headers. + # + # * s3:DeleteObject - To delete an object from + # a bucket, you must always have the `s3:DeleteObject` permission. + # + # * s3:DeleteObjectVersion - To delete a + # specific version of an object from a versioning-enabled bucket, + # you must have the `s3:DeleteObjectVersion` permission. + # + # * **Directory bucket permissions** - To grant access to this API + # operation on a directory bucket, we recommend that you use the [ + # `CreateSession` ][7] API operation for session-based + # authorization. Specifically, you grant the + # `s3express:CreateSession` permission to the directory bucket in a + # bucket policy or an IAM identity-based policy. Then, you make the + # `CreateSession` API call on the bucket to obtain a session token. + # With the session token in your request header, you can make API + # requests to this operation. After the session token expires, you + # make another `CreateSession` API call to generate a new session + # token for use. Amazon Web Services CLI or SDKs create session and + # refresh the session token automatically to avoid service + # interruptions when a session expires. For more information about + # authorization, see [ `CreateSession` ][7]. + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is ` + # Bucket_name.s3express-az_id.region.amazonaws.com`. + # + # The following action is related to `DeleteObject`: + # + # * [PutObject][8] + # + # ^ + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjectVersions.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjectsfromVersioningSuspendedBuckets.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html + # + # @example Example: To delete an object + # + # # The following example deletes an object from an S3 bucket. + # + # resp = client.delete_object({ + # bucket: "examplebucket", + # key: "objectkey.jpg", + # }) + # + # resp.to_h outputs the following: + # { + # } + # @example Example: To delete an object (from a non-versioned bucket) + # + # # The following example deletes an object from a non-versioned bucket. + # + # resp = client.delete_object({ + # bucket: "ExampleBucket", + # key: "HappyFace.jpg", + # }) + # @example Request syntax with placeholder values + # + # resp = client.delete_object({ + # bucket: "BucketName", # required + # key: "ObjectKey", # required + # mfa: "MFA", + # version_id: "ObjectVersionId", + # request_payer: "requester", # accepts requester + # bypass_governance_retention: false, + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.delete_marker #=> Boolean + # resp.version_id #=> String + # resp.request_charged #=> String, one of "requester" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload delete_object + # @param params [Hash] ({}) + # @return [Types::DeleteObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DeleteObjectOutput#delete_marker #delete_marker} => Boolean + # * {Types::DeleteObjectOutput#version_id #version_id} => String + # * {Types::DeleteObjectOutput#request_charged #request_charged} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObject AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#5007 + def delete_object(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Removes the entire tag set from the specified object. For more + # information about managing object tags, see [ Object Tagging][1]. + # + # To use this operation, you must have permission to perform the + # `s3:DeleteObjectTagging` action. + # + # To delete tags of a specific object version, add the `versionId` query + # parameter in the request. You will need permission for the + # `s3:DeleteObjectVersionTagging` action. + # + # The following operations are related to `DeleteObjectTagging`: + # + # * [PutObjectTagging][2] + # + # * [GetObjectTagging][3] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html + # + # @example Example: To remove tag set from an object + # + # # The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the + # # operation removes tag set from the latest object version. + # + # resp = client.delete_object_tagging({ + # bucket: "examplebucket", + # key: "HappyFace.jpg", + # }) + # + # resp.to_h outputs the following: + # { + # version_id: "null", + # } + # @example Example: To remove tag set from an object version + # + # # The following example removes tag set associated with the specified object version. The request specifies both the + # # object key and object version. + # + # resp = client.delete_object_tagging({ + # bucket: "examplebucket", + # key: "HappyFace.jpg", + # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI", + # }) + # + # resp.to_h outputs the following: + # { + # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI", + # } + # @example Request syntax with placeholder values + # + # resp = client.delete_object_tagging({ + # bucket: "BucketName", # required + # key: "ObjectKey", # required + # version_id: "ObjectVersionId", + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.version_id #=> String + # @option params + # @option params + # @option params + # @option params + # @overload delete_object_tagging + # @param params [Hash] ({}) + # @return [Types::DeleteObjectTaggingOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DeleteObjectTaggingOutput#version_id #version_id} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectTagging AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#5131 + def delete_object_tagging(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation enables you to delete multiple objects from a bucket + # using a single HTTP request. If you know the object keys that you want + # to delete, then this operation provides a suitable alternative to + # sending individual delete requests, reducing per-request overhead. + # + # The request can contain a list of up to 1000 keys that you want to + # delete. In the XML, you provide the object key names, and optionally, + # version IDs if you want to delete a specific version of the object + # from a versioning-enabled bucket. For each key, Amazon S3 performs a + # delete operation and returns the result of that delete, success or + # failure, in the response. Note that if the object specified in the + # request is not found, Amazon S3 returns the result as deleted. + # + # * **Directory buckets** - S3 Versioning isn't enabled and supported + # for directory buckets. + # + # * **Directory buckets** - For directory buckets, you must make + # requests for this API operation to the Zonal endpoint. These + # endpoints support virtual-hosted-style requests in the format + # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name + # `. Path-style requests are not supported. For more information, see + # [Regional and Zonal endpoints][1] in the *Amazon S3 User Guide*. + # + # + # + # The operation supports two modes for the response: verbose and quiet. + # By default, the operation uses verbose mode in which the response + # includes the result of deletion of each key in your request. In quiet + # mode the response includes only keys where the delete operation + # encountered an error. For a successful deletion in a quiet mode, the + # operation does not return any information about the delete in the + # response body. + # + # When performing this action on an MFA Delete enabled bucket, that + # attempts to delete any versioned objects, you must include an MFA + # token. If you do not provide one, the entire request will fail, even + # if there are non-versioned objects you are trying to delete. If you + # provide an invalid token, whether there are versioned keys in the + # request or not, the entire Multi-Object Delete request will fail. For + # information about MFA Delete, see [MFA Delete][2] in the *Amazon S3 + # User Guide*. + # + # **Directory buckets** - MFA delete is not supported by directory + # buckets. + # + # + # + # Permissions + # : * **General purpose bucket permissions** - The following permissions + # are required in your policies when your `DeleteObjects` request + # includes specific headers. + # + # * s3:DeleteObject - To delete an object from + # a bucket, you must always specify the `s3:DeleteObject` + # permission. + # + # * s3:DeleteObjectVersion - To delete a + # specific version of an object from a versioning-enabled bucket, + # you must specify the `s3:DeleteObjectVersion` permission. + # + # * **Directory bucket permissions** - To grant access to this API + # operation on a directory bucket, we recommend that you use the [ + # `CreateSession` ][3] API operation for session-based + # authorization. Specifically, you grant the + # `s3express:CreateSession` permission to the directory bucket in a + # bucket policy or an IAM identity-based policy. Then, you make the + # `CreateSession` API call on the bucket to obtain a session token. + # With the session token in your request header, you can make API + # requests to this operation. After the session token expires, you + # make another `CreateSession` API call to generate a new session + # token for use. Amazon Web Services CLI or SDKs create session and + # refresh the session token automatically to avoid service + # interruptions when a session expires. For more information about + # authorization, see [ `CreateSession` ][3]. + # + # Content-MD5 request header + # : * **General purpose bucket** - The Content-MD5 request header is + # required for all Multi-Object Delete requests. Amazon S3 uses the + # header value to ensure that your request body has not been altered + # in transit. + # + # * **Directory bucket** - The Content-MD5 request header or a + # additional checksum request header (including + # `x-amz-checksum-crc32`, `x-amz-checksum-crc32c`, + # `x-amz-checksum-sha1`, or `x-amz-checksum-sha256`) is required for + # all Multi-Object Delete requests. + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is ` + # Bucket_name.s3express-az_id.region.amazonaws.com`. + # + # The following operations are related to `DeleteObjects`: + # + # * [CreateMultipartUpload][4] + # + # * [UploadPart][5] + # + # * [CompleteMultipartUpload][6] + # + # * [ListParts][7] + # + # * [AbortMultipartUpload][8] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html + # + # @example Example: To delete multiple objects from a versioned bucket + # + # # The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the + # # object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker. + # + # resp = client.delete_objects({ + # bucket: "examplebucket", + # delete: { + # objects: [ + # { + # key: "objectkey1", + # }, + # { + # key: "objectkey2", + # }, + # ], + # quiet: false, + # }, + # }) + # + # resp.to_h outputs the following: + # { + # deleted: [ + # { + # delete_marker: true, + # delete_marker_version_id: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F", + # key: "objectkey1", + # }, + # { + # delete_marker: true, + # delete_marker_version_id: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt", + # key: "objectkey2", + # }, + # ], + # } + # @example Example: To delete multiple object versions from a versioned bucket + # + # # The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object + # # versions and returns the key and versions of deleted objects in the response. + # + # resp = client.delete_objects({ + # bucket: "examplebucket", + # delete: { + # objects: [ + # { + # key: "HappyFace.jpg", + # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b", + # }, + # { + # key: "HappyFace.jpg", + # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd", + # }, + # ], + # quiet: false, + # }, + # }) + # + # resp.to_h outputs the following: + # { + # deleted: [ + # { + # key: "HappyFace.jpg", + # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd", + # }, + # { + # key: "HappyFace.jpg", + # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b", + # }, + # ], + # } + # @example Request syntax with placeholder values + # + # resp = client.delete_objects({ + # bucket: "BucketName", # required + # delete: { # required + # objects: [ # required + # { + # key: "ObjectKey", # required + # version_id: "ObjectVersionId", + # }, + # ], + # quiet: false, + # }, + # mfa: "MFA", + # request_payer: "requester", # accepts requester + # bypass_governance_retention: false, + # expected_bucket_owner: "AccountId", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # }) + # @example Response structure + # + # resp.deleted #=> Array + # resp.deleted[0].key #=> String + # resp.deleted[0].version_id #=> String + # resp.deleted[0].delete_marker #=> Boolean + # resp.deleted[0].delete_marker_version_id #=> String + # resp.request_charged #=> String, one of "requester" + # resp.errors #=> Array + # resp.errors[0].key #=> String + # resp.errors[0].version_id #=> String + # resp.errors[0].code #=> String + # resp.errors[0].message #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload delete_objects + # @param params [Hash] ({}) + # @return [Types::DeleteObjectsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DeleteObjectsOutput#deleted #deleted} => Array<Types::DeletedObject> + # * {Types::DeleteObjectsOutput#request_charged #request_charged} => String + # * {Types::DeleteObjectsOutput#errors #errors} => Array<Types::Error> + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjects AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#5504 + def delete_objects(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Removes the `PublicAccessBlock` configuration for an Amazon S3 bucket. + # To use this operation, you must have the + # `s3:PutBucketPublicAccessBlock` permission. For more information about + # permissions, see [Permissions Related to Bucket Subresource + # Operations][1] and [Managing Access Permissions to Your Amazon S3 + # Resources][2]. + # + # The following operations are related to `DeletePublicAccessBlock`: + # + # * [Using Amazon S3 Block Public Access][3] + # + # * [GetPublicAccessBlock][4] + # + # * [PutPublicAccessBlock][5] + # + # * [GetBucketPolicyStatus][6] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html + # + # @example Request syntax with placeholder values + # + # resp = client.delete_public_access_block({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @overload delete_public_access_block + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeletePublicAccessBlock AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#5561 + def delete_public_access_block(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # This implementation of the GET action uses the `accelerate` + # subresource to return the Transfer Acceleration state of a bucket, + # which is either `Enabled` or `Suspended`. Amazon S3 Transfer + # Acceleration is a bucket-level feature that enables you to perform + # faster data transfers to and from Amazon S3. + # + # To use this operation, you must have permission to perform the + # `s3:GetAccelerateConfiguration` action. The 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][1] and [Managing Access + # Permissions to your Amazon S3 Resources][2] in the *Amazon S3 User + # Guide*. + # + # You set the Transfer Acceleration state of an existing bucket to + # `Enabled` or `Suspended` by using the + # [PutBucketAccelerateConfiguration][3] operation. + # + # A GET `accelerate` request does not return a state value for a bucket + # that has no transfer acceleration state. A bucket has no Transfer + # Acceleration state if a state has never been set on the bucket. + # + # For more information about transfer acceleration, see [Transfer + # Acceleration][4] in the Amazon S3 User Guide. + # + # The following operations are related to + # `GetBucketAccelerateConfiguration`: + # + # * [PutBucketAccelerateConfiguration][3] + # + # ^ + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html + # + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_accelerate_configuration({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # request_payer: "requester", # accepts requester + # }) + # @example Response structure + # + # resp.status #=> String, one of "Enabled", "Suspended" + # resp.request_charged #=> String, one of "requester" + # @option params + # @option params + # @option params + # @overload get_bucket_accelerate_configuration + # @param params [Hash] ({}) + # @return [Types::GetBucketAccelerateConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketAccelerateConfigurationOutput#status #status} => String + # * {Types::GetBucketAccelerateConfigurationOutput#request_charged #request_charged} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAccelerateConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#5657 + def get_bucket_accelerate_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # This implementation of the `GET` action uses the `acl` subresource to + # return the access control list (ACL) of a bucket. To use `GET` to + # return the ACL of the bucket, you must have the `READ_ACP` access to + # the bucket. If `READ_ACP` permission is granted to the anonymous user, + # you can return the ACL of the bucket without using an authorization + # header. + # + # When you use this API operation with an access point, provide the + # alias of the access point in place of the bucket name. + # + # When you use this API operation with an Object Lambda access point, + # provide the alias of the Object Lambda access point in place of the + # bucket name. If the Object Lambda access point alias in a request is + # not valid, the error code `InvalidAccessPointAliasError` is returned. + # For more information about `InvalidAccessPointAliasError`, see [List + # of Error Codes][1]. + # + # If your bucket uses the bucket owner enforced setting for S3 Object + # Ownership, requests to read ACLs are still supported and return the + # `bucket-owner-full-control` ACL with the owner being the account that + # created the bucket. For more information, see [ Controlling object + # ownership and disabling ACLs][2] in the *Amazon S3 User Guide*. + # + # + # + # The following operations are related to `GetBucketAcl`: + # + # * [ListObjects][3] + # + # ^ + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html + # + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_acl({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.owner.display_name #=> String + # resp.owner.id #=> String + # resp.grants #=> Array + # resp.grants[0].grantee.display_name #=> String + # resp.grants[0].grantee.email_address #=> String + # resp.grants[0].grantee.id #=> String + # resp.grants[0].grantee.type #=> String, one of "CanonicalUser", "AmazonCustomerByEmail", "Group" + # resp.grants[0].grantee.uri #=> String + # resp.grants[0].permission #=> String, one of "FULL_CONTROL", "WRITE", "WRITE_ACP", "READ", "READ_ACP" + # @option params + # @option params + # @overload get_bucket_acl + # @param params [Hash] ({}) + # @return [Types::GetBucketAclOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketAclOutput#owner #owner} => Types::Owner + # * {Types::GetBucketAclOutput#grants #grants} => Array<Types::Grant> + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAcl AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#5753 + def get_bucket_acl(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # This implementation of the GET action returns an analytics + # configuration (identified by the analytics configuration ID) from the + # bucket. + # + # To use this operation, you must have permissions to perform the + # `s3:GetAnalyticsConfiguration` action. The 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][1] and [Managing Access + # Permissions to Your Amazon S3 Resources][2] in the *Amazon S3 User + # Guide*. + # + # For information about Amazon S3 analytics feature, see [Amazon S3 + # Analytics – Storage Class Analysis][3] in the *Amazon S3 User Guide*. + # + # The following operations are related to + # `GetBucketAnalyticsConfiguration`: + # + # * [DeleteBucketAnalyticsConfiguration][4] + # + # * [ListBucketAnalyticsConfigurations][5] + # + # * [PutBucketAnalyticsConfiguration][6] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html + # + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_analytics_configuration({ + # bucket: "BucketName", # required + # id: "AnalyticsId", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.analytics_configuration.id #=> String + # resp.analytics_configuration.filter.prefix #=> String + # resp.analytics_configuration.filter.tag.key #=> String + # resp.analytics_configuration.filter.tag.value #=> String + # resp.analytics_configuration.filter.and.prefix #=> String + # resp.analytics_configuration.filter.and.tags #=> Array + # resp.analytics_configuration.filter.and.tags[0].key #=> String + # resp.analytics_configuration.filter.and.tags[0].value #=> String + # resp.analytics_configuration.storage_class_analysis.data_export.output_schema_version #=> String, one of "V_1" + # resp.analytics_configuration.storage_class_analysis.data_export.destination.s3_bucket_destination.format #=> String, one of "CSV" + # resp.analytics_configuration.storage_class_analysis.data_export.destination.s3_bucket_destination.bucket_account_id #=> String + # resp.analytics_configuration.storage_class_analysis.data_export.destination.s3_bucket_destination.bucket #=> String + # resp.analytics_configuration.storage_class_analysis.data_export.destination.s3_bucket_destination.prefix #=> String + # @option params + # @option params + # @option params + # @overload get_bucket_analytics_configuration + # @param params [Hash] ({}) + # @return [Types::GetBucketAnalyticsConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketAnalyticsConfigurationOutput#analytics_configuration #analytics_configuration} => Types::AnalyticsConfiguration + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAnalyticsConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#5839 + def get_bucket_analytics_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Returns the Cross-Origin Resource Sharing (CORS) configuration + # information set for the bucket. + # + # To use this operation, you must have permission to perform the + # `s3:GetBucketCORS` action. By default, the bucket owner has this + # permission and can grant it to others. + # + # When you use this API operation with an access point, provide the + # alias of the access point in place of the bucket name. + # + # When you use this API operation with an Object Lambda access point, + # provide the alias of the Object Lambda access point in place of the + # bucket name. If the Object Lambda access point alias in a request is + # not valid, the error code `InvalidAccessPointAliasError` is returned. + # For more information about `InvalidAccessPointAliasError`, see [List + # of Error Codes][1]. + # + # For more information about CORS, see [ Enabling Cross-Origin Resource + # Sharing][2]. + # + # The following operations are related to `GetBucketCors`: + # + # * [PutBucketCors][3] + # + # * [DeleteBucketCors][4] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html + # + # @example Example: To get cors configuration set on a bucket + # + # # The following example returns cross-origin resource sharing (CORS) configuration set on a bucket. + # + # resp = client.get_bucket_cors({ + # bucket: "examplebucket", + # }) + # + # resp.to_h outputs the following: + # { + # cors_rules: [ + # { + # allowed_headers: [ + # "Authorization", + # ], + # allowed_methods: [ + # "GET", + # ], + # allowed_origins: [ + # "*", + # ], + # max_age_seconds: 3000, + # }, + # ], + # } + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_cors({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.cors_rules #=> Array + # resp.cors_rules[0].id #=> String + # resp.cors_rules[0].allowed_headers #=> Array + # resp.cors_rules[0].allowed_headers[0] #=> String + # resp.cors_rules[0].allowed_methods #=> Array + # resp.cors_rules[0].allowed_methods[0] #=> String + # resp.cors_rules[0].allowed_origins #=> Array + # resp.cors_rules[0].allowed_origins[0] #=> String + # resp.cors_rules[0].expose_headers #=> Array + # resp.cors_rules[0].expose_headers[0] #=> String + # resp.cors_rules[0].max_age_seconds #=> Integer + # @option params + # @option params + # @overload get_bucket_cors + # @param params [Hash] ({}) + # @return [Types::GetBucketCorsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketCorsOutput#cors_rules #cors_rules} => Array<Types::CORSRule> + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketCors AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#5959 + def get_bucket_cors(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns the default encryption configuration for an Amazon S3 bucket. + # By default, all buckets have a default encryption configuration that + # uses server-side encryption with Amazon S3 managed keys (SSE-S3). + # + # * **General purpose buckets** - For information about the bucket + # default encryption feature, see [Amazon S3 Bucket Default + # Encryption][1] in the *Amazon S3 User Guide*. + # + # * **Directory buckets** - For directory buckets, there are only two + # supported options for server-side encryption: SSE-S3 and SSE-KMS. + # For information about the default encryption configuration in + # directory buckets, see [Setting default server-side encryption + # behavior for directory buckets][2]. + # + # + # + # Permissions + # : * **General purpose bucket permissions** - The + # `s3:GetEncryptionConfiguration` permission is required in a + # policy. The 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 + # Operations][3] and [Managing Access Permissions to Your Amazon S3 + # Resources][4]. + # + # * **Directory bucket permissions** - To grant access to this API + # operation, you must have the + # `s3express:GetEncryptionConfiguration` permission in an IAM + # identity-based policy instead of a bucket policy. Cross-account + # access to this API operation isn't supported. This operation can + # only be performed by the Amazon Web Services account that owns the + # resource. For more information about directory bucket policies and + # permissions, see [Amazon Web Services Identity and Access + # Management (IAM) for S3 Express One Zone][5] in the *Amazon S3 + # User Guide*. + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is + # `s3express-control.region.amazonaws.com`. + # + # The following operations are related to `GetBucketEncryption`: + # + # * [PutBucketEncryption][6] + # + # * [DeleteBucketEncryption][7] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-bucket-encryption.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html + # + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_encryption({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.server_side_encryption_configuration.rules #=> Array + # resp.server_side_encryption_configuration.rules[0].apply_server_side_encryption_by_default.sse_algorithm #=> String, one of "AES256", "aws:kms", "aws:kms:dsse" + # resp.server_side_encryption_configuration.rules[0].apply_server_side_encryption_by_default.kms_master_key_id #=> String + # resp.server_side_encryption_configuration.rules[0].bucket_key_enabled #=> Boolean + # @option params + # @option params + # @overload get_bucket_encryption + # @param params [Hash] ({}) + # @return [Types::GetBucketEncryptionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketEncryptionOutput#server_side_encryption_configuration #server_side_encryption_configuration} => Types::ServerSideEncryptionConfiguration + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketEncryption AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#6072 + def get_bucket_encryption(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Gets the S3 Intelligent-Tiering configuration from the specified + # bucket. + # + # The S3 Intelligent-Tiering storage class is designed to optimize + # storage costs by automatically moving data to the most cost-effective + # storage access tier, without performance impact or operational + # overhead. S3 Intelligent-Tiering delivers automatic cost savings in + # three low latency and high throughput access tiers. To get the lowest + # storage cost on data that can be accessed in minutes to hours, you can + # choose to activate additional archiving capabilities. + # + # The S3 Intelligent-Tiering storage class is the ideal storage class + # for data with unknown, changing, or unpredictable access patterns, + # independent of object size or retention period. If the size of an + # object is less than 128 KB, it is not monitored and not eligible for + # auto-tiering. Smaller objects can be stored, but they are always + # charged at the Frequent Access tier rates in the S3 + # Intelligent-Tiering storage class. + # + # For more information, see [Storage class for automatically optimizing + # frequently and infrequently accessed objects][1]. + # + # Operations related to `GetBucketIntelligentTieringConfiguration` + # include: + # + # * [DeleteBucketIntelligentTieringConfiguration][2] + # + # * [PutBucketIntelligentTieringConfiguration][3] + # + # * [ListBucketIntelligentTieringConfigurations][4] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html + # + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_intelligent_tiering_configuration({ + # bucket: "BucketName", # required + # id: "IntelligentTieringId", # required + # }) + # @example Response structure + # + # resp.intelligent_tiering_configuration.id #=> String + # resp.intelligent_tiering_configuration.filter.prefix #=> String + # resp.intelligent_tiering_configuration.filter.tag.key #=> String + # resp.intelligent_tiering_configuration.filter.tag.value #=> String + # resp.intelligent_tiering_configuration.filter.and.prefix #=> String + # resp.intelligent_tiering_configuration.filter.and.tags #=> Array + # resp.intelligent_tiering_configuration.filter.and.tags[0].key #=> String + # resp.intelligent_tiering_configuration.filter.and.tags[0].value #=> String + # resp.intelligent_tiering_configuration.status #=> String, one of "Enabled", "Disabled" + # resp.intelligent_tiering_configuration.tierings #=> Array + # resp.intelligent_tiering_configuration.tierings[0].days #=> Integer + # resp.intelligent_tiering_configuration.tierings[0].access_tier #=> String, one of "ARCHIVE_ACCESS", "DEEP_ARCHIVE_ACCESS" + # @option params + # @option params + # @overload get_bucket_intelligent_tiering_configuration + # @param params [Hash] ({}) + # @return [Types::GetBucketIntelligentTieringConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketIntelligentTieringConfigurationOutput#intelligent_tiering_configuration #intelligent_tiering_configuration} => Types::IntelligentTieringConfiguration + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketIntelligentTieringConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#6156 + def get_bucket_intelligent_tiering_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Returns an inventory configuration (identified by the inventory + # configuration ID) from the bucket. + # + # To use this operation, you must have permissions to perform the + # `s3:GetInventoryConfiguration` action. The 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][1] and [Managing Access Permissions to Your + # Amazon S3 Resources][2]. + # + # For information about the Amazon S3 inventory feature, see [Amazon S3 + # Inventory][3]. + # + # The following operations are related to + # `GetBucketInventoryConfiguration`: + # + # * [DeleteBucketInventoryConfiguration][4] + # + # * [ListBucketInventoryConfigurations][5] + # + # * [PutBucketInventoryConfiguration][6] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html + # + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_inventory_configuration({ + # bucket: "BucketName", # required + # id: "InventoryId", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.inventory_configuration.destination.s3_bucket_destination.account_id #=> String + # resp.inventory_configuration.destination.s3_bucket_destination.bucket #=> String + # resp.inventory_configuration.destination.s3_bucket_destination.format #=> String, one of "CSV", "ORC", "Parquet" + # resp.inventory_configuration.destination.s3_bucket_destination.prefix #=> String + # resp.inventory_configuration.destination.s3_bucket_destination.encryption.ssekms.key_id #=> String + # resp.inventory_configuration.is_enabled #=> Boolean + # resp.inventory_configuration.filter.prefix #=> String + # resp.inventory_configuration.id #=> String + # resp.inventory_configuration.included_object_versions #=> String, one of "All", "Current" + # resp.inventory_configuration.optional_fields #=> Array + # resp.inventory_configuration.optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus", "ObjectLockRetainUntilDate", "ObjectLockMode", "ObjectLockLegalHoldStatus", "IntelligentTieringAccessTier", "BucketKeyStatus", "ChecksumAlgorithm", "ObjectAccessControlList", "ObjectOwner" + # resp.inventory_configuration.schedule.frequency #=> String, one of "Daily", "Weekly" + # @option params + # @option params + # @option params + # @overload get_bucket_inventory_configuration + # @param params [Hash] ({}) + # @return [Types::GetBucketInventoryConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketInventoryConfigurationOutput#inventory_configuration #inventory_configuration} => Types::InventoryConfiguration + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketInventoryConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#6239 + def get_bucket_inventory_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # For an updated version of this API, see + # [GetBucketLifecycleConfiguration][1]. If you configured a bucket + # lifecycle using the `filter` element, you should see the updated + # version of this topic. This topic is provided for backward + # compatibility. + # + # This operation is not supported by directory buckets. + # + # + # + # Returns the lifecycle configuration information set on the bucket. For + # information about lifecycle configuration, see [Object Lifecycle + # Management][2]. + # + # To use this operation, you must have permission to perform the + # `s3:GetLifecycleConfiguration` action. The 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][3] and [Managing Access + # Permissions to Your Amazon S3 Resources][4]. + # + # `GetBucketLifecycle` 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 operations are related to `GetBucketLifecycle`: + # + # * [GetBucketLifecycleConfiguration][1] + # + # * [PutBucketLifecycle][5] + # + # * [DeleteBucketLifecycle][6] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html + # + # @example Example: To get a bucket acl + # + # # The following example gets ACL on the specified bucket. + # + # resp = client.get_bucket_lifecycle({ + # bucket: "acl1", + # }) + # + # resp.to_h outputs the following: + # { + # rules: [ + # { + # expiration: { + # days: 1, + # }, + # id: "delete logs", + # prefix: "123/", + # status: "Enabled", + # }, + # ], + # } + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_lifecycle({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.rules #=> Array + # resp.rules[0].expiration.date #=> Time + # resp.rules[0].expiration.days #=> Integer + # resp.rules[0].expiration.expired_object_delete_marker #=> Boolean + # resp.rules[0].id #=> String + # resp.rules[0].prefix #=> String + # resp.rules[0].status #=> String, one of "Enabled", "Disabled" + # resp.rules[0].transition.date #=> Time + # resp.rules[0].transition.days #=> Integer + # resp.rules[0].transition.storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE", "GLACIER_IR" + # resp.rules[0].noncurrent_version_transition.noncurrent_days #=> Integer + # resp.rules[0].noncurrent_version_transition.storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE", "GLACIER_IR" + # resp.rules[0].noncurrent_version_transition.newer_noncurrent_versions #=> Integer + # resp.rules[0].noncurrent_version_expiration.noncurrent_days #=> Integer + # resp.rules[0].noncurrent_version_expiration.newer_noncurrent_versions #=> Integer + # resp.rules[0].abort_incomplete_multipart_upload.days_after_initiation #=> Integer + # @option params + # @option params + # @overload get_bucket_lifecycle + # @param params [Hash] ({}) + # @return [Types::GetBucketLifecycleOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketLifecycleOutput#rules #rules} => Array<Types::Rule> + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycle AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#6357 + def get_bucket_lifecycle(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Bucket lifecycle configuration now supports specifying a lifecycle + # rule using an object key name prefix, one or more object tags, object + # size, or any combination of these. Accordingly, this section describes + # the latest API. The previous version of the API supported filtering + # based only on an object key name prefix, which is supported for + # backward compatibility. For the related API description, see + # [GetBucketLifecycle][1]. Accordingly, this section describes the + # latest API. The response describes the new filter element that you can + # use to specify a filter to select a subset of objects to which the + # rule applies. If you are using a previous version of the lifecycle + # configuration, it still works. For the earlier action, + # + # + # + # Returns the lifecycle configuration information set on the bucket. For + # information about lifecycle configuration, see [Object Lifecycle + # Management][2]. + # + # To use this operation, you must have permission to perform the + # `s3:GetLifecycleConfiguration` action. The 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][3] and [Managing Access + # Permissions to Your Amazon S3 Resources][4]. + # + # `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 operations are related to + # `GetBucketLifecycleConfiguration`: + # + # * [GetBucketLifecycle][1] + # + # * [PutBucketLifecycle][5] + # + # * [DeleteBucketLifecycle][6] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html + # + # @example Example: To get lifecycle configuration on a bucket + # + # # The following example retrieves lifecycle configuration on set on a bucket. + # + # resp = client.get_bucket_lifecycle_configuration({ + # bucket: "examplebucket", + # }) + # + # resp.to_h outputs the following: + # { + # rules: [ + # { + # id: "Rule for TaxDocs/", + # prefix: "TaxDocs", + # status: "Enabled", + # transitions: [ + # { + # days: 365, + # storage_class: "STANDARD_IA", + # }, + # ], + # }, + # ], + # } + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_lifecycle_configuration({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.rules #=> Array + # resp.rules[0].expiration.date #=> Time + # resp.rules[0].expiration.days #=> Integer + # resp.rules[0].expiration.expired_object_delete_marker #=> Boolean + # resp.rules[0].id #=> String + # resp.rules[0].prefix #=> String + # resp.rules[0].filter.prefix #=> String + # resp.rules[0].filter.tag.key #=> String + # resp.rules[0].filter.tag.value #=> String + # resp.rules[0].filter.object_size_greater_than #=> Integer + # resp.rules[0].filter.object_size_less_than #=> Integer + # resp.rules[0].filter.and.prefix #=> String + # resp.rules[0].filter.and.tags #=> Array + # resp.rules[0].filter.and.tags[0].key #=> String + # resp.rules[0].filter.and.tags[0].value #=> String + # resp.rules[0].filter.and.object_size_greater_than #=> Integer + # resp.rules[0].filter.and.object_size_less_than #=> Integer + # resp.rules[0].status #=> String, one of "Enabled", "Disabled" + # resp.rules[0].transitions #=> Array + # resp.rules[0].transitions[0].date #=> Time + # resp.rules[0].transitions[0].days #=> Integer + # resp.rules[0].transitions[0].storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE", "GLACIER_IR" + # resp.rules[0].noncurrent_version_transitions #=> Array + # resp.rules[0].noncurrent_version_transitions[0].noncurrent_days #=> Integer + # resp.rules[0].noncurrent_version_transitions[0].storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE", "GLACIER_IR" + # resp.rules[0].noncurrent_version_transitions[0].newer_noncurrent_versions #=> Integer + # resp.rules[0].noncurrent_version_expiration.noncurrent_days #=> Integer + # resp.rules[0].noncurrent_version_expiration.newer_noncurrent_versions #=> Integer + # resp.rules[0].abort_incomplete_multipart_upload.days_after_initiation #=> Integer + # resp.transition_default_minimum_object_size #=> String, one of "varies_by_storage_class", "all_storage_classes_128K" + # @option params + # @option params + # @overload get_bucket_lifecycle_configuration + # @param params [Hash] ({}) + # @return [Types::GetBucketLifecycleConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketLifecycleConfigurationOutput#rules #rules} => Array<Types::LifecycleRule> + # * {Types::GetBucketLifecycleConfigurationOutput#transition_default_minimum_object_size #transition_default_minimum_object_size} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycleConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#6502 + def get_bucket_lifecycle_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Returns the Region the bucket resides in. You set the bucket's Region + # using the `LocationConstraint` request parameter in a `CreateBucket` + # request. For more information, see [CreateBucket][1]. + # + # When you use this API operation with an access point, provide the + # alias of the access point in place of the bucket name. + # + # When you use this API operation with an Object Lambda access point, + # provide the alias of the Object Lambda access point in place of the + # bucket name. If the Object Lambda access point alias in a request is + # not valid, the error code `InvalidAccessPointAliasError` is returned. + # For more information about `InvalidAccessPointAliasError`, see [List + # of Error Codes][2]. + # + # We recommend that you use [HeadBucket][3] to return the Region that a + # bucket resides in. For backward compatibility, Amazon S3 continues to + # support GetBucketLocation. + # + # + # + # The following operations are related to `GetBucketLocation`: + # + # * [GetObject][4] + # + # * [CreateBucket][1] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html + # + # @example Example: To get bucket location + # + # # The following example returns bucket location. + # + # resp = client.get_bucket_location({ + # bucket: "examplebucket", + # }) + # + # resp.to_h outputs the following: + # { + # location_constraint: "us-west-2", + # } + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_location({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.location_constraint #=> String, one of "af-south-1", "ap-east-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-south-1", "ap-south-2", "ap-southeast-1", "ap-southeast-2", "ap-southeast-3", "ca-central-1", "cn-north-1", "cn-northwest-1", "EU", "eu-central-1", "eu-north-1", "eu-south-1", "eu-south-2", "eu-west-1", "eu-west-2", "eu-west-3", "me-south-1", "sa-east-1", "us-east-2", "us-gov-east-1", "us-gov-west-1", "us-west-1", "us-west-2" + # @option params + # @option params + # @overload get_bucket_location + # @param params [Hash] ({}) + # @return [Types::GetBucketLocationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketLocationOutput#location_constraint #location_constraint} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLocation AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#6599 + def get_bucket_location(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Returns the logging status of a bucket and the permissions users have + # to view and modify that status. + # + # The following operations are related to `GetBucketLogging`: + # + # * [CreateBucket][1] + # + # * [PutBucketLogging][2] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html + # + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_logging({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.logging_enabled.target_bucket #=> String + # resp.logging_enabled.target_grants #=> Array + # resp.logging_enabled.target_grants[0].grantee.display_name #=> String + # resp.logging_enabled.target_grants[0].grantee.email_address #=> String + # resp.logging_enabled.target_grants[0].grantee.id #=> String + # resp.logging_enabled.target_grants[0].grantee.type #=> String, one of "CanonicalUser", "AmazonCustomerByEmail", "Group" + # resp.logging_enabled.target_grants[0].grantee.uri #=> String + # resp.logging_enabled.target_grants[0].permission #=> String, one of "FULL_CONTROL", "READ", "WRITE" + # resp.logging_enabled.target_prefix #=> String + # resp.logging_enabled.target_object_key_format.partitioned_prefix.partition_date_source #=> String, one of "EventTime", "DeliveryTime" + # @option params + # @option params + # @overload get_bucket_logging + # @param params [Hash] ({}) + # @return [Types::GetBucketLoggingOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketLoggingOutput#logging_enabled #logging_enabled} => Types::LoggingEnabled + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLogging AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#6658 + def get_bucket_logging(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Gets a metrics configuration (specified by the metrics configuration + # ID) from the bucket. Note that this doesn't include the daily storage + # metrics. + # + # To use this operation, you must have permissions to perform the + # `s3:GetMetricsConfiguration` action. The 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][1] and [Managing Access + # Permissions to Your Amazon S3 Resources][2]. + # + # For information about CloudWatch request metrics for Amazon S3, see + # [Monitoring Metrics with Amazon CloudWatch][3]. + # + # The following operations are related to + # `GetBucketMetricsConfiguration`: + # + # * [PutBucketMetricsConfiguration][4] + # + # * [DeleteBucketMetricsConfiguration][5] + # + # * [ListBucketMetricsConfigurations][6] + # + # * [Monitoring Metrics with Amazon CloudWatch][3] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html + # + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_metrics_configuration({ + # bucket: "BucketName", # required + # id: "MetricsId", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.metrics_configuration.id #=> String + # resp.metrics_configuration.filter.prefix #=> String + # resp.metrics_configuration.filter.tag.key #=> String + # resp.metrics_configuration.filter.tag.value #=> String + # resp.metrics_configuration.filter.access_point_arn #=> String + # resp.metrics_configuration.filter.and.prefix #=> String + # resp.metrics_configuration.filter.and.tags #=> Array + # resp.metrics_configuration.filter.and.tags[0].key #=> String + # resp.metrics_configuration.filter.and.tags[0].value #=> String + # resp.metrics_configuration.filter.and.access_point_arn #=> String + # @option params + # @option params + # @option params + # @overload get_bucket_metrics_configuration + # @param params [Hash] ({}) + # @return [Types::GetBucketMetricsConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketMetricsConfigurationOutput#metrics_configuration #metrics_configuration} => Types::MetricsConfiguration + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketMetricsConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#6744 + def get_bucket_metrics_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # No longer used, see [GetBucketNotificationConfiguration][1]. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html + # + # @example Example: To get notification configuration set on a bucket + # + # # The following example returns notification configuration set on a bucket. + # + # resp = client.get_bucket_notification({ + # bucket: "examplebucket", + # }) + # + # resp.to_h outputs the following: + # { + # queue_configuration: { + # event: "s3:ObjectCreated:Put", + # events: [ + # "s3:ObjectCreated:Put", + # ], + # id: "MDQ2OGQ4NDEtOTBmNi00YTM4LTk0NzYtZDIwN2I3NWQ1NjIx", + # queue: "arn:aws:sqs:us-east-1:acct-id:S3ObjectCreatedEventQueue", + # }, + # topic_configuration: { + # event: "s3:ObjectCreated:Copy", + # events: [ + # "s3:ObjectCreated:Copy", + # ], + # id: "YTVkMWEzZGUtNTY1NS00ZmE2LWJjYjktMmRlY2QwODFkNTJi", + # topic: "arn:aws:sns:us-east-1:acct-id:S3ObjectCreatedEventTopic", + # }, + # } + # @example Example: To get notification configuration set on a bucket + # + # # The following example returns notification configuration set on a bucket. + # + # resp = client.get_bucket_notification({ + # bucket: "examplebucket", + # }) + # + # resp.to_h outputs the following: + # { + # queue_configuration: { + # event: "s3:ObjectCreated:Put", + # events: [ + # "s3:ObjectCreated:Put", + # ], + # id: "MDQ2OGQ4NDEtOTBmNi00YTM4LTk0NzYtZDIwN2I3NWQ1NjIx", + # queue: "arn:aws:sqs:us-east-1:acct-id:S3ObjectCreatedEventQueue", + # }, + # topic_configuration: { + # event: "s3:ObjectCreated:Copy", + # events: [ + # "s3:ObjectCreated:Copy", + # ], + # id: "YTVkMWEzZGUtNTY1NS00ZmE2LWJjYjktMmRlY2QwODFkNTJi", + # topic: "arn:aws:sns:us-east-1:acct-id:S3ObjectCreatedEventTopic", + # }, + # } + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_notification({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.topic_configuration.id #=> String + # resp.topic_configuration.events #=> Array + # resp.topic_configuration.events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete" + # resp.topic_configuration.event #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete" + # resp.topic_configuration.topic #=> String + # resp.queue_configuration.id #=> String + # resp.queue_configuration.event #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete" + # resp.queue_configuration.events #=> Array + # resp.queue_configuration.events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete" + # resp.queue_configuration.queue #=> String + # resp.cloud_function_configuration.id #=> String + # resp.cloud_function_configuration.event #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete" + # resp.cloud_function_configuration.events #=> Array + # resp.cloud_function_configuration.events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete" + # resp.cloud_function_configuration.cloud_function #=> String + # resp.cloud_function_configuration.invocation_role #=> String + # @option params + # @option params + # @overload get_bucket_notification + # @param params [Hash] ({}) + # @return [Types::NotificationConfigurationDeprecated] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::NotificationConfigurationDeprecated#topic_configuration #topic_configuration} => Types::TopicConfigurationDeprecated + # * {Types::NotificationConfigurationDeprecated#queue_configuration #queue_configuration} => Types::QueueConfigurationDeprecated + # * {Types::NotificationConfigurationDeprecated#cloud_function_configuration #cloud_function_configuration} => Types::CloudFunctionConfiguration + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotification AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#6875 + def get_bucket_notification(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Returns the notification configuration of a bucket. + # + # If notifications are not enabled on the bucket, the action returns an + # empty `NotificationConfiguration` element. + # + # By default, you must be the bucket owner to read the notification + # configuration of a bucket. However, the bucket owner can use a bucket + # policy to grant permission to other users to read this configuration + # with the `s3:GetBucketNotification` permission. + # + # When you use this API operation with an access point, provide the + # alias of the access point in place of the bucket name. + # + # When you use this API operation with an Object Lambda access point, + # provide the alias of the Object Lambda access point in place of the + # bucket name. If the Object Lambda access point alias in a request is + # not valid, the error code `InvalidAccessPointAliasError` is returned. + # For more information about `InvalidAccessPointAliasError`, see [List + # of Error Codes][1]. + # + # For more information about setting and reading the notification + # configuration on a bucket, see [Setting Up Notification of Bucket + # Events][2]. For more information about bucket policies, see [Using + # Bucket Policies][3]. + # + # The following action is related to `GetBucketNotification`: + # + # * [PutBucketNotification][4] + # + # ^ + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html + # + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_notification_configuration({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.topic_configurations #=> Array + # resp.topic_configurations[0].id #=> String + # resp.topic_configurations[0].topic_arn #=> String + # resp.topic_configurations[0].events #=> Array + # resp.topic_configurations[0].events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete" + # resp.topic_configurations[0].filter.key.filter_rules #=> Array + # resp.topic_configurations[0].filter.key.filter_rules[0].name #=> String, one of "prefix", "suffix" + # resp.topic_configurations[0].filter.key.filter_rules[0].value #=> String + # resp.queue_configurations #=> Array + # resp.queue_configurations[0].id #=> String + # resp.queue_configurations[0].queue_arn #=> String + # resp.queue_configurations[0].events #=> Array + # resp.queue_configurations[0].events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete" + # resp.queue_configurations[0].filter.key.filter_rules #=> Array + # resp.queue_configurations[0].filter.key.filter_rules[0].name #=> String, one of "prefix", "suffix" + # resp.queue_configurations[0].filter.key.filter_rules[0].value #=> String + # resp.lambda_function_configurations #=> Array + # resp.lambda_function_configurations[0].id #=> String + # resp.lambda_function_configurations[0].lambda_function_arn #=> String + # resp.lambda_function_configurations[0].events #=> Array + # resp.lambda_function_configurations[0].events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete" + # resp.lambda_function_configurations[0].filter.key.filter_rules #=> Array + # resp.lambda_function_configurations[0].filter.key.filter_rules[0].name #=> String, one of "prefix", "suffix" + # resp.lambda_function_configurations[0].filter.key.filter_rules[0].value #=> String + # @option params + # @option params + # @overload get_bucket_notification_configuration + # @param params [Hash] ({}) + # @return [Types::NotificationConfiguration] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::NotificationConfiguration#topic_configurations #topic_configurations} => Array<Types::TopicConfiguration> + # * {Types::NotificationConfiguration#queue_configurations #queue_configurations} => Array<Types::QueueConfiguration> + # * {Types::NotificationConfiguration#lambda_function_configurations #lambda_function_configurations} => Array<Types::LambdaFunctionConfiguration> + # * {Types::NotificationConfiguration#event_bridge_configuration #event_bridge_configuration} => Types::EventBridgeConfiguration + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotificationConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#6990 + def get_bucket_notification_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Retrieves `OwnershipControls` for an Amazon S3 bucket. To use this + # operation, you must have the `s3:GetBucketOwnershipControls` + # permission. For more information about Amazon S3 permissions, see + # [Specifying permissions in a policy][1]. + # + # For information about Amazon S3 Object Ownership, see [Using Object + # Ownership][2]. + # + # The following operations are related to `GetBucketOwnershipControls`: + # + # * PutBucketOwnershipControls + # + # * DeleteBucketOwnershipControls + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html + # + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_ownership_controls({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.ownership_controls.rules #=> Array + # resp.ownership_controls.rules[0].object_ownership #=> String, one of "BucketOwnerPreferred", "ObjectWriter", "BucketOwnerEnforced" + # @option params + # @option params + # @overload get_bucket_ownership_controls + # @param params [Hash] ({}) + # @return [Types::GetBucketOwnershipControlsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketOwnershipControlsOutput#ownership_controls #ownership_controls} => Types::OwnershipControls + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketOwnershipControls AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#7047 + def get_bucket_ownership_controls(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns the policy of a specified bucket. + # + # Directory buckets - For directory buckets, you must make + # requests for this API operation to the Regional endpoint. These + # endpoints support path-style requests in the format + # `https://s3express-control.region_code.amazonaws.com/bucket-name `. + # Virtual-hosted-style requests aren't supported. For more information, + # see [Regional and Zonal endpoints][1] in the *Amazon S3 User Guide*. + # + # + # + # Permissions + # + # : 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 + # both have the `GetBucketPolicy` permissions on the specified bucket + # and belong to the bucket owner's account in order to use this + # operation. + # + # If you don't have `GetBucketPolicy` 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. + # + # To ensure that bucket owners don't inadvertently lock themselves + # out of their own buckets, the root principal in a bucket owner's + # Amazon Web Services account can perform the `GetBucketPolicy`, + # `PutBucketPolicy`, and `DeleteBucketPolicy` API actions, even if + # their bucket policy explicitly denies the root principal's access. + # Bucket owner root principals can only be blocked from performing + # these API actions by VPC endpoint policies and Amazon Web Services + # Organizations policies. + # + # * **General purpose bucket permissions** - The `s3:GetBucketPolicy` + # permission is required in a policy. For more information about + # general purpose buckets bucket policies, see [Using Bucket + # Policies and User Policies][2] in the *Amazon S3 User Guide*. + # + # * **Directory bucket permissions** - To grant access to this API + # operation, you must have the `s3express:GetBucketPolicy` + # permission in an IAM identity-based policy instead of a bucket + # policy. Cross-account access to this API operation isn't + # supported. This operation can only be performed by the Amazon Web + # Services account that owns the resource. For more information + # about directory bucket policies and permissions, see [Amazon Web + # Services Identity and Access Management (IAM) for S3 Express One + # Zone][3] in the *Amazon S3 User Guide*. + # + # Example bucket policies + # + # : **General purpose buckets example bucket policies** - See [Bucket + # policy examples][4] in the *Amazon S3 User Guide*. + # + # **Directory bucket example bucket policies** - See [Example bucket + # policies for S3 Express One Zone][5] in the *Amazon S3 User Guide*. + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is + # `s3express-control.region.amazonaws.com`. + # + # The following action is related to `GetBucketPolicy`: + # + # * [GetObject][6] + # + # ^ + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html + # + # @example Example: To get bucket policy + # + # # The following example returns bucket policy associated with a bucket. + # + # resp = client.get_bucket_policy({ + # bucket: "examplebucket", + # }) + # + # resp.to_h outputs the following: + # { + # policy: "{\"Version\":\"2008-10-17\",\"Id\":\"LogPolicy\",\"Statement\":[{\"Sid\":\"Enables the log delivery group to publish logs to your bucket \",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"111122223333\"},\"Action\":[\"s3:GetBucketAcl\",\"s3:GetObjectAcl\",\"s3:PutObject\"],\"Resource\":[\"arn:aws:s3:::policytest1/*\",\"arn:aws:s3:::policytest1\"]}]}", + # } + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_policy({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.policy #=> String + # @option params + # @option params + # @overload get_bucket_policy + # @param params [Hash] ({}) + # @return [Types::GetBucketPolicyOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketPolicyOutput#policy #policy} => IO + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicy AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#7207 + def get_bucket_policy(params = T.unsafe(nil), options = T.unsafe(nil), &block); end + + # This operation is not supported by directory buckets. + # + # + # + # Retrieves the policy status for an Amazon S3 bucket, indicating + # whether the bucket is public. In order to use this operation, you must + # have the `s3:GetBucketPolicyStatus` permission. For more information + # about Amazon S3 permissions, see [Specifying Permissions in a + # Policy][1]. + # + # For more information about when Amazon S3 considers a bucket public, + # see [The Meaning of "Public"][2]. + # + # The following operations are related to `GetBucketPolicyStatus`: + # + # * [Using Amazon S3 Block Public Access][3] + # + # * [GetPublicAccessBlock][4] + # + # * [PutPublicAccessBlock][5] + # + # * [DeletePublicAccessBlock][6] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html + # + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_policy_status({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.policy_status.is_public #=> Boolean + # @option params + # @option params + # @overload get_bucket_policy_status + # @param params [Hash] ({}) + # @return [Types::GetBucketPolicyStatusOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketPolicyStatusOutput#policy_status #policy_status} => Types::PolicyStatus + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyStatus AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#7272 + def get_bucket_policy_status(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Returns the replication configuration of a bucket. + # + # It can take a while to propagate the put or delete a replication + # configuration to all Amazon S3 systems. Therefore, a get request soon + # after put or delete can return a wrong result. + # + # + # + # For information about replication configuration, see [Replication][1] + # in the *Amazon S3 User Guide*. + # + # This action requires permissions for the + # `s3:GetReplicationConfiguration` action. For more information about + # permissions, see [Using Bucket Policies and User Policies][2]. + # + # If you include the `Filter` element in a replication configuration, + # you must also include the `DeleteMarkerReplication` and `Priority` + # elements. The response also returns those elements. + # + # For information about `GetBucketReplication` errors, see [List of + # replication-related error codes][3] + # + # The following operations are related to `GetBucketReplication`: + # + # * [PutBucketReplication][4] + # + # * [DeleteBucketReplication][5] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html + # + # @example Example: To get replication configuration set on a bucket + # + # # The following example returns replication configuration set on a bucket. + # + # resp = client.get_bucket_replication({ + # bucket: "examplebucket", + # }) + # + # resp.to_h outputs the following: + # { + # replication_configuration: { + # role: "arn:aws:iam::acct-id:role/example-role", + # rules: [ + # { + # destination: { + # bucket: "arn:aws:s3:::destination-bucket", + # }, + # id: "MWIwNTkwZmItMTE3MS00ZTc3LWJkZDEtNzRmODQwYzc1OTQy", + # prefix: "Tax", + # status: "Enabled", + # }, + # ], + # }, + # } + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_replication({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.replication_configuration.role #=> String + # resp.replication_configuration.rules #=> Array + # resp.replication_configuration.rules[0].id #=> String + # resp.replication_configuration.rules[0].priority #=> Integer + # resp.replication_configuration.rules[0].prefix #=> String + # resp.replication_configuration.rules[0].filter.prefix #=> String + # resp.replication_configuration.rules[0].filter.tag.key #=> String + # resp.replication_configuration.rules[0].filter.tag.value #=> String + # resp.replication_configuration.rules[0].filter.and.prefix #=> String + # resp.replication_configuration.rules[0].filter.and.tags #=> Array + # resp.replication_configuration.rules[0].filter.and.tags[0].key #=> String + # resp.replication_configuration.rules[0].filter.and.tags[0].value #=> String + # resp.replication_configuration.rules[0].status #=> String, one of "Enabled", "Disabled" + # resp.replication_configuration.rules[0].source_selection_criteria.sse_kms_encrypted_objects.status #=> String, one of "Enabled", "Disabled" + # resp.replication_configuration.rules[0].source_selection_criteria.replica_modifications.status #=> String, one of "Enabled", "Disabled" + # resp.replication_configuration.rules[0].existing_object_replication.status #=> String, one of "Enabled", "Disabled" + # resp.replication_configuration.rules[0].destination.bucket #=> String + # resp.replication_configuration.rules[0].destination.account #=> String + # resp.replication_configuration.rules[0].destination.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE" + # resp.replication_configuration.rules[0].destination.access_control_translation.owner #=> String, one of "Destination" + # resp.replication_configuration.rules[0].destination.encryption_configuration.replica_kms_key_id #=> String + # resp.replication_configuration.rules[0].destination.replication_time.status #=> String, one of "Enabled", "Disabled" + # resp.replication_configuration.rules[0].destination.replication_time.time.minutes #=> Integer + # resp.replication_configuration.rules[0].destination.metrics.status #=> String, one of "Enabled", "Disabled" + # resp.replication_configuration.rules[0].destination.metrics.event_threshold.minutes #=> Integer + # resp.replication_configuration.rules[0].delete_marker_replication.status #=> String, one of "Enabled", "Disabled" + # @option params + # @option params + # @overload get_bucket_replication + # @param params [Hash] ({}) + # @return [Types::GetBucketReplicationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketReplicationOutput#replication_configuration #replication_configuration} => Types::ReplicationConfiguration + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketReplication AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#7395 + def get_bucket_replication(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Returns the request payment configuration of a bucket. To use this + # version of the operation, you must be the bucket owner. For more + # information, see [Requester Pays Buckets][1]. + # + # The following operations are related to `GetBucketRequestPayment`: + # + # * [ListObjects][2] + # + # ^ + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html + # + # @example Example: To get bucket versioning configuration + # + # # The following example retrieves bucket versioning configuration. + # + # resp = client.get_bucket_request_payment({ + # bucket: "examplebucket", + # }) + # + # resp.to_h outputs the following: + # { + # payer: "BucketOwner", + # } + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_request_payment({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.payer #=> String, one of "Requester", "BucketOwner" + # @option params + # @option params + # @overload get_bucket_request_payment + # @param params [Hash] ({}) + # @return [Types::GetBucketRequestPaymentOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketRequestPaymentOutput#payer #payer} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketRequestPayment AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#7461 + def get_bucket_request_payment(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Returns the tag set associated with the bucket. + # + # To use this operation, you must have permission to perform the + # `s3: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: `NoSuchTagSet` + # + # * Description: There is no tag set associated with the bucket. + # + # ^ + # + # The following operations are related to `GetBucketTagging`: + # + # * [PutBucketTagging][1] + # + # * [DeleteBucketTagging][2] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html + # + # @example Example: To get tag set associated with a bucket + # + # # The following example returns tag set associated with a bucket + # + # resp = client.get_bucket_tagging({ + # bucket: "examplebucket", + # }) + # + # resp.to_h outputs the following: + # { + # tag_set: [ + # { + # key: "key1", + # value: "value1", + # }, + # { + # key: "key2", + # value: "value2", + # }, + # ], + # } + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_tagging({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.tag_set #=> Array + # resp.tag_set[0].key #=> String + # resp.tag_set[0].value #=> String + # @option params + # @option params + # @overload get_bucket_tagging + # @param params [Hash] ({}) + # @return [Types::GetBucketTaggingOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketTaggingOutput#tag_set #tag_set} => Array<Types::Tag> + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketTagging AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#7547 + def get_bucket_tagging(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Returns the versioning state of a bucket. + # + # To retrieve the versioning state of a bucket, you must be the bucket + # owner. + # + # This implementation also returns the MFA Delete status of the + # versioning state. If the MFA Delete status is `enabled`, the bucket + # owner must use an authentication device to change the versioning state + # of the bucket. + # + # The following operations are related to `GetBucketVersioning`: + # + # * [GetObject][1] + # + # * [PutObject][2] + # + # * [DeleteObject][3] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html + # + # @example Example: To get bucket versioning configuration + # + # # The following example retrieves bucket versioning configuration. + # + # resp = client.get_bucket_versioning({ + # bucket: "examplebucket", + # }) + # + # resp.to_h outputs the following: + # { + # mfa_delete: "Disabled", + # status: "Enabled", + # } + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_versioning({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.status #=> String, one of "Enabled", "Suspended" + # resp.mfa_delete #=> String, one of "Enabled", "Disabled" + # @option params + # @option params + # @overload get_bucket_versioning + # @param params [Hash] ({}) + # @return [Types::GetBucketVersioningOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketVersioningOutput#status #status} => String + # * {Types::GetBucketVersioningOutput#mfa_delete #mfa_delete} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketVersioning AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#7624 + def get_bucket_versioning(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Returns the website configuration for a bucket. To host website on + # Amazon S3, you can configure a bucket as website by adding a website + # configuration. For more information about hosting websites, see + # [Hosting Websites on Amazon S3][1]. + # + # This GET action requires the `S3:GetBucketWebsite` permission. By + # default, only the bucket owner can read the bucket website + # configuration. However, bucket owners can allow other users to read + # the website configuration by writing a bucket policy granting them the + # `S3:GetBucketWebsite` permission. + # + # The following operations are related to `GetBucketWebsite`: + # + # * [DeleteBucketWebsite][2] + # + # * [PutBucketWebsite][3] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html + # + # @example Example: To get bucket website configuration + # + # # The following example retrieves website configuration of a bucket. + # + # resp = client.get_bucket_website({ + # bucket: "examplebucket", + # }) + # + # resp.to_h outputs the following: + # { + # error_document: { + # key: "error.html", + # }, + # index_document: { + # suffix: "index.html", + # }, + # } + # @example Request syntax with placeholder values + # + # resp = client.get_bucket_website({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.redirect_all_requests_to.host_name #=> String + # resp.redirect_all_requests_to.protocol #=> String, one of "http", "https" + # resp.index_document.suffix #=> String + # resp.error_document.key #=> String + # resp.routing_rules #=> Array + # resp.routing_rules[0].condition.http_error_code_returned_equals #=> String + # resp.routing_rules[0].condition.key_prefix_equals #=> String + # resp.routing_rules[0].redirect.host_name #=> String + # resp.routing_rules[0].redirect.http_redirect_code #=> String + # resp.routing_rules[0].redirect.protocol #=> String, one of "http", "https" + # resp.routing_rules[0].redirect.replace_key_prefix_with #=> String + # resp.routing_rules[0].redirect.replace_key_with #=> String + # @option params + # @option params + # @overload get_bucket_website + # @param params [Hash] ({}) + # @return [Types::GetBucketWebsiteOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetBucketWebsiteOutput#redirect_all_requests_to #redirect_all_requests_to} => Types::RedirectAllRequestsTo + # * {Types::GetBucketWebsiteOutput#index_document #index_document} => Types::IndexDocument + # * {Types::GetBucketWebsiteOutput#error_document #error_document} => Types::ErrorDocument + # * {Types::GetBucketWebsiteOutput#routing_rules #routing_rules} => Array<Types::RoutingRule> + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketWebsite AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#7716 + def get_bucket_website(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Retrieves an object from Amazon S3. + # + # In the `GetObject` request, specify the full key name for the object. + # + # **General purpose buckets** - Both the virtual-hosted-style requests + # and the path-style requests are supported. For a virtual hosted-style + # request example, if you have the object + # `photos/2006/February/sample.jpg`, specify the object key name as + # `/photos/2006/February/sample.jpg`. For a path-style request example, + # if you have the object `photos/2006/February/sample.jpg` in the bucket + # named `examplebucket`, specify the object key name as + # `/examplebucket/photos/2006/February/sample.jpg`. For more information + # about request types, see [HTTP Host Header Bucket Specification][1] in + # the *Amazon S3 User Guide*. + # + # **Directory buckets** - Only virtual-hosted-style requests are + # supported. For a virtual hosted-style request example, if you have the + # object `photos/2006/February/sample.jpg` in the bucket named + # `examplebucket--use1-az5--x-s3`, specify the object key name as + # `/photos/2006/February/sample.jpg`. Also, when you make requests to + # this API operation, your requests are sent to the Zonal endpoint. + # These endpoints support virtual-hosted-style requests in the format + # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `. + # Path-style requests are not supported. For more information, see + # [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*. + # + # Permissions + # : * **General purpose bucket permissions** - You must have the + # required permissions in a policy. To use `GetObject`, you must + # have the `READ` access to the object (or version). If you grant + # `READ` access to the anonymous user, the `GetObject` operation + # returns the object without using an authorization header. For more + # information, see [Specifying permissions in a policy][3] in the + # *Amazon S3 User Guide*. + # + # If you include a `versionId` in your request header, you must have + # the `s3:GetObjectVersion` permission to access a specific version + # of an object. The `s3:GetObject` permission is not required in + # this scenario. + # + # If you request the current version of an object without a specific + # `versionId` in the request header, only the `s3:GetObject` + # permission is required. The `s3:GetObjectVersion` permission is + # not required in this scenario. + # + # If the object that you request doesn’t exist, the error that + # Amazon S3 returns depends on whether you also have the + # `s3:ListBucket` permission. + # + # * If you have the `s3:ListBucket` permission on the bucket, Amazon + # S3 returns an HTTP status code `404 Not Found` error. + # + # * If you don’t have the `s3:ListBucket` permission, Amazon S3 + # returns an HTTP status code `403 Access Denied` error. + # + # * **Directory bucket permissions** - To grant access to this API + # operation on a directory bucket, we recommend that you use the [ + # `CreateSession` ][4] API operation for session-based + # authorization. Specifically, you grant the + # `s3express:CreateSession` permission to the directory bucket in a + # bucket policy or an IAM identity-based policy. Then, you make the + # `CreateSession` API call on the bucket to obtain a session token. + # With the session token in your request header, you can make API + # requests to this operation. After the session token expires, you + # make another `CreateSession` API call to generate a new session + # token for use. Amazon Web Services CLI or SDKs create session and + # refresh the session token automatically to avoid service + # interruptions when a session expires. For more information about + # authorization, see [ `CreateSession` ][4]. + # + # If the object is encrypted using SSE-KMS, you must also have the + # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + # identity-based policies and KMS key policies for the KMS key. + # + # Storage classes + # + # : If the object you are retrieving is stored in the S3 Glacier + # Flexible Retrieval storage class, the S3 Glacier Deep Archive + # storage class, the S3 Intelligent-Tiering Archive Access tier, or + # the S3 Intelligent-Tiering Deep Archive Access tier, before you can + # retrieve the object you must first restore a copy using + # [RestoreObject][5]. Otherwise, this operation returns an + # `InvalidObjectState` error. For information about restoring archived + # objects, see [Restoring Archived Objects][6] in the *Amazon S3 User + # Guide*. + # + # Directory buckets - For directory buckets, only the S3 + # Express One Zone storage class is supported to store newly created + # objects. Unsupported storage class values won't write a destination + # object and will respond with the HTTP status code `400 Bad Request`. + # + # Encryption + # + # : Encryption request headers, like `x-amz-server-side-encryption`, + # should not be sent for the `GetObject` requests, if your object uses + # server-side encryption with Amazon S3 managed encryption keys + # (SSE-S3), server-side encryption with Key Management Service (KMS) + # keys (SSE-KMS), or dual-layer server-side encryption with Amazon Web + # Services KMS keys (DSSE-KMS). If you include the header in your + # `GetObject` requests for the object that uses these types of keys, + # you’ll get an HTTP `400 Bad Request` error. + # + # **Directory buckets** - For directory buckets, there are only two + # supported options for server-side encryption: SSE-S3 and SSE-KMS. + # SSE-C isn't supported. For more information, see [Protecting data + # with server-side encryption][7] in the *Amazon S3 User Guide*. + # + # Overriding response header values through the request + # + # : There are times when you want to override certain response header + # values of a `GetObject` response. For example, you might override + # the `Content-Disposition` response header value through your + # `GetObject` request. + # + # You can override values for a set of response headers. These + # modified response header values are included only in a successful + # response, that is, when the HTTP status code `200 OK` is returned. + # The headers you can override using the following query parameters in + # the request are a subset of the headers that Amazon S3 accepts when + # you create an object. + # + # The response headers that you can override for the `GetObject` + # response are `Cache-Control`, `Content-Disposition`, + # `Content-Encoding`, `Content-Language`, `Content-Type`, and + # `Expires`. + # + # To override values for a set of response headers in the `GetObject` + # response, you can use the following query parameters in the request. + # + # * `response-cache-control` + # + # * `response-content-disposition` + # + # * `response-content-encoding` + # + # * `response-content-language` + # + # * `response-content-type` + # + # * `response-expires` + # + # When you use these parameters, you must sign the request by using + # either an Authorization header or a presigned URL. These parameters + # cannot be used with an unsigned (anonymous) request. + # + # + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is ` + # Bucket_name.s3express-az_id.region.amazonaws.com`. + # + # The following operations are related to `GetObject`: + # + # * [ListBuckets][8] + # + # * [GetObjectAcl][9] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html + # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html + # + # @example Example: To retrieve a byte range of an object + # + # # The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a + # # specific byte range. + # + # resp = client.get_object({ + # bucket: "examplebucket", + # key: "SampleFile.txt", + # range: "bytes=0-9", + # }) + # + # resp.to_h outputs the following: + # { + # accept_ranges: "bytes", + # content_length: 10, + # content_range: "bytes 0-9/43", + # content_type: "text/plain", + # etag: "\"0d94420ffd0bc68cd3d152506b97a9cc\"", + # last_modified: Time.parse("Thu, 09 Oct 2014 22:57:28 GMT"), + # metadata: { + # }, + # version_id: "null", + # } + # @example Example: To retrieve an object + # + # # The following example retrieves an object for an S3 bucket. + # + # resp = client.get_object({ + # bucket: "examplebucket", + # key: "HappyFace.jpg", + # }) + # + # resp.to_h outputs the following: + # { + # accept_ranges: "bytes", + # content_length: 3191, + # content_type: "image/jpeg", + # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"", + # last_modified: Time.parse("Thu, 15 Dec 2016 01:19:41 GMT"), + # metadata: { + # }, + # tag_count: 2, + # version_id: "null", + # } + # @example Download an object to disk + # # stream object directly to disk + # resp = s3.get_object( + # response_target: '/path/to/file', + # bucket: 'bucket-name', + # key: 'object-key') + # + # # you can still access other response data + # resp.metadata #=> { ... } + # resp.etag #=> "..." + # @example Download object into memory + # # omit :response_target to download to a StringIO in memory + # resp = s3.get_object(bucket: 'bucket-name', key: 'object-key') + # + # # call #read or #string on the response body + # resp.body.read + # #=> '...' + # @example Streaming data to a block + # # WARNING: yielding data to a block disables retries of networking errors + # # However truncation of the body will be retried automatically using a range request + # File.open('/path/to/file', 'wb') do |file| + # s3.get_object(bucket: 'bucket-name', key: 'object-key') do |chunk, headers| + # # headers['content-length'] + # file.write(chunk) + # end + # end + # @example Request syntax with placeholder values + # + # resp = client.get_object({ + # bucket: "BucketName", # required + # if_match: "IfMatch", + # if_modified_since: Time.now, + # if_none_match: "IfNoneMatch", + # if_unmodified_since: Time.now, + # key: "ObjectKey", # required + # range: "Range", + # response_cache_control: "ResponseCacheControl", + # response_content_disposition: "ResponseContentDisposition", + # response_content_encoding: "ResponseContentEncoding", + # response_content_language: "ResponseContentLanguage", + # response_content_type: "ResponseContentType", + # response_expires: Time.now, + # version_id: "ObjectVersionId", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # request_payer: "requester", # accepts requester + # part_number: 1, + # expected_bucket_owner: "AccountId", + # checksum_mode: "ENABLED", # accepts ENABLED + # }) + # @example Response structure + # + # resp.body #=> IO + # resp.delete_marker #=> Boolean + # resp.accept_ranges #=> String + # resp.expiration #=> String + # resp.restore #=> String + # resp.last_modified #=> Time + # resp.content_length #=> Integer + # resp.etag #=> String + # resp.checksum_crc32 #=> String + # resp.checksum_crc32c #=> String + # resp.checksum_sha1 #=> String + # resp.checksum_sha256 #=> String + # resp.missing_meta #=> Integer + # resp.version_id #=> String + # resp.cache_control #=> String + # resp.content_disposition #=> String + # resp.content_encoding #=> String + # resp.content_language #=> String + # resp.content_range #=> String + # resp.content_type #=> String + # resp.expires #=> Time + # resp.expires_string #=> String + # resp.website_redirect_location #=> String + # resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse" + # resp.metadata #=> Hash + # resp.metadata["MetadataKey"] #=> String + # resp.sse_customer_algorithm #=> String + # resp.sse_customer_key_md5 #=> String + # resp.ssekms_key_id #=> String + # resp.bucket_key_enabled #=> Boolean + # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE" + # resp.request_charged #=> String, one of "requester" + # resp.replication_status #=> String, one of "COMPLETE", "PENDING", "FAILED", "REPLICA", "COMPLETED" + # resp.parts_count #=> Integer + # resp.tag_count #=> Integer + # resp.object_lock_mode #=> String, one of "GOVERNANCE", "COMPLIANCE" + # resp.object_lock_retain_until_date #=> Time + # resp.object_lock_legal_hold_status #=> String, one of "ON", "OFF" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload get_object + # @param params [Hash] ({}) + # @return [Types::GetObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetObjectOutput#body #body} => IO + # * {Types::GetObjectOutput#delete_marker #delete_marker} => Boolean + # * {Types::GetObjectOutput#accept_ranges #accept_ranges} => String + # * {Types::GetObjectOutput#expiration #expiration} => String + # * {Types::GetObjectOutput#restore #restore} => String + # * {Types::GetObjectOutput#last_modified #last_modified} => Time + # * {Types::GetObjectOutput#content_length #content_length} => Integer + # * {Types::GetObjectOutput#etag #etag} => String + # * {Types::GetObjectOutput#checksum_crc32 #checksum_crc32} => String + # * {Types::GetObjectOutput#checksum_crc32c #checksum_crc32c} => String + # * {Types::GetObjectOutput#checksum_sha1 #checksum_sha1} => String + # * {Types::GetObjectOutput#checksum_sha256 #checksum_sha256} => String + # * {Types::GetObjectOutput#missing_meta #missing_meta} => Integer + # * {Types::GetObjectOutput#version_id #version_id} => String + # * {Types::GetObjectOutput#cache_control #cache_control} => String + # * {Types::GetObjectOutput#content_disposition #content_disposition} => String + # * {Types::GetObjectOutput#content_encoding #content_encoding} => String + # * {Types::GetObjectOutput#content_language #content_language} => String + # * {Types::GetObjectOutput#content_range #content_range} => String + # * {Types::GetObjectOutput#content_type #content_type} => String + # * {Types::GetObjectOutput#expires #expires} => Time + # * {Types::GetObjectOutput#expires_string #expires_string} => String + # * {Types::GetObjectOutput#website_redirect_location #website_redirect_location} => String + # * {Types::GetObjectOutput#server_side_encryption #server_side_encryption} => String + # * {Types::GetObjectOutput#metadata #metadata} => Hash<String,String> + # * {Types::GetObjectOutput#sse_customer_algorithm #sse_customer_algorithm} => String + # * {Types::GetObjectOutput#sse_customer_key_md5 #sse_customer_key_md5} => String + # * {Types::GetObjectOutput#ssekms_key_id #ssekms_key_id} => String + # * {Types::GetObjectOutput#bucket_key_enabled #bucket_key_enabled} => Boolean + # * {Types::GetObjectOutput#storage_class #storage_class} => String + # * {Types::GetObjectOutput#request_charged #request_charged} => String + # * {Types::GetObjectOutput#replication_status #replication_status} => String + # * {Types::GetObjectOutput#parts_count #parts_count} => Integer + # * {Types::GetObjectOutput#tag_count #tag_count} => Integer + # * {Types::GetObjectOutput#object_lock_mode #object_lock_mode} => String + # * {Types::GetObjectOutput#object_lock_retain_until_date #object_lock_retain_until_date} => Time + # * {Types::GetObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObject AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#8382 + def get_object(params = T.unsafe(nil), options = T.unsafe(nil), &block); end + + # This operation is not supported by directory buckets. + # + # + # + # Returns the access control list (ACL) of an object. To use this + # operation, you must have `s3:GetObjectAcl` permissions or `READ_ACP` + # access to the object. For more information, see [Mapping of ACL + # permissions and access policy permissions][1] in the *Amazon S3 User + # Guide* + # + # This functionality is not supported for Amazon S3 on Outposts. + # + # By default, GET returns ACL information about the current version of + # an object. To return ACL information about a different version, use + # the versionId subresource. + # + # If your bucket uses the bucket owner enforced setting for S3 Object + # Ownership, requests to read ACLs are still supported and return the + # `bucket-owner-full-control` ACL with the owner being the account that + # created the bucket. For more information, see [ Controlling object + # ownership and disabling ACLs][2] in the *Amazon S3 User Guide*. + # + # + # + # The following operations are related to `GetObjectAcl`: + # + # * [GetObject][3] + # + # * [GetObjectAttributes][4] + # + # * [DeleteObject][5] + # + # * [PutObject][6] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#acl-access-policy-permission-mapping + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html + # + # @example Example: To retrieve object ACL + # + # # The following example retrieves access control list (ACL) of an object. + # + # resp = client.get_object_acl({ + # bucket: "examplebucket", + # key: "HappyFace.jpg", + # }) + # + # resp.to_h outputs the following: + # { + # grants: [ + # { + # grantee: { + # display_name: "owner-display-name", + # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", + # type: "CanonicalUser", + # }, + # permission: "WRITE", + # }, + # { + # grantee: { + # display_name: "owner-display-name", + # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", + # type: "CanonicalUser", + # }, + # permission: "WRITE_ACP", + # }, + # { + # grantee: { + # display_name: "owner-display-name", + # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", + # type: "CanonicalUser", + # }, + # permission: "READ", + # }, + # { + # grantee: { + # display_name: "owner-display-name", + # id: "852b113eexamplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", + # type: "CanonicalUser", + # }, + # permission: "READ_ACP", + # }, + # ], + # owner: { + # display_name: "owner-display-name", + # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", + # }, + # } + # @example Request syntax with placeholder values + # + # resp = client.get_object_acl({ + # bucket: "BucketName", # required + # key: "ObjectKey", # required + # version_id: "ObjectVersionId", + # request_payer: "requester", # accepts requester + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.owner.display_name #=> String + # resp.owner.id #=> String + # resp.grants #=> Array + # resp.grants[0].grantee.display_name #=> String + # resp.grants[0].grantee.email_address #=> String + # resp.grants[0].grantee.id #=> String + # resp.grants[0].grantee.type #=> String, one of "CanonicalUser", "AmazonCustomerByEmail", "Group" + # resp.grants[0].grantee.uri #=> String + # resp.grants[0].permission #=> String, one of "FULL_CONTROL", "WRITE", "WRITE_ACP", "READ", "READ_ACP" + # resp.request_charged #=> String, one of "requester" + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload get_object_acl + # @param params [Hash] ({}) + # @return [Types::GetObjectAclOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetObjectAclOutput#owner #owner} => Types::Owner + # * {Types::GetObjectAclOutput#grants #grants} => Array<Types::Grant> + # * {Types::GetObjectAclOutput#request_charged #request_charged} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAcl AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#8566 + def get_object_acl(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Retrieves all the metadata from an object without returning the object + # itself. This operation is useful if you're interested only in an + # object's metadata. + # + # `GetObjectAttributes` combines the functionality of `HeadObject` and + # `ListParts`. All of the data returned with each of those individual + # calls can be returned with a single call to `GetObjectAttributes`. + # + # **Directory buckets** - For directory buckets, you must make requests + # for this API operation to the Zonal endpoint. These endpoints support + # virtual-hosted-style requests in the format + # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `. + # Path-style requests are not supported. For more information, see + # [Regional and Zonal endpoints][1] in the *Amazon S3 User Guide*. + # + # + # + # Permissions + # : * **General purpose bucket permissions** - To use + # `GetObjectAttributes`, you must have READ access to the object. + # The permissions that you need to use this operation depend on + # whether the bucket is versioned. If the bucket is versioned, you + # need both the `s3:GetObjectVersion` and + # `s3:GetObjectVersionAttributes` permissions for this operation. If + # the bucket is not versioned, you need the `s3:GetObject` and + # `s3:GetObjectAttributes` permissions. For more information, see + # [Specifying Permissions in a Policy][2] in the *Amazon S3 User + # Guide*. If the object that you request does not exist, the error + # Amazon S3 returns depends on whether you also have the + # `s3:ListBucket` permission. + # + # * If you have the `s3:ListBucket` permission on the bucket, Amazon + # S3 returns an HTTP status code `404 Not Found` ("no such key") + # error. + # + # * If you don't have the `s3:ListBucket` permission, Amazon S3 + # returns an HTTP status code `403 Forbidden` ("access denied") + # error. + # + # * **Directory bucket permissions** - To grant access to this API + # operation on a directory bucket, we recommend that you use the [ + # `CreateSession` ][3] API operation for session-based + # authorization. Specifically, you grant the + # `s3express:CreateSession` permission to the directory bucket in a + # bucket policy or an IAM identity-based policy. Then, you make the + # `CreateSession` API call on the bucket to obtain a session token. + # With the session token in your request header, you can make API + # requests to this operation. After the session token expires, you + # make another `CreateSession` API call to generate a new session + # token for use. Amazon Web Services CLI or SDKs create session and + # refresh the session token automatically to avoid service + # interruptions when a session expires. For more information about + # authorization, see [ `CreateSession` ][3]. + # + # If the object is encrypted with SSE-KMS, you must also have the + # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + # identity-based policies and KMS key policies for the KMS key. + # + # Encryption + # : Encryption request headers, like `x-amz-server-side-encryption`, + # should not be sent for `HEAD` requests if your object uses + # server-side encryption with Key Management Service (KMS) keys + # (SSE-KMS), dual-layer server-side encryption with Amazon Web + # Services KMS keys (DSSE-KMS), or server-side encryption with Amazon + # S3 managed encryption keys (SSE-S3). The + # `x-amz-server-side-encryption` header is used when you `PUT` an + # object to S3 and want to specify the encryption method. If you + # include this header in a `GET` request for an object that uses these + # types of keys, you’ll get an HTTP `400 Bad Request` error. It's + # because the encryption method can't be changed when you retrieve + # the object. + # + # + # + # If you encrypt an object by using server-side encryption with + # customer-provided encryption keys (SSE-C) when you store the object + # in Amazon S3, then when you retrieve the metadata from the object, + # you must use the following headers to provide the encryption key for + # the server to be able to retrieve the object's metadata. The + # headers are: + # + # * `x-amz-server-side-encryption-customer-algorithm` + # + # * `x-amz-server-side-encryption-customer-key` + # + # * `x-amz-server-side-encryption-customer-key-MD5` + # + # For more information about SSE-C, see [Server-Side Encryption (Using + # Customer-Provided Encryption Keys)][4] in the *Amazon S3 User + # Guide*. + # + # **Directory bucket permissions** - For directory buckets, there are + # only two supported options for server-side encryption: server-side + # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and + # server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We + # recommend that the bucket's default encryption uses the desired + # encryption configuration and you don't override the bucket default + # encryption in your `CreateSession` requests or `PUT` object + # requests. Then, new objects are automatically encrypted with the + # desired encryption settings. For more information, see [Protecting + # data with server-side encryption][5] in the *Amazon S3 User Guide*. + # For more information about the encryption overriding behaviors in + # directory buckets, see [Specifying server-side encryption with KMS + # for new object uploads][6]. + # + # + # + # Versioning + # + # : **Directory buckets** - S3 Versioning isn't enabled and supported + # for directory buckets. For this API operation, only the `null` value + # of the version ID is supported by directory buckets. You can only + # specify `null` to the `versionId` query parameter in the request. + # + # Conditional request headers + # + # : Consider the following when using request headers: + # + # * If both of the `If-Match` and `If-Unmodified-Since` headers are + # present in the request as follows, then Amazon S3 returns the HTTP + # status code `200 OK` and the data requested: + # + # * `If-Match` condition evaluates to `true`. + # + # * `If-Unmodified-Since` condition evaluates to `false`. + # + # For more information about conditional requests, see [RFC + # 7232][7]. + # + # * If both of the `If-None-Match` and `If-Modified-Since` headers are + # present in the request as follows, then Amazon S3 returns the HTTP + # status code `304 Not Modified`: + # + # * `If-None-Match` condition evaluates to `false`. + # + # * `If-Modified-Since` condition evaluates to `true`. + # + # For more information about conditional requests, see [RFC + # 7232][7]. + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is ` + # Bucket_name.s3express-az_id.region.amazonaws.com`. + # + # The following actions are related to `GetObjectAttributes`: + # + # * [GetObject][8] + # + # * [GetObjectAcl][9] + # + # * [GetObjectLegalHold][10] + # + # * [GetObjectLockConfiguration][11] + # + # * [GetObjectRetention][12] + # + # * [GetObjectTagging][13] + # + # * [HeadObject][14] + # + # * [ListParts][15] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html + # [7]: https://tools.ietf.org/html/rfc7232 + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html + # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html + # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLegalHold.html + # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLockConfiguration.html + # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectRetention.html + # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html + # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html + # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html + # + # @example Request syntax with placeholder values + # + # resp = client.get_object_attributes({ + # bucket: "BucketName", # required + # key: "ObjectKey", # required + # version_id: "ObjectVersionId", + # max_parts: 1, + # part_number_marker: 1, + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # request_payer: "requester", # accepts requester + # expected_bucket_owner: "AccountId", + # object_attributes: ["ETag"], # required, accepts ETag, Checksum, ObjectParts, StorageClass, ObjectSize + # }) + # @example Response structure + # + # resp.delete_marker #=> Boolean + # resp.last_modified #=> Time + # resp.version_id #=> String + # resp.request_charged #=> String, one of "requester" + # resp.etag #=> String + # resp.checksum.checksum_crc32 #=> String + # resp.checksum.checksum_crc32c #=> String + # resp.checksum.checksum_sha1 #=> String + # resp.checksum.checksum_sha256 #=> String + # resp.object_parts.total_parts_count #=> Integer + # resp.object_parts.part_number_marker #=> Integer + # resp.object_parts.next_part_number_marker #=> Integer + # resp.object_parts.max_parts #=> Integer + # resp.object_parts.is_truncated #=> Boolean + # resp.object_parts.parts #=> Array + # resp.object_parts.parts[0].part_number #=> Integer + # resp.object_parts.parts[0].size #=> Integer + # resp.object_parts.parts[0].checksum_crc32 #=> String + # resp.object_parts.parts[0].checksum_crc32c #=> String + # resp.object_parts.parts[0].checksum_sha1 #=> String + # resp.object_parts.parts[0].checksum_sha256 #=> String + # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE" + # resp.object_size #=> Integer + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload get_object_attributes + # @param params [Hash] ({}) + # @return [Types::GetObjectAttributesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetObjectAttributesOutput#delete_marker #delete_marker} => Boolean + # * {Types::GetObjectAttributesOutput#last_modified #last_modified} => Time + # * {Types::GetObjectAttributesOutput#version_id #version_id} => String + # * {Types::GetObjectAttributesOutput#request_charged #request_charged} => String + # * {Types::GetObjectAttributesOutput#etag #etag} => String + # * {Types::GetObjectAttributesOutput#checksum #checksum} => Types::Checksum + # * {Types::GetObjectAttributesOutput#object_parts #object_parts} => Types::GetObjectAttributesParts + # * {Types::GetObjectAttributesOutput#storage_class #storage_class} => String + # * {Types::GetObjectAttributesOutput#object_size #object_size} => Integer + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAttributes AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#8928 + def get_object_attributes(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Gets an object's current legal hold status. For more information, see + # [Locking Objects][1]. + # + # This functionality is not supported for Amazon S3 on Outposts. + # + # The following action is related to `GetObjectLegalHold`: + # + # * [GetObjectAttributes][2] + # + # ^ + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html + # + # @example Request syntax with placeholder values + # + # resp = client.get_object_legal_hold({ + # bucket: "BucketName", # required + # key: "ObjectKey", # required + # version_id: "ObjectVersionId", + # request_payer: "requester", # accepts requester + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.legal_hold.status #=> String, one of "ON", "OFF" + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload get_object_legal_hold + # @param params [Hash] ({}) + # @return [Types::GetObjectLegalHoldOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetObjectLegalHoldOutput#legal_hold #legal_hold} => Types::ObjectLockLegalHold + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHold AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#9024 + def get_object_legal_hold(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Gets the Object Lock configuration for a bucket. The rule specified in + # the Object Lock configuration will be applied by default to every new + # object placed in the specified bucket. For more information, see + # [Locking Objects][1]. + # + # The following action is related to `GetObjectLockConfiguration`: + # + # * [GetObjectAttributes][2] + # + # ^ + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html + # + # @example Request syntax with placeholder values + # + # resp = client.get_object_lock_configuration({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.object_lock_configuration.object_lock_enabled #=> String, one of "Enabled" + # resp.object_lock_configuration.rule.default_retention.mode #=> String, one of "GOVERNANCE", "COMPLIANCE" + # resp.object_lock_configuration.rule.default_retention.days #=> Integer + # resp.object_lock_configuration.rule.default_retention.years #=> Integer + # @option params + # @option params + # @overload get_object_lock_configuration + # @param params [Hash] ({}) + # @return [Types::GetObjectLockConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetObjectLockConfigurationOutput#object_lock_configuration #object_lock_configuration} => Types::ObjectLockConfiguration + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#9094 + def get_object_lock_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Retrieves an object's retention settings. For more information, see + # [Locking Objects][1]. + # + # This functionality is not supported for Amazon S3 on Outposts. + # + # The following action is related to `GetObjectRetention`: + # + # * [GetObjectAttributes][2] + # + # ^ + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html + # + # @example Request syntax with placeholder values + # + # resp = client.get_object_retention({ + # bucket: "BucketName", # required + # key: "ObjectKey", # required + # version_id: "ObjectVersionId", + # request_payer: "requester", # accepts requester + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.retention.mode #=> String, one of "GOVERNANCE", "COMPLIANCE" + # resp.retention.retain_until_date #=> Time + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload get_object_retention + # @param params [Hash] ({}) + # @return [Types::GetObjectRetentionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetObjectRetentionOutput#retention #retention} => Types::ObjectLockRetention + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetention AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#9191 + def get_object_retention(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Returns the tag-set of an object. You send the GET request against the + # tagging subresource associated with the object. + # + # To use this operation, you must have permission to perform the + # `s3:GetObjectTagging` action. By default, the GET action returns + # information about current version of an object. For a versioned + # bucket, you can have multiple versions of an object in your bucket. To + # retrieve tags of any other version, use the versionId query parameter. + # You also need permission for the `s3:GetObjectVersionTagging` action. + # + # By default, the bucket owner has this permission and can grant this + # permission to others. + # + # For information about the Amazon S3 object tagging feature, see + # [Object Tagging][1]. + # + # The following actions are related to `GetObjectTagging`: + # + # * [DeleteObjectTagging][2] + # + # * [GetObjectAttributes][3] + # + # * [PutObjectTagging][4] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html + # + # @example Example: To retrieve tag set of an object + # + # # The following example retrieves tag set of an object. + # + # resp = client.get_object_tagging({ + # bucket: "examplebucket", + # key: "HappyFace.jpg", + # }) + # + # resp.to_h outputs the following: + # { + # tag_set: [ + # { + # key: "Key4", + # value: "Value4", + # }, + # { + # key: "Key3", + # value: "Value3", + # }, + # ], + # version_id: "null", + # } + # @example Example: To retrieve tag set of a specific object version + # + # # The following example retrieves tag set of an object. The request specifies object version. + # + # resp = client.get_object_tagging({ + # bucket: "examplebucket", + # key: "exampleobject", + # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI", + # }) + # + # resp.to_h outputs the following: + # { + # tag_set: [ + # { + # key: "Key1", + # value: "Value1", + # }, + # ], + # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI", + # } + # @example Request syntax with placeholder values + # + # resp = client.get_object_tagging({ + # bucket: "BucketName", # required + # key: "ObjectKey", # required + # version_id: "ObjectVersionId", + # expected_bucket_owner: "AccountId", + # request_payer: "requester", # accepts requester + # }) + # @example Response structure + # + # resp.version_id #=> String + # resp.tag_set #=> Array + # resp.tag_set[0].key #=> String + # resp.tag_set[0].value #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload get_object_tagging + # @param params [Hash] ({}) + # @return [Types::GetObjectTaggingOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetObjectTaggingOutput#version_id #version_id} => String + # * {Types::GetObjectTaggingOutput#tag_set #tag_set} => Array<Types::Tag> + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTagging AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#9360 + def get_object_tagging(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Returns torrent files from a bucket. BitTorrent can save you bandwidth + # when you're distributing large files. + # + # You can get torrent only for objects that are less than 5 GB in size, + # and that are not encrypted using server-side encryption with a + # customer-provided encryption key. + # + # + # + # To use GET, you must have READ access to the object. + # + # This functionality is not supported for Amazon S3 on Outposts. + # + # The following action is related to `GetObjectTorrent`: + # + # * [GetObject][1] + # + # ^ + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html + # + # @example Example: To retrieve torrent files for an object + # + # # The following example retrieves torrent files of an object. + # + # resp = client.get_object_torrent({ + # bucket: "examplebucket", + # key: "HappyFace.jpg", + # }) + # + # resp.to_h outputs the following: + # { + # } + # @example Request syntax with placeholder values + # + # resp = client.get_object_torrent({ + # bucket: "BucketName", # required + # key: "ObjectKey", # required + # request_payer: "requester", # accepts requester + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.body #=> IO + # resp.request_charged #=> String, one of "requester" + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload get_object_torrent + # @param params [Hash] ({}) + # @return [Types::GetObjectTorrentOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetObjectTorrentOutput#body #body} => IO + # * {Types::GetObjectTorrentOutput#request_charged #request_charged} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTorrent AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#9461 + def get_object_torrent(params = T.unsafe(nil), options = T.unsafe(nil), &block); end + + # This operation is not supported by directory buckets. + # + # + # + # Retrieves the `PublicAccessBlock` configuration for an Amazon S3 + # bucket. To use this operation, you must have the + # `s3:GetBucketPublicAccessBlock` permission. For more information about + # Amazon S3 permissions, see [Specifying Permissions in a Policy][1]. + # + # When Amazon S3 evaluates the `PublicAccessBlock` configuration for a + # bucket or an object, it checks the `PublicAccessBlock` configuration + # for both the bucket (or the bucket that contains the object) and the + # bucket owner's account. If the `PublicAccessBlock` settings are + # different between the bucket and the account, Amazon S3 uses the most + # restrictive combination of the bucket-level and account-level + # settings. + # + # For more information about when Amazon S3 considers a bucket or an + # object public, see [The Meaning of "Public"][2]. + # + # The following operations are related to `GetPublicAccessBlock`: + # + # * [Using Amazon S3 Block Public Access][3] + # + # * [PutPublicAccessBlock][4] + # + # * [GetPublicAccessBlock][5] + # + # * [DeletePublicAccessBlock][6] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html + # + # @example Request syntax with placeholder values + # + # resp = client.get_public_access_block({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.public_access_block_configuration.block_public_acls #=> Boolean + # resp.public_access_block_configuration.ignore_public_acls #=> Boolean + # resp.public_access_block_configuration.block_public_policy #=> Boolean + # resp.public_access_block_configuration.restrict_public_buckets #=> Boolean + # @option params + # @option params + # @overload get_public_access_block + # @param params [Hash] ({}) + # @return [Types::GetPublicAccessBlockOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetPublicAccessBlockOutput#public_access_block_configuration #public_access_block_configuration} => Types::PublicAccessBlockConfiguration + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetPublicAccessBlock AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#9536 + def get_public_access_block(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # You can use this operation to determine if a bucket exists and if you + # have permission to access it. The action returns a `200 OK` if the + # bucket exists and you have permission to access it. + # + # If the bucket does not exist or you do not have permission to access + # it, the `HEAD` request returns a generic `400 Bad Request`, `403 + # Forbidden` or `404 Not Found` code. A message body is not included, so + # you cannot determine the exception beyond these HTTP response codes. + # + # + # + # Authentication and authorization + # + # : **General purpose buckets** - Request to public buckets that grant + # the s3:ListBucket permission publicly do not need to be signed. All + # other `HeadBucket` requests must be authenticated and signed by + # using IAM credentials (access key ID and secret access key for the + # IAM identities). All headers with the `x-amz-` prefix, including + # `x-amz-copy-source`, must be signed. For more information, see [REST + # Authentication][1]. + # + # **Directory buckets** - You must use IAM credentials to authenticate + # and authorize your access to the `HeadBucket` API operation, instead + # of using the temporary security credentials through the + # `CreateSession` API operation. + # + # Amazon Web Services CLI or SDKs handles authentication and + # authorization on your behalf. + # + # Permissions + # + # : + # + # * **General purpose bucket permissions** - To use this operation, + # you must have permissions to perform the `s3:ListBucket` action. + # The bucket owner has this permission by default and can grant this + # permission to others. For more information about permissions, see + # [Managing access permissions to your Amazon S3 resources][2] in + # the *Amazon S3 User Guide*. + # + # * **Directory bucket permissions** - You must have the + # s3express:CreateSession permission in the + # `Action` element of a policy. By default, the session is in the + # `ReadWrite` mode. If you want to restrict the access, you can + # explicitly set the `s3express:SessionMode` condition key to + # `ReadOnly` on the bucket. + # + # For more information about example bucket policies, see [Example + # bucket policies for S3 Express One Zone][3] and [Amazon Web + # Services Identity and Access Management (IAM) identity-based + # policies for S3 Express One Zone][4] in the *Amazon S3 User + # Guide*. + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is ` + # Bucket_name.s3express-az_id.region.amazonaws.com`. + # + # You must make requests for this API operation to the Zonal endpoint. + # These endpoints support virtual-hosted-style requests in the format + # `https://bucket_name.s3express-az_id.region.amazonaws.com`. + # Path-style requests are not supported. For more information, see + # [Regional and Zonal endpoints][5] in the *Amazon S3 User Guide*. + # + # + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # + # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage): + # + # * bucket_exists + # * bucket_not_exists + # + # @example Example: To determine if bucket exists + # + # # This operation checks to see if a bucket exists. + # + # resp = client.head_bucket({ + # bucket: "acl1", + # }) + # @example Request syntax with placeholder values + # + # resp = client.head_bucket({ + # bucket: "BucketName", # required + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.bucket_location_type #=> String, one of "AvailabilityZone" + # resp.bucket_location_name #=> String + # resp.bucket_region #=> String + # resp.access_point_alias #=> Boolean + # @option params + # @option params + # @overload head_bucket + # @param params [Hash] ({}) + # @return [Types::HeadBucketOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::HeadBucketOutput#bucket_location_type #bucket_location_type} => String + # * {Types::HeadBucketOutput#bucket_location_name #bucket_location_name} => String + # * {Types::HeadBucketOutput#bucket_region #bucket_region} => String + # * {Types::HeadBucketOutput#access_point_alias #access_point_alias} => Boolean + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadBucket AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#9712 + def head_bucket(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # The `HEAD` operation retrieves metadata from an object without + # returning the object itself. This operation is useful if you're + # interested only in an object's metadata. + # + # A `HEAD` request has the same options as a `GET` operation on an + # object. The response is identical to the `GET` response except that + # there is no response body. Because of this, if the `HEAD` request + # generates an error, it returns a generic code, such as `400 Bad + # Request`, `403 Forbidden`, `404 Not Found`, `405 Method Not Allowed`, + # `412 Precondition Failed`, or `304 Not Modified`. It's not possible + # to retrieve the exact exception of these error codes. + # + # + # + # Request headers are limited to 8 KB in size. For more information, see + # [Common Request Headers][1]. + # + # Permissions + # + # : + # + # * **General purpose bucket permissions** - To use `HEAD`, you must + # have the `s3:GetObject` permission. You need the relevant read + # object (or version) permission for this operation. For more + # information, see [Actions, resources, and condition keys for + # Amazon S3][2] in the *Amazon S3 User Guide*. For more information + # about the permissions to S3 API operations by S3 resource types, + # see [Required permissions for Amazon S3 API + # operations](/AmazonS3/latest/userguide/using-with-s3-policy-actions.html) + # in the *Amazon S3 User Guide*. + # + # If the object you request doesn't exist, the error that Amazon S3 + # returns depends on whether you also have the `s3:ListBucket` + # permission. + # + # * If you have the `s3:ListBucket` permission on the bucket, Amazon + # S3 returns an HTTP status code `404 Not Found` error. + # + # * If you don’t have the `s3:ListBucket` permission, Amazon S3 + # returns an HTTP status code `403 Forbidden` error. + # + # * **Directory bucket permissions** - To grant access to this API + # operation on a directory bucket, we recommend that you use the [ + # `CreateSession` ][3] API operation for session-based + # authorization. Specifically, you grant the + # `s3express:CreateSession` permission to the directory bucket in a + # bucket policy or an IAM identity-based policy. Then, you make the + # `CreateSession` API call on the bucket to obtain a session token. + # With the session token in your request header, you can make API + # requests to this operation. After the session token expires, you + # make another `CreateSession` API call to generate a new session + # token for use. Amazon Web Services CLI or SDKs create session and + # refresh the session token automatically to avoid service + # interruptions when a session expires. For more information about + # authorization, see [ `CreateSession` ][3]. + # + # If you enable `x-amz-checksum-mode` in the request and the object + # is encrypted with Amazon Web Services Key Management Service + # (Amazon Web Services KMS), you must also have the + # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + # identity-based policies and KMS key policies for the KMS key to + # retrieve the checksum of the object. + # + # Encryption + # : Encryption request headers, like `x-amz-server-side-encryption`, + # should not be sent for `HEAD` requests if your object uses + # server-side encryption with Key Management Service (KMS) keys + # (SSE-KMS), dual-layer server-side encryption with Amazon Web + # Services KMS keys (DSSE-KMS), or server-side encryption with Amazon + # S3 managed encryption keys (SSE-S3). The + # `x-amz-server-side-encryption` header is used when you `PUT` an + # object to S3 and want to specify the encryption method. If you + # include this header in a `HEAD` request for an object that uses + # these types of keys, you’ll get an HTTP `400 Bad Request` error. + # It's because the encryption method can't be changed when you + # retrieve the object. + # + # + # + # If you encrypt an object by using server-side encryption with + # customer-provided encryption keys (SSE-C) when you store the object + # in Amazon S3, then when you retrieve the metadata from the object, + # you must use the following headers to provide the encryption key for + # the server to be able to retrieve the object's metadata. The + # headers are: + # + # * `x-amz-server-side-encryption-customer-algorithm` + # + # * `x-amz-server-side-encryption-customer-key` + # + # * `x-amz-server-side-encryption-customer-key-MD5` + # + # For more information about SSE-C, see [Server-Side Encryption (Using + # Customer-Provided Encryption Keys)][4] in the *Amazon S3 User + # Guide*. + # + # Directory bucket - For directory buckets, there are only two + # supported options for server-side encryption: SSE-S3 and SSE-KMS. + # SSE-C isn't supported. For more information, see [Protecting data + # with server-side encryption][5] in the *Amazon S3 User Guide*. + # + # + # + # Versioning + # : * If the current version of the object is a delete marker, Amazon S3 + # behaves as if the object was deleted and includes + # `x-amz-delete-marker: true` in the response. + # + # * If the specified version is a delete marker, the response returns + # a `405 Method Not Allowed` error and the `Last-Modified: + # timestamp` response header. + # + # * **Directory buckets** - Delete marker is not supported by + # directory buckets. + # + # * **Directory buckets** - S3 Versioning isn't enabled and supported + # for directory buckets. For this API operation, only the `null` + # value of the version ID is supported by directory buckets. You can + # only specify `null` to the `versionId` query parameter in the + # request. + # + # + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is ` + # Bucket_name.s3express-az_id.region.amazonaws.com`. + # + # For directory buckets, you must make requests for this API operation + # to the Zonal endpoint. These endpoints support virtual-hosted-style + # requests in the format + # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name + # `. Path-style requests are not supported. For more information, see + # [Regional and Zonal endpoints][6] in the *Amazon S3 User Guide*. + # + # + # + # The following actions are related to `HeadObject`: + # + # * [GetObject][7] + # + # * [GetObjectAttributes][8] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html + # + # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage): + # + # * object_exists + # * object_not_exists + # + # @example Example: To retrieve metadata of an object without returning the object itself + # + # # The following example retrieves an object metadata. + # + # resp = client.head_object({ + # bucket: "examplebucket", + # key: "HappyFace.jpg", + # }) + # + # resp.to_h outputs the following: + # { + # accept_ranges: "bytes", + # content_length: 3191, + # content_type: "image/jpeg", + # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"", + # last_modified: Time.parse("Thu, 15 Dec 2016 01:19:41 GMT"), + # metadata: { + # }, + # version_id: "null", + # } + # @example Request syntax with placeholder values + # + # resp = client.head_object({ + # bucket: "BucketName", # required + # if_match: "IfMatch", + # if_modified_since: Time.now, + # if_none_match: "IfNoneMatch", + # if_unmodified_since: Time.now, + # key: "ObjectKey", # required + # range: "Range", + # response_cache_control: "ResponseCacheControl", + # response_content_disposition: "ResponseContentDisposition", + # response_content_encoding: "ResponseContentEncoding", + # response_content_language: "ResponseContentLanguage", + # response_content_type: "ResponseContentType", + # response_expires: Time.now, + # version_id: "ObjectVersionId", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # request_payer: "requester", # accepts requester + # part_number: 1, + # expected_bucket_owner: "AccountId", + # checksum_mode: "ENABLED", # accepts ENABLED + # }) + # @example Response structure + # + # resp.delete_marker #=> Boolean + # resp.accept_ranges #=> String + # resp.expiration #=> String + # resp.restore #=> String + # resp.archive_status #=> String, one of "ARCHIVE_ACCESS", "DEEP_ARCHIVE_ACCESS" + # resp.last_modified #=> Time + # resp.content_length #=> Integer + # resp.checksum_crc32 #=> String + # resp.checksum_crc32c #=> String + # resp.checksum_sha1 #=> String + # resp.checksum_sha256 #=> String + # resp.etag #=> String + # resp.missing_meta #=> Integer + # resp.version_id #=> String + # resp.cache_control #=> String + # resp.content_disposition #=> String + # resp.content_encoding #=> String + # resp.content_language #=> String + # resp.content_type #=> String + # resp.expires #=> Time + # resp.expires_string #=> String + # resp.website_redirect_location #=> String + # resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse" + # resp.metadata #=> Hash + # resp.metadata["MetadataKey"] #=> String + # resp.sse_customer_algorithm #=> String + # resp.sse_customer_key_md5 #=> String + # resp.ssekms_key_id #=> String + # resp.bucket_key_enabled #=> Boolean + # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE" + # resp.request_charged #=> String, one of "requester" + # resp.replication_status #=> String, one of "COMPLETE", "PENDING", "FAILED", "REPLICA", "COMPLETED" + # resp.parts_count #=> Integer + # resp.object_lock_mode #=> String, one of "GOVERNANCE", "COMPLIANCE" + # resp.object_lock_retain_until_date #=> Time + # resp.object_lock_legal_hold_status #=> String, one of "ON", "OFF" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload head_object + # @param params [Hash] ({}) + # @return [Types::HeadObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::HeadObjectOutput#delete_marker #delete_marker} => Boolean + # * {Types::HeadObjectOutput#accept_ranges #accept_ranges} => String + # * {Types::HeadObjectOutput#expiration #expiration} => String + # * {Types::HeadObjectOutput#restore #restore} => String + # * {Types::HeadObjectOutput#archive_status #archive_status} => String + # * {Types::HeadObjectOutput#last_modified #last_modified} => Time + # * {Types::HeadObjectOutput#content_length #content_length} => Integer + # * {Types::HeadObjectOutput#checksum_crc32 #checksum_crc32} => String + # * {Types::HeadObjectOutput#checksum_crc32c #checksum_crc32c} => String + # * {Types::HeadObjectOutput#checksum_sha1 #checksum_sha1} => String + # * {Types::HeadObjectOutput#checksum_sha256 #checksum_sha256} => String + # * {Types::HeadObjectOutput#etag #etag} => String + # * {Types::HeadObjectOutput#missing_meta #missing_meta} => Integer + # * {Types::HeadObjectOutput#version_id #version_id} => String + # * {Types::HeadObjectOutput#cache_control #cache_control} => String + # * {Types::HeadObjectOutput#content_disposition #content_disposition} => String + # * {Types::HeadObjectOutput#content_encoding #content_encoding} => String + # * {Types::HeadObjectOutput#content_language #content_language} => String + # * {Types::HeadObjectOutput#content_type #content_type} => String + # * {Types::HeadObjectOutput#expires #expires} => Time + # * {Types::HeadObjectOutput#expires_string #expires_string} => String + # * {Types::HeadObjectOutput#website_redirect_location #website_redirect_location} => String + # * {Types::HeadObjectOutput#server_side_encryption #server_side_encryption} => String + # * {Types::HeadObjectOutput#metadata #metadata} => Hash<String,String> + # * {Types::HeadObjectOutput#sse_customer_algorithm #sse_customer_algorithm} => String + # * {Types::HeadObjectOutput#sse_customer_key_md5 #sse_customer_key_md5} => String + # * {Types::HeadObjectOutput#ssekms_key_id #ssekms_key_id} => String + # * {Types::HeadObjectOutput#bucket_key_enabled #bucket_key_enabled} => Boolean + # * {Types::HeadObjectOutput#storage_class #storage_class} => String + # * {Types::HeadObjectOutput#request_charged #request_charged} => String + # * {Types::HeadObjectOutput#replication_status #replication_status} => String + # * {Types::HeadObjectOutput#parts_count #parts_count} => Integer + # * {Types::HeadObjectOutput#object_lock_mode #object_lock_mode} => String + # * {Types::HeadObjectOutput#object_lock_retain_until_date #object_lock_retain_until_date} => Time + # * {Types::HeadObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadObject AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#10235 + def head_object(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Lists the analytics configurations for the bucket. You can have up to + # 1,000 analytics configurations per bucket. + # + # This action supports list pagination and does not return more than 100 + # configurations at a time. You should always check the `IsTruncated` + # element in the response. If there are no more configurations to list, + # `IsTruncated` is set to false. If there are more configurations to + # list, `IsTruncated` is set to true, and there will be a value in + # `NextContinuationToken`. You use the `NextContinuationToken` value to + # continue the pagination of the list by passing the value in + # continuation-token in the request to `GET` the next page. + # + # To use this operation, you must have permissions to perform the + # `s3:GetAnalyticsConfiguration` action. The 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][1] and [Managing Access + # Permissions to Your Amazon S3 Resources][2]. + # + # For information about Amazon S3 analytics feature, see [Amazon S3 + # Analytics – Storage Class Analysis][3]. + # + # The following operations are related to + # `ListBucketAnalyticsConfigurations`: + # + # * [GetBucketAnalyticsConfiguration][4] + # + # * [DeleteBucketAnalyticsConfiguration][5] + # + # * [PutBucketAnalyticsConfiguration][6] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html + # + # @example Request syntax with placeholder values + # + # resp = client.list_bucket_analytics_configurations({ + # bucket: "BucketName", # required + # continuation_token: "Token", + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.is_truncated #=> Boolean + # resp.continuation_token #=> String + # resp.next_continuation_token #=> String + # resp.analytics_configuration_list #=> Array + # resp.analytics_configuration_list[0].id #=> String + # resp.analytics_configuration_list[0].filter.prefix #=> String + # resp.analytics_configuration_list[0].filter.tag.key #=> String + # resp.analytics_configuration_list[0].filter.tag.value #=> String + # resp.analytics_configuration_list[0].filter.and.prefix #=> String + # resp.analytics_configuration_list[0].filter.and.tags #=> Array + # resp.analytics_configuration_list[0].filter.and.tags[0].key #=> String + # resp.analytics_configuration_list[0].filter.and.tags[0].value #=> String + # resp.analytics_configuration_list[0].storage_class_analysis.data_export.output_schema_version #=> String, one of "V_1" + # resp.analytics_configuration_list[0].storage_class_analysis.data_export.destination.s3_bucket_destination.format #=> String, one of "CSV" + # resp.analytics_configuration_list[0].storage_class_analysis.data_export.destination.s3_bucket_destination.bucket_account_id #=> String + # resp.analytics_configuration_list[0].storage_class_analysis.data_export.destination.s3_bucket_destination.bucket #=> String + # resp.analytics_configuration_list[0].storage_class_analysis.data_export.destination.s3_bucket_destination.prefix #=> String + # @option params + # @option params + # @option params + # @overload list_bucket_analytics_configurations + # @param params [Hash] ({}) + # @return [Types::ListBucketAnalyticsConfigurationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListBucketAnalyticsConfigurationsOutput#is_truncated #is_truncated} => Boolean + # * {Types::ListBucketAnalyticsConfigurationsOutput#continuation_token #continuation_token} => String + # * {Types::ListBucketAnalyticsConfigurationsOutput#next_continuation_token #next_continuation_token} => String + # * {Types::ListBucketAnalyticsConfigurationsOutput#analytics_configuration_list #analytics_configuration_list} => Array<Types::AnalyticsConfiguration> + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketAnalyticsConfigurations AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#10336 + def list_bucket_analytics_configurations(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Lists the S3 Intelligent-Tiering configuration from the specified + # bucket. + # + # The S3 Intelligent-Tiering storage class is designed to optimize + # storage costs by automatically moving data to the most cost-effective + # storage access tier, without performance impact or operational + # overhead. S3 Intelligent-Tiering delivers automatic cost savings in + # three low latency and high throughput access tiers. To get the lowest + # storage cost on data that can be accessed in minutes to hours, you can + # choose to activate additional archiving capabilities. + # + # The S3 Intelligent-Tiering storage class is the ideal storage class + # for data with unknown, changing, or unpredictable access patterns, + # independent of object size or retention period. If the size of an + # object is less than 128 KB, it is not monitored and not eligible for + # auto-tiering. Smaller objects can be stored, but they are always + # charged at the Frequent Access tier rates in the S3 + # Intelligent-Tiering storage class. + # + # For more information, see [Storage class for automatically optimizing + # frequently and infrequently accessed objects][1]. + # + # Operations related to `ListBucketIntelligentTieringConfigurations` + # include: + # + # * [DeleteBucketIntelligentTieringConfiguration][2] + # + # * [PutBucketIntelligentTieringConfiguration][3] + # + # * [GetBucketIntelligentTieringConfiguration][4] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html + # + # @example Request syntax with placeholder values + # + # resp = client.list_bucket_intelligent_tiering_configurations({ + # bucket: "BucketName", # required + # continuation_token: "Token", + # }) + # @example Response structure + # + # resp.is_truncated #=> Boolean + # resp.continuation_token #=> String + # resp.next_continuation_token #=> String + # resp.intelligent_tiering_configuration_list #=> Array + # resp.intelligent_tiering_configuration_list[0].id #=> String + # resp.intelligent_tiering_configuration_list[0].filter.prefix #=> String + # resp.intelligent_tiering_configuration_list[0].filter.tag.key #=> String + # resp.intelligent_tiering_configuration_list[0].filter.tag.value #=> String + # resp.intelligent_tiering_configuration_list[0].filter.and.prefix #=> String + # resp.intelligent_tiering_configuration_list[0].filter.and.tags #=> Array + # resp.intelligent_tiering_configuration_list[0].filter.and.tags[0].key #=> String + # resp.intelligent_tiering_configuration_list[0].filter.and.tags[0].value #=> String + # resp.intelligent_tiering_configuration_list[0].status #=> String, one of "Enabled", "Disabled" + # resp.intelligent_tiering_configuration_list[0].tierings #=> Array + # resp.intelligent_tiering_configuration_list[0].tierings[0].days #=> Integer + # resp.intelligent_tiering_configuration_list[0].tierings[0].access_tier #=> String, one of "ARCHIVE_ACCESS", "DEEP_ARCHIVE_ACCESS" + # @option params + # @option params + # @overload list_bucket_intelligent_tiering_configurations + # @param params [Hash] ({}) + # @return [Types::ListBucketIntelligentTieringConfigurationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListBucketIntelligentTieringConfigurationsOutput#is_truncated #is_truncated} => Boolean + # * {Types::ListBucketIntelligentTieringConfigurationsOutput#continuation_token #continuation_token} => String + # * {Types::ListBucketIntelligentTieringConfigurationsOutput#next_continuation_token #next_continuation_token} => String + # * {Types::ListBucketIntelligentTieringConfigurationsOutput#intelligent_tiering_configuration_list #intelligent_tiering_configuration_list} => Array<Types::IntelligentTieringConfiguration> + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketIntelligentTieringConfigurations AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#10428 + def list_bucket_intelligent_tiering_configurations(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Returns a list of inventory configurations for the bucket. You can + # have up to 1,000 analytics configurations per bucket. + # + # This action supports list pagination and does not return more than 100 + # configurations at a time. Always check the `IsTruncated` element in + # the response. If there are no more configurations to list, + # `IsTruncated` is set to false. If there are more configurations to + # list, `IsTruncated` is set to true, and there is a value in + # `NextContinuationToken`. You use the `NextContinuationToken` value to + # continue the pagination of the list by passing the value in + # continuation-token in the request to `GET` the next page. + # + # To use this operation, you must have permissions to perform the + # `s3:GetInventoryConfiguration` action. The 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][1] and [Managing Access + # Permissions to Your Amazon S3 Resources][2]. + # + # For information about the Amazon S3 inventory feature, see [Amazon S3 + # Inventory][3] + # + # The following operations are related to + # `ListBucketInventoryConfigurations`: + # + # * [GetBucketInventoryConfiguration][4] + # + # * [DeleteBucketInventoryConfiguration][5] + # + # * [PutBucketInventoryConfiguration][6] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html + # + # @example Request syntax with placeholder values + # + # resp = client.list_bucket_inventory_configurations({ + # bucket: "BucketName", # required + # continuation_token: "Token", + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.continuation_token #=> String + # resp.inventory_configuration_list #=> Array + # resp.inventory_configuration_list[0].destination.s3_bucket_destination.account_id #=> String + # resp.inventory_configuration_list[0].destination.s3_bucket_destination.bucket #=> String + # resp.inventory_configuration_list[0].destination.s3_bucket_destination.format #=> String, one of "CSV", "ORC", "Parquet" + # resp.inventory_configuration_list[0].destination.s3_bucket_destination.prefix #=> String + # resp.inventory_configuration_list[0].destination.s3_bucket_destination.encryption.ssekms.key_id #=> String + # resp.inventory_configuration_list[0].is_enabled #=> Boolean + # resp.inventory_configuration_list[0].filter.prefix #=> String + # resp.inventory_configuration_list[0].id #=> String + # resp.inventory_configuration_list[0].included_object_versions #=> String, one of "All", "Current" + # resp.inventory_configuration_list[0].optional_fields #=> Array + # resp.inventory_configuration_list[0].optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus", "ObjectLockRetainUntilDate", "ObjectLockMode", "ObjectLockLegalHoldStatus", "IntelligentTieringAccessTier", "BucketKeyStatus", "ChecksumAlgorithm", "ObjectAccessControlList", "ObjectOwner" + # resp.inventory_configuration_list[0].schedule.frequency #=> String, one of "Daily", "Weekly" + # resp.is_truncated #=> Boolean + # resp.next_continuation_token #=> String + # @option params + # @option params + # @option params + # @overload list_bucket_inventory_configurations + # @param params [Hash] ({}) + # @return [Types::ListBucketInventoryConfigurationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListBucketInventoryConfigurationsOutput#continuation_token #continuation_token} => String + # * {Types::ListBucketInventoryConfigurationsOutput#inventory_configuration_list #inventory_configuration_list} => Array<Types::InventoryConfiguration> + # * {Types::ListBucketInventoryConfigurationsOutput#is_truncated #is_truncated} => Boolean + # * {Types::ListBucketInventoryConfigurationsOutput#next_continuation_token #next_continuation_token} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketInventoryConfigurations AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#10530 + def list_bucket_inventory_configurations(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Lists the metrics configurations for the bucket. The metrics + # configurations are only for the request metrics of the bucket and do + # not provide information on daily storage metrics. You can have up to + # 1,000 configurations per bucket. + # + # This action supports list pagination and does not return more than 100 + # configurations at a time. Always check the `IsTruncated` element in + # the response. If there are no more configurations to list, + # `IsTruncated` is set to false. If there are more configurations to + # list, `IsTruncated` is set to true, and there is a value in + # `NextContinuationToken`. You use the `NextContinuationToken` value to + # continue the pagination of the list by passing the value in + # `continuation-token` in the request to `GET` the next page. + # + # To use this operation, you must have permissions to perform the + # `s3:GetMetricsConfiguration` action. The 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][1] and [Managing Access + # Permissions to Your Amazon S3 Resources][2]. + # + # For more information about metrics configurations and CloudWatch + # request metrics, see [Monitoring Metrics with Amazon CloudWatch][3]. + # + # The following operations are related to + # `ListBucketMetricsConfigurations`: + # + # * [PutBucketMetricsConfiguration][4] + # + # * [GetBucketMetricsConfiguration][5] + # + # * [DeleteBucketMetricsConfiguration][6] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html + # + # @example Request syntax with placeholder values + # + # resp = client.list_bucket_metrics_configurations({ + # bucket: "BucketName", # required + # continuation_token: "Token", + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.is_truncated #=> Boolean + # resp.continuation_token #=> String + # resp.next_continuation_token #=> String + # resp.metrics_configuration_list #=> Array + # resp.metrics_configuration_list[0].id #=> String + # resp.metrics_configuration_list[0].filter.prefix #=> String + # resp.metrics_configuration_list[0].filter.tag.key #=> String + # resp.metrics_configuration_list[0].filter.tag.value #=> String + # resp.metrics_configuration_list[0].filter.access_point_arn #=> String + # resp.metrics_configuration_list[0].filter.and.prefix #=> String + # resp.metrics_configuration_list[0].filter.and.tags #=> Array + # resp.metrics_configuration_list[0].filter.and.tags[0].key #=> String + # resp.metrics_configuration_list[0].filter.and.tags[0].value #=> String + # resp.metrics_configuration_list[0].filter.and.access_point_arn #=> String + # @option params + # @option params + # @option params + # @overload list_bucket_metrics_configurations + # @param params [Hash] ({}) + # @return [Types::ListBucketMetricsConfigurationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListBucketMetricsConfigurationsOutput#is_truncated #is_truncated} => Boolean + # * {Types::ListBucketMetricsConfigurationsOutput#continuation_token #continuation_token} => String + # * {Types::ListBucketMetricsConfigurationsOutput#next_continuation_token #next_continuation_token} => String + # * {Types::ListBucketMetricsConfigurationsOutput#metrics_configuration_list #metrics_configuration_list} => Array<Types::MetricsConfiguration> + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketMetricsConfigurations AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#10632 + def list_bucket_metrics_configurations(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Returns a list of all buckets owned by the authenticated sender of the + # request. To use this operation, you must have the + # `s3:ListAllMyBuckets` permission. + # + # For information about Amazon S3 buckets, see [Creating, configuring, + # and working with Amazon S3 buckets][1]. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Example: To list all buckets + # + # # The following example returns all the buckets owned by the sender of this request. + # + # resp = client.list_buckets({ + # }) + # + # resp.to_h outputs the following: + # { + # buckets: [ + # { + # creation_date: Time.parse("2012-02-15T21:03:02.000Z"), + # name: "examplebucket", + # }, + # { + # creation_date: Time.parse("2011-07-24T19:33:50.000Z"), + # name: "examplebucket2", + # }, + # { + # creation_date: Time.parse("2010-12-17T00:56:49.000Z"), + # name: "examplebucket3", + # }, + # ], + # owner: { + # display_name: "own-display-name", + # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31", + # }, + # } + # @example Request syntax with placeholder values + # + # resp = client.list_buckets({ + # max_buckets: 1, + # continuation_token: "Token", + # }) + # @example Response structure + # + # resp.buckets #=> Array + # resp.buckets[0].name #=> String + # resp.buckets[0].creation_date #=> Time + # resp.owner.display_name #=> String + # resp.owner.id #=> String + # resp.continuation_token #=> String + # @option params + # @option params + # @overload list_buckets + # @param params [Hash] ({}) + # @return [Types::ListBucketsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListBucketsOutput#buckets #buckets} => Array<Types::Bucket> + # * {Types::ListBucketsOutput#owner #owner} => Types::Owner + # * {Types::ListBucketsOutput#continuation_token #continuation_token} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBuckets AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#10725 + def list_buckets(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns a list of all Amazon S3 directory buckets owned by the + # authenticated sender of the request. For more information about + # directory buckets, see [Directory buckets][1] in the *Amazon S3 User + # Guide*. + # + # Directory buckets - For directory buckets, you must make + # requests for this API operation to the Regional endpoint. These + # endpoints support path-style requests in the format + # `https://s3express-control.region_code.amazonaws.com/bucket-name `. + # Virtual-hosted-style requests aren't supported. For more information, + # see [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*. + # + # + # + # Permissions + # + # : You must have the `s3express:ListAllMyDirectoryBuckets` permission + # in an IAM identity-based policy instead of a bucket policy. + # Cross-account access to this API operation isn't supported. This + # operation can only be performed by the Amazon Web Services account + # that owns the resource. For more information about directory bucket + # policies and permissions, see [Amazon Web Services Identity and + # Access Management (IAM) for S3 Express One Zone][3] in the *Amazon + # S3 User Guide*. + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is + # `s3express-control.region.amazonaws.com`. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.list_directory_buckets({ + # continuation_token: "DirectoryBucketToken", + # max_directory_buckets: 1, + # }) + # @example Response structure + # + # resp.buckets #=> Array + # resp.buckets[0].name #=> String + # resp.buckets[0].creation_date #=> Time + # resp.continuation_token #=> String + # @option params + # @option params + # @overload list_directory_buckets + # @param params [Hash] ({}) + # @return [Types::ListDirectoryBucketsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListDirectoryBucketsOutput#buckets #buckets} => Array<Types::Bucket> + # * {Types::ListDirectoryBucketsOutput#continuation_token #continuation_token} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListDirectoryBuckets AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#10802 + def list_directory_buckets(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation lists in-progress multipart uploads in a bucket. An + # in-progress multipart upload is a multipart upload that has been + # initiated by the `CreateMultipartUpload` request, but has not yet been + # completed or aborted. + # + # **Directory buckets** - If multipart uploads in a directory bucket are + # in progress, you can't delete the bucket until all the in-progress + # multipart uploads are aborted or completed. To delete these + # in-progress multipart uploads, use the `ListMultipartUploads` + # operation to list the in-progress multipart uploads in the bucket and + # use the `AbortMultupartUpload` operation to abort all the in-progress + # multipart uploads. + # + # + # + # The `ListMultipartUploads` operation returns a maximum of 1,000 + # multipart uploads in the response. The limit of 1,000 multipart + # uploads is also the default value. You can further limit the number of + # uploads in a response by specifying the `max-uploads` request + # parameter. If there are more than 1,000 multipart uploads that satisfy + # your `ListMultipartUploads` request, the response returns an + # `IsTruncated` element with the value of `true`, a `NextKeyMarker` + # element, and a `NextUploadIdMarker` element. To list the remaining + # multipart uploads, you need to make subsequent `ListMultipartUploads` + # requests. In these requests, include two query parameters: + # `key-marker` and `upload-id-marker`. Set the value of `key-marker` to + # the `NextKeyMarker` value from the previous response. Similarly, set + # the value of `upload-id-marker` to the `NextUploadIdMarker` value from + # the previous response. + # + # **Directory buckets** - The `upload-id-marker` element and the + # `NextUploadIdMarker` element aren't supported by directory buckets. + # To list the additional multipart uploads, you only need to set the + # value of `key-marker` to the `NextKeyMarker` value from the previous + # response. + # + # + # + # For more information about multipart uploads, see [Uploading Objects + # Using Multipart Upload][1] in the *Amazon S3 User Guide*. + # + # **Directory buckets** - For directory buckets, you must make requests + # for this API operation to the Zonal endpoint. These endpoints support + # virtual-hosted-style requests in the format + # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `. + # Path-style requests are not supported. For more information, see + # [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*. + # + # + # + # Permissions + # : * **General purpose bucket permissions** - For information about + # permissions required to use the multipart upload API, see + # [Multipart Upload and Permissions][3] in the *Amazon S3 User + # Guide*. + # + # * **Directory bucket permissions** - To grant access to this API + # operation on a directory bucket, we recommend that you use the [ + # `CreateSession` ][4] API operation for session-based + # authorization. Specifically, you grant the + # `s3express:CreateSession` permission to the directory bucket in a + # bucket policy or an IAM identity-based policy. Then, you make the + # `CreateSession` API call on the bucket to obtain a session token. + # With the session token in your request header, you can make API + # requests to this operation. After the session token expires, you + # make another `CreateSession` API call to generate a new session + # token for use. Amazon Web Services CLI or SDKs create session and + # refresh the session token automatically to avoid service + # interruptions when a session expires. For more information about + # authorization, see [ `CreateSession` ][4]. + # + # Sorting of multipart uploads in response + # : * **General purpose bucket** - In the `ListMultipartUploads` + # response, the multipart uploads are sorted based on two criteria: + # + # * Key-based sorting - Multipart uploads are initially sorted in + # ascending order based on their object keys. + # + # * Time-based sorting - For uploads that share the same object key, + # they are further sorted in ascending order based on the upload + # initiation time. Among uploads with the same key, the one that + # was initiated first will appear before the ones that were + # initiated later. + # + # * **Directory bucket** - In the `ListMultipartUploads` response, the + # multipart uploads aren't sorted lexicographically based on the + # object keys. + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is ` + # Bucket_name.s3express-az_id.region.amazonaws.com`. + # + # The following operations are related to `ListMultipartUploads`: + # + # * [CreateMultipartUpload][5] + # + # * [UploadPart][6] + # + # * [CompleteMultipartUpload][7] + # + # * [ListParts][8] + # + # * [AbortMultipartUpload][9] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html + # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Example: To list in-progress multipart uploads on a bucket + # + # # The following example lists in-progress multipart uploads on a specific bucket. + # + # resp = client.list_multipart_uploads({ + # bucket: "examplebucket", + # }) + # + # resp.to_h outputs the following: + # { + # uploads: [ + # { + # initiated: Time.parse("2014-05-01T05:40:58.000Z"), + # initiator: { + # display_name: "display-name", + # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", + # }, + # key: "JavaFile", + # owner: { + # display_name: "display-name", + # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", + # }, + # storage_class: "STANDARD", + # upload_id: "examplelUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--", + # }, + # { + # initiated: Time.parse("2014-05-01T05:41:27.000Z"), + # initiator: { + # display_name: "display-name", + # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", + # }, + # key: "JavaFile", + # owner: { + # display_name: "display-name", + # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", + # }, + # storage_class: "STANDARD", + # upload_id: "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--", + # }, + # ], + # } + # @example Example: List next set of multipart uploads when previous result is truncated + # + # # The following example specifies the upload-id-marker and key-marker from previous truncated response to retrieve next + # # setup of multipart uploads. + # + # resp = client.list_multipart_uploads({ + # bucket: "examplebucket", + # key_marker: "nextkeyfrompreviousresponse", + # max_uploads: 2, + # upload_id_marker: "valuefrompreviousresponse", + # }) + # + # resp.to_h outputs the following: + # { + # bucket: "acl1", + # is_truncated: true, + # key_marker: "", + # max_uploads: 2, + # next_key_marker: "someobjectkey", + # next_upload_id_marker: "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--", + # upload_id_marker: "", + # uploads: [ + # { + # initiated: Time.parse("2014-05-01T05:40:58.000Z"), + # initiator: { + # display_name: "ownder-display-name", + # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", + # }, + # key: "JavaFile", + # owner: { + # display_name: "mohanataws", + # id: "852b113e7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", + # }, + # storage_class: "STANDARD", + # upload_id: "gZ30jIqlUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--", + # }, + # { + # initiated: Time.parse("2014-05-01T05:41:27.000Z"), + # initiator: { + # display_name: "ownder-display-name", + # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", + # }, + # key: "JavaFile", + # owner: { + # display_name: "ownder-display-name", + # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", + # }, + # storage_class: "STANDARD", + # upload_id: "b7tZSqIlo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--", + # }, + # ], + # } + # @example Request syntax with placeholder values + # + # resp = client.list_multipart_uploads({ + # bucket: "BucketName", # required + # delimiter: "Delimiter", + # encoding_type: "url", # accepts url + # key_marker: "KeyMarker", + # max_uploads: 1, + # prefix: "Prefix", + # upload_id_marker: "UploadIdMarker", + # expected_bucket_owner: "AccountId", + # request_payer: "requester", # accepts requester + # }) + # @example Response structure + # + # resp.bucket #=> String + # resp.key_marker #=> String + # resp.upload_id_marker #=> String + # resp.next_key_marker #=> String + # resp.prefix #=> String + # resp.delimiter #=> String + # resp.next_upload_id_marker #=> String + # resp.max_uploads #=> Integer + # resp.is_truncated #=> Boolean + # resp.uploads #=> Array + # resp.uploads[0].upload_id #=> String + # resp.uploads[0].key #=> String + # resp.uploads[0].initiated #=> Time + # resp.uploads[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE" + # resp.uploads[0].owner.display_name #=> String + # resp.uploads[0].owner.id #=> String + # resp.uploads[0].initiator.id #=> String + # resp.uploads[0].initiator.display_name #=> String + # resp.uploads[0].checksum_algorithm #=> String, one of "CRC32", "CRC32C", "SHA1", "SHA256" + # resp.common_prefixes #=> Array + # resp.common_prefixes[0].prefix #=> String + # resp.encoding_type #=> String, one of "url" + # resp.request_charged #=> String, one of "requester" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload list_multipart_uploads + # @param params [Hash] ({}) + # @return [Types::ListMultipartUploadsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListMultipartUploadsOutput#bucket #bucket} => String + # * {Types::ListMultipartUploadsOutput#key_marker #key_marker} => String + # * {Types::ListMultipartUploadsOutput#upload_id_marker #upload_id_marker} => String + # * {Types::ListMultipartUploadsOutput#next_key_marker #next_key_marker} => String + # * {Types::ListMultipartUploadsOutput#prefix #prefix} => String + # * {Types::ListMultipartUploadsOutput#delimiter #delimiter} => String + # * {Types::ListMultipartUploadsOutput#next_upload_id_marker #next_upload_id_marker} => String + # * {Types::ListMultipartUploadsOutput#max_uploads #max_uploads} => Integer + # * {Types::ListMultipartUploadsOutput#is_truncated #is_truncated} => Boolean + # * {Types::ListMultipartUploadsOutput#uploads #uploads} => Array<Types::MultipartUpload> + # * {Types::ListMultipartUploadsOutput#common_prefixes #common_prefixes} => Array<Types::CommonPrefix> + # * {Types::ListMultipartUploadsOutput#encoding_type #encoding_type} => String + # * {Types::ListMultipartUploadsOutput#request_charged #request_charged} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListMultipartUploads AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#11242 + def list_multipart_uploads(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Returns metadata about all versions of the objects in a bucket. You + # can also use request parameters as selection criteria to return + # metadata about a subset of all the object versions. + # + # To use this operation, you must have permission to perform the + # `s3:ListBucketVersions` action. Be aware of the name difference. + # + # A `200 OK` response can contain valid or invalid XML. Make sure to + # design your application to parse the contents of the response and + # handle it appropriately. + # + # + # + # To use this operation, you must have READ access to the bucket. + # + # The following operations are related to `ListObjectVersions`: + # + # * [ListObjectsV2][1] + # + # * [GetObject][2] + # + # * [PutObject][3] + # + # * [DeleteObject][4] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Example: To list object versions + # + # # The following example returns versions of an object with specific key name prefix. + # + # resp = client.list_object_versions({ + # bucket: "examplebucket", + # prefix: "HappyFace.jpg", + # }) + # + # resp.to_h outputs the following: + # { + # versions: [ + # { + # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"", + # is_latest: true, + # key: "HappyFace.jpg", + # last_modified: Time.parse("2016-12-15T01:19:41.000Z"), + # owner: { + # display_name: "owner-display-name", + # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", + # }, + # size: 3191, + # storage_class: "STANDARD", + # version_id: "null", + # }, + # { + # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"", + # is_latest: false, + # key: "HappyFace.jpg", + # last_modified: Time.parse("2016-12-13T00:58:26.000Z"), + # owner: { + # display_name: "owner-display-name", + # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", + # }, + # size: 3191, + # storage_class: "STANDARD", + # version_id: "PHtexPGjH2y.zBgT8LmB7wwLI2mpbz.k", + # }, + # ], + # } + # @example Request syntax with placeholder values + # + # resp = client.list_object_versions({ + # bucket: "BucketName", # required + # delimiter: "Delimiter", + # encoding_type: "url", # accepts url + # key_marker: "KeyMarker", + # max_keys: 1, + # prefix: "Prefix", + # version_id_marker: "VersionIdMarker", + # expected_bucket_owner: "AccountId", + # request_payer: "requester", # accepts requester + # optional_object_attributes: ["RestoreStatus"], # accepts RestoreStatus + # }) + # @example Response structure + # + # resp.is_truncated #=> Boolean + # resp.key_marker #=> String + # resp.version_id_marker #=> String + # resp.next_key_marker #=> String + # resp.next_version_id_marker #=> String + # resp.versions #=> Array + # resp.versions[0].etag #=> String + # resp.versions[0].checksum_algorithm #=> Array + # resp.versions[0].checksum_algorithm[0] #=> String, one of "CRC32", "CRC32C", "SHA1", "SHA256" + # resp.versions[0].size #=> Integer + # resp.versions[0].storage_class #=> String, one of "STANDARD" + # resp.versions[0].key #=> String + # resp.versions[0].version_id #=> String + # resp.versions[0].is_latest #=> Boolean + # resp.versions[0].last_modified #=> Time + # resp.versions[0].owner.display_name #=> String + # resp.versions[0].owner.id #=> String + # resp.versions[0].restore_status.is_restore_in_progress #=> Boolean + # resp.versions[0].restore_status.restore_expiry_date #=> Time + # resp.delete_markers #=> Array + # resp.delete_markers[0].owner.display_name #=> String + # resp.delete_markers[0].owner.id #=> String + # resp.delete_markers[0].key #=> String + # resp.delete_markers[0].version_id #=> String + # resp.delete_markers[0].is_latest #=> Boolean + # resp.delete_markers[0].last_modified #=> Time + # resp.name #=> String + # resp.prefix #=> String + # resp.delimiter #=> String + # resp.max_keys #=> Integer + # resp.common_prefixes #=> Array + # resp.common_prefixes[0].prefix #=> String + # resp.encoding_type #=> String, one of "url" + # resp.request_charged #=> String, one of "requester" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload list_object_versions + # @param params [Hash] ({}) + # @return [Types::ListObjectVersionsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListObjectVersionsOutput#is_truncated #is_truncated} => Boolean + # * {Types::ListObjectVersionsOutput#key_marker #key_marker} => String + # * {Types::ListObjectVersionsOutput#version_id_marker #version_id_marker} => String + # * {Types::ListObjectVersionsOutput#next_key_marker #next_key_marker} => String + # * {Types::ListObjectVersionsOutput#next_version_id_marker #next_version_id_marker} => String + # * {Types::ListObjectVersionsOutput#versions #versions} => Array<Types::ObjectVersion> + # * {Types::ListObjectVersionsOutput#delete_markers #delete_markers} => Array<Types::DeleteMarkerEntry> + # * {Types::ListObjectVersionsOutput#name #name} => String + # * {Types::ListObjectVersionsOutput#prefix #prefix} => String + # * {Types::ListObjectVersionsOutput#delimiter #delimiter} => String + # * {Types::ListObjectVersionsOutput#max_keys #max_keys} => Integer + # * {Types::ListObjectVersionsOutput#common_prefixes #common_prefixes} => Array<Types::CommonPrefix> + # * {Types::ListObjectVersionsOutput#encoding_type #encoding_type} => String + # * {Types::ListObjectVersionsOutput#request_charged #request_charged} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectVersions AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#11481 + def list_object_versions(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Returns some or all (up to 1,000) of the objects in a bucket. You can + # use the request parameters as selection criteria to return a subset of + # the objects in a bucket. A 200 OK response can contain valid or + # invalid XML. Be sure to design your application to parse the contents + # of the response and handle it appropriately. + # + # This action has been revised. We recommend that you use the newer + # version, [ListObjectsV2][1], when developing applications. For + # backward compatibility, Amazon S3 continues to support `ListObjects`. + # + # The following operations are related to `ListObjects`: + # + # * [ListObjectsV2][1] + # + # * [GetObject][2] + # + # * [PutObject][3] + # + # * [CreateBucket][4] + # + # * [ListBuckets][5] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Example: To list objects in a bucket + # + # # The following example list two objects in a bucket. + # + # resp = client.list_objects({ + # bucket: "examplebucket", + # max_keys: 2, + # }) + # + # resp.to_h outputs the following: + # { + # contents: [ + # { + # etag: "\"70ee1738b6b21e2c8a43f3a5ab0eee71\"", + # key: "example1.jpg", + # last_modified: Time.parse("2014-11-21T19:40:05.000Z"), + # owner: { + # display_name: "myname", + # id: "12345example25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", + # }, + # size: 11, + # storage_class: "STANDARD", + # }, + # { + # etag: "\"9c8af9a76df052144598c115ef33e511\"", + # key: "example2.jpg", + # last_modified: Time.parse("2013-11-15T01:10:49.000Z"), + # owner: { + # display_name: "myname", + # id: "12345example25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", + # }, + # size: 713193, + # storage_class: "STANDARD", + # }, + # ], + # next_marker: "eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAyfQ==", + # } + # @example Request syntax with placeholder values + # + # resp = client.list_objects({ + # bucket: "BucketName", # required + # delimiter: "Delimiter", + # encoding_type: "url", # accepts url + # marker: "Marker", + # max_keys: 1, + # prefix: "Prefix", + # request_payer: "requester", # accepts requester + # expected_bucket_owner: "AccountId", + # optional_object_attributes: ["RestoreStatus"], # accepts RestoreStatus + # }) + # @example Response structure + # + # resp.is_truncated #=> Boolean + # resp.marker #=> String + # resp.next_marker #=> String + # resp.contents #=> Array + # resp.contents[0].key #=> String + # resp.contents[0].last_modified #=> Time + # resp.contents[0].etag #=> String + # resp.contents[0].checksum_algorithm #=> Array + # resp.contents[0].checksum_algorithm[0] #=> String, one of "CRC32", "CRC32C", "SHA1", "SHA256" + # resp.contents[0].size #=> Integer + # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE" + # resp.contents[0].owner.display_name #=> String + # resp.contents[0].owner.id #=> String + # resp.contents[0].restore_status.is_restore_in_progress #=> Boolean + # resp.contents[0].restore_status.restore_expiry_date #=> Time + # resp.name #=> String + # resp.prefix #=> String + # resp.delimiter #=> String + # resp.max_keys #=> Integer + # resp.common_prefixes #=> Array + # resp.common_prefixes[0].prefix #=> String + # resp.encoding_type #=> String, one of "url" + # resp.request_charged #=> String, one of "requester" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload list_objects + # @param params [Hash] ({}) + # @return [Types::ListObjectsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListObjectsOutput#is_truncated #is_truncated} => Boolean + # * {Types::ListObjectsOutput#marker #marker} => String + # * {Types::ListObjectsOutput#next_marker #next_marker} => String + # * {Types::ListObjectsOutput#contents #contents} => Array<Types::Object> + # * {Types::ListObjectsOutput#name #name} => String + # * {Types::ListObjectsOutput#prefix #prefix} => String + # * {Types::ListObjectsOutput#delimiter #delimiter} => String + # * {Types::ListObjectsOutput#max_keys #max_keys} => Integer + # * {Types::ListObjectsOutput#common_prefixes #common_prefixes} => Array<Types::CommonPrefix> + # * {Types::ListObjectsOutput#encoding_type #encoding_type} => String + # * {Types::ListObjectsOutput#request_charged #request_charged} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjects AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#11715 + def list_objects(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Returns some or all (up to 1,000) of the objects in a bucket with each + # request. You can use the request parameters as selection criteria to + # return a subset of the objects in a bucket. A `200 OK` response can + # contain valid or invalid XML. Make sure to design your application to + # parse the contents of the response and handle it appropriately. For + # more information about listing objects, see [Listing object keys + # programmatically][1] in the *Amazon S3 User Guide*. To get a list of + # your buckets, see [ListBuckets][2]. + # + # * **General purpose bucket** - For general purpose buckets, + # `ListObjectsV2` doesn't return prefixes that are related only to + # in-progress multipart uploads. + # + # * **Directory buckets** - For directory buckets, `ListObjectsV2` + # response includes the prefixes that are related only to in-progress + # multipart uploads. + # + # * **Directory buckets** - For directory buckets, you must make + # requests for this API operation to the Zonal endpoint. These + # endpoints support virtual-hosted-style requests in the format + # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name + # `. Path-style requests are not supported. For more information, see + # [Regional and Zonal endpoints][3] in the *Amazon S3 User Guide*. + # + # + # + # Permissions + # : * **General purpose bucket permissions** - To use this operation, + # you must have READ access to the bucket. You must have permission + # to perform the `s3:ListBucket` action. The 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][4] and [Managing Access Permissions + # to Your Amazon S3 Resources][5] in the *Amazon S3 User Guide*. + # + # * **Directory bucket permissions** - To grant access to this API + # operation on a directory bucket, we recommend that you use the [ + # `CreateSession` ][6] API operation for session-based + # authorization. Specifically, you grant the + # `s3express:CreateSession` permission to the directory bucket in a + # bucket policy or an IAM identity-based policy. Then, you make the + # `CreateSession` API call on the bucket to obtain a session token. + # With the session token in your request header, you can make API + # requests to this operation. After the session token expires, you + # make another `CreateSession` API call to generate a new session + # token for use. Amazon Web Services CLI or SDKs create session and + # refresh the session token automatically to avoid service + # interruptions when a session expires. For more information about + # authorization, see [ `CreateSession` ][6]. + # + # Sorting order of returned objects + # : * **General purpose bucket** - For general purpose buckets, + # `ListObjectsV2` returns objects in lexicographical order based on + # their key names. + # + # * **Directory bucket** - For directory buckets, `ListObjectsV2` does + # not return objects in lexicographical order. + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is ` + # Bucket_name.s3express-az_id.region.amazonaws.com`. + # + # This section describes the latest revision of this action. We + # recommend that you use this revised API operation for application + # development. For backward compatibility, Amazon S3 continues to + # support the prior version of this API operation, [ListObjects][7]. + # + # The following operations are related to `ListObjectsV2`: + # + # * [GetObject][8] + # + # * [PutObject][9] + # + # * [CreateBucket][10] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ListingKeysUsingAPIs.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html + # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html + # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Example: To get object list + # + # # The following example retrieves object list. The request specifies max keys to limit response to include only 2 object + # # keys. + # + # resp = client.list_objects_v2({ + # bucket: "DOC-EXAMPLE-BUCKET", + # max_keys: 2, + # }) + # + # resp.to_h outputs the following: + # { + # contents: [ + # { + # etag: "\"70ee1738b6b21e2c8a43f3a5ab0eee71\"", + # key: "happyface.jpg", + # last_modified: Time.parse("2014-11-21T19:40:05.000Z"), + # size: 11, + # storage_class: "STANDARD", + # }, + # { + # etag: "\"becf17f89c30367a9a44495d62ed521a-1\"", + # key: "test.jpg", + # last_modified: Time.parse("2014-05-02T04:51:50.000Z"), + # size: 4192256, + # storage_class: "STANDARD", + # }, + # ], + # is_truncated: true, + # key_count: 2, + # max_keys: 2, + # name: "DOC-EXAMPLE-BUCKET", + # next_continuation_token: "1w41l63U0xa8q7smH50vCxyTQqdxo69O3EmK28Bi5PcROI4wI/EyIJg==", + # prefix: "", + # } + # @example Request syntax with placeholder values + # + # resp = client.list_objects_v2({ + # bucket: "BucketName", # required + # delimiter: "Delimiter", + # encoding_type: "url", # accepts url + # max_keys: 1, + # prefix: "Prefix", + # continuation_token: "Token", + # fetch_owner: false, + # start_after: "StartAfter", + # request_payer: "requester", # accepts requester + # expected_bucket_owner: "AccountId", + # optional_object_attributes: ["RestoreStatus"], # accepts RestoreStatus + # }) + # @example Response structure + # + # resp.is_truncated #=> Boolean + # resp.contents #=> Array + # resp.contents[0].key #=> String + # resp.contents[0].last_modified #=> Time + # resp.contents[0].etag #=> String + # resp.contents[0].checksum_algorithm #=> Array + # resp.contents[0].checksum_algorithm[0] #=> String, one of "CRC32", "CRC32C", "SHA1", "SHA256" + # resp.contents[0].size #=> Integer + # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE" + # resp.contents[0].owner.display_name #=> String + # resp.contents[0].owner.id #=> String + # resp.contents[0].restore_status.is_restore_in_progress #=> Boolean + # resp.contents[0].restore_status.restore_expiry_date #=> Time + # resp.name #=> String + # resp.prefix #=> String + # resp.delimiter #=> String + # resp.max_keys #=> Integer + # resp.common_prefixes #=> Array + # resp.common_prefixes[0].prefix #=> String + # resp.encoding_type #=> String, one of "url" + # resp.key_count #=> Integer + # resp.continuation_token #=> String + # resp.next_continuation_token #=> String + # resp.start_after #=> String + # resp.request_charged #=> String, one of "requester" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload list_objects_v2 + # @param params [Hash] ({}) + # @return [Types::ListObjectsV2Output] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListObjectsV2Output#is_truncated #is_truncated} => Boolean + # * {Types::ListObjectsV2Output#contents #contents} => Array<Types::Object> + # * {Types::ListObjectsV2Output#name #name} => String + # * {Types::ListObjectsV2Output#prefix #prefix} => String + # * {Types::ListObjectsV2Output#delimiter #delimiter} => String + # * {Types::ListObjectsV2Output#max_keys #max_keys} => Integer + # * {Types::ListObjectsV2Output#common_prefixes #common_prefixes} => Array<Types::CommonPrefix> + # * {Types::ListObjectsV2Output#encoding_type #encoding_type} => String + # * {Types::ListObjectsV2Output#key_count #key_count} => Integer + # * {Types::ListObjectsV2Output#continuation_token #continuation_token} => String + # * {Types::ListObjectsV2Output#next_continuation_token #next_continuation_token} => String + # * {Types::ListObjectsV2Output#start_after #start_after} => String + # * {Types::ListObjectsV2Output#request_charged #request_charged} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectsV2 AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#12055 + def list_objects_v2(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Lists the parts that have been uploaded for a specific multipart + # upload. + # + # To use this operation, you must provide the `upload ID` in the + # request. You obtain this uploadID by sending the initiate multipart + # upload request through [CreateMultipartUpload][1]. + # + # The `ListParts` request returns a maximum of 1,000 uploaded parts. The + # limit of 1,000 parts is also the default value. You can restrict the + # number of parts in a response by specifying the `max-parts` request + # parameter. If your multipart upload consists of more than 1,000 parts, + # the response returns an `IsTruncated` field with the value of `true`, + # and a `NextPartNumberMarker` element. To list remaining uploaded + # parts, in subsequent `ListParts` requests, include the + # `part-number-marker` query string parameter and set its value to the + # `NextPartNumberMarker` field value from the previous response. + # + # For more information on multipart uploads, see [Uploading Objects + # Using Multipart Upload][2] in the *Amazon S3 User Guide*. + # + # **Directory buckets** - For directory buckets, you must make requests + # for this API operation to the Zonal endpoint. These endpoints support + # virtual-hosted-style requests in the format + # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `. + # Path-style requests are not supported. For more information, see + # [Regional and Zonal endpoints][3] in the *Amazon S3 User Guide*. + # + # + # + # Permissions + # : * **General purpose bucket permissions** - For information about + # permissions required to use the multipart upload API, see + # [Multipart Upload and Permissions][4] in the *Amazon S3 User + # Guide*. + # + # If the upload was created using server-side encryption with Key + # Management Service (KMS) keys (SSE-KMS) or dual-layer server-side + # encryption with Amazon Web Services KMS keys (DSSE-KMS), you must + # have permission to the `kms:Decrypt` action for the `ListParts` + # request to succeed. + # + # * **Directory bucket permissions** - To grant access to this API + # operation on a directory bucket, we recommend that you use the [ + # `CreateSession` ][5] API operation for session-based + # authorization. Specifically, you grant the + # `s3express:CreateSession` permission to the directory bucket in a + # bucket policy or an IAM identity-based policy. Then, you make the + # `CreateSession` API call on the bucket to obtain a session token. + # With the session token in your request header, you can make API + # requests to this operation. After the session token expires, you + # make another `CreateSession` API call to generate a new session + # token for use. Amazon Web Services CLI or SDKs create session and + # refresh the session token automatically to avoid service + # interruptions when a session expires. For more information about + # authorization, see [ `CreateSession` ][5]. + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is ` + # Bucket_name.s3express-az_id.region.amazonaws.com`. + # + # The following operations are related to `ListParts`: + # + # * [CreateMultipartUpload][1] + # + # * [UploadPart][6] + # + # * [CompleteMultipartUpload][7] + # + # * [AbortMultipartUpload][8] + # + # * [GetObjectAttributes][9] + # + # * [ListMultipartUploads][10] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html + # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html + # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Example: To list parts of a multipart upload. + # + # # The following example lists parts uploaded for a specific multipart upload. + # + # resp = client.list_parts({ + # bucket: "examplebucket", + # key: "bigobject", + # upload_id: "example7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--", + # }) + # + # resp.to_h outputs the following: + # { + # initiator: { + # display_name: "owner-display-name", + # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", + # }, + # owner: { + # display_name: "owner-display-name", + # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", + # }, + # parts: [ + # { + # etag: "\"d8c2eafd90c266e19ab9dcacc479f8af\"", + # last_modified: Time.parse("2016-12-16T00:11:42.000Z"), + # part_number: 1, + # size: 26246026, + # }, + # { + # etag: "\"d8c2eafd90c266e19ab9dcacc479f8af\"", + # last_modified: Time.parse("2016-12-16T00:15:01.000Z"), + # part_number: 2, + # size: 26246026, + # }, + # ], + # storage_class: "STANDARD", + # } + # @example Request syntax with placeholder values + # + # resp = client.list_parts({ + # bucket: "BucketName", # required + # key: "ObjectKey", # required + # max_parts: 1, + # part_number_marker: 1, + # upload_id: "MultipartUploadId", # required + # request_payer: "requester", # accepts requester + # expected_bucket_owner: "AccountId", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # }) + # @example Response structure + # + # resp.abort_date #=> Time + # resp.abort_rule_id #=> String + # resp.bucket #=> String + # resp.key #=> String + # resp.upload_id #=> String + # resp.part_number_marker #=> Integer + # resp.next_part_number_marker #=> Integer + # resp.max_parts #=> Integer + # resp.is_truncated #=> Boolean + # resp.parts #=> Array + # resp.parts[0].part_number #=> Integer + # resp.parts[0].last_modified #=> Time + # resp.parts[0].etag #=> String + # resp.parts[0].size #=> Integer + # resp.parts[0].checksum_crc32 #=> String + # resp.parts[0].checksum_crc32c #=> String + # resp.parts[0].checksum_sha1 #=> String + # resp.parts[0].checksum_sha256 #=> String + # resp.initiator.id #=> String + # resp.initiator.display_name #=> String + # resp.owner.display_name #=> String + # resp.owner.id #=> String + # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE" + # resp.request_charged #=> String, one of "requester" + # resp.checksum_algorithm #=> String, one of "CRC32", "CRC32C", "SHA1", "SHA256" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload list_parts + # @param params [Hash] ({}) + # @return [Types::ListPartsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListPartsOutput#abort_date #abort_date} => Time + # * {Types::ListPartsOutput#abort_rule_id #abort_rule_id} => String + # * {Types::ListPartsOutput#bucket #bucket} => String + # * {Types::ListPartsOutput#key #key} => String + # * {Types::ListPartsOutput#upload_id #upload_id} => String + # * {Types::ListPartsOutput#part_number_marker #part_number_marker} => Integer + # * {Types::ListPartsOutput#next_part_number_marker #next_part_number_marker} => Integer + # * {Types::ListPartsOutput#max_parts #max_parts} => Integer + # * {Types::ListPartsOutput#is_truncated #is_truncated} => Boolean + # * {Types::ListPartsOutput#parts #parts} => Array<Types::Part> + # * {Types::ListPartsOutput#initiator #initiator} => Types::Initiator + # * {Types::ListPartsOutput#owner #owner} => Types::Owner + # * {Types::ListPartsOutput#storage_class #storage_class} => String + # * {Types::ListPartsOutput#request_charged #request_charged} => String + # * {Types::ListPartsOutput#checksum_algorithm #checksum_algorithm} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListParts AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#12375 + def list_parts(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Sets the accelerate configuration of an existing bucket. Amazon S3 + # Transfer Acceleration is a bucket-level feature that enables you to + # perform faster data transfers to Amazon S3. + # + # To use this operation, you must have permission to perform the + # `s3:PutAccelerateConfiguration` action. The 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][1] and [Managing Access + # Permissions to Your Amazon S3 Resources][2]. + # + # The Transfer Acceleration state of a bucket can be set to one of the + # following two values: + # + # * Enabled – Enables accelerated data transfers to the bucket. + # + # * Suspended – Disables accelerated data transfers to the bucket. + # + # The [GetBucketAccelerateConfiguration][3] action returns the transfer + # acceleration state of a bucket. + # + # After setting the Transfer Acceleration state of a bucket to Enabled, + # it might take up to thirty minutes before the data transfer rates to + # the bucket increase. + # + # The name of the bucket used for Transfer Acceleration must be + # DNS-compliant and must not contain periods ("."). + # + # For more information about transfer acceleration, see [Transfer + # Acceleration][4]. + # + # The following operations are related to + # `PutBucketAccelerateConfiguration`: + # + # * [GetBucketAccelerateConfiguration][3] + # + # * [CreateBucket][5] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html + # + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_accelerate_configuration({ + # bucket: "BucketName", # required + # accelerate_configuration: { # required + # status: "Enabled", # accepts Enabled, Suspended + # }, + # expected_bucket_owner: "AccountId", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # }) + # @option params + # @option params + # @option params + # @option params + # @overload put_bucket_accelerate_configuration + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAccelerateConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#12474 + def put_bucket_accelerate_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Sets the permissions on an existing bucket using access control lists + # (ACL). For more information, see [Using ACLs][1]. To set the ACL of a + # bucket, you must have the `WRITE_ACP` permission. + # + # You can use one of the following two ways to set a bucket's + # permissions: + # + # * Specify the ACL in the request body + # + # * Specify permissions using request headers + # + # You cannot specify access permission using both the body and the + # request headers. + # + # + # + # Depending on your application needs, you may choose to set the ACL on + # a bucket using either the request body or the headers. For example, if + # you have an existing application that updates a bucket ACL using the + # request body, then you can continue to use that approach. + # + # If your bucket uses the bucket owner enforced setting for S3 Object + # Ownership, ACLs are disabled and no longer affect permissions. You + # must use policies to grant access to your bucket and the objects in + # it. Requests to set ACLs or update ACLs fail and return the + # `AccessControlListNotSupported` error code. Requests to read ACLs are + # still supported. For more information, see [Controlling object + # ownership][2] in the *Amazon S3 User Guide*. + # + # Permissions + # + # : You can set access permissions by using one of the following + # methods: + # + # * Specify a canned ACL with the `x-amz-acl` request header. Amazon + # S3 supports a set of predefined ACLs, known as *canned ACLs*. Each + # canned ACL has a predefined set of grantees and permissions. + # Specify the canned ACL name as the value of `x-amz-acl`. If you + # use this header, you cannot use other access control-specific + # headers in your request. For more information, see [Canned + # ACL][3]. + # + # * Specify access permissions explicitly with the `x-amz-grant-read`, + # `x-amz-grant-read-acp`, `x-amz-grant-write-acp`, and + # `x-amz-grant-full-control` headers. When using these headers, you + # specify explicit access permissions and grantees (Amazon Web + # Services accounts or Amazon S3 groups) who will receive the + # permission. If you use these ACL-specific headers, you cannot use + # the `x-amz-acl` header to set a canned ACL. These parameters map + # to the set of permissions that Amazon S3 supports in an ACL. For + # more information, see [Access Control List (ACL) Overview][4]. + # + # You specify each grantee as a type=value pair, where the type is + # one of the following: + # + # * `id` – if the value specified is the canonical user ID of an + # Amazon Web Services account + # + # * `uri` – if you are granting permissions to a predefined group + # + # * `emailAddress` – if the value specified is the email address of + # an Amazon Web Services account + # + # Using email addresses to specify a grantee is only supported in + # the following Amazon Web Services Regions: + # + # * US East (N. Virginia) + # + # * US West (N. California) + # + # * US West (Oregon) + # + # * Asia Pacific (Singapore) + # + # * Asia Pacific (Sydney) + # + # * Asia Pacific (Tokyo) + # + # * Europe (Ireland) + # + # * South America (São Paulo) + # + # For a list of all the Amazon S3 supported Regions and endpoints, + # see [Regions and Endpoints][5] in the Amazon Web Services + # General Reference. + # + # + # + # For example, the following `x-amz-grant-write` header grants + # create, overwrite, and delete objects permission to LogDelivery + # group predefined by Amazon S3 and two Amazon Web Services accounts + # identified by their email addresses. + # + # `x-amz-grant-write: + # uri="http://acs.amazonaws.com/groups/s3/LogDelivery", + # id="111122223333", id="555566667777" ` + # + # You can use either a canned ACL or specify access permissions + # explicitly. You cannot do both. + # + # Grantee Values + # + # : You can specify the person (grantee) to whom you're assigning + # access rights (using request elements) in the following ways: + # + # * By the person's ID: + # + # `<>ID<><>GranteesEmail<> + # ` + # + # DisplayName is optional and ignored in the request + # + # * By URI: + # + # `<>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>` + # + # * By Email address: + # + # `<>Grantees@email.com<>&` + # + # The grantee is resolved to the CanonicalUser and, in a response to + # a GET Object acl request, appears as the CanonicalUser. + # + # Using email addresses to specify a grantee is only supported in + # the following Amazon Web Services Regions: + # + # * US East (N. Virginia) + # + # * US West (N. California) + # + # * US West (Oregon) + # + # * Asia Pacific (Singapore) + # + # * Asia Pacific (Sydney) + # + # * Asia Pacific (Tokyo) + # + # * Europe (Ireland) + # + # * South America (São Paulo) + # + # For a list of all the Amazon S3 supported Regions and endpoints, + # see [Regions and Endpoints][5] in the Amazon Web Services General + # Reference. + # + # + # + # The following operations are related to `PutBucketAcl`: + # + # * [CreateBucket][6] + # + # * [DeleteBucket][7] + # + # * [GetObjectAcl][8] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html + # [5]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html + # + # @example Example: Put bucket acl + # + # # The following example replaces existing ACL on a bucket. The ACL grants the bucket owner (specified using the owner ID) + # # and write permission to the LogDelivery group. Because this is a replace operation, you must specify all the grants in + # # your request. To incrementally add or remove ACL grants, you might use the console. + # + # resp = client.put_bucket_acl({ + # bucket: "examplebucket", + # grant_full_control: "id=examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484", + # grant_write: "uri=http://acs.amazonaws.com/groups/s3/LogDelivery", + # }) + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_acl({ + # acl: "private", # accepts private, public-read, public-read-write, authenticated-read + # access_control_policy: { + # grants: [ + # { + # grantee: { + # display_name: "DisplayName", + # email_address: "EmailAddress", + # id: "ID", + # type: "CanonicalUser", # required, accepts CanonicalUser, AmazonCustomerByEmail, Group + # uri: "URI", + # }, + # permission: "FULL_CONTROL", # accepts FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP + # }, + # ], + # owner: { + # display_name: "DisplayName", + # id: "ID", + # }, + # }, + # bucket: "BucketName", # required + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # grant_full_control: "GrantFullControl", + # grant_read: "GrantRead", + # grant_read_acp: "GrantReadACP", + # grant_write: "GrantWrite", + # grant_write_acp: "GrantWriteACP", + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_bucket_acl + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAcl AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#12768 + def put_bucket_acl(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Sets an analytics configuration for the bucket (specified by the + # analytics configuration ID). You can have up to 1,000 analytics + # configurations per bucket. + # + # You can choose to have storage class analysis export analysis reports + # sent to a comma-separated values (CSV) flat file. See the `DataExport` + # request element. Reports are updated daily and are based on the object + # filters that you configure. When selecting data export, you specify a + # destination bucket and an optional destination prefix where the file + # is written. You can export the data to a destination bucket in a + # different account. However, the destination bucket must be in the same + # Region as the bucket that you are making the PUT analytics + # configuration to. For more information, see [Amazon S3 Analytics – + # Storage Class Analysis][1]. + # + # You must create a bucket policy on the destination bucket where the + # exported file is written to grant permissions to Amazon S3 to write + # objects to the bucket. For an example policy, see [Granting + # Permissions for Amazon S3 Inventory and Storage Class Analysis][2]. + # + # To use this operation, you must have permissions to perform the + # `s3:PutAnalyticsConfiguration` action. The 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][3] and [Managing Access + # Permissions to Your Amazon S3 Resources][4]. + # + # `PutBucketAnalyticsConfiguration` has the following special errors: + # + # * * *HTTP Error: HTTP 400 Bad Request* + # + # * *Code: InvalidArgument* + # + # * *Cause: Invalid argument.* + # + # * * *HTTP Error: HTTP 400 Bad Request* + # + # * *Code: TooManyConfigurations* + # + # * *Cause: You are attempting to create a new configuration but have + # already reached the 1,000-configuration limit.* + # + # * * *HTTP Error: HTTP 403 Forbidden* + # + # * *Code: AccessDenied* + # + # * *Cause: You are not the owner of the specified bucket, or you do + # not have the s3:PutAnalyticsConfiguration bucket permission to set + # the configuration on the bucket.* + # + # The following operations are related to + # `PutBucketAnalyticsConfiguration`: + # + # * [GetBucketAnalyticsConfiguration][5] + # + # * [DeleteBucketAnalyticsConfiguration][6] + # + # * [ListBucketAnalyticsConfigurations][7] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9 + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html + # + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_analytics_configuration({ + # bucket: "BucketName", # required + # id: "AnalyticsId", # required + # analytics_configuration: { # required + # id: "AnalyticsId", # required + # filter: { + # prefix: "Prefix", + # tag: { + # key: "ObjectKey", # required + # value: "Value", # required + # }, + # and: { + # prefix: "Prefix", + # tags: [ + # { + # key: "ObjectKey", # required + # value: "Value", # required + # }, + # ], + # }, + # }, + # storage_class_analysis: { # required + # data_export: { + # output_schema_version: "V_1", # required, accepts V_1 + # destination: { # required + # s3_bucket_destination: { # required + # format: "CSV", # required, accepts CSV + # bucket_account_id: "AccountId", + # bucket: "BucketName", # required + # prefix: "Prefix", + # }, + # }, + # }, + # }, + # }, + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @option params + # @option params + # @overload put_bucket_analytics_configuration + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAnalyticsConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#12906 + def put_bucket_analytics_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Sets the `cors` configuration for your bucket. If the configuration + # exists, Amazon S3 replaces it. + # + # To use this operation, you must be allowed to perform the + # `s3:PutBucketCORS` action. By default, the bucket owner has this + # permission and can grant it to others. + # + # You set this configuration on a bucket so that the bucket can service + # cross-origin requests. For example, you might want to enable a request + # whose origin is `http://www.example.com` to access your Amazon S3 + # bucket at `my.example.bucket.com` by using the browser's + # `XMLHttpRequest` capability. + # + # To enable cross-origin resource sharing (CORS) on a bucket, you add + # the `cors` subresource to the bucket. The `cors` subresource is an XML + # document in which you configure rules that identify origins and the + # HTTP methods that can be executed on your bucket. The document is + # limited to 64 KB in size. + # + # When Amazon S3 receives a cross-origin request (or a pre-flight + # OPTIONS request) against a bucket, it evaluates the `cors` + # configuration on the bucket and uses the first `CORSRule` rule that + # matches the incoming browser request to enable a cross-origin request. + # For a rule to match, the following conditions must be met: + # + # * The request's `Origin` header must match `AllowedOrigin` elements. + # + # * The request method (for example, GET, PUT, HEAD, and so on) or the + # `Access-Control-Request-Method` header in case of a pre-flight + # `OPTIONS` request must be one of the `AllowedMethod` elements. + # + # * Every header specified in the `Access-Control-Request-Headers` + # request header of a pre-flight request must match an `AllowedHeader` + # element. + # + # For more information about CORS, go to [Enabling Cross-Origin Resource + # Sharing][1] in the *Amazon S3 User Guide*. + # + # The following operations are related to `PutBucketCors`: + # + # * [GetBucketCors][2] + # + # * [DeleteBucketCors][3] + # + # * [RESTOPTIONSobject][4] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html + # + # @example Example: To set cors configuration on a bucket. + # + # # The following example enables PUT, POST, and DELETE requests from www.example.com, and enables GET requests from any + # # domain. + # + # resp = client.put_bucket_cors({ + # bucket: "", + # cors_configuration: { + # cors_rules: [ + # { + # allowed_headers: [ + # "*", + # ], + # allowed_methods: [ + # "PUT", + # "POST", + # "DELETE", + # ], + # allowed_origins: [ + # "http://www.example.com", + # ], + # expose_headers: [ + # "x-amz-server-side-encryption", + # ], + # max_age_seconds: 3000, + # }, + # { + # allowed_headers: [ + # "Authorization", + # ], + # allowed_methods: [ + # "GET", + # ], + # allowed_origins: [ + # "*", + # ], + # max_age_seconds: 3000, + # }, + # ], + # }, + # content_md5: "", + # }) + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_cors({ + # bucket: "BucketName", # required + # cors_configuration: { # required + # cors_rules: [ # required + # { + # id: "ID", + # allowed_headers: ["AllowedHeader"], + # allowed_methods: ["AllowedMethod"], # required + # allowed_origins: ["AllowedOrigin"], # required + # expose_headers: ["ExposeHeader"], + # max_age_seconds: 1, + # }, + # ], + # }, + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_bucket_cors + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketCors AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#13085 + def put_bucket_cors(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation configures default encryption and Amazon S3 Bucket Keys + # for an existing bucket. + # + # Directory buckets - For directory buckets, you must make + # requests for this API operation to the Regional endpoint. These + # endpoints support path-style requests in the format + # `https://s3express-control.region_code.amazonaws.com/bucket-name `. + # Virtual-hosted-style requests aren't supported. For more information, + # see [Regional and Zonal endpoints][1] in the *Amazon S3 User Guide*. + # + # + # + # By default, all buckets have a default encryption configuration that + # uses server-side encryption with Amazon S3 managed keys (SSE-S3). + # + # * **General purpose buckets** + # + # * You can optionally configure default encryption for a bucket by + # using server-side encryption with Key Management Service (KMS) + # keys (SSE-KMS) or dual-layer server-side encryption with Amazon + # Web Services KMS keys (DSSE-KMS). If you specify default + # encryption by using SSE-KMS, you can also configure [Amazon S3 + # Bucket Keys][2]. For information about the bucket default + # encryption feature, see [Amazon S3 Bucket Default Encryption][3] + # in the *Amazon S3 User Guide*. + # + # * If you use PutBucketEncryption to set your [default bucket + # encryption][3] to SSE-KMS, you should verify that your KMS key ID + # is correct. Amazon S3 doesn't validate the KMS key ID provided in + # PutBucketEncryption requests. + # + # * Directory buckets - You can optionally configure default + # encryption for a bucket by using server-side encryption with Key + # Management Service (KMS) keys (SSE-KMS). + # + # * We recommend that the bucket's default encryption uses the + # desired encryption configuration and you don't override the + # bucket default encryption in your `CreateSession` requests or + # `PUT` object requests. Then, new objects are automatically + # encrypted with the desired encryption settings. For more + # information about the encryption overriding behaviors in directory + # buckets, see [Specifying server-side encryption with KMS for new + # object uploads][4]. + # + # * Your SSE-KMS configuration can only support 1 [customer managed + # key][5] per directory bucket for the lifetime of the bucket. + # [Amazon Web Services managed key][6] (`aws/s3`) isn't supported. + # + # * S3 Bucket Keys are always enabled for `GET` and `PUT` operations + # in a directory bucket and can’t be disabled. S3 Bucket Keys + # aren't supported, when you copy SSE-KMS encrypted objects from + # general purpose buckets to directory buckets, from directory + # buckets to general purpose buckets, or between directory buckets, + # through [CopyObject][7], [UploadPartCopy][8], [the Copy operation + # in Batch Operations][9], or [the import jobs][10]. In this case, + # Amazon S3 makes a call to KMS every time a copy request is made + # for a KMS-encrypted object. + # + # * When you specify an [KMS customer managed key][5] for encryption + # in your directory bucket, only use the key ID or key ARN. The key + # alias format of the KMS key isn't supported. + # + # * For directory buckets, if you use PutBucketEncryption to set your + # [default bucket encryption][3] to SSE-KMS, Amazon S3 validates the + # KMS key ID provided in PutBucketEncryption requests. + # + # + # + # If you're specifying a customer managed KMS key, we recommend using a + # fully qualified KMS key ARN. If you use a KMS key alias instead, then + # KMS resolves the key within the requester’s account. This behavior can + # result in data that's encrypted with a KMS key that belongs to the + # requester, and not the bucket owner. + # + # Also, this action requires Amazon Web Services Signature Version 4. + # For more information, see [ Authenticating Requests (Amazon Web + # Services Signature Version 4)][11]. + # + # Permissions + # : * **General purpose bucket permissions** - The + # `s3:PutEncryptionConfiguration` permission is required in a + # policy. The 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 + # Operations][12] and [Managing Access Permissions to Your Amazon S3 + # Resources][13] in the *Amazon S3 User Guide*. + # + # * **Directory bucket permissions** - To grant access to this API + # operation, you must have the + # `s3express:PutEncryptionConfiguration` permission in an IAM + # identity-based policy instead of a bucket policy. Cross-account + # access to this API operation isn't supported. This operation can + # only be performed by the Amazon Web Services account that owns the + # resource. For more information about directory bucket policies and + # permissions, see [Amazon Web Services Identity and Access + # Management (IAM) for S3 Express One Zone][14] in the *Amazon S3 + # User Guide*. + # + # To set a directory bucket default encryption with SSE-KMS, you + # must also have the `kms:GenerateDataKey` and the `kms:Decrypt` + # permissions in IAM identity-based policies and KMS key policies + # for the target KMS key. + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is + # `s3express-control.region.amazonaws.com`. + # + # The following operations are related to `PutBucketEncryption`: + # + # * [GetBucketEncryption][15] + # + # * [DeleteBucketEncryption][16] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html + # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk + # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html + # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops + # [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job + # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html + # [12]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [13]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [14]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html + # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html + # [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html + # + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_encryption({ + # bucket: "BucketName", # required + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # server_side_encryption_configuration: { # required + # rules: [ # required + # { + # apply_server_side_encryption_by_default: { + # sse_algorithm: "AES256", # required, accepts AES256, aws:kms, aws:kms:dsse + # kms_master_key_id: "SSEKMSKeyId", + # }, + # bucket_key_enabled: false, + # }, + # ], + # }, + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_bucket_encryption + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketEncryption AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#13314 + def put_bucket_encryption(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Puts a S3 Intelligent-Tiering configuration to the specified bucket. + # You can have up to 1,000 S3 Intelligent-Tiering configurations per + # bucket. + # + # The S3 Intelligent-Tiering storage class is designed to optimize + # storage costs by automatically moving data to the most cost-effective + # storage access tier, without performance impact or operational + # overhead. S3 Intelligent-Tiering delivers automatic cost savings in + # three low latency and high throughput access tiers. To get the lowest + # storage cost on data that can be accessed in minutes to hours, you can + # choose to activate additional archiving capabilities. + # + # The S3 Intelligent-Tiering storage class is the ideal storage class + # for data with unknown, changing, or unpredictable access patterns, + # independent of object size or retention period. If the size of an + # object is less than 128 KB, it is not monitored and not eligible for + # auto-tiering. Smaller objects can be stored, but they are always + # charged at the Frequent Access tier rates in the S3 + # Intelligent-Tiering storage class. + # + # For more information, see [Storage class for automatically optimizing + # frequently and infrequently accessed objects][1]. + # + # Operations related to `PutBucketIntelligentTieringConfiguration` + # include: + # + # * [DeleteBucketIntelligentTieringConfiguration][2] + # + # * [GetBucketIntelligentTieringConfiguration][3] + # + # * [ListBucketIntelligentTieringConfigurations][4] + # + # You only need S3 Intelligent-Tiering enabled on a bucket if you want + # to automatically move objects stored in the S3 Intelligent-Tiering + # storage class to the Archive Access or Deep Archive Access tier. + # + # + # + # `PutBucketIntelligentTieringConfiguration` has the following special + # errors: + # + # HTTP 400 Bad Request Error + # + # : *Code:* InvalidArgument + # + # *Cause:* Invalid Argument + # + # HTTP 400 Bad Request Error + # + # : *Code:* TooManyConfigurations + # + # *Cause:* You are attempting to create a new configuration but have + # already reached the 1,000-configuration limit. + # + # HTTP 403 Forbidden Error + # + # : *Cause:* You are not the owner of the specified bucket, or you do + # not have the `s3:PutIntelligentTieringConfiguration` bucket + # permission to set the configuration on the bucket. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html + # + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_intelligent_tiering_configuration({ + # bucket: "BucketName", # required + # id: "IntelligentTieringId", # required + # intelligent_tiering_configuration: { # required + # id: "IntelligentTieringId", # required + # filter: { + # prefix: "Prefix", + # tag: { + # key: "ObjectKey", # required + # value: "Value", # required + # }, + # and: { + # prefix: "Prefix", + # tags: [ + # { + # key: "ObjectKey", # required + # value: "Value", # required + # }, + # ], + # }, + # }, + # status: "Enabled", # required, accepts Enabled, Disabled + # tierings: [ # required + # { + # days: 1, # required + # access_tier: "ARCHIVE_ACCESS", # required, accepts ARCHIVE_ACCESS, DEEP_ARCHIVE_ACCESS + # }, + # ], + # }, + # }) + # @option params + # @option params + # @option params + # @overload put_bucket_intelligent_tiering_configuration + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketIntelligentTieringConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#13439 + def put_bucket_intelligent_tiering_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # This implementation of the `PUT` action adds an inventory + # configuration (identified by the inventory ID) to the bucket. You can + # have up to 1,000 inventory configurations per bucket. + # + # Amazon S3 inventory generates inventories of the objects in the bucket + # on a daily or weekly basis, and the results are published to a flat + # file. The bucket that is inventoried is called the *source* bucket, + # and the bucket where the inventory flat file is stored is called the + # *destination* bucket. The *destination* bucket must be in the same + # Amazon Web Services Region as the *source* bucket. + # + # When you configure an inventory for a *source* bucket, you specify the + # *destination* bucket where you want the inventory to be stored, and + # whether to generate the inventory daily or weekly. You can also + # configure what object metadata to include and whether to inventory all + # object versions or only current versions. For more information, see + # [Amazon S3 Inventory][1] in the Amazon S3 User Guide. + # + # You must create a bucket policy on the *destination* bucket to grant + # permissions to Amazon S3 to write objects to the bucket in the defined + # location. For an example policy, see [ Granting Permissions for Amazon + # S3 Inventory and Storage Class Analysis][2]. + # + # Permissions + # + # : To use this operation, you must have permission to perform the + # `s3:PutInventoryConfiguration` action. The bucket owner has this + # permission by default and can grant this permission to others. + # + # The `s3:PutInventoryConfiguration` permission allows a user to + # create an [S3 Inventory][3] report that includes all object metadata + # fields available and to specify the destination bucket to store the + # inventory. A user with read access to objects in the destination + # bucket can also access all object metadata fields that are available + # in the inventory report. + # + # To restrict access to an inventory report, see [Restricting access + # to an Amazon S3 Inventory report][4] in the *Amazon S3 User Guide*. + # For more information about the metadata fields available in S3 + # Inventory, see [Amazon S3 Inventory lists][5] in the *Amazon S3 User + # Guide*. For more information about permissions, see [Permissions + # related to bucket subresource operations][6] and [Identity and + # access management in Amazon S3][7] in the *Amazon S3 User Guide*. + # + # `PutBucketInventoryConfiguration` has the following special errors: + # + # HTTP 400 Bad Request Error + # + # : *Code:* InvalidArgument + # + # *Cause:* Invalid Argument + # + # HTTP 400 Bad Request Error + # + # : *Code:* TooManyConfigurations + # + # *Cause:* You are attempting to create a new configuration but have + # already reached the 1,000-configuration limit. + # + # HTTP 403 Forbidden Error + # + # : *Cause:* You are not the owner of the specified bucket, or you do + # not have the `s3:PutInventoryConfiguration` bucket permission to set + # the configuration on the bucket. + # + # The following operations are related to + # `PutBucketInventoryConfiguration`: + # + # * [GetBucketInventoryConfiguration][8] + # + # * [DeleteBucketInventoryConfiguration][9] + # + # * [ListBucketInventoryConfigurations][10] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9 + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-inventory.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-use-case-10 + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-inventory.html#storage-inventory-contents + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html + # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html + # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html + # + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_inventory_configuration({ + # bucket: "BucketName", # required + # id: "InventoryId", # required + # inventory_configuration: { # required + # destination: { # required + # s3_bucket_destination: { # required + # account_id: "AccountId", + # bucket: "BucketName", # required + # format: "CSV", # required, accepts CSV, ORC, Parquet + # prefix: "Prefix", + # encryption: { + # sses3: { + # }, + # ssekms: { + # key_id: "SSEKMSKeyId", # required + # }, + # }, + # }, + # }, + # is_enabled: false, # required + # filter: { + # prefix: "Prefix", # required + # }, + # id: "InventoryId", # required + # included_object_versions: "All", # required, accepts All, Current + # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus, ObjectLockRetainUntilDate, ObjectLockMode, ObjectLockLegalHoldStatus, IntelligentTieringAccessTier, BucketKeyStatus, ChecksumAlgorithm, ObjectAccessControlList, ObjectOwner + # schedule: { # required + # frequency: "Daily", # required, accepts Daily, Weekly + # }, + # }, + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @option params + # @option params + # @overload put_bucket_inventory_configuration + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketInventoryConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#13591 + def put_bucket_inventory_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # For an updated version of this API, see + # [PutBucketLifecycleConfiguration][1]. This version has been + # deprecated. Existing lifecycle configurations will work. For new + # lifecycle configurations, use the updated API. + # + # Creates a new lifecycle configuration for the bucket or replaces an + # existing lifecycle configuration. For information about lifecycle + # configuration, see [Object Lifecycle Management][2] in the *Amazon S3 + # User Guide*. + # + # By default, all Amazon S3 resources, including buckets, objects, and + # related subresources (for example, lifecycle configuration and website + # configuration) are private. Only the resource owner, the Amazon Web + # Services account that created the resource, can access it. The + # resource owner can optionally grant access permissions to others by + # writing an access policy. For this operation, users must get the + # `s3:PutLifecycleConfiguration` permission. + # + # You can also explicitly deny permissions. Explicit denial also + # supersedes any other permissions. If you want to prevent users or + # accounts from removing or deleting objects from your bucket, you must + # deny them permissions for the following actions: + # + # * `s3:DeleteObject` + # + # * `s3:DeleteObjectVersion` + # + # * `s3:PutLifecycleConfiguration` + # + # For more information about permissions, see [Managing Access + # Permissions to your Amazon S3 Resources][3] in the *Amazon S3 User + # Guide*. + # + # For more examples of transitioning objects to storage classes such as + # STANDARD\_IA or ONEZONE\_IA, see [Examples of Lifecycle + # Configuration][4]. + # + # The following operations are related to `PutBucketLifecycle`: + # + # * [GetBucketLifecycle][5](Deprecated) + # + # * [GetBucketLifecycleConfiguration][6] + # + # * [RestoreObject][7] + # + # * By default, a resource owner—in this case, a bucket owner, which is + # the Amazon Web Services account that created the bucket—can perform + # any of the operations. A resource owner can also grant others + # permission to perform the operation. For more information, see the + # following topics in the Amazon S3 User Guide: + # + # * [Specifying Permissions in a Policy][8] + # + # * [Managing Access Permissions to your Amazon S3 Resources][3] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#lifecycle-configuration-examples + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html + # + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_lifecycle({ + # bucket: "BucketName", # required + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # lifecycle_configuration: { + # rules: [ # required + # { + # expiration: { + # date: Time.now, + # days: 1, + # expired_object_delete_marker: false, + # }, + # id: "ID", + # prefix: "Prefix", # required + # status: "Enabled", # required, accepts Enabled, Disabled + # transition: { + # date: Time.now, + # days: 1, + # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE, GLACIER_IR + # }, + # noncurrent_version_transition: { + # noncurrent_days: 1, + # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE, GLACIER_IR + # newer_noncurrent_versions: 1, + # }, + # noncurrent_version_expiration: { + # noncurrent_days: 1, + # newer_noncurrent_versions: 1, + # }, + # abort_incomplete_multipart_upload: { + # days_after_initiation: 1, + # }, + # }, + # ], + # }, + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_bucket_lifecycle + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycle AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#13742 + def put_bucket_lifecycle(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Creates a new lifecycle configuration for the bucket or replaces an + # existing lifecycle configuration. Keep in mind that this will + # overwrite an existing lifecycle configuration, so if you want to + # retain any configuration details, they must be included in the new + # lifecycle configuration. For information about lifecycle + # configuration, see [Managing your storage lifecycle][1]. + # + # Rules + # + # : You specify the lifecycle configuration in your request body. The + # lifecycle configuration is specified as XML consisting of one or + # more rules. An Amazon S3 Lifecycle configuration can have up to + # 1,000 rules. This limit is not adjustable. + # + # Bucket lifecycle configuration supports specifying a lifecycle rule + # using an object key name prefix, one or more object tags, object + # size, or any combination of these. Accordingly, this section + # describes the latest API. The previous version of the API supported + # filtering based only on an object key name prefix, which is + # supported for backward compatibility. For the related API + # description, see [PutBucketLifecycle][2]. + # + # A lifecycle rule consists of the following: + # + # * A filter identifying a subset of objects to which the rule + # applies. The filter can be based on a key name prefix, object + # tags, object size, or any combination of these. + # + # * A status indicating whether the rule is in effect. + # + # * One or more lifecycle transition and expiration actions that you + # want Amazon S3 to perform on the objects identified by the filter. + # If the state of your bucket is versioning-enabled or + # versioning-suspended, you can have many versions of the same + # object (one current version and zero or more noncurrent versions). + # Amazon S3 provides predefined actions that you can specify for + # current and noncurrent object versions. + # + # For more information, see [Object Lifecycle Management][3] and + # [Lifecycle Configuration Elements][4]. + # + # Permissions + # + # : By default, all Amazon S3 resources are private, including buckets, + # objects, and related subresources (for example, lifecycle + # configuration and website configuration). Only the resource owner + # (that is, the Amazon Web Services account that created it) can + # access the resource. The resource owner can optionally grant access + # permissions to others by writing an access policy. For this + # operation, a user must get the `s3:PutLifecycleConfiguration` + # permission. + # + # You can also explicitly deny permissions. An explicit deny also + # supersedes any other permissions. If you want to block users or + # accounts from removing or deleting objects from your bucket, you + # must deny them permissions for the following actions: + # + # * `s3:DeleteObject` + # + # * `s3:DeleteObjectVersion` + # + # * `s3:PutLifecycleConfiguration` + # + # For more information about permissions, see [Managing Access + # Permissions to Your Amazon S3 Resources][5]. + # + # The following operations are related to + # `PutBucketLifecycleConfiguration`: + # + # * [Examples of Lifecycle Configuration][6] + # + # * [GetBucketLifecycleConfiguration][7] + # + # * [DeleteBucketLifecycle][8] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-configuration-examples.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html + # + # @example Example: Put bucket lifecycle + # + # # The following example replaces existing lifecycle configuration, if any, on the specified bucket. + # + # resp = client.put_bucket_lifecycle_configuration({ + # bucket: "examplebucket", + # lifecycle_configuration: { + # rules: [ + # { + # expiration: { + # days: 3650, + # }, + # filter: { + # prefix: "documents/", + # }, + # id: "TestOnly", + # status: "Enabled", + # transitions: [ + # { + # days: 365, + # storage_class: "GLACIER", + # }, + # ], + # }, + # ], + # }, + # }) + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_lifecycle_configuration({ + # bucket: "BucketName", # required + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # lifecycle_configuration: { + # rules: [ # required + # { + # expiration: { + # date: Time.now, + # days: 1, + # expired_object_delete_marker: false, + # }, + # id: "ID", + # prefix: "Prefix", + # filter: { + # prefix: "Prefix", + # tag: { + # key: "ObjectKey", # required + # value: "Value", # required + # }, + # object_size_greater_than: 1, + # object_size_less_than: 1, + # and: { + # prefix: "Prefix", + # tags: [ + # { + # key: "ObjectKey", # required + # value: "Value", # required + # }, + # ], + # object_size_greater_than: 1, + # object_size_less_than: 1, + # }, + # }, + # status: "Enabled", # required, accepts Enabled, Disabled + # transitions: [ + # { + # date: Time.now, + # days: 1, + # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE, GLACIER_IR + # }, + # ], + # noncurrent_version_transitions: [ + # { + # noncurrent_days: 1, + # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE, GLACIER_IR + # newer_noncurrent_versions: 1, + # }, + # ], + # noncurrent_version_expiration: { + # noncurrent_days: 1, + # newer_noncurrent_versions: 1, + # }, + # abort_incomplete_multipart_upload: { + # days_after_initiation: 1, + # }, + # }, + # ], + # }, + # expected_bucket_owner: "AccountId", + # transition_default_minimum_object_size: "varies_by_storage_class", # accepts varies_by_storage_class, all_storage_classes_128K + # }) + # @example Response structure + # + # resp.transition_default_minimum_object_size #=> String, one of "varies_by_storage_class", "all_storage_classes_128K" + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_bucket_lifecycle_configuration + # @param params [Hash] ({}) + # @return [Types::PutBucketLifecycleConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::PutBucketLifecycleConfigurationOutput#transition_default_minimum_object_size #transition_default_minimum_object_size} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycleConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#13986 + def put_bucket_lifecycle_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Set the logging parameters for a bucket and to specify permissions for + # who can view and modify the logging parameters. All logs are saved to + # buckets in the same Amazon Web Services Region as the source bucket. + # To set the logging status of a bucket, you must be the bucket owner. + # + # The bucket owner is automatically granted FULL\_CONTROL to all logs. + # You use the `Grantee` request element to grant access to other people. + # The `Permissions` request element specifies the kind of access the + # grantee has to the logs. + # + # If the target bucket for log delivery uses the bucket owner enforced + # setting for S3 Object Ownership, you can't use the `Grantee` request + # element to grant access to others. Permissions can only be granted + # using policies. For more information, see [Permissions for server + # access log delivery][1] in the *Amazon S3 User Guide*. + # + # Grantee Values + # + # : You can specify the person (grantee) to whom you're assigning + # access rights (by using request elements) in the following ways: + # + # * By the person's ID: + # + # `<>ID<><>GranteesEmail<> + # ` + # + # `DisplayName` is optional and ignored in the request. + # + # * By Email address: + # + # ` <>Grantees@email.com<>` + # + # The grantee is resolved to the `CanonicalUser` and, in a response + # to a `GETObjectAcl` request, appears as the CanonicalUser. + # + # * By URI: + # + # `<>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>` + # + # To enable logging, you use `LoggingEnabled` and its children request + # elements. To disable logging, you use an empty `BucketLoggingStatus` + # request element: + # + # `` + # + # For more information about server access logging, see [Server Access + # Logging][2] in the *Amazon S3 User Guide*. + # + # For more information about creating a bucket, see [CreateBucket][3]. + # For more information about returning the logging status of a bucket, + # see [GetBucketLogging][4]. + # + # The following operations are related to `PutBucketLogging`: + # + # * [PutObject][5] + # + # * [DeleteBucket][6] + # + # * [CreateBucket][3] + # + # * [GetBucketLogging][4] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html + # + # @example Example: Set logging configuration for a bucket + # + # # The following example sets logging policy on a bucket. For the Log Delivery group to deliver logs to the destination + # # bucket, it needs permission for the READ_ACP action which the policy grants. + # + # resp = client.put_bucket_logging({ + # bucket: "sourcebucket", + # bucket_logging_status: { + # logging_enabled: { + # target_bucket: "targetbucket", + # target_grants: [ + # { + # grantee: { + # type: "Group", + # uri: "http://acs.amazonaws.com/groups/global/AllUsers", + # }, + # permission: "READ", + # }, + # ], + # target_prefix: "MyBucketLogs/", + # }, + # }, + # }) + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_logging({ + # bucket: "BucketName", # required + # bucket_logging_status: { # required + # logging_enabled: { + # target_bucket: "TargetBucket", # required + # target_grants: [ + # { + # grantee: { + # display_name: "DisplayName", + # email_address: "EmailAddress", + # id: "ID", + # type: "CanonicalUser", # required, accepts CanonicalUser, AmazonCustomerByEmail, Group + # uri: "URI", + # }, + # permission: "FULL_CONTROL", # accepts FULL_CONTROL, READ, WRITE + # }, + # ], + # target_prefix: "TargetPrefix", # required + # target_object_key_format: { + # simple_prefix: { + # }, + # partitioned_prefix: { + # partition_date_source: "EventTime", # accepts EventTime, DeliveryTime + # }, + # }, + # }, + # }, + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_bucket_logging + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLogging AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#14169 + def put_bucket_logging(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Sets a metrics configuration (specified by the metrics configuration + # ID) for the bucket. You can have up to 1,000 metrics configurations + # per bucket. If you're updating an existing metrics configuration, + # note that this is a full replacement of the existing metrics + # configuration. If you don't include the elements you want to keep, + # they are erased. + # + # To use this operation, you must have permissions to perform the + # `s3:PutMetricsConfiguration` action. The 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][1] and [Managing Access + # Permissions to Your Amazon S3 Resources][2]. + # + # For information about CloudWatch request metrics for Amazon S3, see + # [Monitoring Metrics with Amazon CloudWatch][3]. + # + # The following operations are related to + # `PutBucketMetricsConfiguration`: + # + # * [DeleteBucketMetricsConfiguration][4] + # + # * [GetBucketMetricsConfiguration][5] + # + # * [ListBucketMetricsConfigurations][6] + # + # `PutBucketMetricsConfiguration` has the following special error: + # + # * Error code: `TooManyConfigurations` + # + # * Description: You are attempting to create a new configuration but + # have already reached the 1,000-configuration limit. + # + # * HTTP Status Code: HTTP 400 Bad Request + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html + # + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_metrics_configuration({ + # bucket: "BucketName", # required + # id: "MetricsId", # required + # metrics_configuration: { # required + # id: "MetricsId", # required + # filter: { + # prefix: "Prefix", + # tag: { + # key: "ObjectKey", # required + # value: "Value", # required + # }, + # access_point_arn: "AccessPointArn", + # and: { + # prefix: "Prefix", + # tags: [ + # { + # key: "ObjectKey", # required + # value: "Value", # required + # }, + # ], + # access_point_arn: "AccessPointArn", + # }, + # }, + # }, + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @option params + # @option params + # @overload put_bucket_metrics_configuration + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketMetricsConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#14273 + def put_bucket_metrics_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # No longer used, see the [PutBucketNotificationConfiguration][1] + # operation. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotificationConfiguration.html + # + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_notification({ + # bucket: "BucketName", # required + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # notification_configuration: { # required + # topic_configuration: { + # id: "NotificationId", + # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete + # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete + # topic: "TopicArn", + # }, + # queue_configuration: { + # id: "NotificationId", + # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete + # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete + # queue: "QueueArn", + # }, + # cloud_function_configuration: { + # id: "NotificationId", + # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete + # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete + # cloud_function: "CloudFunction", + # invocation_role: "CloudFunctionInvocationRole", + # }, + # }, + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_bucket_notification + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotification AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#14359 + def put_bucket_notification(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Enables notifications of specified events for a bucket. For more + # information about event notifications, see [Configuring Event + # Notifications][1]. + # + # Using this API, you can replace an existing notification + # configuration. The configuration is an XML file that defines the event + # types that you want Amazon S3 to publish and the destination where you + # want Amazon S3 to publish an event notification when it detects an + # event of the specified type. + # + # By default, your bucket has no event notifications configured. That + # is, the notification configuration will be an empty + # `NotificationConfiguration`. + # + # `` + # + # `` + # + # This action replaces the existing notification configuration with the + # configuration you include in the request body. + # + # After Amazon S3 receives this request, it first verifies that any + # Amazon Simple Notification Service (Amazon SNS) or Amazon Simple Queue + # Service (Amazon SQS) destination exists, and that the bucket owner has + # permission to publish to it by sending a test notification. In the + # case of Lambda destinations, Amazon S3 verifies that the Lambda + # function permissions grant Amazon S3 permission to invoke the function + # from the Amazon S3 bucket. For more information, see [Configuring + # Notifications for Amazon S3 Events][1]. + # + # You can disable notifications by adding the empty + # NotificationConfiguration element. + # + # For more information about the number of event notification + # configurations that you can create per bucket, see [Amazon S3 service + # quotas][2] in *Amazon Web Services General Reference*. + # + # By default, only the bucket owner can configure notifications on a + # bucket. However, bucket owners can use a bucket policy to grant + # permission to other users to set this configuration with the required + # `s3:PutBucketNotification` permission. + # + # The PUT notification is an atomic operation. For example, suppose your + # notification configuration includes SNS topic, SQS queue, and Lambda + # function configurations. When you send a PUT request with this + # configuration, Amazon S3 sends test messages to your SNS topic. If the + # message fails, the entire PUT action will fail, and Amazon S3 will not + # add the configuration to your bucket. + # + # + # + # If the configuration in the request body includes only one + # `TopicConfiguration` specifying only the + # `s3:ReducedRedundancyLostObject` event type, the response will also + # include the `x-amz-sns-test-message-id` header containing the message + # ID of the test notification sent to the topic. + # + # The following action is related to + # `PutBucketNotificationConfiguration`: + # + # * [GetBucketNotificationConfiguration][3] + # + # ^ + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html + # [2]: https://docs.aws.amazon.com/general/latest/gr/s3.html#limits_s3 + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html + # + # @example Example: Set notification configuration for a bucket + # + # # The following example sets notification configuration on a bucket to publish the object created events to an SNS topic. + # + # resp = client.put_bucket_notification_configuration({ + # bucket: "examplebucket", + # notification_configuration: { + # topic_configurations: [ + # { + # events: [ + # "s3:ObjectCreated:*", + # ], + # topic_arn: "arn:aws:sns:us-west-2:123456789012:s3-notification-topic", + # }, + # ], + # }, + # }) + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_notification_configuration({ + # bucket: "BucketName", # required + # notification_configuration: { # required + # topic_configurations: [ + # { + # id: "NotificationId", + # topic_arn: "TopicArn", # required + # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete + # filter: { + # key: { + # filter_rules: [ + # { + # name: "prefix", # accepts prefix, suffix + # value: "FilterRuleValue", + # }, + # ], + # }, + # }, + # }, + # ], + # queue_configurations: [ + # { + # id: "NotificationId", + # queue_arn: "QueueArn", # required + # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete + # filter: { + # key: { + # filter_rules: [ + # { + # name: "prefix", # accepts prefix, suffix + # value: "FilterRuleValue", + # }, + # ], + # }, + # }, + # }, + # ], + # lambda_function_configurations: [ + # { + # id: "NotificationId", + # lambda_function_arn: "LambdaFunctionArn", # required + # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete + # filter: { + # key: { + # filter_rules: [ + # { + # name: "prefix", # accepts prefix, suffix + # value: "FilterRuleValue", + # }, + # ], + # }, + # }, + # }, + # ], + # event_bridge_configuration: { + # }, + # }, + # expected_bucket_owner: "AccountId", + # skip_destination_validation: false, + # }) + # @option params + # @option params + # @option params + # @option params + # @overload put_bucket_notification_configuration + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotificationConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#14543 + def put_bucket_notification_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Creates or modifies `OwnershipControls` for an Amazon S3 bucket. To + # use this operation, you must have the `s3:PutBucketOwnershipControls` + # permission. For more information about Amazon S3 permissions, see + # [Specifying permissions in a policy][1]. + # + # For information about Amazon S3 Object Ownership, see [Using object + # ownership][2]. + # + # The following operations are related to `PutBucketOwnershipControls`: + # + # * GetBucketOwnershipControls + # + # * DeleteBucketOwnershipControls + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-with-s3-actions.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/user-guide/about-object-ownership.html + # + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_ownership_controls({ + # bucket: "BucketName", # required + # content_md5: "ContentMD5", + # expected_bucket_owner: "AccountId", + # ownership_controls: { # required + # rules: [ # required + # { + # object_ownership: "BucketOwnerPreferred", # required, accepts BucketOwnerPreferred, ObjectWriter, BucketOwnerEnforced + # }, + # ], + # }, + # }) + # @option params + # @option params + # @option params + # @option params + # @overload put_bucket_ownership_controls + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketOwnershipControls AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#14612 + def put_bucket_ownership_controls(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Applies an Amazon S3 bucket policy to an Amazon S3 bucket. + # + # Directory buckets - For directory buckets, you must make + # requests for this API operation to the Regional endpoint. These + # endpoints support path-style requests in the format + # `https://s3express-control.region_code.amazonaws.com/bucket-name `. + # Virtual-hosted-style requests aren't supported. For more information, + # see [Regional and Zonal endpoints][1] in the *Amazon S3 User Guide*. + # + # + # + # Permissions + # + # : 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 + # both have the `PutBucketPolicy` permissions on the specified bucket + # and belong to the bucket owner's account in order to use this + # operation. + # + # 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. + # + # To ensure that bucket owners don't inadvertently lock themselves + # out of their own buckets, the root principal in a bucket owner's + # Amazon Web Services account can perform the `GetBucketPolicy`, + # `PutBucketPolicy`, and `DeleteBucketPolicy` API actions, even if + # their bucket policy explicitly denies the root principal's access. + # Bucket owner root principals can only be blocked from performing + # these API actions by VPC endpoint policies and Amazon Web Services + # Organizations policies. + # + # * **General purpose bucket permissions** - The `s3:PutBucketPolicy` + # permission is required in a policy. For more information about + # general purpose buckets bucket policies, see [Using Bucket + # Policies and User Policies][2] in the *Amazon S3 User Guide*. + # + # * **Directory bucket permissions** - To grant access to this API + # operation, you must have the `s3express:PutBucketPolicy` + # permission in an IAM identity-based policy instead of a bucket + # policy. Cross-account access to this API operation isn't + # supported. This operation can only be performed by the Amazon Web + # Services account that owns the resource. For more information + # about directory bucket policies and permissions, see [Amazon Web + # Services Identity and Access Management (IAM) for S3 Express One + # Zone][3] in the *Amazon S3 User Guide*. + # + # Example bucket policies + # + # : **General purpose buckets example bucket policies** - See [Bucket + # policy examples][4] in the *Amazon S3 User Guide*. + # + # **Directory bucket example bucket policies** - See [Example bucket + # policies for S3 Express One Zone][5] in the *Amazon S3 User Guide*. + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is + # `s3express-control.region.amazonaws.com`. + # + # The following operations are related to `PutBucketPolicy`: + # + # * [CreateBucket][6] + # + # * [DeleteBucket][7] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html + # + # @example Example: Set bucket policy + # + # # The following example sets a permission policy on a bucket. + # + # resp = client.put_bucket_policy({ + # bucket: "examplebucket", + # policy: "{\"Version\": \"2012-10-17\", \"Statement\": [{ \"Sid\": \"id-1\",\"Effect\": \"Allow\",\"Principal\": {\"AWS\": \"arn:aws:iam::123456789012:root\"}, \"Action\": [ \"s3:PutObject\",\"s3:PutObjectAcl\"], \"Resource\": [\"arn:aws:s3:::acl3/*\" ] } ]}", + # }) + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_policy({ + # bucket: "BucketName", # required + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # confirm_remove_self_bucket_access: false, + # policy: "Policy", # required + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_bucket_policy + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketPolicy AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#14812 + def put_bucket_policy(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Creates a replication configuration or replaces an existing one. For + # more information, see [Replication][1] in the *Amazon S3 User Guide*. + # + # Specify the replication configuration in the request body. In the + # replication configuration, you provide the name of the destination + # bucket or buckets where you want Amazon S3 to replicate objects, the + # IAM role that Amazon S3 can assume to replicate objects on your + # behalf, and other relevant information. You can invoke this request + # for a specific Amazon Web Services Region by using the [ + # `aws:RequestedRegion` ][2] condition key. + # + # A replication configuration must include at least one rule, and can + # contain a maximum of 1,000. Each rule identifies a subset of objects + # to replicate by filtering the objects in the source 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 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`. + # + # If you are using an earlier version of the replication configuration, + # Amazon S3 handles replication of delete markers differently. For more + # information, see [Backward Compatibility][3]. + # + # + # + # For information about enabling versioning on a bucket, see [Using + # Versioning][4]. + # + # Handling Replication of Encrypted Objects + # + # : By default, Amazon S3 doesn't replicate objects that are stored at + # rest using server-side encryption with KMS keys. To replicate Amazon + # Web Services KMS-encrypted objects, add the following: + # `SourceSelectionCriteria`, `SseKmsEncryptedObjects`, `Status`, + # `EncryptionConfiguration`, and `ReplicaKmsKeyID`. For information + # about replication configuration, see [Replicating Objects Created + # with SSE Using KMS keys][5]. + # + # For information on `PutBucketReplication` errors, see [List of + # replication-related error codes][6] + # + # Permissions + # + # : To create a `PutBucketReplication` request, you must have + # `s3:PutReplicationConfiguration` permissions for the bucket. + # + # By default, a resource owner, in this case the Amazon Web Services + # account that created the bucket, can perform this operation. The + # resource owner can also grant others permissions to perform the + # operation. For more information about permissions, see [Specifying + # Permissions in a Policy][7] and [Managing Access Permissions to Your + # Amazon S3 Resources][8]. + # + # To perform this operation, the user or role performing the action + # must have the [iam:PassRole][9] permission. + # + # + # + # The following operations are related to `PutBucketReplication`: + # + # * [GetBucketReplication][10] + # + # * [DeleteBucketReplication][11] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html + # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-config-for-kms-objects.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [9]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html + # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html + # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html + # + # @example Example: Set replication configuration on a bucket + # + # # The following example sets replication configuration on a bucket. + # + # resp = client.put_bucket_replication({ + # bucket: "examplebucket", + # replication_configuration: { + # role: "arn:aws:iam::123456789012:role/examplerole", + # rules: [ + # { + # destination: { + # bucket: "arn:aws:s3:::destinationbucket", + # storage_class: "STANDARD", + # }, + # prefix: "", + # status: "Enabled", + # }, + # ], + # }, + # }) + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_replication({ + # bucket: "BucketName", # required + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # replication_configuration: { # required + # role: "Role", # required + # rules: [ # required + # { + # id: "ID", + # priority: 1, + # prefix: "Prefix", + # filter: { + # prefix: "Prefix", + # tag: { + # key: "ObjectKey", # required + # value: "Value", # required + # }, + # and: { + # prefix: "Prefix", + # tags: [ + # { + # key: "ObjectKey", # required + # value: "Value", # required + # }, + # ], + # }, + # }, + # status: "Enabled", # required, accepts Enabled, Disabled + # source_selection_criteria: { + # sse_kms_encrypted_objects: { + # status: "Enabled", # required, accepts Enabled, Disabled + # }, + # replica_modifications: { + # status: "Enabled", # required, accepts Enabled, Disabled + # }, + # }, + # existing_object_replication: { + # status: "Enabled", # required, accepts Enabled, Disabled + # }, + # destination: { # required + # bucket: "BucketName", # required + # account: "AccountId", + # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE + # access_control_translation: { + # owner: "Destination", # required, accepts Destination + # }, + # encryption_configuration: { + # replica_kms_key_id: "ReplicaKmsKeyID", + # }, + # replication_time: { + # status: "Enabled", # required, accepts Enabled, Disabled + # time: { # required + # minutes: 1, + # }, + # }, + # metrics: { + # status: "Enabled", # required, accepts Enabled, Disabled + # event_threshold: { + # minutes: 1, + # }, + # }, + # }, + # delete_marker_replication: { + # status: "Enabled", # accepts Enabled, Disabled + # }, + # }, + # ], + # }, + # token: "ObjectLockToken", + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_bucket_replication + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketReplication AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#15050 + def put_bucket_replication(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Sets the request payment configuration for a bucket. By default, the + # bucket owner pays for downloads from the bucket. This configuration + # parameter enables the bucket owner (only) to specify that the person + # requesting the download will be charged for the download. For more + # information, see [Requester Pays Buckets][1]. + # + # The following operations are related to `PutBucketRequestPayment`: + # + # * [CreateBucket][2] + # + # * [GetBucketRequestPayment][3] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html + # + # @example Example: Set request payment configuration on a bucket. + # + # # The following example sets request payment configuration on a bucket so that person requesting the download is charged. + # + # resp = client.put_bucket_request_payment({ + # bucket: "examplebucket", + # request_payment_configuration: { + # payer: "Requester", + # }, + # }) + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_request_payment({ + # bucket: "BucketName", # required + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # request_payment_configuration: { # required + # payer: "Requester", # required, accepts Requester, BucketOwner + # }, + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_bucket_request_payment + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketRequestPayment AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#15147 + def put_bucket_request_payment(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Sets the tags for a bucket. + # + # 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][1] and [Using Cost Allocation in Amazon S3 Bucket + # Tags][2]. + # + # When this operation sets the tags for a bucket, it will overwrite any + # current tags the bucket already has. You cannot use this operation to + # add tags to an existing list of tags. + # + # + # + # To use this operation, you must have permissions to perform the + # `s3:PutBucketTagging` action. The 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][3] and [Managing Access Permissions to Your Amazon S3 + # Resources][4]. + # + # `PutBucketTagging` has the following special errors. For more Amazon + # S3 errors see, [Error Responses][5]. + # + # * `InvalidTag` - The tag provided was not a valid tag. This error can + # occur if the tag did not pass input validation. For more + # information, see [Using Cost Allocation in Amazon S3 Bucket + # Tags][2]. + # + # * `MalformedXML` - The XML provided does not match the schema. + # + # * `OperationAborted` - A conflicting conditional action is currently + # in progress against this resource. Please try again. + # + # * `InternalError` - The service was unable to apply the provided tag + # to the bucket. + # + # The following operations are related to `PutBucketTagging`: + # + # * [GetBucketTagging][6] + # + # * [DeleteBucketTagging][7] + # + # + # + # [1]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html + # + # @example Example: Set tags on a bucket + # + # # The following example sets tags on a bucket. Any existing tags are replaced. + # + # resp = client.put_bucket_tagging({ + # bucket: "examplebucket", + # tagging: { + # tag_set: [ + # { + # key: "Key1", + # value: "Value1", + # }, + # { + # key: "Key2", + # value: "Value2", + # }, + # ], + # }, + # }) + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_tagging({ + # bucket: "BucketName", # required + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # tagging: { # required + # tag_set: [ # required + # { + # key: "ObjectKey", # required + # value: "Value", # required + # }, + # ], + # }, + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_bucket_tagging + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketTagging AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#15298 + def put_bucket_tagging(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # When you enable versioning on a bucket for the first time, it might + # take a short amount of time for the change to be fully propagated. We + # recommend that you wait for 15 minutes after enabling versioning + # before issuing write operations (`PUT` or `DELETE`) on objects in the + # bucket. + # + # + # + # Sets the versioning state of an existing bucket. + # + # You can set the versioning state with one of the following values: + # + # **Enabled**—Enables versioning for the objects in the bucket. All + # objects added to the bucket receive a unique version ID. + # + # **Suspended**—Disables versioning for the objects in the bucket. All + # objects added to the bucket receive the version ID null. + # + # If the versioning state has never been set on a bucket, it has no + # versioning state; a [GetBucketVersioning][1] request does not return a + # versioning state value. + # + # In order to enable MFA Delete, you must be the bucket owner. If you + # are the bucket owner and want to enable MFA Delete in the bucket + # versioning configuration, you must include the `x-amz-mfa request` + # header and the `Status` and the `MfaDelete` request elements in a + # request to set the versioning state of the bucket. + # + # 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. (A version-enabled bucket maintains one + # current and zero or more noncurrent object versions.) For more + # information, see [Lifecycle and Versioning][2]. + # + # The following operations are related to `PutBucketVersioning`: + # + # * [CreateBucket][3] + # + # * [DeleteBucket][4] + # + # * [GetBucketVersioning][1] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-and-other-bucket-config + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html + # + # @example Example: Set versioning configuration on a bucket + # + # # The following example sets versioning configuration on bucket. The configuration enables versioning on the bucket. + # + # resp = client.put_bucket_versioning({ + # bucket: "examplebucket", + # versioning_configuration: { + # mfa_delete: "Disabled", + # status: "Enabled", + # }, + # }) + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_versioning({ + # bucket: "BucketName", # required + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # mfa: "MFA", + # versioning_configuration: { # required + # mfa_delete: "Enabled", # accepts Enabled, Disabled + # status: "Enabled", # accepts Enabled, Suspended + # }, + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_bucket_versioning + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketVersioning AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#15437 + def put_bucket_versioning(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Sets the configuration of the website that is specified in the + # `website` subresource. To configure a bucket as a website, you can add + # this subresource on the bucket with website configuration information + # such as the file name of the index document and any redirect rules. + # For more information, see [Hosting Websites on Amazon S3][1]. + # + # This PUT action requires the `S3:PutBucketWebsite` permission. By + # default, only the bucket owner can configure the website attached to a + # bucket; however, bucket owners can allow other users to set the + # website configuration by writing a bucket policy that grants them the + # `S3:PutBucketWebsite` permission. + # + # To redirect all website requests sent to the bucket's website + # endpoint, you add a website configuration with the following elements. + # Because all requests are sent to another website, you don't need to + # provide index document name for the bucket. + # + # * `WebsiteConfiguration` + # + # * `RedirectAllRequestsTo` + # + # * `HostName` + # + # * `Protocol` + # + # If you want granular control over redirects, you can use the following + # elements to add routing rules that describe conditions for redirecting + # requests and information about the redirect destination. In this case, + # the website configuration must provide an index document for the + # bucket, because some requests might not be redirected. + # + # * `WebsiteConfiguration` + # + # * `IndexDocument` + # + # * `Suffix` + # + # * `ErrorDocument` + # + # * `Key` + # + # * `RoutingRules` + # + # * `RoutingRule` + # + # * `Condition` + # + # * `HttpErrorCodeReturnedEquals` + # + # * `KeyPrefixEquals` + # + # * `Redirect` + # + # * `Protocol` + # + # * `HostName` + # + # * `ReplaceKeyPrefixWith` + # + # * `ReplaceKeyWith` + # + # * `HttpRedirectCode` + # + # Amazon S3 has a limitation of 50 routing rules per website + # configuration. If you require more than 50 routing rules, you can use + # object redirect. For more information, see [Configuring an Object + # Redirect][2] in the *Amazon S3 User Guide*. + # + # The maximum request length is limited to 128 KB. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html + # + # @example Example: Set website configuration on a bucket + # + # # The following example adds website configuration to a bucket. + # + # resp = client.put_bucket_website({ + # bucket: "examplebucket", + # content_md5: "", + # website_configuration: { + # error_document: { + # key: "error.html", + # }, + # index_document: { + # suffix: "index.html", + # }, + # }, + # }) + # @example Request syntax with placeholder values + # + # resp = client.put_bucket_website({ + # bucket: "BucketName", # required + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # website_configuration: { # required + # error_document: { + # key: "ObjectKey", # required + # }, + # index_document: { + # suffix: "Suffix", # required + # }, + # redirect_all_requests_to: { + # host_name: "HostName", # required + # protocol: "http", # accepts http, https + # }, + # routing_rules: [ + # { + # condition: { + # http_error_code_returned_equals: "HttpErrorCodeReturnedEquals", + # key_prefix_equals: "KeyPrefixEquals", + # }, + # redirect: { # required + # host_name: "HostName", + # http_redirect_code: "HttpRedirectCode", + # protocol: "http", # accepts http, https + # replace_key_prefix_with: "ReplaceKeyPrefixWith", + # replace_key_with: "ReplaceKeyWith", + # }, + # }, + # ], + # }, + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_bucket_website + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketWebsite AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#15621 + def put_bucket_website(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Adds an object to a bucket. + # + # * Amazon S3 never adds partial objects; if you receive a success + # response, Amazon S3 added the entire object to the bucket. You + # cannot use `PutObject` to only update a single piece of metadata for + # an existing object. You must put the entire object with updated + # metadata if you want to update some values. + # + # * If your bucket uses the bucket owner enforced setting for Object + # Ownership, ACLs are disabled and no longer affect permissions. All + # objects written to the bucket by any account will be owned by the + # bucket owner. + # + # * **Directory buckets** - For directory buckets, you must make + # requests for this API operation to the Zonal endpoint. These + # endpoints support virtual-hosted-style requests in the format + # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name + # `. Path-style requests are not supported. For more information, see + # [Regional and Zonal endpoints][1] in the *Amazon S3 User Guide*. + # + # + # + # Amazon S3 is a distributed system. If it receives multiple write + # requests for the same object simultaneously, it overwrites all but the + # last object written. However, Amazon S3 provides features that can + # modify this behavior: + # + # * **S3 Object Lock** - To prevent objects from being deleted or + # overwritten, you can use [Amazon S3 Object Lock][2] in the *Amazon + # S3 User Guide*. + # + # This functionality is not supported for directory buckets. + # + # + # + # * **S3 Versioning** - When you enable versioning for a bucket, if + # Amazon S3 receives multiple write requests for the same object + # simultaneously, it stores all versions of the objects. For each + # write request that is made to the same object, Amazon S3 + # automatically generates a unique version ID of that object being + # stored in Amazon S3. You can retrieve, replace, or delete any + # version of the object. For more information about versioning, see + # [Adding Objects to Versioning-Enabled Buckets][3] in the *Amazon S3 + # User Guide*. For information about returning the versioning state of + # a bucket, see [GetBucketVersioning][4]. + # + # This functionality is not supported for directory buckets. + # + # + # + # Permissions + # : * **General purpose bucket permissions** - The following permissions + # are required in your policies when your `PutObject` request + # includes specific headers. + # + # * s3:PutObject - To successfully complete + # the `PutObject` request, you must always have the `s3:PutObject` + # permission on a bucket to add an object to it. + # + # * s3:PutObjectAcl - To successfully change + # the objects ACL of your `PutObject` request, you must have the + # `s3:PutObjectAcl`. + # + # * s3:PutObjectTagging - To successfully set + # the tag-set with your `PutObject` request, you must have the + # `s3:PutObjectTagging`. + # + # * **Directory bucket permissions** - To grant access to this API + # operation on a directory bucket, we recommend that you use the [ + # `CreateSession` ][5] API operation for session-based + # authorization. Specifically, you grant the + # `s3express:CreateSession` permission to the directory bucket in a + # bucket policy or an IAM identity-based policy. Then, you make the + # `CreateSession` API call on the bucket to obtain a session token. + # With the session token in your request header, you can make API + # requests to this operation. After the session token expires, you + # make another `CreateSession` API call to generate a new session + # token for use. Amazon Web Services CLI or SDKs create session and + # refresh the session token automatically to avoid service + # interruptions when a session expires. For more information about + # authorization, see [ `CreateSession` ][5]. + # + # If the object is encrypted with SSE-KMS, you must also have the + # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + # identity-based policies and KMS key policies for the KMS key. + # + # Data integrity with Content-MD5 + # : * **General purpose bucket** - To ensure that data is not corrupted + # traversing the network, use the `Content-MD5` header. When you use + # this header, Amazon S3 checks the object against the provided MD5 + # value and, if they do not match, Amazon S3 returns an error. + # Alternatively, when the object's ETag is its MD5 digest, you can + # calculate the MD5 while putting the object to Amazon S3 and + # compare the returned ETag to the calculated MD5 value. + # + # * **Directory bucket** - This functionality is not supported for + # directory buckets. + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is ` + # Bucket_name.s3express-az_id.region.amazonaws.com`. + # + # For more information about related Amazon S3 APIs, see the following: + # + # * [CopyObject][6] + # + # * [DeleteObject][7] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html + # + # @example Example: To upload an object and specify canned ACL. + # + # # The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ + # # access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response. + # + # resp = client.put_object({ + # acl: "authenticated-read", + # body: "filetoupload", + # bucket: "examplebucket", + # key: "exampleobject", + # }) + # + # resp.to_h outputs the following: + # { + # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"", + # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr", + # } + # @example Example: To create an object. + # + # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response. + # + # resp = client.put_object({ + # body: "filetoupload", + # bucket: "examplebucket", + # key: "objectkey", + # }) + # + # resp.to_h outputs the following: + # { + # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"", + # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ", + # } + # @example Example: To upload an object + # + # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file + # # syntax. S3 returns VersionId of the newly created object. + # + # resp = client.put_object({ + # body: "HappyFace.jpg", + # bucket: "examplebucket", + # key: "HappyFace.jpg", + # }) + # + # resp.to_h outputs the following: + # { + # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"", + # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk", + # } + # @example Example: To upload an object and specify optional tags + # + # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore + # # S3 returns version ID of the newly created object. + # + # resp = client.put_object({ + # body: "c:\\HappyFace.jpg", + # bucket: "examplebucket", + # key: "HappyFace.jpg", + # tagging: "key1=value1&key2=value2", + # }) + # + # resp.to_h outputs the following: + # { + # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"", + # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a", + # } + # @example Example: To upload an object and specify server-side encryption and object tags + # + # # The following example uploads an object. The request specifies the optional server-side encryption option. The request + # # also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response. + # + # resp = client.put_object({ + # body: "filetoupload", + # bucket: "examplebucket", + # key: "exampleobject", + # server_side_encryption: "AES256", + # tagging: "key1=value1&key2=value2", + # }) + # + # resp.to_h outputs the following: + # { + # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"", + # server_side_encryption: "AES256", + # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt", + # } + # @example Example: To upload an object (specify optional headers) + # + # # The following example uploads an object. The request specifies optional request headers to directs S3 to use specific + # # storage class and use server-side encryption. + # + # resp = client.put_object({ + # body: "HappyFace.jpg", + # bucket: "examplebucket", + # key: "HappyFace.jpg", + # server_side_encryption: "AES256", + # storage_class: "STANDARD_IA", + # }) + # + # resp.to_h outputs the following: + # { + # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"", + # server_side_encryption: "AES256", + # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp", + # } + # @example Example: To upload object and specify user-defined metadata + # + # # The following example creates an object. The request also specifies optional metadata. If the bucket is versioning + # # enabled, S3 returns version ID in response. + # + # resp = client.put_object({ + # body: "filetoupload", + # bucket: "examplebucket", + # key: "exampleobject", + # metadata: { + # "metadata1" => "value1", + # "metadata2" => "value2", + # }, + # }) + # + # resp.to_h outputs the following: + # { + # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"", + # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0", + # } + # @example Streaming a file from disk + # # upload file from disk in a single request, may not exceed 5GB + # File.open('/source/file/path', 'rb') do |file| + # s3.put_object(bucket: 'bucket-name', key: 'object-key', body: file) + # end + # @example Request syntax with placeholder values + # + # resp = client.put_object({ + # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control + # body: source_file, + # bucket: "BucketName", # required + # cache_control: "CacheControl", + # content_disposition: "ContentDisposition", + # content_encoding: "ContentEncoding", + # content_language: "ContentLanguage", + # content_length: 1, + # content_md5: "ContentMD5", + # content_type: "ContentType", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # checksum_crc32: "ChecksumCRC32", + # checksum_crc32c: "ChecksumCRC32C", + # checksum_sha1: "ChecksumSHA1", + # checksum_sha256: "ChecksumSHA256", + # expires: Time.now, + # if_none_match: "IfNoneMatch", + # grant_full_control: "GrantFullControl", + # grant_read: "GrantRead", + # grant_read_acp: "GrantReadACP", + # grant_write_acp: "GrantWriteACP", + # key: "ObjectKey", # required + # metadata: { + # "MetadataKey" => "MetadataValue", + # }, + # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse + # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE + # website_redirect_location: "WebsiteRedirectLocation", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # ssekms_key_id: "SSEKMSKeyId", + # ssekms_encryption_context: "SSEKMSEncryptionContext", + # bucket_key_enabled: false, + # request_payer: "requester", # accepts requester + # tagging: "TaggingHeader", + # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE + # object_lock_retain_until_date: Time.now, + # object_lock_legal_hold_status: "ON", # accepts ON, OFF + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.expiration #=> String + # resp.etag #=> String + # resp.checksum_crc32 #=> String + # resp.checksum_crc32c #=> String + # resp.checksum_sha1 #=> String + # resp.checksum_sha256 #=> String + # resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse" + # resp.version_id #=> String + # resp.sse_customer_algorithm #=> String + # resp.sse_customer_key_md5 #=> String + # resp.ssekms_key_id #=> String + # resp.ssekms_encryption_context #=> String + # resp.bucket_key_enabled #=> Boolean + # resp.request_charged #=> String, one of "requester" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_object + # @param params [Hash] ({}) + # @return [Types::PutObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::PutObjectOutput#expiration #expiration} => String + # * {Types::PutObjectOutput#etag #etag} => String + # * {Types::PutObjectOutput#checksum_crc32 #checksum_crc32} => String + # * {Types::PutObjectOutput#checksum_crc32c #checksum_crc32c} => String + # * {Types::PutObjectOutput#checksum_sha1 #checksum_sha1} => String + # * {Types::PutObjectOutput#checksum_sha256 #checksum_sha256} => String + # * {Types::PutObjectOutput#server_side_encryption #server_side_encryption} => String + # * {Types::PutObjectOutput#version_id #version_id} => String + # * {Types::PutObjectOutput#sse_customer_algorithm #sse_customer_algorithm} => String + # * {Types::PutObjectOutput#sse_customer_key_md5 #sse_customer_key_md5} => String + # * {Types::PutObjectOutput#ssekms_key_id #ssekms_key_id} => String + # * {Types::PutObjectOutput#ssekms_encryption_context #ssekms_encryption_context} => String + # * {Types::PutObjectOutput#bucket_key_enabled #bucket_key_enabled} => Boolean + # * {Types::PutObjectOutput#request_charged #request_charged} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObject AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#16555 + def put_object(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Uses the `acl` subresource to set the access control list (ACL) + # permissions for a new or existing object in an S3 bucket. You must + # have the `WRITE_ACP` permission to set the ACL of an object. For more + # information, see [What permissions can I grant?][1] in the *Amazon S3 + # User Guide*. + # + # This functionality is not supported for Amazon S3 on Outposts. + # + # Depending on your application needs, you can choose to set the ACL on + # an object using either the request body or the headers. For example, + # if you have an existing application that updates a bucket ACL using + # the request body, you can continue to use that approach. For more + # information, see [Access Control List (ACL) Overview][2] in the + # *Amazon S3 User Guide*. + # + # If your bucket uses the bucket owner enforced setting for S3 Object + # Ownership, ACLs are disabled and no longer affect permissions. You + # must use policies to grant access to your bucket and the objects in + # it. Requests to set ACLs or update ACLs fail and return the + # `AccessControlListNotSupported` error code. Requests to read ACLs are + # still supported. For more information, see [Controlling object + # ownership][3] in the *Amazon S3 User Guide*. + # + # Permissions + # + # : You can set access permissions using one of the following methods: + # + # * Specify a canned ACL with the `x-amz-acl` request header. Amazon + # S3 supports a set of predefined ACLs, known as canned ACLs. Each + # canned ACL has a predefined set of grantees and permissions. + # Specify the canned ACL name as the value of `x-amz-ac`l. If you + # use this header, you cannot use other access control-specific + # headers in your request. For more information, see [Canned + # ACL][4]. + # + # * Specify access permissions explicitly with the `x-amz-grant-read`, + # `x-amz-grant-read-acp`, `x-amz-grant-write-acp`, and + # `x-amz-grant-full-control` headers. When using these headers, you + # specify explicit access permissions and grantees (Amazon Web + # Services accounts or Amazon S3 groups) who will receive the + # permission. If you use these ACL-specific headers, you cannot use + # `x-amz-acl` header to set a canned ACL. These parameters map to + # the set of permissions that Amazon S3 supports in an ACL. For more + # information, see [Access Control List (ACL) Overview][2]. + # + # You specify each grantee as a type=value pair, where the type is + # one of the following: + # + # * `id` – if the value specified is the canonical user ID of an + # Amazon Web Services account + # + # * `uri` – if you are granting permissions to a predefined group + # + # * `emailAddress` – if the value specified is the email address of + # an Amazon Web Services account + # + # Using email addresses to specify a grantee is only supported in + # the following Amazon Web Services Regions: + # + # * US East (N. Virginia) + # + # * US West (N. California) + # + # * US West (Oregon) + # + # * Asia Pacific (Singapore) + # + # * Asia Pacific (Sydney) + # + # * Asia Pacific (Tokyo) + # + # * Europe (Ireland) + # + # * South America (São Paulo) + # + # For a list of all the Amazon S3 supported Regions and endpoints, + # see [Regions and Endpoints][5] in the Amazon Web Services + # General Reference. + # + # + # + # For example, the following `x-amz-grant-read` header grants list + # objects permission to the two Amazon Web Services accounts + # identified by their email addresses. + # + # `x-amz-grant-read: emailAddress="xyz@amazon.com", + # emailAddress="abc@amazon.com" ` + # + # You can use either a canned ACL or specify access permissions + # explicitly. You cannot do both. + # + # Grantee Values + # + # : You can specify the person (grantee) to whom you're assigning + # access rights (using request elements) in the following ways: + # + # * By the person's ID: + # + # `<>ID<><>GranteesEmail<> + # ` + # + # DisplayName is optional and ignored in the request. + # + # * By URI: + # + # `<>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>` + # + # * By Email address: + # + # `<>Grantees@email.com<>lt;/Grantee>` + # + # The grantee is resolved to the CanonicalUser and, in a response to + # a GET Object acl request, appears as the CanonicalUser. + # + # Using email addresses to specify a grantee is only supported in + # the following Amazon Web Services Regions: + # + # * US East (N. Virginia) + # + # * US West (N. California) + # + # * US West (Oregon) + # + # * Asia Pacific (Singapore) + # + # * Asia Pacific (Sydney) + # + # * Asia Pacific (Tokyo) + # + # * Europe (Ireland) + # + # * South America (São Paulo) + # + # For a list of all the Amazon S3 supported Regions and endpoints, + # see [Regions and Endpoints][5] in the Amazon Web Services General + # Reference. + # + # + # + # Versioning + # + # : The ACL of an object is set at the object version level. By default, + # PUT sets the ACL of the current version of an object. To set the ACL + # of a different version, use the `versionId` subresource. + # + # The following operations are related to `PutObjectAcl`: + # + # * [CopyObject][6] + # + # * [GetObject][7] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL + # [5]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html + # + # @example Example: To grant permissions using object ACL + # + # # The following example adds grants to an object ACL. The first permission grants user1 and user2 FULL_CONTROL and the + # # AllUsers group READ permission. + # + # resp = client.put_object_acl({ + # access_control_policy: { + # }, + # bucket: "examplebucket", + # grant_full_control: "emailaddress=user1@example.com,emailaddress=user2@example.com", + # grant_read: "uri=http://acs.amazonaws.com/groups/global/AllUsers", + # key: "HappyFace.jpg", + # }) + # + # resp.to_h outputs the following: + # { + # } + # @example Request syntax with placeholder values + # + # resp = client.put_object_acl({ + # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control + # access_control_policy: { + # grants: [ + # { + # grantee: { + # display_name: "DisplayName", + # email_address: "EmailAddress", + # id: "ID", + # type: "CanonicalUser", # required, accepts CanonicalUser, AmazonCustomerByEmail, Group + # uri: "URI", + # }, + # permission: "FULL_CONTROL", # accepts FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP + # }, + # ], + # owner: { + # display_name: "DisplayName", + # id: "ID", + # }, + # }, + # bucket: "BucketName", # required + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # grant_full_control: "GrantFullControl", + # grant_read: "GrantRead", + # grant_read_acp: "GrantReadACP", + # grant_write: "GrantWrite", + # grant_write_acp: "GrantWriteACP", + # key: "ObjectKey", # required + # request_payer: "requester", # accepts requester + # version_id: "ObjectVersionId", + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.request_charged #=> String, one of "requester" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_object_acl + # @param params [Hash] ({}) + # @return [Types::PutObjectAclOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::PutObjectAclOutput#request_charged #request_charged} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectAcl AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#16925 + def put_object_acl(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Applies a legal hold configuration to the specified object. For more + # information, see [Locking Objects][1]. + # + # This functionality is not supported for Amazon S3 on Outposts. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html + # + # @example Request syntax with placeholder values + # + # resp = client.put_object_legal_hold({ + # bucket: "BucketName", # required + # key: "ObjectKey", # required + # legal_hold: { + # status: "ON", # accepts ON, OFF + # }, + # request_payer: "requester", # accepts requester + # version_id: "ObjectVersionId", + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.request_charged #=> String, one of "requester" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_object_legal_hold + # @param params [Hash] ({}) + # @return [Types::PutObjectLegalHoldOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::PutObjectLegalHoldOutput#request_charged #request_charged} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHold AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#17044 + def put_object_legal_hold(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Places an Object Lock configuration on the specified bucket. The rule + # specified in the Object Lock configuration will be applied by default + # to every new object placed in the specified bucket. For more + # information, see [Locking Objects][1]. + # + # * The `DefaultRetention` settings require both a mode and a period. + # + # * The `DefaultRetention` period can be either `Days` or `Years` but + # you must select one. You cannot specify `Days` and `Years` at the + # same time. + # + # * You can enable Object Lock for new or existing buckets. For more + # information, see [Configuring Object Lock][2]. + # + # + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html + # + # @example Request syntax with placeholder values + # + # resp = client.put_object_lock_configuration({ + # bucket: "BucketName", # required + # object_lock_configuration: { + # object_lock_enabled: "Enabled", # accepts Enabled + # rule: { + # default_retention: { + # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE + # days: 1, + # years: 1, + # }, + # }, + # }, + # request_payer: "requester", # accepts requester + # token: "ObjectLockToken", + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.request_charged #=> String, one of "requester" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_object_lock_configuration + # @param params [Hash] ({}) + # @return [Types::PutObjectLockConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::PutObjectLockConfigurationOutput#request_charged #request_charged} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfiguration AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#17163 + def put_object_lock_configuration(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Places an Object Retention configuration on an object. For more + # information, see [Locking Objects][1]. Users or accounts require the + # `s3:PutObjectRetention` permission in order to place an Object + # Retention configuration on objects. Bypassing a Governance Retention + # configuration requires the `s3:BypassGovernanceRetention` permission. + # + # This functionality is not supported for Amazon S3 on Outposts. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html + # + # @example Request syntax with placeholder values + # + # resp = client.put_object_retention({ + # bucket: "BucketName", # required + # key: "ObjectKey", # required + # retention: { + # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE + # retain_until_date: Time.now, + # }, + # request_payer: "requester", # accepts requester + # version_id: "ObjectVersionId", + # bypass_governance_retention: false, + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.request_charged #=> String, one of "requester" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_object_retention + # @param params [Hash] ({}) + # @return [Types::PutObjectRetentionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::PutObjectRetentionOutput#request_charged #request_charged} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetention AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#17292 + def put_object_retention(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Sets the supplied tag-set to an object that already exists in a + # bucket. A tag is a key-value pair. For more information, see [Object + # Tagging][1]. + # + # You can associate tags with an object by sending a PUT request against + # the tagging subresource that is associated with the object. You can + # retrieve tags by sending a GET request. For more information, see + # [GetObjectTagging][2]. + # + # For tagging-related restrictions related to characters and encodings, + # see [Tag Restrictions][3]. Note that Amazon S3 limits the maximum + # number of tags to 10 tags per object. + # + # To use this operation, you must have permission to perform the + # `s3:PutObjectTagging` action. By default, the bucket owner has this + # permission and can grant this permission to others. + # + # To put tags of any other version, use the `versionId` query parameter. + # You also need permission for the `s3:PutObjectVersionTagging` action. + # + # `PutObjectTagging` has the following special errors. For more Amazon + # S3 errors see, [Error Responses][4]. + # + # * `InvalidTag` - The tag provided was not a valid tag. This error can + # occur if the tag did not pass input validation. For more + # information, see [Object Tagging][1]. + # + # * `MalformedXML` - The XML provided does not match the schema. + # + # * `OperationAborted` - A conflicting conditional action is currently + # in progress against this resource. Please try again. + # + # * `InternalError` - The service was unable to apply the provided tag + # to the object. + # + # The following operations are related to `PutObjectTagging`: + # + # * [GetObjectTagging][2] + # + # * [DeleteObjectTagging][5] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html + # [3]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html + # + # @example Example: To add tags to an existing object + # + # # The following example adds tags to an existing object. + # + # resp = client.put_object_tagging({ + # bucket: "examplebucket", + # key: "HappyFace.jpg", + # tagging: { + # tag_set: [ + # { + # key: "Key3", + # value: "Value3", + # }, + # { + # key: "Key4", + # value: "Value4", + # }, + # ], + # }, + # }) + # + # resp.to_h outputs the following: + # { + # version_id: "null", + # } + # @example Request syntax with placeholder values + # + # resp = client.put_object_tagging({ + # bucket: "BucketName", # required + # key: "ObjectKey", # required + # version_id: "ObjectVersionId", + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # tagging: { # required + # tag_set: [ # required + # { + # key: "ObjectKey", # required + # value: "Value", # required + # }, + # ], + # }, + # expected_bucket_owner: "AccountId", + # request_payer: "requester", # accepts requester + # }) + # @example Response structure + # + # resp.version_id #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_object_tagging + # @param params [Hash] ({}) + # @return [Types::PutObjectTaggingOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::PutObjectTaggingOutput#version_id #version_id} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectTagging AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#17491 + def put_object_tagging(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # Creates or modifies the `PublicAccessBlock` configuration for an + # Amazon S3 bucket. To use this operation, you must have the + # `s3:PutBucketPublicAccessBlock` permission. For more information about + # Amazon S3 permissions, see [Specifying Permissions in a Policy][1]. + # + # When Amazon S3 evaluates the `PublicAccessBlock` configuration for a + # bucket or an object, it checks the `PublicAccessBlock` configuration + # for both the bucket (or the bucket that contains the object) and the + # bucket owner's account. If the `PublicAccessBlock` configurations are + # different between the bucket and the account, Amazon S3 uses the most + # restrictive combination of the bucket-level and account-level + # settings. + # + # For more information about when Amazon S3 considers a bucket or an + # object public, see [The Meaning of "Public"][2]. + # + # The following operations are related to `PutPublicAccessBlock`: + # + # * [GetPublicAccessBlock][3] + # + # * [DeletePublicAccessBlock][4] + # + # * [GetBucketPolicyStatus][5] + # + # * [Using Amazon S3 Block Public Access][6] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html + # + # @example Request syntax with placeholder values + # + # resp = client.put_public_access_block({ + # bucket: "BucketName", # required + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # public_access_block_configuration: { # required + # block_public_acls: false, + # ignore_public_acls: false, + # block_public_policy: false, + # restrict_public_buckets: false, + # }, + # expected_bucket_owner: "AccountId", + # }) + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload put_public_access_block + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutPublicAccessBlock AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#17599 + def put_public_access_block(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # The `SELECT` job type for the RestoreObject operation is no longer + # available to new customers. Existing customers of Amazon S3 Select can + # continue to use the feature as usual. [Learn more][1] + # + # Restores an archived copy of an object back into Amazon S3 + # + # This functionality is not supported for Amazon S3 on Outposts. + # + # This action performs the following types of requests: + # + # * `restore an archive` - Restore an archived object + # + # ^ + # + # For more information about the `S3` structure in the request body, see + # the following: + # + # * [PutObject][2] + # + # * [Managing Access with ACLs][3] in the *Amazon S3 User Guide* + # + # * [Protecting Data Using Server-Side Encryption][4] in the *Amazon S3 + # User Guide* + # + # Permissions + # + # : To use this operation, you must have permissions to perform the + # `s3:RestoreObject` action. The 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][5] and [Managing Access Permissions to Your + # Amazon S3 Resources][6] in the *Amazon S3 User Guide*. + # + # Restoring objects + # + # : Objects that you archive to the S3 Glacier Flexible Retrieval + # Flexible Retrieval or S3 Glacier Deep Archive storage class, and S3 + # Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep Archive + # tiers, are not accessible in real time. For objects in the S3 + # Glacier Flexible Retrieval Flexible Retrieval or S3 Glacier Deep + # Archive storage classes, you must first initiate a restore request, + # and then wait until a temporary copy of the object is available. If + # you want a permanent copy of the object, create a copy of it in the + # Amazon S3 Standard storage class in your S3 bucket. To access an + # archived object, you must restore the object for the duration + # (number of days) that you specify. For objects in the Archive Access + # or Deep Archive Access tiers of S3 Intelligent-Tiering, you must + # first initiate a restore request, and then wait until the object is + # moved into the Frequent Access tier. + # + # To restore a specific object version, you can provide a version ID. + # If you don't provide a version ID, Amazon S3 restores the current + # version. + # + # When restoring an archived object, you can specify one of the + # following data access tier options in the `Tier` element of the + # request body: + # + # * `Expedited` - Expedited retrievals allow you to quickly access + # your data stored in the S3 Glacier Flexible Retrieval Flexible + # Retrieval storage class or S3 Intelligent-Tiering Archive tier + # when occasional urgent requests for restoring archives are + # required. For all but the largest archived objects (250 MB+), data + # accessed using Expedited retrievals is typically made available + # within 1–5 minutes. Provisioned capacity ensures that retrieval + # capacity for Expedited retrievals is available when you need it. + # Expedited retrievals and provisioned capacity are not available + # for objects stored in the S3 Glacier Deep Archive storage class or + # S3 Intelligent-Tiering Deep Archive tier. + # + # * `Standard` - Standard retrievals allow you to access any of your + # archived objects within several hours. This is the default option + # for retrieval requests that do not specify the retrieval option. + # Standard retrievals typically finish within 3–5 hours for objects + # stored in the S3 Glacier Flexible Retrieval Flexible Retrieval + # storage class or S3 Intelligent-Tiering Archive tier. They + # typically finish within 12 hours for objects stored in the S3 + # Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep + # Archive tier. Standard retrievals are free for objects stored in + # S3 Intelligent-Tiering. + # + # * `Bulk` - Bulk retrievals free for objects stored in the S3 Glacier + # Flexible Retrieval and S3 Intelligent-Tiering storage classes, + # enabling you to retrieve large amounts, even petabytes, of data at + # no cost. Bulk retrievals typically finish within 5–12 hours for + # objects stored in the S3 Glacier Flexible Retrieval Flexible + # Retrieval storage class or S3 Intelligent-Tiering Archive tier. + # Bulk retrievals are also the lowest-cost retrieval option when + # restoring objects from S3 Glacier Deep Archive. They typically + # finish within 48 hours for objects stored in the S3 Glacier Deep + # Archive storage class or S3 Intelligent-Tiering Deep Archive tier. + # + # For more information about archive retrieval options and provisioned + # capacity for `Expedited` data access, see [Restoring Archived + # Objects][7] in the *Amazon S3 User Guide*. + # + # You can use Amazon S3 restore speed upgrade to change the restore + # speed to a faster speed while it is in progress. For more + # information, see [ Upgrading the speed of an in-progress restore][8] + # in the *Amazon S3 User Guide*. + # + # To get the status of object restoration, you can send a `HEAD` + # request. Operations return the `x-amz-restore` header, which + # provides information about the restoration status, in the response. + # You can use Amazon S3 event notifications to notify you when a + # restore is initiated or completed. For more information, see + # [Configuring Amazon S3 Event Notifications][9] in the *Amazon S3 + # User Guide*. + # + # After restoring an archived object, you can update the restoration + # period by reissuing the request with a new period. Amazon S3 updates + # the restoration period relative to the current time and charges only + # for the request-there are no data transfer charges. You cannot + # update the restoration period when Amazon S3 is actively processing + # your current restore request for the object. + # + # If your bucket has a lifecycle configuration with a rule that + # includes an expiration action, the object expiration overrides the + # life span that you specify in a restore request. For example, if you + # restore an object copy for 10 days, but the object is scheduled to + # expire in 3 days, Amazon S3 deletes the object in 3 days. For more + # information about lifecycle configuration, see + # [PutBucketLifecycleConfiguration][10] and [Object Lifecycle + # Management][11] in *Amazon S3 User Guide*. + # + # Responses + # + # : A successful action returns either the `200 OK` or `202 Accepted` + # status code. + # + # * If the object is not previously restored, then Amazon S3 returns + # `202 Accepted` in the response. + # + # * If the object is previously restored, Amazon S3 returns `200 OK` + # in the response. + # ^ + # + # * Special errors: + # + # * *Code: RestoreAlreadyInProgress* + # + # * *Cause: Object restore is already in progress.* + # + # * *HTTP Status Code: 409 Conflict* + # + # * *SOAP Fault Code Prefix: Client* + # + # * * *Code: GlacierExpeditedRetrievalNotAvailable* + # + # * *Cause: expedited retrievals are currently not available. Try + # again later. (Returned if there is insufficient capacity to + # process the Expedited request. This error applies only to + # Expedited retrievals and not to S3 Standard or Bulk + # retrievals.)* + # + # * *HTTP Status Code: 503* + # + # * *SOAP Fault Code Prefix: N/A* + # + # The following operations are related to `RestoreObject`: + # + # * [PutBucketLifecycleConfiguration][10] + # + # * [GetBucketNotificationConfiguration][12] + # + # + # + # [1]: http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/ + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html + # [9]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html + # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html + # [11]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html + # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html + # + # @example Example: To restore an archived object + # + # # The following example restores for one day an archived copy of an object back into Amazon S3 bucket. + # + # resp = client.restore_object({ + # bucket: "examplebucket", + # key: "archivedobjectkey", + # restore_request: { + # days: 1, + # glacier_job_parameters: { + # tier: "Expedited", + # }, + # }, + # }) + # + # resp.to_h outputs the following: + # { + # } + # @example Request syntax with placeholder values + # + # resp = client.restore_object({ + # bucket: "BucketName", # required + # key: "ObjectKey", # required + # version_id: "ObjectVersionId", + # restore_request: { + # days: 1, + # glacier_job_parameters: { + # tier: "Standard", # required, accepts Standard, Bulk, Expedited + # }, + # type: "SELECT", # accepts SELECT + # tier: "Standard", # accepts Standard, Bulk, Expedited + # description: "Description", + # select_parameters: { + # input_serialization: { # required + # csv: { + # file_header_info: "USE", # accepts USE, IGNORE, NONE + # comments: "Comments", + # quote_escape_character: "QuoteEscapeCharacter", + # record_delimiter: "RecordDelimiter", + # field_delimiter: "FieldDelimiter", + # quote_character: "QuoteCharacter", + # allow_quoted_record_delimiter: false, + # }, + # compression_type: "NONE", # accepts NONE, GZIP, BZIP2 + # json: { + # type: "DOCUMENT", # accepts DOCUMENT, LINES + # }, + # parquet: { + # }, + # }, + # expression_type: "SQL", # required, accepts SQL + # expression: "Expression", # required + # output_serialization: { # required + # csv: { + # quote_fields: "ALWAYS", # accepts ALWAYS, ASNEEDED + # quote_escape_character: "QuoteEscapeCharacter", + # record_delimiter: "RecordDelimiter", + # field_delimiter: "FieldDelimiter", + # quote_character: "QuoteCharacter", + # }, + # json: { + # record_delimiter: "RecordDelimiter", + # }, + # }, + # }, + # output_location: { + # s3: { + # bucket_name: "BucketName", # required + # prefix: "LocationPrefix", # required + # encryption: { + # encryption_type: "AES256", # required, accepts AES256, aws:kms, aws:kms:dsse + # kms_key_id: "SSEKMSKeyId", + # kms_context: "KMSContext", + # }, + # canned_acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control + # access_control_list: [ + # { + # grantee: { + # display_name: "DisplayName", + # email_address: "EmailAddress", + # id: "ID", + # type: "CanonicalUser", # required, accepts CanonicalUser, AmazonCustomerByEmail, Group + # uri: "URI", + # }, + # permission: "FULL_CONTROL", # accepts FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP + # }, + # ], + # tagging: { + # tag_set: [ # required + # { + # key: "ObjectKey", # required + # value: "Value", # required + # }, + # ], + # }, + # user_metadata: [ + # { + # name: "MetadataKey", + # value: "MetadataValue", + # }, + # ], + # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE + # }, + # }, + # }, + # request_payer: "requester", # accepts requester + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.request_charged #=> String, one of "requester" + # resp.restore_output_path #=> String + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload restore_object + # @param params [Hash] ({}) + # @return [Types::RestoreObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::RestoreObjectOutput#request_charged #request_charged} => String + # * {Types::RestoreObjectOutput#restore_output_path #restore_output_path} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RestoreObject AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#17989 + def restore_object(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # This operation is not supported by directory buckets. + # + # + # + # The SelectObjectContent operation is no longer available to new + # customers. Existing customers of Amazon S3 Select can continue to use + # the operation as usual. [Learn more][1] + # + # This action filters the contents of an Amazon S3 object based on a + # simple structured query language (SQL) statement. In the request, + # along with the SQL expression, you must also specify a data + # serialization format (JSON, CSV, or Apache Parquet) of the object. + # Amazon S3 uses this format to parse object data into records, and + # returns only records that match the specified SQL expression. You must + # also specify the data serialization format for the response. + # + # This functionality is not supported for Amazon S3 on Outposts. + # + # For more information about Amazon S3 Select, see [Selecting Content + # from Objects][2] and [SELECT Command][3] in the *Amazon S3 User + # Guide*. + # + # + # + # Permissions + # + # : You must have the `s3:GetObject` permission for this + # operation. Amazon S3 Select does not support anonymous access. For + # more information about permissions, see [Specifying Permissions in a + # Policy][4] in the *Amazon S3 User Guide*. + # + # Object Data Formats + # + # : You can use Amazon S3 Select to query objects that have the + # following format properties: + # + # * *CSV, JSON, and Parquet* - Objects must be in CSV, JSON, or + # Parquet format. + # + # * *UTF-8* - UTF-8 is the only encoding type Amazon S3 Select + # supports. + # + # * *GZIP or BZIP2* - CSV and JSON files can be compressed using GZIP + # or BZIP2. GZIP and BZIP2 are the only compression formats that + # Amazon S3 Select supports for CSV and JSON files. Amazon S3 Select + # supports columnar compression for Parquet using GZIP or Snappy. + # Amazon S3 Select does not support whole-object compression for + # Parquet objects. + # + # * *Server-side encryption* - Amazon S3 Select supports querying + # objects that are protected with server-side encryption. + # + # For objects that are encrypted with customer-provided encryption + # keys (SSE-C), you must use HTTPS, and you must use the headers + # that are documented in the [GetObject][5]. For more information + # about SSE-C, see [Server-Side Encryption (Using Customer-Provided + # Encryption Keys)][6] in the *Amazon S3 User Guide*. + # + # For objects that are encrypted with Amazon S3 managed keys + # (SSE-S3) and Amazon Web Services KMS keys (SSE-KMS), server-side + # encryption is handled transparently, so you don't need to specify + # anything. For more information about server-side encryption, + # including SSE-S3 and SSE-KMS, see [Protecting Data Using + # Server-Side Encryption][7] in the *Amazon S3 User Guide*. + # + # Working with the Response Body + # + # : Given the response size is unknown, Amazon S3 Select streams the + # response as a series of messages and includes a `Transfer-Encoding` + # header with `chunked` as its value in the response. For more + # information, see [Appendix: SelectObjectContent Response][8]. + # + # GetObject Support + # + # : The `SelectObjectContent` action does not support the following + # `GetObject` functionality. For more information, see [GetObject][5]. + # + # * `Range`: Although you can specify a scan range for an Amazon S3 + # Select request (see [SelectObjectContentRequest - ScanRange][9] in + # the request parameters), you cannot specify the range of bytes of + # an object to return. + # + # * The `GLACIER`, `DEEP_ARCHIVE`, and `REDUCED_REDUNDANCY` storage + # classes, or the `ARCHIVE_ACCESS` and `DEEP_ARCHIVE_ACCESS` access + # tiers of the `INTELLIGENT_TIERING` storage class: You cannot query + # objects in the `GLACIER`, `DEEP_ARCHIVE`, or `REDUCED_REDUNDANCY` + # storage classes, nor objects in the `ARCHIVE_ACCESS` or + # `DEEP_ARCHIVE_ACCESS` access tiers of the `INTELLIGENT_TIERING` + # storage class. For more information about storage classes, see + # [Using Amazon S3 storage classes][10] in the *Amazon S3 User + # Guide*. + # + # Special Errors + # + # : For a list of special errors for this operation, see [List of SELECT + # Object Content Error Codes][11] + # + # The following operations are related to `SelectObjectContent`: + # + # * [GetObject][5] + # + # * [GetBucketLifecycleConfiguration][12] + # + # * [PutBucketLifecycleConfiguration][13] + # + # + # + # [1]: http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/ + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-select.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html + # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange + # [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html + # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList + # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html + # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html + # + # @example EventStream Operation Example + # + # You can process the event once it arrives immediately, or wait until the + # full response is complete and iterate through the eventstream enumerator. + # + # To interact with event immediately, you need to register #select_object_content + # with callbacks. Callbacks can be registered for specific events or for all + # events, including error events. + # + # Callbacks can be passed into the `:event_stream_handler` option or within a + # block statement attached to the #select_object_content call directly. Hybrid + # pattern of both is also supported. + # + # `:event_stream_handler` option takes in either a Proc object or + # Aws::S3::EventStreams::SelectObjectContentEventStream object. + # + # Usage pattern a): Callbacks with a block attached to #select_object_content + # Example for registering callbacks for all event types and an error event + # + # client.select_object_content( # params input# ) do |stream| + # stream.on_error_event do |event| + # # catch unmodeled error event in the stream + # raise event + # # => Aws::Errors::EventError + # # event.event_type => :error + # # event.error_code => String + # # event.error_message => String + # end + # + # stream.on_event do |event| + # # process all events arrive + # puts event.event_type + # ... + # end + # + # end + # + # Usage pattern b): Pass in `:event_stream_handler` for #select_object_content + # + # 1) Create a Aws::S3::EventStreams::SelectObjectContentEventStream object + # Example for registering callbacks with specific events + # + # handler = Aws::S3::EventStreams::SelectObjectContentEventStream.new + # handler.on_records_event do |event| + # event # => Aws::S3::Types::Records + # end + # handler.on_stats_event do |event| + # event # => Aws::S3::Types::Stats + # end + # handler.on_progress_event do |event| + # event # => Aws::S3::Types::Progress + # end + # handler.on_cont_event do |event| + # event # => Aws::S3::Types::Cont + # end + # handler.on_end_event do |event| + # event # => Aws::S3::Types::End + # end + # + # client.select_object_content( # params input #, event_stream_handler: handler) + # + # 2) Use a Ruby Proc object + # Example for registering callbacks with specific events + # + # handler = Proc.new do |stream| + # stream.on_records_event do |event| + # event # => Aws::S3::Types::Records + # end + # stream.on_stats_event do |event| + # event # => Aws::S3::Types::Stats + # end + # stream.on_progress_event do |event| + # event # => Aws::S3::Types::Progress + # end + # stream.on_cont_event do |event| + # event # => Aws::S3::Types::Cont + # end + # stream.on_end_event do |event| + # event # => Aws::S3::Types::End + # end + # end + # + # client.select_object_content( # params input #, event_stream_handler: handler) + # + # Usage pattern c): Hybrid pattern of a) and b) + # + # handler = Aws::S3::EventStreams::SelectObjectContentEventStream.new + # handler.on_records_event do |event| + # event # => Aws::S3::Types::Records + # end + # handler.on_stats_event do |event| + # event # => Aws::S3::Types::Stats + # end + # handler.on_progress_event do |event| + # event # => Aws::S3::Types::Progress + # end + # handler.on_cont_event do |event| + # event # => Aws::S3::Types::Cont + # end + # handler.on_end_event do |event| + # event # => Aws::S3::Types::End + # end + # + # client.select_object_content( # params input #, event_stream_handler: handler) do |stream| + # stream.on_error_event do |event| + # # catch unmodeled error event in the stream + # raise event + # # => Aws::Errors::EventError + # # event.event_type => :error + # # event.error_code => String + # # event.error_message => String + # end + # end + # + # You can also iterate through events after the response complete. + # + # Events are available at resp.payload # => Enumerator + # For parameter input example, please refer to following request syntax + # @example Request syntax with placeholder values + # + # resp = client.select_object_content({ + # bucket: "BucketName", # required + # key: "ObjectKey", # required + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # expression: "Expression", # required + # expression_type: "SQL", # required, accepts SQL + # request_progress: { + # enabled: false, + # }, + # input_serialization: { # required + # csv: { + # file_header_info: "USE", # accepts USE, IGNORE, NONE + # comments: "Comments", + # quote_escape_character: "QuoteEscapeCharacter", + # record_delimiter: "RecordDelimiter", + # field_delimiter: "FieldDelimiter", + # quote_character: "QuoteCharacter", + # allow_quoted_record_delimiter: false, + # }, + # compression_type: "NONE", # accepts NONE, GZIP, BZIP2 + # json: { + # type: "DOCUMENT", # accepts DOCUMENT, LINES + # }, + # parquet: { + # }, + # }, + # output_serialization: { # required + # csv: { + # quote_fields: "ALWAYS", # accepts ALWAYS, ASNEEDED + # quote_escape_character: "QuoteEscapeCharacter", + # record_delimiter: "RecordDelimiter", + # field_delimiter: "FieldDelimiter", + # quote_character: "QuoteCharacter", + # }, + # json: { + # record_delimiter: "RecordDelimiter", + # }, + # }, + # scan_range: { + # start: 1, + # end: 1, + # }, + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # All events are available at resp.payload: + # resp.payload #=> Enumerator + # resp.payload.event_types #=> [:records, :stats, :progress, :cont, :end] + # + # For :records event available at #on_records_event callback and response eventstream enumerator: + # event.payload #=> IO + # + # For :stats event available at #on_stats_event callback and response eventstream enumerator: + # event.details.bytes_scanned #=> Integer + # event.details.bytes_processed #=> Integer + # event.details.bytes_returned #=> Integer + # + # For :progress event available at #on_progress_event callback and response eventstream enumerator: + # event.details.bytes_scanned #=> Integer + # event.details.bytes_processed #=> Integer + # event.details.bytes_returned #=> Integer + # + # For :cont event available at #on_cont_event callback and response eventstream enumerator: + # #=> EmptyStruct + # For :end event available at #on_end_event callback and response eventstream enumerator: + # #=> EmptyStruct + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload select_object_content + # @param params [Hash] ({}) + # @return [Types::SelectObjectContentOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::SelectObjectContentOutput#payload #payload} => Types::SelectObjectContentEventStream + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SelectObjectContent AWS API Documentation + # @yield [event_stream_handler] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#18391 + def select_object_content(params = T.unsafe(nil), options = T.unsafe(nil), &block); end + + # Uploads a part in a multipart upload. + # + # In this operation, you provide new data as a part of an object in your + # request. However, you have an option to specify your existing Amazon + # S3 object as a data source for the part you are uploading. To upload a + # part from an existing object, you use the [UploadPartCopy][1] + # operation. + # + # + # + # You must initiate a multipart upload (see [CreateMultipartUpload][2]) + # before you can upload any part. In response to your initiate request, + # Amazon S3 returns an upload ID, a unique identifier that you must + # include in your upload part request. + # + # Part numbers can be any number from 1 to 10,000, inclusive. A part + # number uniquely identifies a part and also defines its position within + # the object being created. If you upload a new part using the same part + # number that was used with a previous part, the previously uploaded + # part is overwritten. + # + # For information about maximum and minimum part sizes and other + # multipart upload specifications, see [Multipart upload limits][3] in + # the *Amazon S3 User Guide*. + # + # After you initiate multipart upload and upload one or more parts, you + # must either complete or abort multipart upload in order to stop + # getting charged for storage of the uploaded parts. Only after you + # either complete or abort multipart upload, Amazon S3 frees up the + # parts storage and stops charging you for the parts storage. + # + # + # + # For more information on multipart uploads, go to [Multipart Upload + # Overview][4] in the Amazon S3 User Guide . + # + # **Directory buckets** - For directory buckets, you must make requests + # for this API operation to the Zonal endpoint. These endpoints support + # virtual-hosted-style requests in the format + # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `. + # Path-style requests are not supported. For more information, see + # [Regional and Zonal endpoints][5] in the *Amazon S3 User Guide*. + # + # + # + # Permissions + # : * **General purpose bucket permissions** - To perform a multipart + # upload with encryption using an Key Management Service key, the + # requester must have permission to the `kms:Decrypt` and + # `kms:GenerateDataKey` actions on the key. The requester must also + # have permissions for the `kms:GenerateDataKey` action for the + # `CreateMultipartUpload` API. Then, the requester needs permissions + # for the `kms:Decrypt` action on the `UploadPart` and + # `UploadPartCopy` APIs. + # + # These permissions are required because Amazon S3 must decrypt and + # read data from the encrypted file parts before it completes the + # multipart upload. For more information about KMS permissions, see + # [Protecting data using server-side encryption with KMS][6] in the + # *Amazon S3 User Guide*. For information about the permissions + # required to use the multipart upload API, see [Multipart upload + # and permissions][7] and [Multipart upload API and permissions][8] + # in the *Amazon S3 User Guide*. + # + # * **Directory bucket permissions** - To grant access to this API + # operation on a directory bucket, we recommend that you use the [ + # `CreateSession` ][9] API operation for session-based + # authorization. Specifically, you grant the + # `s3express:CreateSession` permission to the directory bucket in a + # bucket policy or an IAM identity-based policy. Then, you make the + # `CreateSession` API call on the bucket to obtain a session token. + # With the session token in your request header, you can make API + # requests to this operation. After the session token expires, you + # make another `CreateSession` API call to generate a new session + # token for use. Amazon Web Services CLI or SDKs create session and + # refresh the session token automatically to avoid service + # interruptions when a session expires. For more information about + # authorization, see [ `CreateSession` ][9]. + # + # If the object is encrypted with SSE-KMS, you must also have the + # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + # identity-based policies and KMS key policies for the KMS key. + # + # Data integrity + # + # : **General purpose bucket** - To ensure that data is not corrupted + # traversing the network, specify the `Content-MD5` header in the + # upload part request. Amazon S3 checks the part data against the + # provided MD5 value. If they do not match, Amazon S3 returns an + # error. If the upload request is signed with Signature Version 4, + # then Amazon Web Services S3 uses the `x-amz-content-sha256` header + # as a checksum instead of `Content-MD5`. For more information see + # [Authenticating Requests: Using the Authorization Header (Amazon Web + # Services Signature Version 4)][10]. + # + # **Directory buckets** - MD5 is not supported by directory buckets. + # You can use checksum algorithms to check object integrity. + # + # + # + # Encryption + # : * **General purpose bucket** - Server-side encryption is for data + # encryption at rest. Amazon S3 encrypts your data as it writes it + # to disks in its data centers and decrypts it when you access it. + # You have mutually exclusive options to protect data using + # server-side encryption in Amazon S3, depending on how you choose + # to manage the encryption keys. Specifically, the encryption key + # options are Amazon S3 managed keys (SSE-S3), Amazon Web Services + # KMS keys (SSE-KMS), and Customer-Provided Keys (SSE-C). Amazon S3 + # encrypts data with server-side encryption using Amazon S3 managed + # keys (SSE-S3) by default. You can optionally tell Amazon S3 to + # encrypt data at rest using server-side encryption with other key + # options. The option you use depends on whether you want to use KMS + # keys (SSE-KMS) or provide your own encryption key (SSE-C). + # + # Server-side encryption is supported by the S3 Multipart Upload + # operations. Unless you are using a customer-provided encryption + # key (SSE-C), you don't need to specify the encryption parameters + # in each UploadPart request. Instead, you only need to specify the + # server-side encryption parameters in the initial Initiate + # Multipart request. For more information, see + # [CreateMultipartUpload][2]. + # + # If you request server-side encryption using a customer-provided + # encryption key (SSE-C) in your initiate multipart upload request, + # you must provide identical encryption information in each part + # upload using the following request headers. + # + # * x-amz-server-side-encryption-customer-algorithm + # + # * x-amz-server-side-encryption-customer-key + # + # * x-amz-server-side-encryption-customer-key-MD5 + # + # For more information, see [Using Server-Side Encryption][11] in + # the *Amazon S3 User Guide*. + # + # * Directory buckets - For directory buckets, there are only + # two supported options for server-side encryption: server-side + # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and + # server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). + # + # Special errors + # : * Error Code: `NoSuchUpload` + # + # * Description: The specified multipart upload does not exist. The + # upload ID might be invalid, or the multipart upload might have + # been aborted or completed. + # + # * HTTP Status Code: 404 Not Found + # + # * SOAP Fault Code Prefix: Client + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is ` + # Bucket_name.s3express-az_id.region.amazonaws.com`. + # + # The following operations are related to `UploadPart`: + # + # * [CreateMultipartUpload][2] + # + # * [CompleteMultipartUpload][12] + # + # * [AbortMultipartUpload][13] + # + # * [ListParts][14] + # + # * [ListMultipartUploads][15] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions + # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html + # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html + # [11]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html + # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html + # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html + # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html + # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html + # + # @example Example: To upload a part + # + # # The following example uploads part 1 of a multipart upload. The example specifies a file name for the part data. The + # # Upload ID is same that is returned by the initiate multipart upload. + # + # resp = client.upload_part({ + # body: "fileToUpload", + # bucket: "examplebucket", + # key: "examplelargeobject", + # part_number: 1, + # upload_id: "xadcOB_7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--", + # }) + # + # resp.to_h outputs the following: + # { + # etag: "\"d8c2eafd90c266e19ab9dcacc479f8af\"", + # } + # @example Request syntax with placeholder values + # + # resp = client.upload_part({ + # body: source_file, + # bucket: "BucketName", # required + # content_length: 1, + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # checksum_crc32: "ChecksumCRC32", + # checksum_crc32c: "ChecksumCRC32C", + # checksum_sha1: "ChecksumSHA1", + # checksum_sha256: "ChecksumSHA256", + # key: "ObjectKey", # required + # part_number: 1, # required + # upload_id: "MultipartUploadId", # required + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # request_payer: "requester", # accepts requester + # expected_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse" + # resp.etag #=> String + # resp.checksum_crc32 #=> String + # resp.checksum_crc32c #=> String + # resp.checksum_sha1 #=> String + # resp.checksum_sha256 #=> String + # resp.sse_customer_algorithm #=> String + # resp.sse_customer_key_md5 #=> String + # resp.ssekms_key_id #=> String + # resp.bucket_key_enabled #=> Boolean + # resp.request_charged #=> String, one of "requester" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload upload_part + # @param params [Hash] ({}) + # @return [Types::UploadPartOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::UploadPartOutput#server_side_encryption #server_side_encryption} => String + # * {Types::UploadPartOutput#etag #etag} => String + # * {Types::UploadPartOutput#checksum_crc32 #checksum_crc32} => String + # * {Types::UploadPartOutput#checksum_crc32c #checksum_crc32c} => String + # * {Types::UploadPartOutput#checksum_sha1 #checksum_sha1} => String + # * {Types::UploadPartOutput#checksum_sha256 #checksum_sha256} => String + # * {Types::UploadPartOutput#sse_customer_algorithm #sse_customer_algorithm} => String + # * {Types::UploadPartOutput#sse_customer_key_md5 #sse_customer_key_md5} => String + # * {Types::UploadPartOutput#ssekms_key_id #ssekms_key_id} => String + # * {Types::UploadPartOutput#bucket_key_enabled #bucket_key_enabled} => Boolean + # * {Types::UploadPartOutput#request_charged #request_charged} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPart AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#18861 + def upload_part(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Uploads a part by copying data from an existing object as data source. + # To specify the data source, you add the request header + # `x-amz-copy-source` in your request. To specify a byte range, you add + # the request header `x-amz-copy-source-range` in your request. + # + # For information about maximum and minimum part sizes and other + # multipart upload specifications, see [Multipart upload limits][1] in + # the *Amazon S3 User Guide*. + # + # Instead of copying data from an existing object as part data, you + # might use the [UploadPart][2] action to upload new data as a part of + # an object in your request. + # + # + # + # You must initiate a multipart upload before you can upload any part. + # In response to your initiate request, Amazon S3 returns the upload ID, + # a unique identifier that you must include in your upload part request. + # + # For conceptual information about multipart uploads, see [Uploading + # Objects Using Multipart Upload][3] in the *Amazon S3 User Guide*. For + # information about copying objects using a single atomic action vs. a + # multipart upload, see [Operations on Objects][4] in the *Amazon S3 + # User Guide*. + # + # **Directory buckets** - For directory buckets, you must make requests + # for this API operation to the Zonal endpoint. These endpoints support + # virtual-hosted-style requests in the format + # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `. + # Path-style requests are not supported. For more information, see + # [Regional and Zonal endpoints][5] in the *Amazon S3 User Guide*. + # + # + # + # Authentication and authorization + # + # : All `UploadPartCopy` requests must be authenticated and signed by + # using IAM credentials (access key ID and secret access key for the + # IAM identities). All headers with the `x-amz-` prefix, including + # `x-amz-copy-source`, must be signed. For more information, see [REST + # Authentication][6]. + # + # **Directory buckets** - You must use IAM credentials to authenticate + # and authorize your access to the `UploadPartCopy` API operation, + # instead of using the temporary security credentials through the + # `CreateSession` API operation. + # + # Amazon Web Services CLI or SDKs handles authentication and + # authorization on your behalf. + # + # Permissions + # + # : You must have `READ` access to the source object and `WRITE` access + # to the destination bucket. + # + # * **General purpose bucket permissions** - You must have the + # permissions in a policy based on the bucket types of your source + # bucket and destination bucket in an `UploadPartCopy` operation. + # + # * If the source object is in a general purpose bucket, you must + # have the s3:GetObject permission to read + # the source object that is being copied. + # + # * If the destination bucket is a general purpose bucket, you must + # have the s3:PutObject permission to write + # the object copy to the destination bucket. + # + # * To perform a multipart upload with encryption using an Key + # Management Service key, the requester must have permission to + # the `kms:Decrypt` and `kms:GenerateDataKey` actions on the key. + # The requester must also have permissions for the + # `kms:GenerateDataKey` action for the `CreateMultipartUpload` + # API. Then, the requester needs permissions for the `kms:Decrypt` + # action on the `UploadPart` and `UploadPartCopy` APIs. These + # permissions are required because Amazon S3 must decrypt and read + # data from the encrypted file parts before it completes the + # multipart upload. For more information about KMS permissions, + # see [Protecting data using server-side encryption with KMS][7] + # in the *Amazon S3 User Guide*. For information about the + # permissions required to use the multipart upload API, see + # [Multipart upload and permissions][8] and [Multipart upload API + # and permissions][9] in the *Amazon S3 User Guide*. + # + # * **Directory bucket permissions** - You must have permissions in a + # bucket policy or an IAM identity-based policy based on the source + # and destination bucket types in an `UploadPartCopy` operation. + # + # * If the source object that you want to copy is in a directory + # bucket, you must have the + # s3express:CreateSession permission in the + # `Action` element of a policy to read the object. By default, the + # session is in the `ReadWrite` mode. If you want to restrict the + # access, you can explicitly set the `s3express:SessionMode` + # condition key to `ReadOnly` on the copy source bucket. + # + # * If the copy destination is a directory bucket, you must have the + # s3express:CreateSession permission in the + # `Action` element of a policy to write the object to the + # destination. The `s3express:SessionMode` condition key cannot be + # set to `ReadOnly` on the copy destination. + # + # If the object is encrypted with SSE-KMS, you must also have the + # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + # identity-based policies and KMS key policies for the KMS key. + # + # For example policies, see [Example bucket policies for S3 Express + # One Zone][10] and [Amazon Web Services Identity and Access + # Management (IAM) identity-based policies for S3 Express One + # Zone][11] in the *Amazon S3 User Guide*. + # + # Encryption + # : * General purpose buckets - For information about using + # server-side encryption with customer-provided encryption keys with + # the `UploadPartCopy` operation, see [CopyObject][12] and + # [UploadPart][2]. + # + # * Directory buckets - For directory buckets, there are only + # two supported options for server-side encryption: server-side + # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and + # server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). For + # more information, see [Protecting data with server-side + # encryption][13] in the *Amazon S3 User Guide*. + # + # For directory buckets, when you perform a `CreateMultipartUpload` + # operation and an `UploadPartCopy` operation, the request headers + # you provide in the `CreateMultipartUpload` request must match the + # default encryption configuration of the destination bucket. + # + # + # + # S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted + # objects from general purpose buckets to directory buckets, from + # directory buckets to general purpose buckets, or between directory + # buckets, through [UploadPartCopy][14]. In this case, Amazon S3 + # makes a call to KMS every time a copy request is made for a + # KMS-encrypted object. + # + # Special errors + # : * Error Code: `NoSuchUpload` + # + # * Description: The specified multipart upload does not exist. The + # upload ID might be invalid, or the multipart upload might have + # been aborted or completed. + # + # * HTTP Status Code: 404 Not Found + # + # * Error Code: `InvalidRequest` + # + # * Description: The specified copy source is not supported as a + # byte-range copy source. + # + # * HTTP Status Code: 400 Bad Request + # + # HTTP Host header syntax + # + # : Directory buckets - The HTTP Host header syntax is ` + # Bucket_name.s3express-az_id.region.amazonaws.com`. + # + # The following operations are related to `UploadPartCopy`: + # + # * [CreateMultipartUpload][15] + # + # * [UploadPart][2] + # + # * [CompleteMultipartUpload][16] + # + # * [AbortMultipartUpload][17] + # + # * [ListParts][18] + # + # * [ListMultipartUploads][19] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html + # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html + # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html + # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html + # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html + # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html + # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions + # [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html + # [11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html + # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html + # [13]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html + # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html + # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html + # [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html + # [17]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html + # [18]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html + # [19]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html + # + # @example Example: To upload a part by copying data from an existing object as data source + # + # # The following example uploads a part of a multipart upload by copying data from an existing object as data source. + # + # resp = client.upload_part_copy({ + # bucket: "examplebucket", + # copy_source: "/bucketname/sourceobjectkey", + # key: "examplelargeobject", + # part_number: 1, + # upload_id: "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--", + # }) + # + # resp.to_h outputs the following: + # { + # copy_part_result: { + # etag: "\"b0c6f0e7e054ab8fa2536a2677f8734d\"", + # last_modified: Time.parse("2016-12-29T21:24:43.000Z"), + # }, + # } + # @example Example: To upload a part by copying byte range from an existing object as data source + # + # # The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as + # # data source. + # + # resp = client.upload_part_copy({ + # bucket: "examplebucket", + # copy_source: "/bucketname/sourceobjectkey", + # copy_source_range: "bytes=1-100000", + # key: "examplelargeobject", + # part_number: 2, + # upload_id: "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--", + # }) + # + # resp.to_h outputs the following: + # { + # copy_part_result: { + # etag: "\"65d16d19e65a7508a51f043180edcc36\"", + # last_modified: Time.parse("2016-12-29T21:44:28.000Z"), + # }, + # } + # @example Request syntax with placeholder values + # + # resp = client.upload_part_copy({ + # bucket: "BucketName", # required + # copy_source: "CopySource", # required + # copy_source_if_match: "CopySourceIfMatch", + # copy_source_if_modified_since: Time.now, + # copy_source_if_none_match: "CopySourceIfNoneMatch", + # copy_source_if_unmodified_since: Time.now, + # copy_source_range: "CopySourceRange", + # key: "ObjectKey", # required + # part_number: 1, # required + # upload_id: "MultipartUploadId", # required + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # copy_source_sse_customer_algorithm: "CopySourceSSECustomerAlgorithm", + # copy_source_sse_customer_key: "CopySourceSSECustomerKey", + # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5", + # request_payer: "requester", # accepts requester + # expected_bucket_owner: "AccountId", + # expected_source_bucket_owner: "AccountId", + # }) + # @example Response structure + # + # resp.copy_source_version_id #=> String + # resp.copy_part_result.etag #=> String + # resp.copy_part_result.last_modified #=> Time + # resp.copy_part_result.checksum_crc32 #=> String + # resp.copy_part_result.checksum_crc32c #=> String + # resp.copy_part_result.checksum_sha1 #=> String + # resp.copy_part_result.checksum_sha256 #=> String + # resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse" + # resp.sse_customer_algorithm #=> String + # resp.sse_customer_key_md5 #=> String + # resp.ssekms_key_id #=> String + # resp.bucket_key_enabled #=> Boolean + # resp.request_charged #=> String, one of "requester" + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload upload_part_copy + # @param params [Hash] ({}) + # @return [Types::UploadPartCopyOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::UploadPartCopyOutput#copy_source_version_id #copy_source_version_id} => String + # * {Types::UploadPartCopyOutput#copy_part_result #copy_part_result} => Types::CopyPartResult + # * {Types::UploadPartCopyOutput#server_side_encryption #server_side_encryption} => String + # * {Types::UploadPartCopyOutput#sse_customer_algorithm #sse_customer_algorithm} => String + # * {Types::UploadPartCopyOutput#sse_customer_key_md5 #sse_customer_key_md5} => String + # * {Types::UploadPartCopyOutput#ssekms_key_id #ssekms_key_id} => String + # * {Types::UploadPartCopyOutput#bucket_key_enabled #bucket_key_enabled} => Boolean + # * {Types::UploadPartCopyOutput#request_charged #request_charged} => String + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPartCopy AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#19430 + def upload_part_copy(params = T.unsafe(nil), options = T.unsafe(nil)); end + + # Polls an API operation until a resource enters a desired state. + # + # ## Basic Usage + # + # A waiter will call an API operation until: + # + # * It is successful + # * It enters a terminal state + # * It makes the maximum number of attempts + # + # In between attempts, the waiter will sleep. + # + # # polls in a loop, sleeping between attempts + # client.wait_until(waiter_name, params) + # + # ## Configuration + # + # You can configure the maximum number of polling attempts, and the + # delay (in seconds) between each polling attempt. You can pass + # configuration as the final arguments hash. + # + # # poll for ~25 seconds + # client.wait_until(waiter_name, params, { + # max_attempts: 5, + # delay: 5, + # }) + # + # ## Callbacks + # + # You can be notified before each polling attempt and before each + # delay. If you throw `:success` or `:failure` from these callbacks, + # it will terminate the waiter. + # + # started_at = Time.now + # client.wait_until(waiter_name, params, { + # + # # disable max attempts + # max_attempts: nil, + # + # # poll for 1 hour, instead of a number of attempts + # before_wait: -> (attempts, response) do + # throw :failure if Time.now - started_at > 3600 + # end + # }) + # + # ## Handling Errors + # + # When a waiter is unsuccessful, it will raise an error. + # All of the failure errors extend from + # {Aws::Waiters::Errors::WaiterFailed}. + # + # begin + # client.wait_until(...) + # rescue Aws::Waiters::Errors::WaiterFailed + # # resource did not enter the desired state in time + # end + # + # ## Valid Waiters + # + # The following table lists the valid waiter names, the operations they call, + # and the default `:delay` and `:max_attempts` values. + # + # | waiter_name | params | :delay | :max_attempts | + # | ----------------- | -------------------- | -------- | ------------- | + # | bucket_exists | {Client#head_bucket} | 5 | 20 | + # | bucket_not_exists | {Client#head_bucket} | 5 | 20 | + # | object_exists | {Client#head_object} | 5 | 20 | + # | object_not_exists | {Client#head_object} | 5 | 20 | + # + # @option options + # @option options + # @option options + # @option options + # @param waiter_name [Symbol] + # @param params [Hash] ({}) + # @param options [Hash] ({}) + # @raise [Errors::FailureStateError] Raised when the waiter terminates + # because the waiter has entered a state that it will not transition + # out of, preventing success. + # @raise [Errors::TooManyAttemptsError] Raised when the configured + # maximum number of attempts have been made, and the waiter is not + # yet successful. + # @raise [Errors::UnexpectedError] Raised when an error is encounted + # while polling for a resource that is not expected. + # @raise [Errors::NoSuchWaiterError] Raised when you request to wait + # for an unknown state. + # @return [Boolean] Returns `true` if the waiter was successful. + # @yield [w.waiter] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#19939 + def wait_until(waiter_name, params = T.unsafe(nil), options = T.unsafe(nil)); end + + # @api private + # @deprecated + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#19947 + def waiter_names; end + + # This operation is not supported by directory buckets. + # + # + # + # Passes transformed objects to a `GetObject` operation when using + # Object Lambda access points. For information about Object Lambda + # access points, see [Transforming objects with Object Lambda access + # points][1] in the *Amazon S3 User Guide*. + # + # This operation supports metadata that can be returned by + # [GetObject][2], in addition to `RequestRoute`, `RequestToken`, + # `StatusCode`, `ErrorCode`, and `ErrorMessage`. The `GetObject` + # response metadata is supported so that the `WriteGetObjectResponse` + # caller, typically an Lambda function, can provide the same metadata + # when it internally invokes `GetObject`. When `WriteGetObjectResponse` + # is called by a customer-owned Lambda function, the metadata returned + # to the end user `GetObject` call might differ from what Amazon S3 + # would normally return. + # + # You can include any number of metadata headers. When including a + # metadata header, it should be prefaced with `x-amz-meta`. For example, + # `x-amz-meta-my-custom-header: MyCustomValue`. The primary use case for + # this is to forward `GetObject` metadata. + # + # Amazon Web Services provides some prebuilt Lambda functions that you + # can use with S3 Object Lambda to detect and redact personally + # identifiable information (PII) and decompress S3 objects. These Lambda + # functions are available in the Amazon Web Services Serverless + # Application Repository, and can be selected through the Amazon Web + # Services Management Console when you create your Object Lambda access + # point. + # + # Example 1: PII Access Control - This Lambda function uses Amazon + # Comprehend, a natural language processing (NLP) service using machine + # learning to find insights and relationships in text. It automatically + # detects personally identifiable information (PII) such as names, + # addresses, dates, credit card numbers, and social security numbers + # from documents in your Amazon S3 bucket. + # + # Example 2: PII Redaction - This Lambda function uses Amazon + # Comprehend, a natural language processing (NLP) service using machine + # learning to find insights and relationships in text. It automatically + # redacts personally identifiable information (PII) such as names, + # addresses, dates, credit card numbers, and social security numbers + # from documents in your Amazon S3 bucket. + # + # Example 3: Decompression - The Lambda function + # S3ObjectLambdaDecompression, is equipped to decompress objects stored + # in S3 in one of six compressed file formats including bzip2, gzip, + # snappy, zlib, zstandard and ZIP. + # + # For information on how to view and use these functions, see [Using + # Amazon Web Services built Lambda functions][3] in the *Amazon S3 User + # Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html + # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-examples.html + # + # @example Request syntax with placeholder values + # + # resp = client.write_get_object_response({ + # request_route: "RequestRoute", # required + # request_token: "RequestToken", # required + # body: source_file, + # status_code: 1, + # error_code: "ErrorCode", + # error_message: "ErrorMessage", + # accept_ranges: "AcceptRanges", + # cache_control: "CacheControl", + # content_disposition: "ContentDisposition", + # content_encoding: "ContentEncoding", + # content_language: "ContentLanguage", + # content_length: 1, + # content_range: "ContentRange", + # content_type: "ContentType", + # checksum_crc32: "ChecksumCRC32", + # checksum_crc32c: "ChecksumCRC32C", + # checksum_sha1: "ChecksumSHA1", + # checksum_sha256: "ChecksumSHA256", + # delete_marker: false, + # etag: "ETag", + # expires: Time.now, + # expiration: "Expiration", + # last_modified: Time.now, + # missing_meta: 1, + # metadata: { + # "MetadataKey" => "MetadataValue", + # }, + # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE + # object_lock_legal_hold_status: "ON", # accepts ON, OFF + # object_lock_retain_until_date: Time.now, + # parts_count: 1, + # replication_status: "COMPLETE", # accepts COMPLETE, PENDING, FAILED, REPLICA, COMPLETED + # request_charged: "requester", # accepts requester + # restore: "Restore", + # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse + # sse_customer_algorithm: "SSECustomerAlgorithm", + # ssekms_key_id: "SSEKMSKeyId", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE + # tag_count: 1, + # version_id: "ObjectVersionId", + # bucket_key_enabled: false, + # }) + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @overload write_get_object_response + # @param params [Hash] ({}) + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/WriteGetObjectResponse AWS API Documentation + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#19821 + def write_get_object_response(params = T.unsafe(nil), options = T.unsafe(nil)); end + + private + + # @param waiter_name [Symbol] + # @param options [Hash] ({}) + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#19955 + def waiter(waiter_name, options = T.unsafe(nil)); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#19964 + def waiters; end + + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#19979 + def errors_module; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/client.rb#19976 + def identifier; end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#13 +module Aws::S3::ClientApi + include ::Seahorse::Model +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#2788 +Aws::S3::ClientApi::API = T.let(T.unsafe(nil), Seahorse::Model::Api) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#17 +Aws::S3::ClientApi::AbortDate = T.let(T.unsafe(nil), Seahorse::Model::Shapes::TimestampShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#18 +Aws::S3::ClientApi::AbortIncompleteMultipartUpload = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#19 +Aws::S3::ClientApi::AbortMultipartUploadOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#20 +Aws::S3::ClientApi::AbortMultipartUploadRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#21 +Aws::S3::ClientApi::AbortRuleId = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#22 +Aws::S3::ClientApi::AccelerateConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#23 +Aws::S3::ClientApi::AcceptRanges = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#24 +Aws::S3::ClientApi::AccessControlPolicy = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#25 +Aws::S3::ClientApi::AccessControlTranslation = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#26 +Aws::S3::ClientApi::AccessKeyIdValue = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#27 +Aws::S3::ClientApi::AccessPointAlias = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#28 +Aws::S3::ClientApi::AccessPointArn = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#29 +Aws::S3::ClientApi::AccountId = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#30 +Aws::S3::ClientApi::AllowQuotedRecordDelimiter = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#31 +Aws::S3::ClientApi::AllowedHeader = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#32 +Aws::S3::ClientApi::AllowedHeaders = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#33 +Aws::S3::ClientApi::AllowedMethod = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#34 +Aws::S3::ClientApi::AllowedMethods = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#35 +Aws::S3::ClientApi::AllowedOrigin = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#36 +Aws::S3::ClientApi::AllowedOrigins = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#37 +Aws::S3::ClientApi::AnalyticsAndOperator = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#38 +Aws::S3::ClientApi::AnalyticsConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#39 +Aws::S3::ClientApi::AnalyticsConfigurationList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#40 +Aws::S3::ClientApi::AnalyticsExportDestination = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#41 +Aws::S3::ClientApi::AnalyticsFilter = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#42 +Aws::S3::ClientApi::AnalyticsId = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#43 +Aws::S3::ClientApi::AnalyticsS3BucketDestination = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#44 +Aws::S3::ClientApi::AnalyticsS3ExportFileFormat = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#45 +Aws::S3::ClientApi::ArchiveStatus = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#46 +Aws::S3::ClientApi::Body = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BlobShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#47 +Aws::S3::ClientApi::Bucket = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#48 +Aws::S3::ClientApi::BucketAccelerateStatus = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#49 +Aws::S3::ClientApi::BucketAlreadyExists = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#50 +Aws::S3::ClientApi::BucketAlreadyOwnedByYou = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#51 +Aws::S3::ClientApi::BucketCannedACL = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#52 +Aws::S3::ClientApi::BucketInfo = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#53 +Aws::S3::ClientApi::BucketKeyEnabled = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#54 +Aws::S3::ClientApi::BucketLifecycleConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#55 +Aws::S3::ClientApi::BucketLocationConstraint = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#56 +Aws::S3::ClientApi::BucketLocationName = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#57 +Aws::S3::ClientApi::BucketLoggingStatus = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#58 +Aws::S3::ClientApi::BucketLogsPermission = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#59 +Aws::S3::ClientApi::BucketName = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#60 +Aws::S3::ClientApi::BucketType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#61 +Aws::S3::ClientApi::BucketVersioningStatus = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#62 +Aws::S3::ClientApi::Buckets = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#63 +Aws::S3::ClientApi::BypassGovernanceRetention = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#64 +Aws::S3::ClientApi::BytesProcessed = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#65 +Aws::S3::ClientApi::BytesReturned = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#66 +Aws::S3::ClientApi::BytesScanned = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#67 +Aws::S3::ClientApi::CORSConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#68 +Aws::S3::ClientApi::CORSRule = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#69 +Aws::S3::ClientApi::CORSRules = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#70 +Aws::S3::ClientApi::CSVInput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#71 +Aws::S3::ClientApi::CSVOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#72 +Aws::S3::ClientApi::CacheControl = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#73 +Aws::S3::ClientApi::Checksum = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#74 +Aws::S3::ClientApi::ChecksumAlgorithm = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#75 +Aws::S3::ClientApi::ChecksumAlgorithmList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#76 +Aws::S3::ClientApi::ChecksumCRC32 = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#77 +Aws::S3::ClientApi::ChecksumCRC32C = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#78 +Aws::S3::ClientApi::ChecksumMode = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#79 +Aws::S3::ClientApi::ChecksumSHA1 = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#80 +Aws::S3::ClientApi::ChecksumSHA256 = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#81 +Aws::S3::ClientApi::CloudFunction = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#82 +Aws::S3::ClientApi::CloudFunctionConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#83 +Aws::S3::ClientApi::CloudFunctionInvocationRole = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#84 +Aws::S3::ClientApi::Code = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#85 +Aws::S3::ClientApi::Comments = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#86 +Aws::S3::ClientApi::CommonPrefix = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#87 +Aws::S3::ClientApi::CommonPrefixList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#88 +Aws::S3::ClientApi::CompleteMultipartUploadOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#89 +Aws::S3::ClientApi::CompleteMultipartUploadRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#90 +Aws::S3::ClientApi::CompletedMultipartUpload = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#91 +Aws::S3::ClientApi::CompletedPart = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#92 +Aws::S3::ClientApi::CompletedPartList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#93 +Aws::S3::ClientApi::CompressionType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#94 +Aws::S3::ClientApi::Condition = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#95 +Aws::S3::ClientApi::ConfirmRemoveSelfBucketAccess = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#96 +Aws::S3::ClientApi::ContentDisposition = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#97 +Aws::S3::ClientApi::ContentEncoding = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#98 +Aws::S3::ClientApi::ContentLanguage = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#99 +Aws::S3::ClientApi::ContentLength = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#100 +Aws::S3::ClientApi::ContentMD5 = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#101 +Aws::S3::ClientApi::ContentRange = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#102 +Aws::S3::ClientApi::ContentType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#103 +Aws::S3::ClientApi::ContinuationEvent = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#104 +Aws::S3::ClientApi::CopyObjectOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#105 +Aws::S3::ClientApi::CopyObjectRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#106 +Aws::S3::ClientApi::CopyObjectResult = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#107 +Aws::S3::ClientApi::CopyPartResult = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#108 +Aws::S3::ClientApi::CopySource = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#109 +Aws::S3::ClientApi::CopySourceIfMatch = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#110 +Aws::S3::ClientApi::CopySourceIfModifiedSince = T.let(T.unsafe(nil), Seahorse::Model::Shapes::TimestampShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#111 +Aws::S3::ClientApi::CopySourceIfNoneMatch = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#112 +Aws::S3::ClientApi::CopySourceIfUnmodifiedSince = T.let(T.unsafe(nil), Seahorse::Model::Shapes::TimestampShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#113 +Aws::S3::ClientApi::CopySourceRange = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#114 +Aws::S3::ClientApi::CopySourceSSECustomerAlgorithm = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#115 +Aws::S3::ClientApi::CopySourceSSECustomerKey = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#116 +Aws::S3::ClientApi::CopySourceSSECustomerKeyMD5 = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#117 +Aws::S3::ClientApi::CopySourceVersionId = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#118 +Aws::S3::ClientApi::CreateBucketConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#119 +Aws::S3::ClientApi::CreateBucketOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#120 +Aws::S3::ClientApi::CreateBucketRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#121 +Aws::S3::ClientApi::CreateMultipartUploadOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#122 +Aws::S3::ClientApi::CreateMultipartUploadRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#123 +Aws::S3::ClientApi::CreateSessionOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#124 +Aws::S3::ClientApi::CreateSessionRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#125 +Aws::S3::ClientApi::CreationDate = T.let(T.unsafe(nil), Seahorse::Model::Shapes::TimestampShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#126 +Aws::S3::ClientApi::DataRedundancy = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#127 +Aws::S3::ClientApi::Date = T.let(T.unsafe(nil), Seahorse::Model::Shapes::TimestampShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#128 +Aws::S3::ClientApi::Days = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#129 +Aws::S3::ClientApi::DaysAfterInitiation = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#130 +Aws::S3::ClientApi::DefaultRetention = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#131 +Aws::S3::ClientApi::Delete = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#132 +Aws::S3::ClientApi::DeleteBucketAnalyticsConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#133 +Aws::S3::ClientApi::DeleteBucketCorsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#134 +Aws::S3::ClientApi::DeleteBucketEncryptionRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#135 +Aws::S3::ClientApi::DeleteBucketIntelligentTieringConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#136 +Aws::S3::ClientApi::DeleteBucketInventoryConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#137 +Aws::S3::ClientApi::DeleteBucketLifecycleRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#138 +Aws::S3::ClientApi::DeleteBucketMetricsConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#139 +Aws::S3::ClientApi::DeleteBucketOwnershipControlsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#140 +Aws::S3::ClientApi::DeleteBucketPolicyRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#141 +Aws::S3::ClientApi::DeleteBucketReplicationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#142 +Aws::S3::ClientApi::DeleteBucketRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#143 +Aws::S3::ClientApi::DeleteBucketTaggingRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#144 +Aws::S3::ClientApi::DeleteBucketWebsiteRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#145 +Aws::S3::ClientApi::DeleteMarker = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#146 +Aws::S3::ClientApi::DeleteMarkerEntry = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#147 +Aws::S3::ClientApi::DeleteMarkerReplication = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#148 +Aws::S3::ClientApi::DeleteMarkerReplicationStatus = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#149 +Aws::S3::ClientApi::DeleteMarkerVersionId = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#150 +Aws::S3::ClientApi::DeleteMarkers = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#151 +Aws::S3::ClientApi::DeleteObjectOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#152 +Aws::S3::ClientApi::DeleteObjectRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#153 +Aws::S3::ClientApi::DeleteObjectTaggingOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#154 +Aws::S3::ClientApi::DeleteObjectTaggingRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#155 +Aws::S3::ClientApi::DeleteObjectsOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#156 +Aws::S3::ClientApi::DeleteObjectsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#157 +Aws::S3::ClientApi::DeletePublicAccessBlockRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#158 +Aws::S3::ClientApi::DeletedObject = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#159 +Aws::S3::ClientApi::DeletedObjects = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#160 +Aws::S3::ClientApi::Delimiter = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#161 +Aws::S3::ClientApi::Description = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#162 +Aws::S3::ClientApi::Destination = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#163 +Aws::S3::ClientApi::DirectoryBucketToken = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#164 +Aws::S3::ClientApi::DisplayName = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#165 +Aws::S3::ClientApi::ETag = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#166 +Aws::S3::ClientApi::EmailAddress = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#167 +Aws::S3::ClientApi::EnableRequestProgress = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#168 +Aws::S3::ClientApi::EncodingType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#169 +Aws::S3::ClientApi::Encryption = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#170 +Aws::S3::ClientApi::EncryptionConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#171 +Aws::S3::ClientApi::End = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#172 +Aws::S3::ClientApi::EndEvent = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#173 +Aws::S3::ClientApi::Error = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#174 +Aws::S3::ClientApi::ErrorCode = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#175 +Aws::S3::ClientApi::ErrorDocument = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#176 +Aws::S3::ClientApi::ErrorMessage = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#177 +Aws::S3::ClientApi::Errors = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#178 +Aws::S3::ClientApi::Event = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#179 +Aws::S3::ClientApi::EventBridgeConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#180 +Aws::S3::ClientApi::EventList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#181 +Aws::S3::ClientApi::ExistingObjectReplication = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#182 +Aws::S3::ClientApi::ExistingObjectReplicationStatus = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#183 +Aws::S3::ClientApi::Expiration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#184 +Aws::S3::ClientApi::ExpirationStatus = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#185 +Aws::S3::ClientApi::ExpiredObjectDeleteMarker = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#186 +Aws::S3::ClientApi::Expires = T.let(T.unsafe(nil), Seahorse::Model::Shapes::TimestampShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#187 +Aws::S3::ClientApi::ExpiresString = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#188 +Aws::S3::ClientApi::ExposeHeader = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#189 +Aws::S3::ClientApi::ExposeHeaders = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#190 +Aws::S3::ClientApi::Expression = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#191 +Aws::S3::ClientApi::ExpressionType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#192 +Aws::S3::ClientApi::FetchOwner = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#193 +Aws::S3::ClientApi::FieldDelimiter = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#194 +Aws::S3::ClientApi::FileHeaderInfo = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#195 +Aws::S3::ClientApi::FilterRule = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#196 +Aws::S3::ClientApi::FilterRuleList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#197 +Aws::S3::ClientApi::FilterRuleName = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#198 +Aws::S3::ClientApi::FilterRuleValue = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#199 +Aws::S3::ClientApi::GetBucketAccelerateConfigurationOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#200 +Aws::S3::ClientApi::GetBucketAccelerateConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#201 +Aws::S3::ClientApi::GetBucketAclOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#202 +Aws::S3::ClientApi::GetBucketAclRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#203 +Aws::S3::ClientApi::GetBucketAnalyticsConfigurationOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#204 +Aws::S3::ClientApi::GetBucketAnalyticsConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#205 +Aws::S3::ClientApi::GetBucketCorsOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#206 +Aws::S3::ClientApi::GetBucketCorsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#207 +Aws::S3::ClientApi::GetBucketEncryptionOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#208 +Aws::S3::ClientApi::GetBucketEncryptionRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#209 +Aws::S3::ClientApi::GetBucketIntelligentTieringConfigurationOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#210 +Aws::S3::ClientApi::GetBucketIntelligentTieringConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#211 +Aws::S3::ClientApi::GetBucketInventoryConfigurationOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#212 +Aws::S3::ClientApi::GetBucketInventoryConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#213 +Aws::S3::ClientApi::GetBucketLifecycleConfigurationOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#214 +Aws::S3::ClientApi::GetBucketLifecycleConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#215 +Aws::S3::ClientApi::GetBucketLifecycleOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#216 +Aws::S3::ClientApi::GetBucketLifecycleRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#217 +Aws::S3::ClientApi::GetBucketLocationOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#218 +Aws::S3::ClientApi::GetBucketLocationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#219 +Aws::S3::ClientApi::GetBucketLoggingOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#220 +Aws::S3::ClientApi::GetBucketLoggingRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#221 +Aws::S3::ClientApi::GetBucketMetricsConfigurationOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#222 +Aws::S3::ClientApi::GetBucketMetricsConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#223 +Aws::S3::ClientApi::GetBucketNotificationConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#224 +Aws::S3::ClientApi::GetBucketOwnershipControlsOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#225 +Aws::S3::ClientApi::GetBucketOwnershipControlsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#226 +Aws::S3::ClientApi::GetBucketPolicyOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#227 +Aws::S3::ClientApi::GetBucketPolicyRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#228 +Aws::S3::ClientApi::GetBucketPolicyStatusOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#229 +Aws::S3::ClientApi::GetBucketPolicyStatusRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#230 +Aws::S3::ClientApi::GetBucketReplicationOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#231 +Aws::S3::ClientApi::GetBucketReplicationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#232 +Aws::S3::ClientApi::GetBucketRequestPaymentOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#233 +Aws::S3::ClientApi::GetBucketRequestPaymentRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#234 +Aws::S3::ClientApi::GetBucketTaggingOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#235 +Aws::S3::ClientApi::GetBucketTaggingRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#236 +Aws::S3::ClientApi::GetBucketVersioningOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#237 +Aws::S3::ClientApi::GetBucketVersioningRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#238 +Aws::S3::ClientApi::GetBucketWebsiteOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#239 +Aws::S3::ClientApi::GetBucketWebsiteRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#240 +Aws::S3::ClientApi::GetObjectAclOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#241 +Aws::S3::ClientApi::GetObjectAclRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#242 +Aws::S3::ClientApi::GetObjectAttributesOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#243 +Aws::S3::ClientApi::GetObjectAttributesParts = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#244 +Aws::S3::ClientApi::GetObjectAttributesRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#245 +Aws::S3::ClientApi::GetObjectLegalHoldOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#246 +Aws::S3::ClientApi::GetObjectLegalHoldRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#247 +Aws::S3::ClientApi::GetObjectLockConfigurationOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#248 +Aws::S3::ClientApi::GetObjectLockConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#249 +Aws::S3::ClientApi::GetObjectOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#250 +Aws::S3::ClientApi::GetObjectRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#251 +Aws::S3::ClientApi::GetObjectResponseStatusCode = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#252 +Aws::S3::ClientApi::GetObjectRetentionOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#253 +Aws::S3::ClientApi::GetObjectRetentionRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#254 +Aws::S3::ClientApi::GetObjectTaggingOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#255 +Aws::S3::ClientApi::GetObjectTaggingRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#256 +Aws::S3::ClientApi::GetObjectTorrentOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#257 +Aws::S3::ClientApi::GetObjectTorrentRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#258 +Aws::S3::ClientApi::GetPublicAccessBlockOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#259 +Aws::S3::ClientApi::GetPublicAccessBlockRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#260 +Aws::S3::ClientApi::GlacierJobParameters = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#261 +Aws::S3::ClientApi::Grant = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#262 +Aws::S3::ClientApi::GrantFullControl = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#263 +Aws::S3::ClientApi::GrantRead = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#264 +Aws::S3::ClientApi::GrantReadACP = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#265 +Aws::S3::ClientApi::GrantWrite = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#266 +Aws::S3::ClientApi::GrantWriteACP = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#267 +Aws::S3::ClientApi::Grantee = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#268 +Aws::S3::ClientApi::Grants = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#269 +Aws::S3::ClientApi::HeadBucketOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#270 +Aws::S3::ClientApi::HeadBucketRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#271 +Aws::S3::ClientApi::HeadObjectOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#272 +Aws::S3::ClientApi::HeadObjectRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#273 +Aws::S3::ClientApi::HostName = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#274 +Aws::S3::ClientApi::HttpErrorCodeReturnedEquals = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#275 +Aws::S3::ClientApi::HttpRedirectCode = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#276 +Aws::S3::ClientApi::ID = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#277 +Aws::S3::ClientApi::IfMatch = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#278 +Aws::S3::ClientApi::IfModifiedSince = T.let(T.unsafe(nil), Seahorse::Model::Shapes::TimestampShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#279 +Aws::S3::ClientApi::IfNoneMatch = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#280 +Aws::S3::ClientApi::IfUnmodifiedSince = T.let(T.unsafe(nil), Seahorse::Model::Shapes::TimestampShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#281 +Aws::S3::ClientApi::IndexDocument = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#282 +Aws::S3::ClientApi::Initiated = T.let(T.unsafe(nil), Seahorse::Model::Shapes::TimestampShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#283 +Aws::S3::ClientApi::Initiator = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#284 +Aws::S3::ClientApi::InputSerialization = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#285 +Aws::S3::ClientApi::IntelligentTieringAccessTier = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#286 +Aws::S3::ClientApi::IntelligentTieringAndOperator = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#287 +Aws::S3::ClientApi::IntelligentTieringConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#288 +Aws::S3::ClientApi::IntelligentTieringConfigurationList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#289 +Aws::S3::ClientApi::IntelligentTieringDays = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#290 +Aws::S3::ClientApi::IntelligentTieringFilter = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#291 +Aws::S3::ClientApi::IntelligentTieringId = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#292 +Aws::S3::ClientApi::IntelligentTieringStatus = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#293 +Aws::S3::ClientApi::InvalidObjectState = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#294 +Aws::S3::ClientApi::InventoryConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#295 +Aws::S3::ClientApi::InventoryConfigurationList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#296 +Aws::S3::ClientApi::InventoryDestination = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#297 +Aws::S3::ClientApi::InventoryEncryption = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#298 +Aws::S3::ClientApi::InventoryFilter = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#299 +Aws::S3::ClientApi::InventoryFormat = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#300 +Aws::S3::ClientApi::InventoryFrequency = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#301 +Aws::S3::ClientApi::InventoryId = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#302 +Aws::S3::ClientApi::InventoryIncludedObjectVersions = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#303 +Aws::S3::ClientApi::InventoryOptionalField = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#304 +Aws::S3::ClientApi::InventoryOptionalFields = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#305 +Aws::S3::ClientApi::InventoryS3BucketDestination = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#306 +Aws::S3::ClientApi::InventorySchedule = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#307 +Aws::S3::ClientApi::IsEnabled = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#308 +Aws::S3::ClientApi::IsLatest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#309 +Aws::S3::ClientApi::IsPublic = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#310 +Aws::S3::ClientApi::IsRestoreInProgress = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#311 +Aws::S3::ClientApi::IsTruncated = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#312 +Aws::S3::ClientApi::JSONInput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#313 +Aws::S3::ClientApi::JSONOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#314 +Aws::S3::ClientApi::JSONType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#315 +Aws::S3::ClientApi::KMSContext = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#316 +Aws::S3::ClientApi::KeyCount = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#317 +Aws::S3::ClientApi::KeyMarker = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#318 +Aws::S3::ClientApi::KeyPrefixEquals = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#319 +Aws::S3::ClientApi::LambdaFunctionArn = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#320 +Aws::S3::ClientApi::LambdaFunctionConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#321 +Aws::S3::ClientApi::LambdaFunctionConfigurationList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#322 +Aws::S3::ClientApi::LastModified = T.let(T.unsafe(nil), Seahorse::Model::Shapes::TimestampShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#323 +Aws::S3::ClientApi::LifecycleConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#324 +Aws::S3::ClientApi::LifecycleExpiration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#325 +Aws::S3::ClientApi::LifecycleRule = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#326 +Aws::S3::ClientApi::LifecycleRuleAndOperator = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#327 +Aws::S3::ClientApi::LifecycleRuleFilter = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#328 +Aws::S3::ClientApi::LifecycleRules = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#329 +Aws::S3::ClientApi::ListBucketAnalyticsConfigurationsOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#330 +Aws::S3::ClientApi::ListBucketAnalyticsConfigurationsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#331 +Aws::S3::ClientApi::ListBucketIntelligentTieringConfigurationsOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#332 +Aws::S3::ClientApi::ListBucketIntelligentTieringConfigurationsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#333 +Aws::S3::ClientApi::ListBucketInventoryConfigurationsOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#334 +Aws::S3::ClientApi::ListBucketInventoryConfigurationsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#335 +Aws::S3::ClientApi::ListBucketMetricsConfigurationsOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#336 +Aws::S3::ClientApi::ListBucketMetricsConfigurationsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#337 +Aws::S3::ClientApi::ListBucketsOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#338 +Aws::S3::ClientApi::ListBucketsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#339 +Aws::S3::ClientApi::ListDirectoryBucketsOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#340 +Aws::S3::ClientApi::ListDirectoryBucketsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#341 +Aws::S3::ClientApi::ListMultipartUploadsOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#342 +Aws::S3::ClientApi::ListMultipartUploadsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#343 +Aws::S3::ClientApi::ListObjectVersionsOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#344 +Aws::S3::ClientApi::ListObjectVersionsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#345 +Aws::S3::ClientApi::ListObjectsOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#346 +Aws::S3::ClientApi::ListObjectsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#347 +Aws::S3::ClientApi::ListObjectsV2Output = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#348 +Aws::S3::ClientApi::ListObjectsV2Request = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#349 +Aws::S3::ClientApi::ListPartsOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#350 +Aws::S3::ClientApi::ListPartsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#351 +Aws::S3::ClientApi::Location = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#352 +Aws::S3::ClientApi::LocationInfo = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#353 +Aws::S3::ClientApi::LocationNameAsString = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#354 +Aws::S3::ClientApi::LocationPrefix = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#355 +Aws::S3::ClientApi::LocationType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#356 +Aws::S3::ClientApi::LoggingEnabled = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#357 +Aws::S3::ClientApi::MFA = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#358 +Aws::S3::ClientApi::MFADelete = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#359 +Aws::S3::ClientApi::MFADeleteStatus = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#360 +Aws::S3::ClientApi::Marker = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#361 +Aws::S3::ClientApi::MaxAgeSeconds = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#362 +Aws::S3::ClientApi::MaxBuckets = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#363 +Aws::S3::ClientApi::MaxDirectoryBuckets = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#364 +Aws::S3::ClientApi::MaxKeys = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#365 +Aws::S3::ClientApi::MaxParts = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#366 +Aws::S3::ClientApi::MaxUploads = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#367 +Aws::S3::ClientApi::Message = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#368 +Aws::S3::ClientApi::Metadata = T.let(T.unsafe(nil), Seahorse::Model::Shapes::MapShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#369 +Aws::S3::ClientApi::MetadataDirective = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#370 +Aws::S3::ClientApi::MetadataEntry = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#371 +Aws::S3::ClientApi::MetadataKey = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#372 +Aws::S3::ClientApi::MetadataValue = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#373 +Aws::S3::ClientApi::Metrics = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#374 +Aws::S3::ClientApi::MetricsAndOperator = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#375 +Aws::S3::ClientApi::MetricsConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#376 +Aws::S3::ClientApi::MetricsConfigurationList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#377 +Aws::S3::ClientApi::MetricsFilter = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#378 +Aws::S3::ClientApi::MetricsId = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#379 +Aws::S3::ClientApi::MetricsStatus = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#380 +Aws::S3::ClientApi::Minutes = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#381 +Aws::S3::ClientApi::MissingMeta = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#382 +Aws::S3::ClientApi::MultipartUpload = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#383 +Aws::S3::ClientApi::MultipartUploadId = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#384 +Aws::S3::ClientApi::MultipartUploadList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#385 +Aws::S3::ClientApi::NextKeyMarker = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#386 +Aws::S3::ClientApi::NextMarker = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#387 +Aws::S3::ClientApi::NextPartNumberMarker = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#388 +Aws::S3::ClientApi::NextToken = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#389 +Aws::S3::ClientApi::NextUploadIdMarker = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#390 +Aws::S3::ClientApi::NextVersionIdMarker = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#391 +Aws::S3::ClientApi::NoSuchBucket = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#392 +Aws::S3::ClientApi::NoSuchKey = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#393 +Aws::S3::ClientApi::NoSuchUpload = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#394 +Aws::S3::ClientApi::NoncurrentVersionExpiration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#395 +Aws::S3::ClientApi::NoncurrentVersionTransition = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#396 +Aws::S3::ClientApi::NoncurrentVersionTransitionList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#397 +Aws::S3::ClientApi::NotificationConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#398 +Aws::S3::ClientApi::NotificationConfigurationDeprecated = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#399 +Aws::S3::ClientApi::NotificationConfigurationFilter = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#400 +Aws::S3::ClientApi::NotificationId = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#401 +Aws::S3::ClientApi::Object = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#402 +Aws::S3::ClientApi::ObjectAlreadyInActiveTierError = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#403 +Aws::S3::ClientApi::ObjectAttributes = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#404 +Aws::S3::ClientApi::ObjectAttributesList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#405 +Aws::S3::ClientApi::ObjectCannedACL = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#406 +Aws::S3::ClientApi::ObjectIdentifier = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#407 +Aws::S3::ClientApi::ObjectIdentifierList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#408 +Aws::S3::ClientApi::ObjectKey = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#409 +Aws::S3::ClientApi::ObjectList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#410 +Aws::S3::ClientApi::ObjectLockConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#411 +Aws::S3::ClientApi::ObjectLockEnabled = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#412 +Aws::S3::ClientApi::ObjectLockEnabledForBucket = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#413 +Aws::S3::ClientApi::ObjectLockLegalHold = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#414 +Aws::S3::ClientApi::ObjectLockLegalHoldStatus = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#415 +Aws::S3::ClientApi::ObjectLockMode = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#416 +Aws::S3::ClientApi::ObjectLockRetainUntilDate = T.let(T.unsafe(nil), Seahorse::Model::Shapes::TimestampShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#417 +Aws::S3::ClientApi::ObjectLockRetention = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#418 +Aws::S3::ClientApi::ObjectLockRetentionMode = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#419 +Aws::S3::ClientApi::ObjectLockRule = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#420 +Aws::S3::ClientApi::ObjectLockToken = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#421 +Aws::S3::ClientApi::ObjectNotInActiveTierError = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#422 +Aws::S3::ClientApi::ObjectOwnership = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#423 +Aws::S3::ClientApi::ObjectPart = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#424 +Aws::S3::ClientApi::ObjectSize = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#425 +Aws::S3::ClientApi::ObjectSizeGreaterThanBytes = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#426 +Aws::S3::ClientApi::ObjectSizeLessThanBytes = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#427 +Aws::S3::ClientApi::ObjectStorageClass = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#428 +Aws::S3::ClientApi::ObjectVersion = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#429 +Aws::S3::ClientApi::ObjectVersionId = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#430 +Aws::S3::ClientApi::ObjectVersionList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#431 +Aws::S3::ClientApi::ObjectVersionStorageClass = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#432 +Aws::S3::ClientApi::OptionalObjectAttributes = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#433 +Aws::S3::ClientApi::OptionalObjectAttributesList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#434 +Aws::S3::ClientApi::OutputLocation = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#435 +Aws::S3::ClientApi::OutputSerialization = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#436 +Aws::S3::ClientApi::Owner = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#437 +Aws::S3::ClientApi::OwnerOverride = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#438 +Aws::S3::ClientApi::OwnershipControls = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#439 +Aws::S3::ClientApi::OwnershipControlsRule = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#440 +Aws::S3::ClientApi::OwnershipControlsRules = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#441 +Aws::S3::ClientApi::ParquetInput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#442 +Aws::S3::ClientApi::Part = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#443 +Aws::S3::ClientApi::PartNumber = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#444 +Aws::S3::ClientApi::PartNumberMarker = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#445 +Aws::S3::ClientApi::PartitionDateSource = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#446 +Aws::S3::ClientApi::PartitionedPrefix = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#447 +Aws::S3::ClientApi::Parts = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#448 +Aws::S3::ClientApi::PartsCount = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#449 +Aws::S3::ClientApi::PartsList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#450 +Aws::S3::ClientApi::Payer = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#451 +Aws::S3::ClientApi::Permission = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#452 +Aws::S3::ClientApi::Policy = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#453 +Aws::S3::ClientApi::PolicyStatus = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#454 +Aws::S3::ClientApi::Prefix = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#455 +Aws::S3::ClientApi::Priority = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#456 +Aws::S3::ClientApi::Progress = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#457 +Aws::S3::ClientApi::ProgressEvent = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#458 +Aws::S3::ClientApi::Protocol = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#459 +Aws::S3::ClientApi::PublicAccessBlockConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#460 +Aws::S3::ClientApi::PutBucketAccelerateConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#461 +Aws::S3::ClientApi::PutBucketAclRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#462 +Aws::S3::ClientApi::PutBucketAnalyticsConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#463 +Aws::S3::ClientApi::PutBucketCorsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#464 +Aws::S3::ClientApi::PutBucketEncryptionRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#465 +Aws::S3::ClientApi::PutBucketIntelligentTieringConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#466 +Aws::S3::ClientApi::PutBucketInventoryConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#467 +Aws::S3::ClientApi::PutBucketLifecycleConfigurationOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#468 +Aws::S3::ClientApi::PutBucketLifecycleConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#469 +Aws::S3::ClientApi::PutBucketLifecycleRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#470 +Aws::S3::ClientApi::PutBucketLoggingRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#471 +Aws::S3::ClientApi::PutBucketMetricsConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#472 +Aws::S3::ClientApi::PutBucketNotificationConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#473 +Aws::S3::ClientApi::PutBucketNotificationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#474 +Aws::S3::ClientApi::PutBucketOwnershipControlsRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#475 +Aws::S3::ClientApi::PutBucketPolicyRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#476 +Aws::S3::ClientApi::PutBucketReplicationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#477 +Aws::S3::ClientApi::PutBucketRequestPaymentRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#478 +Aws::S3::ClientApi::PutBucketTaggingRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#479 +Aws::S3::ClientApi::PutBucketVersioningRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#480 +Aws::S3::ClientApi::PutBucketWebsiteRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#481 +Aws::S3::ClientApi::PutObjectAclOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#482 +Aws::S3::ClientApi::PutObjectAclRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#483 +Aws::S3::ClientApi::PutObjectLegalHoldOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#484 +Aws::S3::ClientApi::PutObjectLegalHoldRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#485 +Aws::S3::ClientApi::PutObjectLockConfigurationOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#486 +Aws::S3::ClientApi::PutObjectLockConfigurationRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#487 +Aws::S3::ClientApi::PutObjectOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#488 +Aws::S3::ClientApi::PutObjectRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#489 +Aws::S3::ClientApi::PutObjectRetentionOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#490 +Aws::S3::ClientApi::PutObjectRetentionRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#491 +Aws::S3::ClientApi::PutObjectTaggingOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#492 +Aws::S3::ClientApi::PutObjectTaggingRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#493 +Aws::S3::ClientApi::PutPublicAccessBlockRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#494 +Aws::S3::ClientApi::QueueArn = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#495 +Aws::S3::ClientApi::QueueConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#496 +Aws::S3::ClientApi::QueueConfigurationDeprecated = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#497 +Aws::S3::ClientApi::QueueConfigurationList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#498 +Aws::S3::ClientApi::Quiet = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#499 +Aws::S3::ClientApi::QuoteCharacter = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#500 +Aws::S3::ClientApi::QuoteEscapeCharacter = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#501 +Aws::S3::ClientApi::QuoteFields = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#502 +Aws::S3::ClientApi::Range = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#503 +Aws::S3::ClientApi::RecordDelimiter = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#504 +Aws::S3::ClientApi::RecordsEvent = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#505 +Aws::S3::ClientApi::Redirect = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#506 +Aws::S3::ClientApi::RedirectAllRequestsTo = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#507 +Aws::S3::ClientApi::Region = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#508 +Aws::S3::ClientApi::ReplaceKeyPrefixWith = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#509 +Aws::S3::ClientApi::ReplaceKeyWith = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#510 +Aws::S3::ClientApi::ReplicaKmsKeyID = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#511 +Aws::S3::ClientApi::ReplicaModifications = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#512 +Aws::S3::ClientApi::ReplicaModificationsStatus = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#513 +Aws::S3::ClientApi::ReplicationConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#514 +Aws::S3::ClientApi::ReplicationRule = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#515 +Aws::S3::ClientApi::ReplicationRuleAndOperator = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#516 +Aws::S3::ClientApi::ReplicationRuleFilter = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#517 +Aws::S3::ClientApi::ReplicationRuleStatus = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#518 +Aws::S3::ClientApi::ReplicationRules = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#519 +Aws::S3::ClientApi::ReplicationStatus = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#520 +Aws::S3::ClientApi::ReplicationTime = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#521 +Aws::S3::ClientApi::ReplicationTimeStatus = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#522 +Aws::S3::ClientApi::ReplicationTimeValue = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#523 +Aws::S3::ClientApi::RequestCharged = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#524 +Aws::S3::ClientApi::RequestPayer = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#525 +Aws::S3::ClientApi::RequestPaymentConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#526 +Aws::S3::ClientApi::RequestProgress = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#527 +Aws::S3::ClientApi::RequestRoute = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#528 +Aws::S3::ClientApi::RequestToken = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#529 +Aws::S3::ClientApi::ResponseCacheControl = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#530 +Aws::S3::ClientApi::ResponseContentDisposition = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#531 +Aws::S3::ClientApi::ResponseContentEncoding = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#532 +Aws::S3::ClientApi::ResponseContentLanguage = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#533 +Aws::S3::ClientApi::ResponseContentType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#534 +Aws::S3::ClientApi::ResponseExpires = T.let(T.unsafe(nil), Seahorse::Model::Shapes::TimestampShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#535 +Aws::S3::ClientApi::Restore = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#536 +Aws::S3::ClientApi::RestoreExpiryDate = T.let(T.unsafe(nil), Seahorse::Model::Shapes::TimestampShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#537 +Aws::S3::ClientApi::RestoreObjectOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#538 +Aws::S3::ClientApi::RestoreObjectRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#539 +Aws::S3::ClientApi::RestoreOutputPath = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#540 +Aws::S3::ClientApi::RestoreRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#541 +Aws::S3::ClientApi::RestoreRequestType = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#542 +Aws::S3::ClientApi::RestoreStatus = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#543 +Aws::S3::ClientApi::Role = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#544 +Aws::S3::ClientApi::RoutingRule = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#545 +Aws::S3::ClientApi::RoutingRules = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#546 +Aws::S3::ClientApi::Rule = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#547 +Aws::S3::ClientApi::Rules = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#548 +Aws::S3::ClientApi::S3KeyFilter = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#549 +Aws::S3::ClientApi::S3Location = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#550 +Aws::S3::ClientApi::SSECustomerAlgorithm = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#551 +Aws::S3::ClientApi::SSECustomerKey = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#552 +Aws::S3::ClientApi::SSECustomerKeyMD5 = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#553 +Aws::S3::ClientApi::SSEKMS = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#554 +Aws::S3::ClientApi::SSEKMSEncryptionContext = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#555 +Aws::S3::ClientApi::SSEKMSKeyId = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#556 +Aws::S3::ClientApi::SSES3 = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#557 +Aws::S3::ClientApi::ScanRange = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#558 +Aws::S3::ClientApi::SelectObjectContentEventStream = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#559 +Aws::S3::ClientApi::SelectObjectContentOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#560 +Aws::S3::ClientApi::SelectObjectContentRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#561 +Aws::S3::ClientApi::SelectParameters = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#562 +Aws::S3::ClientApi::ServerSideEncryption = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#563 +Aws::S3::ClientApi::ServerSideEncryptionByDefault = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#564 +Aws::S3::ClientApi::ServerSideEncryptionConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#565 +Aws::S3::ClientApi::ServerSideEncryptionRule = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#566 +Aws::S3::ClientApi::ServerSideEncryptionRules = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#567 +Aws::S3::ClientApi::SessionCredentialValue = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#568 +Aws::S3::ClientApi::SessionCredentials = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#569 +Aws::S3::ClientApi::SessionExpiration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::TimestampShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#570 +Aws::S3::ClientApi::SessionMode = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#571 +Aws::S3::ClientApi::Setting = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#572 +Aws::S3::ClientApi::SimplePrefix = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#573 +Aws::S3::ClientApi::Size = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#574 +Aws::S3::ClientApi::SkipValidation = T.let(T.unsafe(nil), Seahorse::Model::Shapes::BooleanShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#575 +Aws::S3::ClientApi::SourceSelectionCriteria = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#576 +Aws::S3::ClientApi::SseKmsEncryptedObjects = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#577 +Aws::S3::ClientApi::SseKmsEncryptedObjectsStatus = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#578 +Aws::S3::ClientApi::Start = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#579 +Aws::S3::ClientApi::StartAfter = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#580 +Aws::S3::ClientApi::Stats = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#581 +Aws::S3::ClientApi::StatsEvent = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#582 +Aws::S3::ClientApi::StorageClass = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#583 +Aws::S3::ClientApi::StorageClassAnalysis = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#584 +Aws::S3::ClientApi::StorageClassAnalysisDataExport = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#585 +Aws::S3::ClientApi::StorageClassAnalysisSchemaVersion = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#586 +Aws::S3::ClientApi::Suffix = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#587 +Aws::S3::ClientApi::Tag = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#588 +Aws::S3::ClientApi::TagCount = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#589 +Aws::S3::ClientApi::TagSet = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#590 +Aws::S3::ClientApi::Tagging = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#591 +Aws::S3::ClientApi::TaggingDirective = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#592 +Aws::S3::ClientApi::TaggingHeader = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#593 +Aws::S3::ClientApi::TargetBucket = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#594 +Aws::S3::ClientApi::TargetGrant = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#595 +Aws::S3::ClientApi::TargetGrants = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#596 +Aws::S3::ClientApi::TargetObjectKeyFormat = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#597 +Aws::S3::ClientApi::TargetPrefix = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#598 +Aws::S3::ClientApi::Tier = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#599 +Aws::S3::ClientApi::Tiering = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#600 +Aws::S3::ClientApi::TieringList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#601 +Aws::S3::ClientApi::Token = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#602 +Aws::S3::ClientApi::TopicArn = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#603 +Aws::S3::ClientApi::TopicConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#604 +Aws::S3::ClientApi::TopicConfigurationDeprecated = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#605 +Aws::S3::ClientApi::TopicConfigurationList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#606 +Aws::S3::ClientApi::Transition = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#607 +Aws::S3::ClientApi::TransitionDefaultMinimumObjectSize = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#608 +Aws::S3::ClientApi::TransitionList = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#609 +Aws::S3::ClientApi::TransitionStorageClass = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#610 +Aws::S3::ClientApi::Type = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#611 +Aws::S3::ClientApi::URI = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#612 +Aws::S3::ClientApi::UploadIdMarker = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#613 +Aws::S3::ClientApi::UploadPartCopyOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#614 +Aws::S3::ClientApi::UploadPartCopyRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#615 +Aws::S3::ClientApi::UploadPartOutput = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#616 +Aws::S3::ClientApi::UploadPartRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#617 +Aws::S3::ClientApi::UserMetadata = T.let(T.unsafe(nil), Seahorse::Model::Shapes::ListShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#618 +Aws::S3::ClientApi::Value = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#619 +Aws::S3::ClientApi::VersionCount = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#620 +Aws::S3::ClientApi::VersionIdMarker = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#621 +Aws::S3::ClientApi::VersioningConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#622 +Aws::S3::ClientApi::WebsiteConfiguration = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#623 +Aws::S3::ClientApi::WebsiteRedirectLocation = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StringShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#624 +Aws::S3::ClientApi::WriteGetObjectResponseRequest = T.let(T.unsafe(nil), Seahorse::Model::Shapes::StructureShape) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/client_api.rb#625 +Aws::S3::ClientApi::Years = T.let(T.unsafe(nil), Seahorse::Model::Shapes::IntegerShape) + +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption.rb#21 +Aws::S3::EC_USER_AGENT = T.let(T.unsafe(nil), String) + +# [MAINTENANCE MODE] There is a new version of the Encryption Client. +# AWS strongly recommends upgrading to the {Aws::S3::EncryptionV2::Client}, +# which provides updated data security best practices. +# See documentation for {Aws::S3::EncryptionV2::Client}. +# Provides an encryption client that encrypts and decrypts data client-side, +# storing the encrypted data in Amazon S3. +# +# This client uses a process called "envelope encryption". Your private +# encryption keys and your data's plain-text are **never** sent to +# Amazon S3. **If you lose you encryption keys, you will not be able to +# decrypt your data.** +# +# ## Envelope Encryption Overview +# +# The goal of envelope encryption is to combine the performance of +# fast symmetric encryption while maintaining the secure key management +# that asymmetric keys provide. +# +# A one-time-use symmetric key (envelope key) is generated client-side. +# This is used to encrypt the data client-side. This key is then +# encrypted by your master key and stored alongside your data in Amazon +# S3. +# +# When accessing your encrypted data with the encryption client, +# the encrypted envelope key is retrieved and decrypted client-side +# with your master key. The envelope key is then used to decrypt the +# data client-side. +# +# One of the benefits of envelope encryption is that if your master key +# is compromised, you have the option of just re-encrypting the stored +# envelope symmetric keys, instead of re-encrypting all of the +# data in your account. +# +# ## Basic Usage +# +# The encryption client requires an {Aws::S3::Client}. If you do not +# provide a `:client`, then a client will be constructed for you. +# +# require 'openssl' +# key = OpenSSL::PKey::RSA.new(1024) +# +# # encryption client +# s3 = Aws::S3::Encryption::Client.new(encryption_key: key) +# +# # round-trip an object, encrypted/decrypted locally +# s3.put_object(bucket:'aws-sdk', key:'secret', body:'handshake') +# s3.get_object(bucket:'aws-sdk', key:'secret').body.read +# #=> 'handshake' +# +# # reading encrypted object without the encryption client +# # results in the getting the cipher text +# Aws::S3::Client.new.get_object(bucket:'aws-sdk', key:'secret').body.read +# #=> "... cipher text ..." +# +# ## Keys +# +# For client-side encryption to work, you must provide one of the following: +# +# * An encryption key +# * A {KeyProvider} +# * A KMS encryption key id +# +# ### An Encryption Key +# +# You can pass a single encryption key. This is used as a master key +# encrypting and decrypting all object keys. +# +# key = OpenSSL::Cipher.new("AES-256-ECB").random_key # symmetric key +# key = OpenSSL::PKey::RSA.new(1024) # asymmetric key pair +# +# s3 = Aws::S3::Encryption::Client.new(encryption_key: key) +# +# ### Key Provider +# +# Alternatively, you can use a {KeyProvider}. A key provider makes +# it easy to work with multiple keys and simplifies key rotation. +# +# ### KMS Encryption Key Id +# +# If you pass the id to an AWS Key Management Service (KMS) key, +# then KMS will be used to generate, encrypt and decrypt object keys. +# +# # keep track of the kms key id +# kms = Aws::KMS::Client.new +# key_id = kms.create_key.key_metadata.key_id +# +# Aws::S3::Encryption::Client.new( +# kms_key_id: key_id, +# kms_client: kms, +# ) +# +# ## Custom Key Providers +# +# A {KeyProvider} is any object that responds to: +# +# * `#encryption_materials` +# * `#key_for(materials_description)` +# +# Here is a trivial implementation of an in-memory key provider. +# This is provided as a demonstration of the key provider interface, +# and should not be used in production: +# +# class KeyProvider +# +# def initialize(default_key_name, keys) +# @keys = keys +# @encryption_materials = Aws::S3::Encryption::Materials.new( +# key: @keys[default_key_name], +# description: JSON.dump(key: default_key_name), +# ) +# end +# +# attr_reader :encryption_materials +# +# def key_for(matdesc) +# key_name = JSON.parse(matdesc)['key'] +# if key = @keys[key_name] +# key +# else +# raise "encryption key not found for: #{matdesc.inspect}" +# end +# end +# end +# +# Given the above key provider, you can create an encryption client that +# chooses the key to use based on the materials description stored with +# the encrypted object. This makes it possible to use multiple keys +# and simplifies key rotation. +# +# # uses "new-key" for encrypting objects, uses either for decrypting +# keys = KeyProvider.new('new-key', { +# "old-key" => Base64.decode64("kM5UVbhE/4rtMZJfsadYEdm2vaKFsmV2f5+URSeUCV4="), +# "new-key" => Base64.decode64("w1WLio3agRWRTSJK/Ouh8NHoqRQ6fn5WbSXDTHjXMSo="), +# }), +# +# # chooses the key based on the materials description stored +# # with the encrypted object +# s3 = Aws::S3::Encryption::Client.new(key_provider: keys) +# +# ## Materials Description +# +# A materials description is JSON document string that is stored +# in the metadata (or instruction file) of an encrypted object. +# The {DefaultKeyProvider} uses the empty JSON document `"{}"`. +# +# When building a key provider, you are free to store whatever +# information you need to identify the master key that was used +# to encrypt the object. +# +# ## Envelope Location +# +# By default, the encryption client store the encryption envelope +# with the object, as metadata. You can choose to have the envelope +# stored in a separate "instruction file". An instruction file +# is an object, with the key of the encrypted object, suffixed with +# `".instruction"`. +# +# Specify the `:envelope_location` option as `:instruction_file` to +# use an instruction file for storing the envelope. +# +# # default behavior +# s3 = Aws::S3::Encryption::Client.new( +# key_provider: ..., +# envelope_location: :metadata, +# ) +# +# # store envelope in a separate object +# s3 = Aws::S3::Encryption::Client.new( +# key_provider: ..., +# envelope_location: :instruction_file, +# instruction_file_suffix: '.instruction' # default +# ) +# +# When using an instruction file, multiple requests are made when +# putting and getting the object. **This may cause issues if you are +# issuing concurrent PUT and GET requests to an encrypted object.** +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/client.rb#185 +module Aws::S3::Encryption; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/client.rb#186 +class Aws::S3::Encryption::Client + extend ::Aws::Deprecations + extend ::Forwardable + + # Creates a new encryption client. You must provide one of the following + # options: + # + # * `:encryption_key` + # * `:kms_key_id` + # * `:key_provider` + # + # You may also pass any other options accepted by `Client#initialize`. + # + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Client] a new instance of Client + # + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def initialize(*args, &block); end + + # source://forwardable/1.3.2/forwardable.rb#229 + def build_request(*args, **_arg1, &block); end + + # @return [S3::Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/client.rb#245 + def client; end + + # source://forwardable/1.3.2/forwardable.rb#229 + def config(*args, **_arg1, &block); end + + # source://forwardable/1.3.2/forwardable.rb#229 + def delete_object(*args, **_arg1, &block); end + + # @return [Symbol<:metadata, :instruction_file>] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/client.rb#252 + def envelope_location; end + + # Gets an object from Amazon S3, decrypting data locally. + # See {S3::Client#get_object} for documentation on accepted + # request parameters. + # + # @note The `:range` request parameter is not yet supported. + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @param params [Hash] a customizable set of options + # @return [Types::GetObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetObjectOutput#body #body} => IO + # * {Types::GetObjectOutput#delete_marker #delete_marker} => Boolean + # * {Types::GetObjectOutput#accept_ranges #accept_ranges} => String + # * {Types::GetObjectOutput#expiration #expiration} => String + # * {Types::GetObjectOutput#restore #restore} => String + # * {Types::GetObjectOutput#last_modified #last_modified} => Time + # * {Types::GetObjectOutput#content_length #content_length} => Integer + # * {Types::GetObjectOutput#etag #etag} => String + # * {Types::GetObjectOutput#checksum_crc32 #checksum_crc32} => String + # * {Types::GetObjectOutput#checksum_crc32c #checksum_crc32c} => String + # * {Types::GetObjectOutput#checksum_sha1 #checksum_sha1} => String + # * {Types::GetObjectOutput#checksum_sha256 #checksum_sha256} => String + # * {Types::GetObjectOutput#missing_meta #missing_meta} => Integer + # * {Types::GetObjectOutput#version_id #version_id} => String + # * {Types::GetObjectOutput#cache_control #cache_control} => String + # * {Types::GetObjectOutput#content_disposition #content_disposition} => String + # * {Types::GetObjectOutput#content_encoding #content_encoding} => String + # * {Types::GetObjectOutput#content_language #content_language} => String + # * {Types::GetObjectOutput#content_range #content_range} => String + # * {Types::GetObjectOutput#content_type #content_type} => String + # * {Types::GetObjectOutput#expires #expires} => Time + # * {Types::GetObjectOutput#expires_string #expires_string} => String + # * {Types::GetObjectOutput#website_redirect_location #website_redirect_location} => String + # * {Types::GetObjectOutput#server_side_encryption #server_side_encryption} => String + # * {Types::GetObjectOutput#metadata #metadata} => Hash<String,String> + # * {Types::GetObjectOutput#sse_customer_algorithm #sse_customer_algorithm} => String + # * {Types::GetObjectOutput#sse_customer_key_md5 #sse_customer_key_md5} => String + # * {Types::GetObjectOutput#ssekms_key_id #ssekms_key_id} => String + # * {Types::GetObjectOutput#bucket_key_enabled #bucket_key_enabled} => Boolean + # * {Types::GetObjectOutput#storage_class #storage_class} => String + # * {Types::GetObjectOutput#request_charged #request_charged} => String + # * {Types::GetObjectOutput#replication_status #replication_status} => String + # * {Types::GetObjectOutput#parts_count #parts_count} => Integer + # * {Types::GetObjectOutput#tag_count #tag_count} => Integer + # * {Types::GetObjectOutput#object_lock_mode #object_lock_mode} => String + # * {Types::GetObjectOutput#object_lock_retain_until_date #object_lock_retain_until_date} => Time + # * {Types::GetObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String + # @see S3::Client#get_object + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/client.rb#291 + def get_object(params = T.unsafe(nil), &block); end + + # source://forwardable/1.3.2/forwardable.rb#229 + def head_object(*args, **_arg1, &block); end + + # @return [String] When {#envelope_location} is `:instruction_file`, + # the envelope is stored in the object with the object key suffixed + # by this string. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/client.rb#257 + def instruction_file_suffix; end + + # @return [KeyProvider, nil] Returns `nil` if you are using + # AWS Key Management Service (KMS). + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/client.rb#249 + def key_provider; end + + # Uploads an object to Amazon S3, encrypting data client-side. + # See {S3::Client#put_object} for documentation on accepted + # request parameters. + # + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @param params [Hash] a customizable set of options + # @return [Types::PutObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::PutObjectOutput#expiration #expiration} => String + # * {Types::PutObjectOutput#etag #etag} => String + # * {Types::PutObjectOutput#checksum_crc32 #checksum_crc32} => String + # * {Types::PutObjectOutput#checksum_crc32c #checksum_crc32c} => String + # * {Types::PutObjectOutput#checksum_sha1 #checksum_sha1} => String + # * {Types::PutObjectOutput#checksum_sha256 #checksum_sha256} => String + # * {Types::PutObjectOutput#server_side_encryption #server_side_encryption} => String + # * {Types::PutObjectOutput#version_id #version_id} => String + # * {Types::PutObjectOutput#sse_customer_algorithm #sse_customer_algorithm} => String + # * {Types::PutObjectOutput#sse_customer_key_md5 #sse_customer_key_md5} => String + # * {Types::PutObjectOutput#ssekms_key_id #ssekms_key_id} => String + # * {Types::PutObjectOutput#ssekms_encryption_context #ssekms_encryption_context} => String + # * {Types::PutObjectOutput#bucket_key_enabled #bucket_key_enabled} => Boolean + # * {Types::PutObjectOutput#request_charged #request_charged} => String + # @see S3::Client#put_object + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/client.rb#265 + def put_object(params = T.unsafe(nil)); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/client.rb#332 + def cipher_provider(options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/client.rb#230 + def deprecated_initialize(options = T.unsafe(nil)); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/client.rb#356 + def envelope_options(params); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/client.rb#310 + def extract_client(options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/client.rb#345 + def extract_key_provider(options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/client.rb#366 + def extract_location(options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/client.rb#377 + def extract_suffix(options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/client.rb#323 + def kms_client(options); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#9 +class Aws::S3::Encryption::DecryptHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#46 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#210 + def apply_cse_user_agent(context); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#64 + def attach_http_event_listeners(context); end + + # Determine the auth tag length from the algorithm + # Validate it against the value provided in the x-amz-tag-len + # Return the tag length in bytes + # + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#196 + def auth_tag_length(envelope); end + + # This method fetches the tag from the end of the object by + # making a GET Object w/range request. This auth tag is used + # to initialize the cipher, and the decrypter truncates the + # auth tag from the body when writing the final bytes. + # + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#167 + def authenticated_decrypter(context, cipher, envelope); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#189 + def body_contains_auth_tag?(envelope); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#88 + def decryption_cipher(context); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#119 + def envelope_from_instr_file(context); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#109 + def envelope_from_metadata(context); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#130 + def extract_envelope(hash); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#101 + def get_encryption_envelope(context); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#140 + def v1_envelope(envelope); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#144 + def v2_envelope(envelope); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#44 +Aws::S3::Encryption::DecryptHandler::AUTH_REQUIRED_CEK_ALGS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#38 +Aws::S3::Encryption::DecryptHandler::POSSIBLE_ENCRYPTION_FORMATS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#28 +Aws::S3::Encryption::DecryptHandler::POSSIBLE_ENVELOPE_KEYS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#31 +Aws::S3::Encryption::DecryptHandler::POSSIBLE_WRAPPING_FORMATS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#12 +Aws::S3::Encryption::DecryptHandler::V1_ENVELOPE_KEYS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#18 +Aws::S3::Encryption::DecryptHandler::V2_ENVELOPE_KEYS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/decrypt_handler.rb#26 +Aws::S3::Encryption::DecryptHandler::V2_OPTIONAL_KEYS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/default_cipher_provider.rb#9 +class Aws::S3::Encryption::DefaultCipherProvider + # @api private + # @return [DefaultCipherProvider] a new instance of DefaultCipherProvider + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/default_cipher_provider.rb#11 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @return [Cipher] Given an encryption envelope, returns a + # decryption cipher. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/default_cipher_provider.rb#29 + def decryption_cipher(envelope, options = T.unsafe(nil)); end + + # @api private + # @return [Array] Creates an returns a new encryption + # envelope and encryption cipher. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/default_cipher_provider.rb#17 + def encryption_cipher; end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/default_cipher_provider.rb#95 + def decode64(str); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/default_cipher_provider.rb#91 + def encode64(str); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/default_cipher_provider.rb#83 + def encrypt(data); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/default_cipher_provider.rb#79 + def envelope_iv(cipher); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/default_cipher_provider.rb#75 + def envelope_key(cipher); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/default_cipher_provider.rb#87 + def materials_description; end +end + +# The default key provider is constructed with a single key +# that is used for both encryption and decryption, ignoring +# the possible per-object envelope encryption materials description. +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/default_key_provider.rb#11 +class Aws::S3::Encryption::DefaultKeyProvider + include ::Aws::S3::Encryption::KeyProvider + + # @api private + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [DefaultKeyProvider] a new instance of DefaultKeyProvider + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/default_key_provider.rb#19 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @return [Materials] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/default_key_provider.rb#27 + def encryption_materials; end + + # @api private + # @param materials_description [String] + # @return Returns the key given in the constructor. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/default_key_provider.rb#33 + def key_for(materials_description); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/encrypt_handler.rb#9 +class Aws::S3::Encryption::EncryptHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/encrypt_handler.rb#11 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/encrypt_handler.rb#50 + def apply_cse_user_agent(context); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/encrypt_handler.rb#36 + def apply_encryption_cipher(context, cipher); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/encrypt_handler.rb#21 + def apply_encryption_envelope(context, envelope, cipher); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/errors.rb#6 +module Aws::S3::Encryption::Errors; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/errors.rb#8 +class Aws::S3::Encryption::Errors::DecryptionError < ::RuntimeError; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/errors.rb#10 +class Aws::S3::Encryption::Errors::EncryptionError < ::RuntimeError; end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_auth_decrypter.rb#7 +class Aws::S3::Encryption::IOAuthDecrypter + # @api private + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [IOAuthDecrypter] a new instance of IOAuthDecrypter + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_auth_decrypter.rb#19 + def initialize(options = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_auth_decrypter.rb#33 + def finalize; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_auth_decrypter.rb#37 + def io; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_auth_decrypter.rb#25 + def write(chunk); end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_auth_decrypter.rb#43 + def truncate_chunk(chunk); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_decrypter.rb#7 +class Aws::S3::Encryption::IODecrypter + # @api private + # @param cipher [OpenSSL::Cipher] + # @param io [IO#write] An IO-like object that responds to `#write`. + # @return [IODecrypter] a new instance of IODecrypter + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_decrypter.rb#11 + def initialize(cipher, io); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_decrypter.rb#30 + def finalize; end + + # @api private + # @return [#write] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_decrypter.rb#19 + def io; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_decrypter.rb#21 + def write(chunk); end +end + +# Provides an IO wrapper encrpyting a stream of data. +# It is possible to use this same object for decrypting. You must +# initialize it with a decryptiion cipher in that case and the +# IO object must contain cipher text instead of plain text. +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_encrypter.rb#15 +class Aws::S3::Encryption::IOEncrypter + # @api private + # @return [IOEncrypter] a new instance of IOEncrypter + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_encrypter.rb#20 + def initialize(cipher, io); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_encrypter.rb#43 + def close; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_encrypter.rb#30 + def read(bytes = T.unsafe(nil), output_buffer = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_encrypter.rb#38 + def rewind; end + + # @api private + # @return [Integer] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_encrypter.rb#28 + def size; end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_encrypter.rb#49 + def encrypt_to_stringio(cipher, plain_text); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_encrypter.rb#57 + def encrypt_to_tempfile(cipher, io); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/io_encrypter.rb#18 +Aws::S3::Encryption::IOEncrypter::ONE_MEGABYTE = T.let(T.unsafe(nil), Integer) + +# This module defines the interface required for a {Client#key_provider}. +# A key provider is any object that: +# +# * Responds to {#encryption_materials} with an {Materials} object. +# +# * Responds to {#key_for}, receiving a JSON document String, +# returning an encryption key. The returned encryption key +# must be one of: +# +# * `OpenSSL::PKey::RSA` - for asymmetric encryption +# * `String` - 32, 24, or 16 bytes long, for symmetric encryption +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/key_provider.rb#19 +module Aws::S3::Encryption::KeyProvider + # @return [Materials] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/key_provider.rb#22 + def encryption_materials; end + + # @param materials_description [String] + # @return [OpenSSL::PKey::RSA, String] encryption_key + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/key_provider.rb#26 + def key_for(materials_description); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/kms_cipher_provider.rb#9 +class Aws::S3::Encryption::KmsCipherProvider + # @api private + # @return [KmsCipherProvider] a new instance of KmsCipherProvider + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/kms_cipher_provider.rb#11 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @return [Cipher] Given an encryption envelope, returns a + # decryption cipher. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/kms_cipher_provider.rb#41 + def decryption_cipher(envelope, options = T.unsafe(nil)); end + + # @api private + # @return [Array] Creates an returns a new encryption + # envelope and encryption cipher. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/kms_cipher_provider.rb#18 + def encryption_cipher; end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/kms_cipher_provider.rb#89 + def build_encryption_context(cek_alg, options = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/kms_cipher_provider.rb#101 + def decode64(str); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/kms_cipher_provider.rb#97 + def encode64(str); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/materials.rb#8 +class Aws::S3::Encryption::Materials + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Materials] a new instance of Materials + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/materials.rb#17 + def initialize(options = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/materials.rb#26 + def description; end + + # @return [OpenSSL::PKey::RSA, String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/materials.rb#23 + def key; end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/materials.rb#49 + def validate_desc(description); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/materials.rb#30 + def validate_key(key); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/utils.rb#9 +module Aws::S3::Encryption::Utils + class << self + # @api private + # @param mode [String] "encrypt" or "decrypt" + # @param block_mode [String] "CBC" or "ECB" + # @param key [OpenSSL::PKey::RSA, String, nil] + # @param iv [String, nil] The initialization vector + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/utils.rb#83 + def aes_cipher(mode, block_mode, key, iv); end + + # @api private + # @param block_mode [String] "CBC" or "ECB" + # @param key [OpenSSL::PKey::RSA, String, nil] + # @param iv [String, nil] The initialization vector + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/utils.rb#75 + def aes_decryption_cipher(block_mode, key = T.unsafe(nil), iv = T.unsafe(nil)); end + + # @api private + # @param block_mode [String] "CBC" or "ECB" + # @param key [OpenSSL::PKey::RSA, String, nil] + # @param iv [String, nil] The initialization vector + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/utils.rb#68 + def aes_encryption_cipher(block_mode, key = T.unsafe(nil), iv = T.unsafe(nil)); end + + # @api private + # @param key [String] + # @raise ArgumentError + # @return [Integer] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/utils.rb#96 + def cipher_size(key); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/utils.rb#27 + def decrypt(key, data); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/utils.rb#43 + def decrypt_aes_gcm(key, data, auth_data); end + + # returns the decrypted data + auth_data + # + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/utils.rb#56 + def decrypt_rsa(key, enc_data); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryption/utils.rb#15 + def encrypt(key, data); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption/utils.rb#11 +Aws::S3::Encryption::Utils::UNSAFE_MSG = T.let(T.unsafe(nil), String) + +# Provides an encryption client that encrypts and decrypts data client-side, +# storing the encrypted data in Amazon S3. The `EncryptionV2::Client` (V2 Client) +# provides improved security over the `Encryption::Client` (V1 Client) +# by using more modern and secure algorithms. You can use the V2 Client +# to continue decrypting objects encrypted using deprecated algorithms +# by setting security_profile: :v2_and_legacy. The latest V1 Client also +# supports reading and decrypting objects encrypted by the V2 Client. +# +# This client uses a process called "envelope encryption". Your private +# encryption keys and your data's plain-text are **never** sent to +# Amazon S3. **If you lose you encryption keys, you will not be able to +# decrypt your data.** +# +# ## Envelope Encryption Overview +# +# The goal of envelope encryption is to combine the performance of +# fast symmetric encryption while maintaining the secure key management +# that asymmetric keys provide. +# +# A one-time-use symmetric key (envelope key) is generated client-side. +# This is used to encrypt the data client-side. This key is then +# encrypted by your master key and stored alongside your data in Amazon +# S3. +# +# When accessing your encrypted data with the encryption client, +# the encrypted envelope key is retrieved and decrypted client-side +# with your master key. The envelope key is then used to decrypt the +# data client-side. +# +# One of the benefits of envelope encryption is that if your master key +# is compromised, you have the option of just re-encrypting the stored +# envelope symmetric keys, instead of re-encrypting all of the +# data in your account. +# +# ## Basic Usage +# +# The encryption client requires an {Aws::S3::Client}. If you do not +# provide a `:client`, then a client will be constructed for you. +# +# require 'openssl' +# key = OpenSSL::PKey::RSA.new(1024) +# +# # encryption client +# s3 = Aws::S3::EncryptionV2::Client.new( +# encryption_key: key, +# key_wrap_schema: :rsa_oaep_sha1, # the key_wrap_schema must be rsa_oaep_sha1 for asymmetric keys +# content_encryption_schema: :aes_gcm_no_padding, +# security_profile: :v2 # use :v2_and_legacy to allow reading/decrypting objects encrypted by the V1 encryption client +# ) +# +# # round-trip an object, encrypted/decrypted locally +# s3.put_object(bucket:'aws-sdk', key:'secret', body:'handshake') +# s3.get_object(bucket:'aws-sdk', key:'secret').body.read +# #=> 'handshake' +# +# # reading encrypted object without the encryption client +# # results in the getting the cipher text +# Aws::S3::Client.new.get_object(bucket:'aws-sdk', key:'secret').body.read +# #=> "... cipher text ..." +# +# ## Required Configuration +# +# You must configure all of the following: +# +# * a key or key provider - See the Keys section below. The key provided determines +# the key wrapping schema(s) supported for both encryption and decryption. +# * `key_wrap_schema` - The key wrapping schema. It must match the type of key configured. +# * `content_encryption_schema` - The only supported value currently is `:aes_gcm_no_padding`. +# More options will be added in future releases. +# * `security_profile` - Determines the support for reading objects written +# using older key wrap or content encryption schemas. If you need to read +# legacy objects encrypted by an existing V1 Client, then set this to `:v2_and_legacy`. +# Otherwise, set it to `:v2` +# +# ## Keys +# +# For client-side encryption to work, you must provide one of the following: +# +# * An encryption key +# * A {KeyProvider} +# * A KMS encryption key id +# +# Additionally, the key wrapping schema must agree with the type of the key: +# * :aes_gcm: An AES encryption key or a key provider. +# * :rsa_oaep_sha1: An RSA encryption key or key provider. +# * :kms_context: A KMS encryption key id +# +# ### An Encryption Key +# +# You can pass a single encryption key. This is used as a master key +# encrypting and decrypting all object keys. +# +# key = OpenSSL::Cipher.new("AES-256-ECB").random_key # symmetric key - used with `key_wrap_schema: :aes_gcm` +# key = OpenSSL::PKey::RSA.new(1024) # asymmetric key pair - used with `key_wrap_schema: :rsa_oaep_sha1` +# +# s3 = Aws::S3::EncryptionV2::Client.new( +# encryption_key: key, +# key_wrap_schema: :aes_gcm, # or :rsa_oaep_sha1 if using RSA +# content_encryption_schema: :aes_gcm_no_padding, +# security_profile: :v2 +# ) +# +# ### Key Provider +# +# Alternatively, you can use a {KeyProvider}. A key provider makes +# it easy to work with multiple keys and simplifies key rotation. +# +# ### KMS Encryption Key Id +# +# If you pass the id of an AWS Key Management Service (KMS) key and +# use :kms_content for the key_wrap_schema, then KMS will be used to +# generate, encrypt and decrypt object keys. +# +# # keep track of the kms key id +# kms = Aws::KMS::Client.new +# key_id = kms.create_key.key_metadata.key_id +# +# Aws::S3::EncryptionV2::Client.new( +# kms_key_id: key_id, +# kms_client: kms, +# key_wrap_schema: :kms_context, +# content_encryption_schema: :aes_gcm_no_padding, +# security_profile: :v2 +# ) +# +# ## Custom Key Providers +# +# A {KeyProvider} is any object that responds to: +# +# * `#encryption_materials` +# * `#key_for(materials_description)` +# +# Here is a trivial implementation of an in-memory key provider. +# This is provided as a demonstration of the key provider interface, +# and should not be used in production: +# +# class KeyProvider +# +# def initialize(default_key_name, keys) +# @keys = keys +# @encryption_materials = Aws::S3::EncryptionV2::Materials.new( +# key: @keys[default_key_name], +# description: JSON.dump(key: default_key_name), +# ) +# end +# +# attr_reader :encryption_materials +# +# def key_for(matdesc) +# key_name = JSON.parse(matdesc)['key'] +# if key = @keys[key_name] +# key +# else +# raise "encryption key not found for: #{matdesc.inspect}" +# end +# end +# end +# +# Given the above key provider, you can create an encryption client that +# chooses the key to use based on the materials description stored with +# the encrypted object. This makes it possible to use multiple keys +# and simplifies key rotation. +# +# # uses "new-key" for encrypting objects, uses either for decrypting +# keys = KeyProvider.new('new-key', { +# "old-key" => Base64.decode64("kM5UVbhE/4rtMZJfsadYEdm2vaKFsmV2f5+URSeUCV4="), +# "new-key" => Base64.decode64("w1WLio3agRWRTSJK/Ouh8NHoqRQ6fn5WbSXDTHjXMSo="), +# }), +# +# # chooses the key based on the materials description stored +# # with the encrypted object +# s3 = Aws::S3::EncryptionV2::Client.new( +# key_provider: keys, +# key_wrap_schema: ..., +# content_encryption_schema: :aes_gcm_no_padding, +# security_profile: :v2 +# ) +# +# ## Materials Description +# +# A materials description is JSON document string that is stored +# in the metadata (or instruction file) of an encrypted object. +# The {DefaultKeyProvider} uses the empty JSON document `"{}"`. +# +# When building a key provider, you are free to store whatever +# information you need to identify the master key that was used +# to encrypt the object. +# +# ## Envelope Location +# +# By default, the encryption client store the encryption envelope +# with the object, as metadata. You can choose to have the envelope +# stored in a separate "instruction file". An instruction file +# is an object, with the key of the encrypted object, suffixed with +# `".instruction"`. +# +# Specify the `:envelope_location` option as `:instruction_file` to +# use an instruction file for storing the envelope. +# +# # default behavior +# s3 = Aws::S3::EncryptionV2::Client.new( +# key_provider: ..., +# envelope_location: :metadata, +# ) +# +# # store envelope in a separate object +# s3 = Aws::S3::EncryptionV2::Client.new( +# key_provider: ..., +# envelope_location: :instruction_file, +# instruction_file_suffix: '.instruction' # default +# key_wrap_schema: ..., +# content_encryption_schema: :aes_gcm_no_padding, +# security_profile: :v2 +# ) +# +# When using an instruction file, multiple requests are made when +# putting and getting the object. **This may cause issues if you are +# issuing concurrent PUT and GET requests to an encrypted object.** +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#230 +module Aws::S3::EncryptionV2; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption_v2.rb#18 +Aws::S3::EncryptionV2::AES_GCM_TAG_LEN_BYTES = T.let(T.unsafe(nil), Integer) + +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#231 +class Aws::S3::EncryptionV2::Client + extend ::Aws::Deprecations + extend ::Forwardable + + # Creates a new encryption client. You must configure all of the following: + # + # * a key or key provider - The key provided also determines the key wrapping + # schema(s) supported for both encryption and decryption. + # * `key_wrap_schema` - The key wrapping schema. It must match the type of key configured. + # * `content_encryption_schema` - The only supported value currently is `:aes_gcm_no_padding` + # More options will be added in future releases. + # * `security_profile` - Determines the support for reading objects written + # using older key wrap or content encryption schemas. If you need to read + # legacy objects encrypted by an existing V1 Client, then set this to `:v2_and_legacy`. + # Otherwise, set it to `:v2` + # + # To configure the key you must provide one of the following set of options: + # + # * `:encryption_key` + # * `:kms_key_id` + # * `:key_provider` + # + # You may also pass any other options accepted by `Client#initialize`. + # + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Client] a new instance of Client + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#310 + def initialize(options = T.unsafe(nil)); end + + # source://forwardable/1.3.2/forwardable.rb#229 + def build_request(*args, **_arg1, &block); end + + # @return [S3::Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#322 + def client; end + + # source://forwardable/1.3.2/forwardable.rb#229 + def config(*args, **_arg1, &block); end + + # source://forwardable/1.3.2/forwardable.rb#229 + def delete_object(*args, **_arg1, &block); end + + # @return [Symbol<:metadata, :instruction_file>] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#337 + def envelope_location; end + + # Gets an object from Amazon S3, decrypting data locally. + # See {S3::Client#get_object} for documentation on accepted + # request parameters. + # Warning: If you provide a block to get_object or set the request + # parameter :response_target to a Proc, then read the entire object to the + # end before you start using the decrypted data. This is to verify that + # the object has not been modified since it was encrypted. + # + # @note The `:range` request parameter is not supported. + # @option options + # @option params + # @option params + # @option options + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @param options [Hash] a customizable set of options + # @param params [Hash] a customizable set of options + # @return [Types::GetObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetObjectOutput#body #body} => IO + # * {Types::GetObjectOutput#delete_marker #delete_marker} => Boolean + # * {Types::GetObjectOutput#accept_ranges #accept_ranges} => String + # * {Types::GetObjectOutput#expiration #expiration} => String + # * {Types::GetObjectOutput#restore #restore} => String + # * {Types::GetObjectOutput#last_modified #last_modified} => Time + # * {Types::GetObjectOutput#content_length #content_length} => Integer + # * {Types::GetObjectOutput#etag #etag} => String + # * {Types::GetObjectOutput#checksum_crc32 #checksum_crc32} => String + # * {Types::GetObjectOutput#checksum_crc32c #checksum_crc32c} => String + # * {Types::GetObjectOutput#checksum_sha1 #checksum_sha1} => String + # * {Types::GetObjectOutput#checksum_sha256 #checksum_sha256} => String + # * {Types::GetObjectOutput#missing_meta #missing_meta} => Integer + # * {Types::GetObjectOutput#version_id #version_id} => String + # * {Types::GetObjectOutput#cache_control #cache_control} => String + # * {Types::GetObjectOutput#content_disposition #content_disposition} => String + # * {Types::GetObjectOutput#content_encoding #content_encoding} => String + # * {Types::GetObjectOutput#content_language #content_language} => String + # * {Types::GetObjectOutput#content_range #content_range} => String + # * {Types::GetObjectOutput#content_type #content_type} => String + # * {Types::GetObjectOutput#expires #expires} => Time + # * {Types::GetObjectOutput#expires_string #expires_string} => String + # * {Types::GetObjectOutput#website_redirect_location #website_redirect_location} => String + # * {Types::GetObjectOutput#server_side_encryption #server_side_encryption} => String + # * {Types::GetObjectOutput#metadata #metadata} => Hash<String,String> + # * {Types::GetObjectOutput#sse_customer_algorithm #sse_customer_algorithm} => String + # * {Types::GetObjectOutput#sse_customer_key_md5 #sse_customer_key_md5} => String + # * {Types::GetObjectOutput#ssekms_key_id #ssekms_key_id} => String + # * {Types::GetObjectOutput#bucket_key_enabled #bucket_key_enabled} => Boolean + # * {Types::GetObjectOutput#storage_class #storage_class} => String + # * {Types::GetObjectOutput#request_charged #request_charged} => String + # * {Types::GetObjectOutput#replication_status #replication_status} => String + # * {Types::GetObjectOutput#parts_count #parts_count} => Integer + # * {Types::GetObjectOutput#tag_count #tag_count} => Integer + # * {Types::GetObjectOutput#object_lock_mode #object_lock_mode} => String + # * {Types::GetObjectOutput#object_lock_retain_until_date #object_lock_retain_until_date} => Time + # * {Types::GetObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String + # @see S3::Client#get_object + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#400 + def get_object(params = T.unsafe(nil), &block); end + + # source://forwardable/1.3.2/forwardable.rb#229 + def head_object(*args, **_arg1, &block); end + + # @return [String] When {#envelope_location} is `:instruction_file`, + # the envelope is stored in the object with the object key suffixed + # by this string. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#342 + def instruction_file_suffix; end + + # @return [KeyProvider, nil] Returns `nil` if you are using + # AWS Key Management Service (KMS). + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#326 + def key_provider; end + + # @return [Boolean] If true the provided KMS key_id will not be used + # during decrypt, allowing decryption with the key_id from the object. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#334 + def kms_allow_decrypt_with_any_cmk; end + + # Uploads an object to Amazon S3, encrypting data client-side. + # See {S3::Client#put_object} for documentation on accepted + # request parameters. + # + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @param params [Hash] a customizable set of options + # @return [Types::PutObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::PutObjectOutput#expiration #expiration} => String + # * {Types::PutObjectOutput#etag #etag} => String + # * {Types::PutObjectOutput#checksum_crc32 #checksum_crc32} => String + # * {Types::PutObjectOutput#checksum_crc32c #checksum_crc32c} => String + # * {Types::PutObjectOutput#checksum_sha1 #checksum_sha1} => String + # * {Types::PutObjectOutput#checksum_sha256 #checksum_sha256} => String + # * {Types::PutObjectOutput#server_side_encryption #server_side_encryption} => String + # * {Types::PutObjectOutput#version_id #version_id} => String + # * {Types::PutObjectOutput#sse_customer_algorithm #sse_customer_algorithm} => String + # * {Types::PutObjectOutput#sse_customer_key_md5 #sse_customer_key_md5} => String + # * {Types::PutObjectOutput#ssekms_key_id #ssekms_key_id} => String + # * {Types::PutObjectOutput#ssekms_encryption_context #ssekms_encryption_context} => String + # * {Types::PutObjectOutput#bucket_key_enabled #bucket_key_enabled} => Boolean + # * {Types::PutObjectOutput#request_charged #request_charged} => String + # @see S3::Client#put_object + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#354 + def put_object(params = T.unsafe(nil)); end + + # @return [Symbol] Determines the support for reading objects written + # using older key wrap or content encryption schemas. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#330 + def security_profile; end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#469 + def cipher_provider(options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#498 + def envelope_options(params); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#446 + def extract_client(options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#487 + def extract_key_provider(options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#508 + def extract_location(options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#537 + def extract_security_profile(options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#519 + def extract_suffix(options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#529 + def kms_any_cmk_mode(params); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#460 + def kms_client(options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#541 + def security_profile_from_params(params); end + + # Validate required parameters exist and don't conflict. + # The cek_alg and wrap_alg are passed on to the CipherProviders + # and further validated there + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#429 + def validate_params(options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#551 + def validate_security_profile(security_profile); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#9 +class Aws::S3::EncryptionV2::DecryptHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#46 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#212 + def apply_cse_user_agent(context); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#65 + def attach_http_event_listeners(context); end + + # Determine the auth tag length from the algorithm + # Validate it against the value provided in the x-amz-tag-len + # Return the tag length in bytes + # + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#198 + def auth_tag_length(envelope); end + + # This method fetches the tag from the end of the object by + # making a GET Object w/range request. This auth tag is used + # to initialize the cipher, and the decrypter truncates the + # auth tag from the body when writing the final bytes. + # + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#168 + def authenticated_decrypter(context, cipher, envelope); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#191 + def body_contains_auth_tag?(envelope); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#89 + def decryption_cipher(context); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#120 + def envelope_from_instr_file(context); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#110 + def envelope_from_metadata(context); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#131 + def extract_envelope(hash); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#102 + def get_encryption_envelope(context); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#141 + def v1_envelope(envelope); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#145 + def v2_envelope(envelope); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#44 +Aws::S3::EncryptionV2::DecryptHandler::AUTH_REQUIRED_CEK_ALGS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#38 +Aws::S3::EncryptionV2::DecryptHandler::POSSIBLE_ENCRYPTION_FORMATS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#28 +Aws::S3::EncryptionV2::DecryptHandler::POSSIBLE_ENVELOPE_KEYS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#31 +Aws::S3::EncryptionV2::DecryptHandler::POSSIBLE_WRAPPING_FORMATS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#12 +Aws::S3::EncryptionV2::DecryptHandler::V1_ENVELOPE_KEYS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#18 +Aws::S3::EncryptionV2::DecryptHandler::V2_ENVELOPE_KEYS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb#26 +Aws::S3::EncryptionV2::DecryptHandler::V2_OPTIONAL_KEYS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb#9 +class Aws::S3::EncryptionV2::DefaultCipherProvider + # @api private + # @return [DefaultCipherProvider] a new instance of DefaultCipherProvider + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb#11 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @return [Cipher] Given an encryption envelope, returns a + # decryption cipher. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb#50 + def decryption_cipher(envelope, options = T.unsafe(nil)); end + + # @api private + # @return [Array] Creates an returns a new encryption + # envelope and encryption cipher. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb#24 + def encryption_cipher(options = T.unsafe(nil)); end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb#157 + def decode64(str); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb#153 + def encode64(str); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb#141 + def encrypt_aes_gcm(data, auth_data); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb#145 + def encrypt_rsa(data, auth_data); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb#137 + def envelope_iv(cipher); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb#133 + def envelope_key(cipher); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb#149 + def materials_description; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb#124 + def validate_cek(content_encryption_schema); end + + # Validate that the key_wrap_schema + # is valid, supported and matches the provided key. + # Returns the string version for the x-amz-key-wrap-alg + # + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb#103 + def validate_key_wrap(key_wrap_schema, key); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb#161 + def validate_options(options); end +end + +# The default key provider is constructed with a single key +# that is used for both encryption and decryption, ignoring +# the possible per-object envelope encryption materials description. +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/default_key_provider.rb#11 +class Aws::S3::EncryptionV2::DefaultKeyProvider + include ::Aws::S3::EncryptionV2::KeyProvider + + # @api private + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [DefaultKeyProvider] a new instance of DefaultKeyProvider + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/default_key_provider.rb#19 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @return [Materials] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/default_key_provider.rb#27 + def encryption_materials; end + + # @api private + # @param materials_description [String] + # @return Returns the key given in the constructor. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/default_key_provider.rb#33 + def key_for(materials_description); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/encryption_v2.rb#19 +Aws::S3::EncryptionV2::EC_USER_AGENT = T.let(T.unsafe(nil), String) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb#9 +class Aws::S3::EncryptionV2::EncryptHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb#11 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb#54 + def apply_cse_user_agent(context); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb#39 + def apply_encryption_cipher(context, cipher); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb#25 + def apply_encryption_envelope(context, envelope); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/errors.rb#6 +module Aws::S3::EncryptionV2::Errors; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/errors.rb#25 +class Aws::S3::EncryptionV2::Errors::CEKAlgMismatchError < ::Aws::S3::EncryptionV2::Errors::DecryptionError + # @return [CEKAlgMismatchError] a new instance of CEKAlgMismatchError + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/errors.rb#26 + def initialize(*args); end +end + +# Generic DecryptionError +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/errors.rb#9 +class Aws::S3::EncryptionV2::Errors::DecryptionError < ::RuntimeError; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/errors.rb#11 +class Aws::S3::EncryptionV2::Errors::EncryptionError < ::RuntimeError; end + +# Raised when attempting to decrypt a legacy (V1) encrypted object +# when using a security_profile that does not support it. +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/errors.rb#15 +class Aws::S3::EncryptionV2::Errors::LegacyDecryptionError < ::Aws::S3::EncryptionV2::Errors::DecryptionError + # @return [LegacyDecryptionError] a new instance of LegacyDecryptionError + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/errors.rb#16 + def initialize(*args); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_auth_decrypter.rb#7 +class Aws::S3::EncryptionV2::IOAuthDecrypter + # @api private + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [IOAuthDecrypter] a new instance of IOAuthDecrypter + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_auth_decrypter.rb#19 + def initialize(options = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_auth_decrypter.rb#33 + def finalize; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_auth_decrypter.rb#37 + def io; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_auth_decrypter.rb#25 + def write(chunk); end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_auth_decrypter.rb#43 + def truncate_chunk(chunk); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_decrypter.rb#7 +class Aws::S3::EncryptionV2::IODecrypter + # @api private + # @param cipher [OpenSSL::Cipher] + # @param io [IO#write] An IO-like object that responds to `#write`. + # @return [IODecrypter] a new instance of IODecrypter + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_decrypter.rb#11 + def initialize(cipher, io); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_decrypter.rb#30 + def finalize; end + + # @api private + # @return [#write] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_decrypter.rb#19 + def io; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_decrypter.rb#21 + def write(chunk); end +end + +# Provides an IO wrapper encrypting a stream of data. +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_encrypter.rb#12 +class Aws::S3::EncryptionV2::IOEncrypter + # @api private + # @return [IOEncrypter] a new instance of IOEncrypter + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_encrypter.rb#17 + def initialize(cipher, io); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_encrypter.rb#40 + def close; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_encrypter.rb#27 + def read(bytes = T.unsafe(nil), output_buffer = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_encrypter.rb#35 + def rewind; end + + # @api private + # @return [Integer] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_encrypter.rb#25 + def size; end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_encrypter.rb#46 + def encrypt_to_stringio(cipher, plain_text); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_encrypter.rb#54 + def encrypt_to_tempfile(cipher, io); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/io_encrypter.rb#15 +Aws::S3::EncryptionV2::IOEncrypter::ONE_MEGABYTE = T.let(T.unsafe(nil), Integer) + +# This module defines the interface required for a {Client#key_provider}. +# A key provider is any object that: +# +# * Responds to {#encryption_materials} with an {Materials} object. +# +# * Responds to {#key_for}, receiving a JSON document String, +# returning an encryption key. The returned encryption key +# must be one of: +# +# * `OpenSSL::PKey::RSA` - for asymmetric encryption +# * `String` - 32, 24, or 16 bytes long, for symmetric encryption +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/key_provider.rb#19 +module Aws::S3::EncryptionV2::KeyProvider + # @return [Materials] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/key_provider.rb#22 + def encryption_materials; end + + # @param materials_description [String] + # @return [OpenSSL::PKey::RSA, String] encryption_key + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/key_provider.rb#26 + def key_for(materials_description); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb#9 +class Aws::S3::EncryptionV2::KmsCipherProvider + # @api private + # @return [KmsCipherProvider] a new instance of KmsCipherProvider + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb#11 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @return [Cipher] Given an encryption envelope, returns a + # decryption cipher. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb#50 + def decryption_cipher(envelope, options = T.unsafe(nil)); end + + # @api private + # @return [Array] Creates and returns a new encryption + # envelope and encryption cipher. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb#24 + def encryption_cipher(options = T.unsafe(nil)); end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb#142 + def build_encryption_context(cek_alg, options = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb#159 + def decode64(str); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb#155 + def encode64(str); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb#118 + def validate_cek(content_encryption_schema); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb#163 + def validate_key_for_encryption; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb#110 + def validate_key_wrap(key_wrap_schema); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb#127 + def validate_kms_key(kms_key_id); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/materials.rb#8 +class Aws::S3::EncryptionV2::Materials + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Materials] a new instance of Materials + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/materials.rb#17 + def initialize(options = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/materials.rb#26 + def description; end + + # @return [OpenSSL::PKey::RSA, String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/materials.rb#23 + def key; end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/materials.rb#49 + def validate_desc(description); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/materials.rb#30 + def validate_key(key); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/utils.rb#9 +module Aws::S3::EncryptionV2::Utils + class << self + # @api private + # @param mode [String] "encrypt" or "decrypt" + # @param block_mode [String] "CBC" or "ECB" + # @param key [OpenSSL::PKey::RSA, String, nil] + # @param iv [String, nil] The initialization vector + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/utils.rb#82 + def aes_cipher(mode, block_mode, key, iv); end + + # @api private + # @param block_mode [String] "CBC" or "ECB" + # @param key [OpenSSL::PKey::RSA, String, nil] + # @param iv [String, nil] The initialization vector + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/utils.rb#74 + def aes_decryption_cipher(block_mode, key = T.unsafe(nil), iv = T.unsafe(nil)); end + + # @api private + # @param block_mode [String] "CBC" or "ECB" + # @param key [OpenSSL::PKey::RSA, String, nil] + # @param iv [String, nil] The initialization vector + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/utils.rb#67 + def aes_encryption_cipher(block_mode, key = T.unsafe(nil), iv = T.unsafe(nil)); end + + # @api private + # @param key [String] + # @raise ArgumentError + # @return [Integer] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/utils.rb#95 + def cipher_size(key); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/utils.rb#27 + def decrypt(key, data); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/utils.rb#42 + def decrypt_aes_gcm(key, data, auth_data); end + + # returns the decrypted data + auth_data + # + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/utils.rb#55 + def decrypt_rsa(key, enc_data); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/utils.rb#13 + def encrypt_aes_gcm(key, data, auth_data); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/utils.rb#21 + def encrypt_rsa(key, data, auth_data); end + end +end + +# Endpoint parameters used to influence endpoints per request. +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoint_parameters.rb#98 +class Aws::S3::EndpointParameters < ::Struct + include ::Aws::Structure + + # @return [EndpointParameters] a new instance of EndpointParameters + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoint_parameters.rb#142 + def initialize(options = T.unsafe(nil)); end + + # When true, use S3 Accelerate. NOTE: Not all regions support S3 accelerate. + # + # @return [Boolean] + def accelerate; end + + # When true, use S3 Accelerate. NOTE: Not all regions support S3 accelerate. + # + # @return [Boolean] + def accelerate=(_); end + + # The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket. + # + # @return [String] + def bucket; end + + # The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket. + # + # @return [String] + def bucket=(_); end + + # The Copy Source used for Copy Object request. This is an optional parameter that will be set automatically for operations that are scoped to Copy Source. + # + # @return [String] + def copy_source; end + + # The Copy Source used for Copy Object request. This is an optional parameter that will be set automatically for operations that are scoped to Copy Source. + # + # @return [String] + def copy_source=(_); end + + # Internal parameter to disable Access Point Buckets + # + # @return [Boolean] + def disable_access_points; end + + # Internal parameter to disable Access Point Buckets + # + # @return [Boolean] + def disable_access_points=(_); end + + # Whether multi-region access points (MRAP) should be disabled. + # + # @return [Boolean] + def disable_multi_region_access_points; end + + # Whether multi-region access points (MRAP) should be disabled. + # + # @return [Boolean] + def disable_multi_region_access_points=(_); end + + # Parameter to indicate whether S3Express session auth should be disabled + # + # @return [Boolean] + def disable_s3_express_session_auth; end + + # Parameter to indicate whether S3Express session auth should be disabled + # + # @return [Boolean] + def disable_s3_express_session_auth=(_); end + + # Override the endpoint used to send this request + # + # @return [String] + def endpoint; end + + # Override the endpoint used to send this request + # + # @return [String] + def endpoint=(_); end + + # When true, force a path-style endpoint to be used where the bucket name is part of the path. + # + # @return [Boolean] + def force_path_style; end + + # When true, force a path-style endpoint to be used where the bucket name is part of the path. + # + # @return [Boolean] + def force_path_style=(_); end + + # The S3 Key used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Key. + # + # @return [String] + def key; end + + # The S3 Key used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Key. + # + # @return [String] + def key=(_); end + + # The S3 Prefix used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Prefix. + # + # @return [String] + def prefix; end + + # The S3 Prefix used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Prefix. + # + # @return [String] + def prefix=(_); end + + # The AWS region used to dispatch the request. + # + # @return [String] + def region; end + + # The AWS region used to dispatch the request. + # + # @return [String] + def region=(_); end + + # When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region. + # + # @return [Boolean] + def use_arn_region; end + + # When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region. + # + # @return [Boolean] + def use_arn_region=(_); end + + # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. + # + # @return [Boolean] + def use_dual_stack; end + + # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. + # + # @return [Boolean] + def use_dual_stack=(_); end + + # When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. + # + # @return [Boolean] + def use_fips; end + + # When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. + # + # @return [Boolean] + def use_fips=(_); end + + # Whether the global endpoint should be used, rather then the regional endpoint for us-east-1. + # + # @return [Boolean] + def use_global_endpoint; end + + # Whether the global endpoint should be used, rather then the regional endpoint for us-east-1. + # + # @return [Boolean] + def use_global_endpoint=(_); end + + # Internal parameter to use object lambda endpoint for an operation (eg: WriteGetObjectResponse) + # + # @return [Boolean] + def use_object_lambda_endpoint; end + + # Internal parameter to use object lambda endpoint for an operation (eg: WriteGetObjectResponse) + # + # @return [Boolean] + def use_object_lambda_endpoint=(_); end + + # Internal parameter to indicate whether S3Express operation should use control plane, (ex. CreateBucket) + # + # @return [Boolean] + def use_s3_express_control_endpoint; end + + # Internal parameter to indicate whether S3Express operation should use control plane, (ex. CreateBucket) + # + # @return [Boolean] + def use_s3_express_control_endpoint=(_); end + + class << self + def [](*_arg0); end + def inspect; end + def keyword_init?; end + def members; end + def new(*_arg0); end + end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoint_provider.rb#11 +class Aws::S3::EndpointProvider + # @raise [ArgumentError] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoint_provider.rb#12 + def resolve_endpoint(parameters); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#13 +module Aws::S3::Endpoints; end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#15 +class Aws::S3::Endpoints::AbortMultipartUpload + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#16 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#39 +class Aws::S3::Endpoints::CompleteMultipartUpload + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#40 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#63 +class Aws::S3::Endpoints::CopyObject + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#64 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#87 +class Aws::S3::Endpoints::CreateBucket + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#88 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#111 +class Aws::S3::Endpoints::CreateMultipartUpload + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#112 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#135 +class Aws::S3::Endpoints::CreateSession + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#136 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#159 +class Aws::S3::Endpoints::DeleteBucket + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#160 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#183 +class Aws::S3::Endpoints::DeleteBucketAnalyticsConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#184 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#207 +class Aws::S3::Endpoints::DeleteBucketCors + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#208 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#231 +class Aws::S3::Endpoints::DeleteBucketEncryption + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#232 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#255 +class Aws::S3::Endpoints::DeleteBucketIntelligentTieringConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#256 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#279 +class Aws::S3::Endpoints::DeleteBucketInventoryConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#280 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#303 +class Aws::S3::Endpoints::DeleteBucketLifecycle + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#304 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#327 +class Aws::S3::Endpoints::DeleteBucketMetricsConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#328 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#351 +class Aws::S3::Endpoints::DeleteBucketOwnershipControls + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#352 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#375 +class Aws::S3::Endpoints::DeleteBucketPolicy + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#376 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#399 +class Aws::S3::Endpoints::DeleteBucketReplication + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#400 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#423 +class Aws::S3::Endpoints::DeleteBucketTagging + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#424 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#447 +class Aws::S3::Endpoints::DeleteBucketWebsite + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#448 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#471 +class Aws::S3::Endpoints::DeleteObject + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#472 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#495 +class Aws::S3::Endpoints::DeleteObjectTagging + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#496 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#519 +class Aws::S3::Endpoints::DeleteObjects + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#520 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#543 +class Aws::S3::Endpoints::DeletePublicAccessBlock + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#544 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#567 +class Aws::S3::Endpoints::GetBucketAccelerateConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#568 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#591 +class Aws::S3::Endpoints::GetBucketAcl + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#592 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#615 +class Aws::S3::Endpoints::GetBucketAnalyticsConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#616 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#639 +class Aws::S3::Endpoints::GetBucketCors + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#640 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#663 +class Aws::S3::Endpoints::GetBucketEncryption + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#664 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#687 +class Aws::S3::Endpoints::GetBucketIntelligentTieringConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#688 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#711 +class Aws::S3::Endpoints::GetBucketInventoryConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#712 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#735 +class Aws::S3::Endpoints::GetBucketLifecycle + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#736 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#759 +class Aws::S3::Endpoints::GetBucketLifecycleConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#760 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#783 +class Aws::S3::Endpoints::GetBucketLocation + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#784 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#807 +class Aws::S3::Endpoints::GetBucketLogging + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#808 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#831 +class Aws::S3::Endpoints::GetBucketMetricsConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#832 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#855 +class Aws::S3::Endpoints::GetBucketNotification + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#856 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#879 +class Aws::S3::Endpoints::GetBucketNotificationConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#880 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#903 +class Aws::S3::Endpoints::GetBucketOwnershipControls + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#904 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#927 +class Aws::S3::Endpoints::GetBucketPolicy + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#928 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#951 +class Aws::S3::Endpoints::GetBucketPolicyStatus + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#952 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#975 +class Aws::S3::Endpoints::GetBucketReplication + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#976 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#999 +class Aws::S3::Endpoints::GetBucketRequestPayment + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1000 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1023 +class Aws::S3::Endpoints::GetBucketTagging + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1024 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1047 +class Aws::S3::Endpoints::GetBucketVersioning + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1048 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1071 +class Aws::S3::Endpoints::GetBucketWebsite + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1072 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1095 +class Aws::S3::Endpoints::GetObject + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1096 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1119 +class Aws::S3::Endpoints::GetObjectAcl + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1120 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1143 +class Aws::S3::Endpoints::GetObjectAttributes + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1144 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1167 +class Aws::S3::Endpoints::GetObjectLegalHold + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1168 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1191 +class Aws::S3::Endpoints::GetObjectLockConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1192 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1215 +class Aws::S3::Endpoints::GetObjectRetention + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1216 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1239 +class Aws::S3::Endpoints::GetObjectTagging + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1240 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1263 +class Aws::S3::Endpoints::GetObjectTorrent + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1264 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1287 +class Aws::S3::Endpoints::GetPublicAccessBlock + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1288 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1311 +class Aws::S3::Endpoints::HeadBucket + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1312 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1335 +class Aws::S3::Endpoints::HeadObject + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1336 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1359 +class Aws::S3::Endpoints::ListBucketAnalyticsConfigurations + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1360 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1383 +class Aws::S3::Endpoints::ListBucketIntelligentTieringConfigurations + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1384 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1407 +class Aws::S3::Endpoints::ListBucketInventoryConfigurations + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1408 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1431 +class Aws::S3::Endpoints::ListBucketMetricsConfigurations + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1432 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1455 +class Aws::S3::Endpoints::ListBuckets + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1456 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1479 +class Aws::S3::Endpoints::ListDirectoryBuckets + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1480 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1503 +class Aws::S3::Endpoints::ListMultipartUploads + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1504 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1527 +class Aws::S3::Endpoints::ListObjectVersions + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1528 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1551 +class Aws::S3::Endpoints::ListObjects + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1552 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1575 +class Aws::S3::Endpoints::ListObjectsV2 + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1576 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1599 +class Aws::S3::Endpoints::ListParts + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1600 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1623 +class Aws::S3::Endpoints::PutBucketAccelerateConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1624 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1647 +class Aws::S3::Endpoints::PutBucketAcl + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1648 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1671 +class Aws::S3::Endpoints::PutBucketAnalyticsConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1672 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1695 +class Aws::S3::Endpoints::PutBucketCors + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1696 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1719 +class Aws::S3::Endpoints::PutBucketEncryption + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1720 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1743 +class Aws::S3::Endpoints::PutBucketIntelligentTieringConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1744 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1767 +class Aws::S3::Endpoints::PutBucketInventoryConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1768 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1791 +class Aws::S3::Endpoints::PutBucketLifecycle + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1792 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1815 +class Aws::S3::Endpoints::PutBucketLifecycleConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1816 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1839 +class Aws::S3::Endpoints::PutBucketLogging + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1840 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1863 +class Aws::S3::Endpoints::PutBucketMetricsConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1864 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1887 +class Aws::S3::Endpoints::PutBucketNotification + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1888 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1911 +class Aws::S3::Endpoints::PutBucketNotificationConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1912 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1935 +class Aws::S3::Endpoints::PutBucketOwnershipControls + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1936 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1959 +class Aws::S3::Endpoints::PutBucketPolicy + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1960 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1983 +class Aws::S3::Endpoints::PutBucketReplication + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#1984 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2007 +class Aws::S3::Endpoints::PutBucketRequestPayment + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2008 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2031 +class Aws::S3::Endpoints::PutBucketTagging + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2032 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2055 +class Aws::S3::Endpoints::PutBucketVersioning + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2056 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2079 +class Aws::S3::Endpoints::PutBucketWebsite + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2080 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2103 +class Aws::S3::Endpoints::PutObject + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2104 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2127 +class Aws::S3::Endpoints::PutObjectAcl + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2128 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2151 +class Aws::S3::Endpoints::PutObjectLegalHold + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2152 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2175 +class Aws::S3::Endpoints::PutObjectLockConfiguration + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2176 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2199 +class Aws::S3::Endpoints::PutObjectRetention + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2200 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2223 +class Aws::S3::Endpoints::PutObjectTagging + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2224 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2247 +class Aws::S3::Endpoints::PutPublicAccessBlock + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2248 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2271 +class Aws::S3::Endpoints::RestoreObject + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2272 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2295 +class Aws::S3::Endpoints::SelectObjectContent + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2296 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2319 +class Aws::S3::Endpoints::UploadPart + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2320 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2343 +class Aws::S3::Endpoints::UploadPartCopy + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2344 + def build(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2367 +class Aws::S3::Endpoints::WriteGetObjectResponse + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/endpoints.rb#2368 + def build(context); end + end +end + +# When S3 returns an error response, the Ruby SDK constructs and raises an error. +# These errors all extend Aws::S3::Errors::ServiceError < {Aws::Errors::ServiceError} +# +# You can rescue all S3 errors using ServiceError: +# +# begin +# # do stuff +# rescue Aws::S3::Errors::ServiceError +# # rescues all S3 API errors +# end +# +# +# ## Request Context +# ServiceError objects have a {Aws::Errors::ServiceError#context #context} method that returns +# information about the request that generated the error. +# See {Seahorse::Client::RequestContext} for more information. +# +# ## Error Classes +# * {BucketAlreadyExists} +# * {BucketAlreadyOwnedByYou} +# * {InvalidObjectState} +# * {NoSuchBucket} +# * {NoSuchKey} +# * {NoSuchUpload} +# * {ObjectAlreadyInActiveTierError} +# * {ObjectNotInActiveTierError} +# +# Additionally, error classes are dynamically generated for service errors based on the error code +# if they are not defined above. +# +# source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#41 +module Aws::S3::Errors + extend ::Aws::Errors::DynamicErrors +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#45 +class Aws::S3::Errors::BucketAlreadyExists < ::Aws::S3::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::S3::Types::BucketAlreadyExists] + # @return [BucketAlreadyExists] a new instance of BucketAlreadyExists + # + # source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#50 + def initialize(context, message, data = T.unsafe(nil)); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#55 +class Aws::S3::Errors::BucketAlreadyOwnedByYou < ::Aws::S3::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::S3::Types::BucketAlreadyOwnedByYou] + # @return [BucketAlreadyOwnedByYou] a new instance of BucketAlreadyOwnedByYou + # + # source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#60 + def initialize(context, message, data = T.unsafe(nil)); end +end + +# Hijack PermanentRedirect (HeadBucket case - no body) dynamic error to +# include the region. +# +# source://aws-sdk-s3//lib/aws-sdk-s3/customizations/errors.rb#31 +class Aws::S3::Errors::Http301Error < ::Aws::S3::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param _data [Aws::S3::Types::PermanentRedirect] + # @return [Http301Error] a new instance of Http301Error + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/errors.rb#32 + def initialize(context, message, _data = T.unsafe(nil)); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#65 +class Aws::S3::Errors::InvalidObjectState < ::Aws::S3::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::S3::Types::InvalidObjectState] + # @return [InvalidObjectState] a new instance of InvalidObjectState + # + # source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#70 + def initialize(context, message, data = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#80 + def access_tier; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#75 + def storage_class; end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#85 +class Aws::S3::Errors::NoSuchBucket < ::Aws::S3::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::S3::Types::NoSuchBucket] + # @return [NoSuchBucket] a new instance of NoSuchBucket + # + # source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#90 + def initialize(context, message, data = T.unsafe(nil)); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#95 +class Aws::S3::Errors::NoSuchKey < ::Aws::S3::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::S3::Types::NoSuchKey] + # @return [NoSuchKey] a new instance of NoSuchKey + # + # source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#100 + def initialize(context, message, data = T.unsafe(nil)); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#105 +class Aws::S3::Errors::NoSuchUpload < ::Aws::S3::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::S3::Types::NoSuchUpload] + # @return [NoSuchUpload] a new instance of NoSuchUpload + # + # source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#110 + def initialize(context, message, data = T.unsafe(nil)); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#115 +class Aws::S3::Errors::ObjectAlreadyInActiveTierError < ::Aws::S3::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::S3::Types::ObjectAlreadyInActiveTierError] + # @return [ObjectAlreadyInActiveTierError] a new instance of ObjectAlreadyInActiveTierError + # + # source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#120 + def initialize(context, message, data = T.unsafe(nil)); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#125 +class Aws::S3::Errors::ObjectNotInActiveTierError < ::Aws::S3::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param data [Aws::S3::Types::ObjectNotInActiveTierError] + # @return [ObjectNotInActiveTierError] a new instance of ObjectNotInActiveTierError + # + # source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#130 + def initialize(context, message, data = T.unsafe(nil)); end +end + +# Hijack PermanentRedirect dynamic error to include the bucket, region, +# and endpoint. +# +# source://aws-sdk-s3//lib/aws-sdk-s3/customizations/errors.rb#11 +class Aws::S3::Errors::PermanentRedirect < ::Aws::S3::Errors::ServiceError + # @param context [Seahorse::Client::RequestContext] + # @param message [String] + # @param _data [Aws::S3::Types::PermanentRedirect] + # @return [PermanentRedirect] a new instance of PermanentRedirect + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/errors.rb#12 + def initialize(context, message, _data = T.unsafe(nil)); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/errors.rb#0 +class Aws::S3::Errors::ServiceError < ::Aws::Errors::ServiceError; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/event_streams.rb#11 +module Aws::S3::EventStreams; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/event_streams.rb#12 +class Aws::S3::EventStreams::SelectObjectContentEventStream + # @return [SelectObjectContentEventStream] a new instance of SelectObjectContentEventStream + # + # source://aws-sdk-s3//lib/aws-sdk-s3/event_streams.rb#14 + def initialize; end + + # @api private + # @return Aws::EventEmitter + # + # source://aws-sdk-s3//lib/aws-sdk-s3/event_streams.rb#63 + def event_emitter; end + + # source://aws-sdk-s3//lib/aws-sdk-s3/event_streams.rb#30 + def on_cont_event(&block); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/event_streams.rb#34 + def on_end_event(&block); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/event_streams.rb#38 + def on_error_event(&block); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/event_streams.rb#50 + def on_event(&block); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/event_streams.rb#42 + def on_initial_response_event(&block); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/event_streams.rb#26 + def on_progress_event(&block); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/event_streams.rb#18 + def on_records_event(&block); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/event_streams.rb#22 + def on_stats_event(&block); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/event_streams.rb#46 + def on_unknown_event(&block); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/express_credentials.rb#8 +class Aws::S3::ExpressCredentials + include ::Aws::CredentialProvider + include ::Aws::RefreshingCredentials + + # @api private + # @return [ExpressCredentials] a new instance of ExpressCredentials + # + # source://aws-sdk-s3//lib/aws-sdk-s3/express_credentials.rb#15 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @return [S3::Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/express_credentials.rb#28 + def client; end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/express_credentials.rb#32 + def refresh; end + + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/express_credentials.rb#45 + def create_session_options; end + end +end + +# 2 minutes +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/express_credentials.rb#13 +Aws::S3::ExpressCredentials::ASYNC_EXPIRATION_LENGTH = T.let(T.unsafe(nil), Integer) + +# 1 minute +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/express_credentials.rb#12 +Aws::S3::ExpressCredentials::SYNC_EXPIRATION_LENGTH = T.let(T.unsafe(nil), Integer) + +# Returns Credentials class for S3 Express. Accepts CreateSession +# params as options. See {Client#create_session} for details. +# +# source://aws-sdk-s3//lib/aws-sdk-s3/express_credentials_provider.rb#12 +class Aws::S3::ExpressCredentialsProvider + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] + # @return [ExpressCredentialsProvider] a new instance of ExpressCredentialsProvider + # + # source://aws-sdk-s3//lib/aws-sdk-s3/express_credentials_provider.rb#21 + def initialize(options = T.unsafe(nil)); end + + # Returns the value of attribute client. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/express_credentials_provider.rb#38 + def client; end + + # Sets the attribute client + # + # @param value the value to set the attribute client to. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/express_credentials_provider.rb#38 + def client=(_arg0); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/express_credentials_provider.rb#30 + def express_credentials_for(bucket); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/express_credentials_provider.rb#42 + def cached_credentials_for(bucket); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/express_credentials_provider.rb#50 + def new_credentials_for(bucket); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#11 +class Aws::S3::FileDownloader + # @api private + # @return [FileDownloader] a new instance of FileDownloader + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#17 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#22 + def client; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#24 + def download(destination, options = T.unsafe(nil)); end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#133 + def batches(chunks, mode); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#123 + def compute_chunk(file_size); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#100 + def compute_mode(file_size, count); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#110 + def construct_chunks(file_size); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#165 + def download_in_threads(pending, total_size); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#80 + def multipart_download; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#158 + def multithreaded_get_by_parts(n_parts, total_size); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#138 + def multithreaded_get_by_ranges(file_size); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#218 + def single_part_progress; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#204 + def single_request; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#69 + def validate!; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#198 + def write(resp); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#14 +Aws::S3::FileDownloader::MAX_PARTS = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#13 +Aws::S3::FileDownloader::MIN_CHUNK_SIZE = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#254 +class Aws::S3::FileDownloader::MultipartProgress + # @api private + # @return [MultipartProgress] a new instance of MultipartProgress + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#255 + def initialize(parts, total_size, progress_callback); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#262 + def call(part_number, bytes_received, total); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#224 +class Aws::S3::FileDownloader::Part < ::Struct + include ::Aws::Structure +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#229 +class Aws::S3::FileDownloader::PartList + include ::Enumerable + + # @api private + # @return [PartList] a new instance of PartList + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#231 + def initialize(parts = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#244 + def clear!; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#248 + def each(&block); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#236 + def shift; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#240 + def size; end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/file_downloader.rb#15 +Aws::S3::FileDownloader::THREAD_COUNT = T.let(T.unsafe(nil), Integer) + +# A utility class that provides an IO-like interface to a portion of a file +# on disk. +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/file_part.rb#9 +class Aws::S3::FilePart + # @api private + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [FilePart] a new instance of FilePart + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_part.rb#19 + def initialize(options = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_part.rb#52 + def close; end + + # @api private + # @return [Integer] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_part.rb#31 + def first_byte; end + + # @api private + # @return [Integer] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_part.rb#34 + def last_byte; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_part.rb#39 + def read(bytes = T.unsafe(nil), output_buffer = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_part.rb#44 + def rewind; end + + # @api private + # @return [Integer] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_part.rb#37 + def size; end + + # @api private + # @return [String, Pathname, File, Tempfile] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_part.rb#28 + def source; end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_part.rb#58 + def open_file; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_part.rb#63 + def read_from_file(bytes, output_buffer); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_part.rb#72 + def remaining_bytes; end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/file_uploader.rb#8 +class Aws::S3::FileUploader + # @api private + # @option options + # @option options + # @param options [Hash] + # @return [FileUploader] a new instance of FileUploader + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_uploader.rb#15 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_uploader.rb#23 + def client; end + + # @api private + # @return [Integer] Files larger than or equal to this in bytes are uploaded + # using a {MultipartFileUploader}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_uploader.rb#27 + def multipart_threshold; end + + # @api private + # @option options + # @option options + # @option options + # @option options + # @param source [String, Pathname, File, Tempfile] The file to upload. + # @param options [Hash] a customizable set of options + # @return [void] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_uploader.rb#39 + def upload(source, options = T.unsafe(nil)); end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_uploader.rb#53 + def open_file(source); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_uploader.rb#61 + def put_object(source, options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/file_uploader.rb#70 + def single_part_progress(progress_callback); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/file_uploader.rb#10 +Aws::S3::FileUploader::ONE_HUNDRED_MEGABYTES = T.let(T.unsafe(nil), Integer) + +# source://aws-sdk-s3//lib/aws-sdk-s3.rb#78 +Aws::S3::GEM_VERSION = T.let(T.unsafe(nil), String) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/legacy_signer.rb#12 +class Aws::S3::LegacySigner + # @api private + # @param credentials [CredentialProvider] + # @return [LegacySigner] a new instance of LegacySigner + # + # source://aws-sdk-s3//lib/aws-sdk-s3/legacy_signer.rb#36 + def initialize(credentials, params, force_path_style); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/legacy_signer.rb#54 + def authorization(request); end + + # CanonicalizedAmzHeaders + # + # See the developer guide for more information on how this element + # is generated. + # + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/legacy_signer.rb#106 + def canonicalized_headers(request); end + + # From the S3 developer guide + # + # CanonicalizedResource = + # [ "/" ` Bucket ] ` + # + + # [ sub-resource, if present. e.g. "?acl", "?location", + # "?logging", or "?torrent"]; + # + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/legacy_signer.rb#123 + def canonicalized_resource(endpoint); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/legacy_signer.rb#45 + def credentials; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/legacy_signer.rb#64 + def digest(secret, string_to_sign); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/legacy_signer.rb#68 + def hmac(key, value); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/legacy_signer.rb#45 + def params; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/legacy_signer.rb#47 + def sign(request); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/legacy_signer.rb#58 + def signature(request); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/legacy_signer.rb#152 + def signed_querystring_params(endpoint); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/legacy_signer.rb#91 + def signing_string_date(request); end + + # From the S3 developer guide: + # + # StringToSign = + # HTTP-Verb ` "\n" ` + # content-md5 ` "\n" ` + # content-type ` "\n" ` + # date ` "\n" ` + # CanonicalizedAmzHeaders + CanonicalizedResource; + # + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/legacy_signer.rb#81 + def string_to_sign(request); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/legacy_signer.rb#158 + def uri_escape(s); end + + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/legacy_signer.rb#27 + def sign(context); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/legacy_signer.rb#14 +Aws::S3::LegacySigner::SIGNED_QUERYSTRING_PARAMS = T.let(T.unsafe(nil), Set) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#9 +class Aws::S3::MultipartFileUploader + # @api private + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [MultipartFileUploader] a new instance of MultipartFileUploader + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#35 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#41 + def client; end + + # @api private + # @option options + # @option options + # @option options + # @param source [String, Pathname, File, Tempfile] The file to upload. + # @param options [Hash] a customizable set of options + # @return [Seahorse::Client::Response] - the CompleteMultipartUploadResponse + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#50 + def upload(source, options = T.unsafe(nil)); end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#86 + def abort_upload(upload_id, options, errors); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#131 + def complete_opts(options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#66 + def complete_upload(upload_id, parts, options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#184 + def compute_default_part_size(source_size); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#102 + def compute_parts(upload_id, source, options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#124 + def create_opts(options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#62 + def initiate_upload(options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#188 + def part_size(total_size, part_size, offset); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#145 + def upload_in_threads(pending, completed, options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#138 + def upload_part_opts(options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#75 + def upload_parts(upload_id, source, options); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#24 +Aws::S3::MultipartFileUploader::COMPLETE_OPTIONS = T.let(T.unsafe(nil), Set) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#20 +Aws::S3::MultipartFileUploader::CREATE_OPTIONS = T.let(T.unsafe(nil), Set) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#13 +Aws::S3::MultipartFileUploader::FILE_TOO_SMALL = T.let(T.unsafe(nil), String) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#15 +Aws::S3::MultipartFileUploader::MAX_PARTS = T.let(T.unsafe(nil), Integer) + +# 5MB +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#11 +Aws::S3::MultipartFileUploader::MIN_PART_SIZE = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#231 +class Aws::S3::MultipartFileUploader::MultipartProgress + # @api private + # @return [MultipartProgress] a new instance of MultipartProgress + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#232 + def initialize(parts, progress_callback); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#238 + def call(part_number, bytes_read); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#197 +class Aws::S3::MultipartFileUploader::PartList + # @api private + # @return [PartList] a new instance of PartList + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#199 + def initialize(parts = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#212 + def clear!; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#220 + def part_sizes; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#204 + def push(part); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#208 + def shift; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#216 + def size; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#224 + def to_a; end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#17 +Aws::S3::MultipartFileUploader::THREAD_COUNT = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_file_uploader.rb#29 +Aws::S3::MultipartFileUploader::UPLOAD_PART_OPTIONS = T.let(T.unsafe(nil), Set) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_stream_uploader.rb#11 +class Aws::S3::MultipartStreamUploader + # @api private + # @option options + # @param options [Hash] a customizable set of options + # @return [MultipartStreamUploader] a new instance of MultipartStreamUploader + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_stream_uploader.rb#34 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_stream_uploader.rb#42 + def client; end + + # @api private + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Seahorse::Client::Response] - the CompleteMultipartUploadResponse + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_stream_uploader.rb#48 + def upload(options = T.unsafe(nil), &block); end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_stream_uploader.rb#99 + def abort_upload(upload_id, options, errors); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_stream_uploader.rb#129 + def complete_opts(options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_stream_uploader.rb#62 + def complete_upload(upload_id, parts, options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_stream_uploader.rb#115 + def create_opts(options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_stream_uploader.rb#58 + def initiate_upload(options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_stream_uploader.rb#136 + def read_to_part_body(read_pipe); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_stream_uploader.rb#153 + def upload_in_threads(read_pipe, completed, options, thread_errors); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_stream_uploader.rb#122 + def upload_part_opts(options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_stream_uploader.rb#71 + def upload_parts(upload_id, options, &block); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_stream_uploader.rb#30 +Aws::S3::MultipartStreamUploader::COMPLETE_UPLOAD_OPTIONS = T.let(T.unsafe(nil), Set) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_stream_uploader.rb#22 +Aws::S3::MultipartStreamUploader::CREATE_OPTIONS = T.let(T.unsafe(nil), Set) + +# api private +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_stream_uploader.rb#13 +Aws::S3::MultipartStreamUploader::PART_SIZE = T.let(T.unsafe(nil), Integer) + +# api private +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_stream_uploader.rb#19 +Aws::S3::MultipartStreamUploader::TEMPFILE_PREIX = T.let(T.unsafe(nil), String) + +# api private +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_stream_uploader.rb#16 +Aws::S3::MultipartStreamUploader::THREAD_COUNT = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_stream_uploader.rb#26 +Aws::S3::MultipartStreamUploader::UPLOAD_PART_OPTIONS = T.let(T.unsafe(nil), Set) + +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#12 +class Aws::S3::MultipartUpload + extend ::Aws::Deprecations + + # @overload initialize + # @overload initialize + # @return [MultipartUpload] a new instance of MultipartUpload + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#26 + def initialize(*args); end + + # @example Request syntax with placeholder values + # + # multipart_upload.abort({ + # request_payer: "requester", # accepts requester + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::AbortMultipartUploadOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#265 + def abort(options = T.unsafe(nil)); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#426 + def basic_complete(options = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#39 + def bucket_name; end + + # The algorithm that was used to create a checksum of the object. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#102 + def checksum_algorithm; end + + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#109 + def client; end + + # @example Request syntax with placeholder values + # + # object = multipart_upload.complete({ + # multipart_upload: { + # parts: [ + # { + # etag: "ETag", + # checksum_crc32: "ChecksumCRC32", + # checksum_crc32c: "ChecksumCRC32C", + # checksum_sha1: "ChecksumSHA1", + # checksum_sha256: "ChecksumSHA256", + # part_number: 1, + # }, + # ], + # }, + # checksum_crc32: "ChecksumCRC32", + # checksum_crc32c: "ChecksumCRC32C", + # checksum_sha1: "ChecksumSHA1", + # checksum_sha256: "ChecksumSHA256", + # request_payer: "requester", # accepts requester + # expected_bucket_owner: "AccountId", + # if_none_match: "IfNoneMatch", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Object] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/multipart_upload.rb#27 + def complete(options = T.unsafe(nil)); end + + # @raise [NotImplementedError] Raises when {#data_loaded?} is `false`. + # @return [Types::MultipartUpload] Returns the data for this {MultipartUpload}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#124 + def data; end + + # @return [Boolean] Returns `true` if this resource is loaded. Accessing attributes or + # {#data} on an unloaded resource will trigger a call to {#load}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#132 + def data_loaded?; end + + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#565 + def deprecated_identifiers; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#49 + def id; end + + # @api private + # @deprecated + # + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def identifiers(*args, &block); end + + # Date and time at which the multipart upload was initiated. + # + # @return [Time] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#67 + def initiated; end + + # Identifies who initiated the multipart upload. + # + # @return [Types::Initiator] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#96 + def initiator; end + + # Key of the object for which the multipart upload was initiated. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#61 + def key; end + + # @api private + # @raise [NotImplementedError] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#115 + def load; end + + # @return [Object] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#445 + def object; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#44 + def object_key; end + + # Specifies the owner of the object that is part of the multipart + # upload. + # + # **Directory buckets** - The bucket owner is returned as the object + # owner for all the objects. + # + # + # + # @return [Types::Owner] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#90 + def owner; end + + # @param part_number [String] + # @return [MultipartUploadPart] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#455 + def part(part_number); end + + # @example Request syntax with placeholder values + # + # parts = multipart_upload.parts({ + # request_payer: "requester", # accepts requester + # expected_bucket_owner: "AccountId", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [MultipartUploadPart::Collection] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#535 + def parts(options = T.unsafe(nil)); end + + # @api private + # @raise [NotImplementedError] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#115 + def reload; end + + # The class of storage used to store the object. + # + # **Directory buckets** - Only the S3 Express One Zone storage class is + # supported by directory buckets to store objects. + # + # + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#78 + def storage_class; end + + # Upload ID that identifies the multipart upload. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#55 + def upload_id; end + + # Waiter polls an API operation until a resource enters a desired + # state. + # + # ## Basic Usage + # + # Waiter will polls until it is successful, it fails by + # entering a terminal state, or until a maximum number of attempts + # are made. + # + # # polls in a loop until condition is true + # resource.wait_until(options) {|resource| condition} + # + # ## Example + # + # instance.wait_until(max_attempts:10, delay:5) do |instance| + # instance.state.name == 'running' + # end + # + # ## Configuration + # + # You can configure the maximum number of polling attempts, and the + # delay (in seconds) between each polling attempt. The waiting condition is + # set by passing a block to {#wait_until}: + # + # # poll for ~25 seconds + # resource.wait_until(max_attempts:5,delay:5) {|resource|...} + # + # ## Callbacks + # + # You can be notified before each polling attempt and before each + # delay. If you throw `:success` or `:failure` from these callbacks, + # it will terminate the waiter. + # + # started_at = Time.now + # # poll for 1 hour, instead of a number of attempts + # proc = Proc.new do |attempts, response| + # throw :failure if Time.now - started_at > 3600 + # end + # + # # disable max attempts + # instance.wait_until(before_wait:proc, max_attempts:nil) {...} + # + # ## Handling Errors + # + # When a waiter is successful, it returns the Resource. When a waiter + # fails, it raises an error. + # + # begin + # resource.wait_until(...) + # rescue Aws::Waiters::Errors::WaiterFailed + # # resource did not enter the desired state in time + # end + # + # attempts + # attempt in seconds + # invoked before each attempt + # invoked before each wait + # + # @deprecated Use [Aws::S3::Client] #wait_until instead + # @note The waiting operation is performed on a copy. The original resource + # remains unchanged. + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter + # terminates because the waiter has entered a state that it will not + # transition out of, preventing success. + # + # yet successful. + # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is + # encountered while polling for a resource that is not expected. + # @raise [NotImplementedError] Raised when the resource does not + # @return [Resource] if the waiter was successful + # @yieldparam resource [Resource] to be used in the waiting condition. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#216 + def wait_until(options = T.unsafe(nil), &block); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/multipart_upload.rb#36 + def compute_parts; end + + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#576 + def extract_bucket_name(args, options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#598 + def extract_id(args, options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#587 + def extract_object_key(args, options); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload.rb#609 +class Aws::S3::MultipartUpload::Collection < ::Aws::Resources::Collection; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_error.rb#5 +class Aws::S3::MultipartUploadError < ::StandardError + # @return [MultipartUploadError] a new instance of MultipartUploadError + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_error.rb#7 + def initialize(message, errors); end + + # @return [Array] The list of errors encountered + # when uploading or aborting the upload. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_error.rb#14 + def errors; end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#12 +class Aws::S3::MultipartUploadPart + extend ::Aws::Deprecations + + # @overload initialize + # @overload initialize + # @return [MultipartUploadPart] a new instance of MultipartUploadPart + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#28 + def initialize(*args); end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#42 + def bucket_name; end + + # This header can be used as a data integrity check to verify that the + # data received is the same data that was originally sent. This header + # specifies the base64-encoded, 32-bit CRC-32 checksum of the object. + # For more information, see [Checking object integrity][1] in the + # *Amazon S3 User Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#89 + def checksum_crc32; end + + # The base64-encoded, 32-bit CRC-32C checksum of the object. This will + # only be present if it was uploaded with the object. When you use an + # API operation on an object that was uploaded using multipart uploads, + # this value may not be a direct checksum value of the full object. + # Instead, it's a calculation based on the checksum values of each + # individual part. For more information about how checksums are + # calculated with multipart uploads, see [ Checking object integrity][1] + # in the *Amazon S3 User Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#106 + def checksum_crc32c; end + + # The base64-encoded, 160-bit SHA-1 digest of the object. This will only + # be present if it was uploaded with the object. When you use the API + # operation on an object that was uploaded using multipart uploads, this + # value may not be a direct checksum value of the full object. Instead, + # it's a calculation based on the checksum values of each individual + # part. For more information about how checksums are calculated with + # multipart uploads, see [ Checking object integrity][1] in the *Amazon + # S3 User Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#123 + def checksum_sha1; end + + # This header can be used as a data integrity check to verify that the + # data received is the same data that was originally sent. This header + # specifies the base64-encoded, 256-bit SHA-256 digest of the object. + # For more information, see [Checking object integrity][1] in the + # *Amazon S3 User Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#137 + def checksum_sha256; end + + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#144 + def client; end + + # @example Request syntax with placeholder values + # + # multipart_upload_part.copy_from({ + # copy_source: "CopySource", # required + # copy_source_if_match: "CopySourceIfMatch", + # copy_source_if_modified_since: Time.now, + # copy_source_if_none_match: "CopySourceIfNoneMatch", + # copy_source_if_unmodified_since: Time.now, + # copy_source_range: "CopySourceRange", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # copy_source_sse_customer_algorithm: "CopySourceSSECustomerAlgorithm", + # copy_source_sse_customer_key: "CopySourceSSECustomerKey", + # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5", + # request_payer: "requester", # accepts requester + # expected_bucket_owner: "AccountId", + # expected_source_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::UploadPartCopyOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#496 + def copy_from(options = T.unsafe(nil)); end + + # @raise [NotImplementedError] Raises when {#data_loaded?} is `false`. + # @return [Types::Part] Returns the data for this {MultipartUploadPart}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#159 + def data; end + + # @return [Boolean] Returns `true` if this resource is loaded. Accessing attributes or + # {#data} on an unloaded resource will trigger a call to {#load}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#167 + def data_loaded?; end + + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#673 + def deprecated_identifiers; end + + # Entity tag returned when the part was uploaded. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#69 + def etag; end + + # @api private + # @deprecated + # + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def identifiers(*args, &block); end + + # Date and time at which the part was uploaded. + # + # @return [Time] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#63 + def last_modified; end + + # @api private + # @raise [NotImplementedError] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#150 + def load; end + + # @return [MultipartUpload] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#662 + def multipart_upload; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#52 + def multipart_upload_id; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#47 + def object_key; end + + # @return [Integer] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#57 + def part_number; end + + # @api private + # @raise [NotImplementedError] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#150 + def reload; end + + # Size in bytes of the uploaded part data. + # + # @return [Integer] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#75 + def size; end + + # @example Request syntax with placeholder values + # + # multipart_upload_part.upload({ + # body: source_file, + # content_length: 1, + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # checksum_crc32: "ChecksumCRC32", + # checksum_crc32c: "ChecksumCRC32C", + # checksum_sha1: "ChecksumSHA1", + # checksum_sha256: "ChecksumSHA256", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # request_payer: "requester", # accepts requester + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::UploadPartOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#646 + def upload(options = T.unsafe(nil)); end + + # Waiter polls an API operation until a resource enters a desired + # state. + # + # ## Basic Usage + # + # Waiter will polls until it is successful, it fails by + # entering a terminal state, or until a maximum number of attempts + # are made. + # + # # polls in a loop until condition is true + # resource.wait_until(options) {|resource| condition} + # + # ## Example + # + # instance.wait_until(max_attempts:10, delay:5) do |instance| + # instance.state.name == 'running' + # end + # + # ## Configuration + # + # You can configure the maximum number of polling attempts, and the + # delay (in seconds) between each polling attempt. The waiting condition is + # set by passing a block to {#wait_until}: + # + # # poll for ~25 seconds + # resource.wait_until(max_attempts:5,delay:5) {|resource|...} + # + # ## Callbacks + # + # You can be notified before each polling attempt and before each + # delay. If you throw `:success` or `:failure` from these callbacks, + # it will terminate the waiter. + # + # started_at = Time.now + # # poll for 1 hour, instead of a number of attempts + # proc = Proc.new do |attempts, response| + # throw :failure if Time.now - started_at > 3600 + # end + # + # # disable max attempts + # instance.wait_until(before_wait:proc, max_attempts:nil) {...} + # + # ## Handling Errors + # + # When a waiter is successful, it returns the Resource. When a waiter + # fails, it raises an error. + # + # begin + # resource.wait_until(...) + # rescue Aws::Waiters::Errors::WaiterFailed + # # resource did not enter the desired state in time + # end + # + # attempts + # attempt in seconds + # invoked before each attempt + # invoked before each wait + # + # @deprecated Use [Aws::S3::Client] #wait_until instead + # @note The waiting operation is performed on a copy. The original resource + # remains unchanged. + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter + # terminates because the waiter has entered a state that it will not + # transition out of, preventing success. + # + # yet successful. + # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is + # encountered while polling for a resource that is not expected. + # @raise [NotImplementedError] Raised when the resource does not + # @return [Resource] if the waiter was successful + # @yieldparam resource [Resource] to be used in the waiting condition. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#251 + def wait_until(options = T.unsafe(nil), &block); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#685 + def extract_bucket_name(args, options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#707 + def extract_multipart_upload_id(args, options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#696 + def extract_object_key(args, options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#718 + def extract_part_number(args, options); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/multipart_upload_part.rb#729 +class Aws::S3::MultipartUploadPart::Collection < ::Aws::Resources::Collection; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#12 +class Aws::S3::Object + extend ::Aws::Deprecations + + # @overload initialize + # @overload initialize + # @return [Object] a new instance of Object + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#24 + def initialize(*args); end + + # Indicates that a range of bytes was specified. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#59 + def accept_ranges; end + + # @return [ObjectAcl] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#3205 + def acl; end + + # The archive state of the head object. + # + # This functionality is not supported for directory buckets. + # + # + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#119 + def archive_status; end + + # @return [Bucket] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#3214 + def bucket; end + + # Indicates whether the object uses an S3 Bucket Key for server-side + # encryption with Key Management Service (KMS) keys (SSE-KMS). + # + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#337 + def bucket_key_enabled; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#36 + def bucket_name; end + + # Specifies caching behavior along the request/reply chain. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#236 + def cache_control; end + + # The base64-encoded, 32-bit CRC-32 checksum of the object. This will + # only be present if it was uploaded with the object. When you use an + # API operation on an object that was uploaded using multipart uploads, + # this value may not be a direct checksum value of the full object. + # Instead, it's a calculation based on the checksum values of each + # individual part. For more information about how checksums are + # calculated with multipart uploads, see [ Checking object integrity][1] + # in the *Amazon S3 User Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#148 + def checksum_crc32; end + + # The base64-encoded, 32-bit CRC-32C checksum of the object. This will + # only be present if it was uploaded with the object. When you use an + # API operation on an object that was uploaded using multipart uploads, + # this value may not be a direct checksum value of the full object. + # Instead, it's a calculation based on the checksum values of each + # individual part. For more information about how checksums are + # calculated with multipart uploads, see [ Checking object integrity][1] + # in the *Amazon S3 User Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#165 + def checksum_crc32c; end + + # The base64-encoded, 160-bit SHA-1 digest of the object. This will only + # be present if it was uploaded with the object. When you use the API + # operation on an object that was uploaded using multipart uploads, this + # value may not be a direct checksum value of the full object. Instead, + # it's a calculation based on the checksum values of each individual + # part. For more information about how checksums are calculated with + # multipart uploads, see [ Checking object integrity][1] in the *Amazon + # S3 User Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#182 + def checksum_sha1; end + + # The base64-encoded, 256-bit SHA-256 digest of the object. This will + # only be present if it was uploaded with the object. When you use an + # API operation on an object that was uploaded using multipart uploads, + # this value may not be a direct checksum value of the full object. + # Instead, it's a calculation based on the checksum values of each + # individual part. For more information about how checksums are + # calculated with multipart uploads, see [ Checking object integrity][1] + # in the *Amazon S3 User Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#199 + def checksum_sha256; end + + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#478 + def client; end + + # Specifies presentational information for the object. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#242 + def content_disposition; end + + # Indicates what content encodings have been applied to the object and + # thus what decoding mechanisms must be applied to obtain the media-type + # referenced by the Content-Type header field. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#250 + def content_encoding; end + + # The language the content is in. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#256 + def content_language; end + + # Size of the body in bytes. + # + # @return [Integer] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#131 + def content_length; end + + # A standard MIME type describing the format of the object data. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#262 + def content_type; end + + # @example Request syntax with placeholder values + # + # object.copy_from({ + # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control + # cache_control: "CacheControl", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # content_disposition: "ContentDisposition", + # content_encoding: "ContentEncoding", + # content_language: "ContentLanguage", + # content_type: "ContentType", + # copy_source: "CopySource", # required + # copy_source_if_match: "CopySourceIfMatch", + # copy_source_if_modified_since: Time.now, + # copy_source_if_none_match: "CopySourceIfNoneMatch", + # copy_source_if_unmodified_since: Time.now, + # expires: Time.now, + # grant_full_control: "GrantFullControl", + # grant_read: "GrantRead", + # grant_read_acp: "GrantReadACP", + # grant_write_acp: "GrantWriteACP", + # metadata: { + # "MetadataKey" => "MetadataValue", + # }, + # metadata_directive: "COPY", # accepts COPY, REPLACE + # tagging_directive: "COPY", # accepts COPY, REPLACE + # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse + # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE + # website_redirect_location: "WebsiteRedirectLocation", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # ssekms_key_id: "SSEKMSKeyId", + # ssekms_encryption_context: "SSEKMSEncryptionContext", + # bucket_key_enabled: false, + # copy_source_sse_customer_algorithm: "CopySourceSSECustomerAlgorithm", + # copy_source_sse_customer_key: "CopySourceSSECustomerKey", + # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5", + # request_payer: "requester", # accepts requester + # tagging: "TaggingHeader", + # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE + # object_lock_retain_until_date: Time.now, + # object_lock_legal_hold_status: "ON", # accepts ON, OFF + # expected_bucket_owner: "AccountId", + # expected_source_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::CopyObjectOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/object.rb#78 + def copy_from(source, options = T.unsafe(nil)); end + + # Copies this object to another object. Use `multipart_copy: true` + # for large objects. This is required for objects that exceed 5GB. + # + # @example Basic object copy + # + # bucket = Aws::S3::Bucket.new('source-bucket') + # object = bucket.object('source-key') + # + # # target as String + # object.copy_to('target-bucket/target-key') + # + # # target as Hash + # object.copy_to(bucket: 'target-bucket', key: 'target-key') + # + # # target as Aws::S3::Object + # object.copy_to(bucket.object('target-key')) + # @example Managed copy of large objects + # + # # uses multipart upload APIs to copy object + # object.copy_to('src-bucket/src-key', multipart_copy: true) + # @note If you need to copy to a bucket in a different region, use + # {#copy_from}. + # @param target [S3::Object, String, Hash] Where to copy the object + # data to. `target` must be one of the following: + # + # * {Aws::S3::Object} + # * Hash - with `:bucket` and `:key` + # * String - formatted like `"target-bucket-name/target-key"` + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/object.rb#121 + def copy_to(target, options = T.unsafe(nil)); end + + # @return [Types::HeadObjectOutput] Returns the data for this {Object}. Calls + # {Client#head_object} if {#data_loaded?} is `false`. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#503 + def data; end + + # @return [Boolean] Returns `true` if this resource is loaded. Accessing attributes or + # {#data} on an unloaded resource will trigger a call to {#load}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#511 + def data_loaded?; end + + # @example Request syntax with placeholder values + # + # object.delete({ + # mfa: "MFA", + # version_id: "ObjectVersionId", + # request_payer: "requester", # accepts requester + # bypass_governance_retention: false, + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::DeleteObjectOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#1455 + def delete(options = T.unsafe(nil)); end + + # Specifies whether the object retrieved was (true) or was not (false) a + # Delete Marker. If false, this response header does not appear in the + # response. + # + # This functionality is not supported for directory buckets. + # + # + # + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#53 + def delete_marker; end + + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#3245 + def deprecated_identifiers; end + + # Downloads a file in S3 to a path on disk. + # + # # small files (< 5MB) are downloaded in a single API call + # obj.download_file('/path/to/file') + # + # Files larger than 5MB are downloaded using multipart method + # + # # large files are split into parts + # # and the parts are downloaded in parallel + # obj.download_file('/path/to/very_large_file') + # + # You can provide a callback to monitor progress of the download: + # + # # bytes and part_sizes are each an array with 1 entry per part + # # part_sizes may not be known until the first bytes are retrieved + # progress = Proc.new do |bytes, part_sizes, file_size| + # puts bytes.map.with_index { |b, i| "Part #{i+1}: #{b} / #{part_sizes[i]}"}.join(' ') + "Total: #{100.0 * bytes.sum / file_size}%" } + # end + # obj.download_file('/path/to/file', progress_callback: progress) + # + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param destination [String] Where to download the file to. + # @param options [Hash] Additional options for {Client#get_object} and #{Client#head_object} + # may be provided. + # @return [Boolean] Returns `true` when the file is downloaded without + # any errors. + # @see Client#get_object + # @see Client#head_object + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/object.rb#552 + def download_file(destination, options = T.unsafe(nil)); end + + # An entity tag (ETag) is an opaque identifier assigned by a web server + # to a specific version of a resource found at a URL. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#206 + def etag; end + + # @param options [Hash] ({}) + # @return [Boolean] Returns `true` if the Object exists. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#518 + def exists?(options = T.unsafe(nil)); end + + # If the object expiration is configured (see [ + # `PutBucketLifecycleConfiguration` ][1]), the response includes this + # header. It includes the `expiry-date` and `rule-id` key-value pairs + # providing object expiration information. The value of the `rule-id` is + # URL-encoded. + # + # This functionality is not supported for directory buckets. + # + # + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#77 + def expiration; end + + # The date and time at which the object is no longer cacheable. + # + # @return [Time] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#268 + def expires; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#273 + def expires_string; end + + # @example Request syntax with placeholder values + # + # object.get({ + # if_match: "IfMatch", + # if_modified_since: Time.now, + # if_none_match: "IfNoneMatch", + # if_unmodified_since: Time.now, + # range: "Range", + # response_cache_control: "ResponseCacheControl", + # response_content_disposition: "ResponseContentDisposition", + # response_content_encoding: "ResponseContentEncoding", + # response_content_language: "ResponseContentLanguage", + # response_content_type: "ResponseContentType", + # response_expires: Time.now, + # version_id: "ObjectVersionId", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # request_payer: "requester", # accepts requester + # part_number: 1, + # expected_bucket_owner: "AccountId", + # checksum_mode: "ENABLED", # accepts ENABLED + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::GetObjectOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#1720 + def get(options = T.unsafe(nil), &block); end + + # @example Request syntax with placeholder values + # + # object.head({ + # if_match: "IfMatch", + # if_modified_since: Time.now, + # if_none_match: "IfNoneMatch", + # if_unmodified_since: Time.now, + # range: "Range", + # response_cache_control: "ResponseCacheControl", + # response_content_disposition: "ResponseContentDisposition", + # response_content_encoding: "ResponseContentEncoding", + # response_content_language: "ResponseContentLanguage", + # response_content_type: "ResponseContentType", + # response_expires: Time.now, + # version_id: "ObjectVersionId", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # request_payer: "requester", # accepts requester + # part_number: 1, + # expected_bucket_owner: "AccountId", + # checksum_mode: "ENABLED", # accepts ENABLED + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::HeadObjectOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#3191 + def head(options = T.unsafe(nil)); end + + # @api private + # @deprecated + # + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def identifiers(*args, &block); end + + # @example Request syntax with placeholder values + # + # multipartupload = object.initiate_multipart_upload({ + # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control + # cache_control: "CacheControl", + # content_disposition: "ContentDisposition", + # content_encoding: "ContentEncoding", + # content_language: "ContentLanguage", + # content_type: "ContentType", + # expires: Time.now, + # grant_full_control: "GrantFullControl", + # grant_read: "GrantRead", + # grant_read_acp: "GrantReadACP", + # grant_write_acp: "GrantWriteACP", + # metadata: { + # "MetadataKey" => "MetadataValue", + # }, + # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse + # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE + # website_redirect_location: "WebsiteRedirectLocation", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # ssekms_key_id: "SSEKMSKeyId", + # ssekms_encryption_context: "SSEKMSEncryptionContext", + # bucket_key_enabled: false, + # request_payer: "requester", # accepts requester + # tagging: "TaggingHeader", + # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE + # object_lock_retain_until_date: Time.now, + # object_lock_legal_hold_status: "ON", # accepts ON, OFF + # expected_bucket_owner: "AccountId", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [MultipartUpload] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#2284 + def initiate_multipart_upload(options = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#41 + def key; end + + # Date and time when the object was last modified. + # + # @return [Time] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#125 + def last_modified; end + + # Loads, or reloads {#data} for the current {Object}. + # Returns `self` making it possible to chain methods. + # + # object.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#488 + def load; end + + # A map of metadata to store with the object in S3. + # + # @return [Hash] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#298 + def metadata; end + + # This is set to the number of metadata entries not returned in + # `x-amz-meta` headers. This can happen if you create metadata using an + # API like SOAP that supports more flexible metadata than the REST API. + # For example, using SOAP, you can create metadata whose values are not + # legal HTTP headers. + # + # This functionality is not supported for directory buckets. + # + # + # + # @return [Integer] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#220 + def missing_meta; end + + # Copies and deletes the current object. The object will only be deleted + # if the copy operation succeeds. + # + # @param target [S3::Object, String, Hash] Where to copy the object + # data to. `target` must be one of the following: + # + # * {Aws::S3::Object} + # * Hash - with `:bucket` and `:key` + # * String - formatted like `"target-bucket-name/target-key"` + # @return [void] + # @see Object#copy_to + # @see Object#delete + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/object.rb#135 + def move_to(target, options = T.unsafe(nil)); end + + # @param id [String] + # @return [MultipartUpload] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#3223 + def multipart_upload(id); end + + # Specifies whether a legal hold is in effect for this object. This + # header is only returned if the requester has the + # `s3:GetObjectLegalHold` permission. This header is not returned if the + # specified version of this object has never had a legal hold applied. + # For more information about S3 Object Lock, see [Object Lock][1]. + # + # This functionality is not supported for directory buckets. + # + # + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#471 + def object_lock_legal_hold_status; end + + # The Object Lock mode, if any, that's in effect for this object. This + # header is only returned if the requester has the + # `s3:GetObjectRetention` permission. For more information about S3 + # Object Lock, see [Object Lock][1]. + # + # This functionality is not supported for directory buckets. + # + # + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#441 + def object_lock_mode; end + + # The date and time when the Object Lock retention period expires. This + # header is only returned if the requester has the + # `s3:GetObjectRetention` permission. + # + # This functionality is not supported for directory buckets. + # + # + # + # @return [Time] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#453 + def object_lock_retain_until_date; end + + # The count of parts this object has. This value is only returned if you + # specify `partNumber` in your request and the object was uploaded as a + # multipart upload. + # + # @return [Integer] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#424 + def parts_count; end + + # Creates a {PresignedPost} that makes it easy to upload a file from + # a web browser direct to Amazon S3 using an HTML post form with + # a file field. + # + # See the {PresignedPost} documentation for more information. + # + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @return [PresignedPost] + # @see PresignedPost + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/object.rb#149 + def presigned_post(options = T.unsafe(nil)); end + + # Allows you to create presigned URL requests for S3 operations. This + # method returns a tuple containing the URL and the signed X-amz-* headers + # to be used with the presigned url. + # + # @example Pre-signed GET URL, valid for one hour + # + # obj.presigned_request(:get, expires_in: 3600) + # #=> ["https://bucket-name.s3.amazonaws.com/object-key?...", {}] + # @example Pre-signed PUT with a canned ACL + # + # # the object uploaded using this URL will be publicly accessible + # obj.presigned_request(:put, acl: 'public-read') + # #=> ["https://bucket-name.s3.amazonaws.com/object-key?...", + # {"x-amz-acl"=>"public-read"}] + # @option params + # @option params + # @param method [Symbol] The S3 operation to generate a presigned request for. Valid values + # are `:get`, `:put`, `:head`, `:delete`, `:create_multipart_upload`, + # `:list_multipart_uploads`, `:complete_multipart_upload`, + # `:abort_multipart_upload`, `:list_parts`, and `:upload_part`. + # @param params [Hash] Additional request parameters to use when generating the pre-signed + # request. See the related documentation in {Client} for accepted + # params. + # + # | Method | Client Method | + # |------------------------------|------------------------------------| + # | `:get` | {Client#get_object} | + # | `:put` | {Client#put_object} | + # | `:head` | {Client#head_object} | + # | `:delete` | {Client#delete_object} | + # | `:create_multipart_upload` | {Client#create_multipart_upload} | + # | `:list_multipart_uploads` | {Client#list_multipart_uploads} | + # | `:complete_multipart_upload` | {Client#complete_multipart_upload} | + # | `:abort_multipart_upload` | {Client#abort_multipart_upload} | + # | `:list_parts` | {Client#list_parts} | + # | `:upload_part` | {Client#upload_part} | + # @raise [ArgumentError] Raised if `:expires_in` exceeds one week + # (604800 seconds). + # @return [String, Hash] A tuple with a presigned URL and headers that + # should be included with the request. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/object.rb#293 + def presigned_request(method, params = T.unsafe(nil)); end + + # Generates a pre-signed URL for this object. + # + # @example Pre-signed GET URL, valid for one hour + # + # obj.presigned_url(:get, expires_in: 3600) + # #=> "https://bucket-name.s3.amazonaws.com/object-key?..." + # @example Pre-signed PUT with a canned ACL + # + # # the object uploaded using this URL will be publicly accessible + # obj.presigned_url(:put, acl: 'public-read') + # #=> "https://bucket-name.s3.amazonaws.com/object-key?..." + # @example Pre-signed UploadPart PUT + # + # # the object uploaded using this URL will be publicly accessible + # obj.presigned_url(:upload_part, part_number: 1, upload_id: 'uploadIdToken') + # #=> "https://bucket-name.s3.amazonaws.com/object-key?..." + # @option params + # @option params + # @param method [Symbol] The S3 operation to generate a presigned URL for. Valid values + # are `:get`, `:put`, `:head`, `:delete`, `:create_multipart_upload`, + # `:list_multipart_uploads`, `:complete_multipart_upload`, + # `:abort_multipart_upload`, `:list_parts`, and `:upload_part`. + # @param params [Hash] Additional request parameters to use when generating the pre-signed + # URL. See the related documentation in {Client} for accepted + # params. + # + # | Method | Client Method | + # |------------------------------|------------------------------------| + # | `:get` | {Client#get_object} | + # | `:put` | {Client#put_object} | + # | `:head` | {Client#head_object} | + # | `:delete` | {Client#delete_object} | + # | `:create_multipart_upload` | {Client#create_multipart_upload} | + # | `:list_multipart_uploads` | {Client#list_multipart_uploads} | + # | `:complete_multipart_upload` | {Client#complete_multipart_upload} | + # | `:abort_multipart_upload` | {Client#abort_multipart_upload} | + # | `:list_parts` | {Client#list_parts} | + # | `:upload_part` | {Client#upload_part} | + # @raise [ArgumentError] Raised if `:expires_in` exceeds one week + # (604800 seconds). + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/object.rb#220 + def presigned_url(method, params = T.unsafe(nil)); end + + # Returns the public (un-signed) URL for this object. + # + # s3.bucket('bucket-name').object('obj-key').public_url + # #=> "https://bucket-name.s3.amazonaws.com/obj-key" + # + # To use virtual hosted bucket url. + # Uses https unless secure: false is set. If the bucket + # name contains dots (.) then you will need to set secure: false. + # + # s3.bucket('my-bucket.com').object('key') + # .public_url(virtual_host: true) + # #=> "https://my-bucket.com/key" + # + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/object.rb#328 + def public_url(options = T.unsafe(nil)); end + + # @example Request syntax with placeholder values + # + # object.put({ + # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control + # body: source_file, + # cache_control: "CacheControl", + # content_disposition: "ContentDisposition", + # content_encoding: "ContentEncoding", + # content_language: "ContentLanguage", + # content_length: 1, + # content_md5: "ContentMD5", + # content_type: "ContentType", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # checksum_crc32: "ChecksumCRC32", + # checksum_crc32c: "ChecksumCRC32C", + # checksum_sha1: "ChecksumSHA1", + # checksum_sha256: "ChecksumSHA256", + # expires: Time.now, + # if_none_match: "IfNoneMatch", + # grant_full_control: "GrantFullControl", + # grant_read: "GrantRead", + # grant_read_acp: "GrantReadACP", + # grant_write_acp: "GrantWriteACP", + # metadata: { + # "MetadataKey" => "MetadataValue", + # }, + # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse + # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE + # website_redirect_location: "WebsiteRedirectLocation", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # ssekms_key_id: "SSEKMSKeyId", + # ssekms_encryption_context: "SSEKMSEncryptionContext", + # bucket_key_enabled: false, + # request_payer: "requester", # accepts requester + # tagging: "TaggingHeader", + # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE + # object_lock_retain_until_date: Time.now, + # object_lock_legal_hold_status: "ON", # accepts ON, OFF + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::PutObjectOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#2851 + def put(options = T.unsafe(nil)); end + + # Loads, or reloads {#data} for the current {Object}. + # Returns `self` making it possible to chain methods. + # + # object.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#488 + def reload; end + + # Amazon S3 can return this header if your request involves a bucket + # that is either a source or a destination in a replication rule. + # + # In replication, you have a source bucket on which you configure + # replication and destination bucket or buckets where Amazon S3 stores + # object replicas. When you request an object (`GetObject`) or object + # metadata (`HeadObject`) from these buckets, Amazon S3 will return the + # `x-amz-replication-status` header in the response as follows: + # + # * **If requesting an object from the source bucket**, Amazon S3 will + # return the `x-amz-replication-status` header if the object in your + # request is eligible for replication. + # + # For example, suppose that in your replication configuration, you + # specify object prefix `TaxDocs` requesting Amazon S3 to replicate + # objects with key prefix `TaxDocs`. Any objects you upload with this + # key name prefix, for example `TaxDocs/document1.pdf`, are eligible + # for replication. For any object request with this key name prefix, + # Amazon S3 will return the `x-amz-replication-status` header with + # value PENDING, COMPLETED or FAILED indicating object replication + # status. + # + # * **If requesting an object from a destination bucket**, Amazon S3 + # will return the `x-amz-replication-status` header with value REPLICA + # if the object in your request is a replica that Amazon S3 created + # and there is no replica modification replication in progress. + # + # * **When replicating objects to multiple destination buckets**, the + # `x-amz-replication-status` header acts differently. The header of + # the source object will only return a value of COMPLETED when + # replication is successful to all destinations. The header will + # remain at value PENDING until replication has completed for all + # destinations. If one or more destinations fails replication the + # header will return FAILED. + # + # For more information, see [Replication][1]. + # + # This functionality is not supported for directory buckets. + # + # + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#416 + def replication_status; end + + # If present, indicates that the requester was successfully charged for + # the request. + # + # This functionality is not supported for directory buckets. + # + # + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#367 + def request_charged; end + + # If the object is an archived object (an object whose storage class is + # GLACIER), the response includes this header if either the archive + # restoration is in progress (see [RestoreObject][1] or an archive copy + # is already restored. + # + # If an archive copy is already restored, the header value indicates + # when Amazon S3 is scheduled to delete the object copy. For example: + # + # `x-amz-restore: ongoing-request="false", expiry-date="Fri, 21 Dec 2012 + # 00:00:00 GMT"` + # + # If the object restoration is in progress, the header returns the value + # `ongoing-request="true"`. + # + # For more information about archiving objects, see [Transitioning + # Objects: General Considerations][2]. + # + # This functionality is not supported for directory buckets. Only the S3 + # Express One Zone storage class is supported by directory buckets to + # store objects. + # + # + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html + # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-transition-general-considerations + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#109 + def restore; end + + # @example Request syntax with placeholder values + # + # object.restore_object({ + # version_id: "ObjectVersionId", + # restore_request: { + # days: 1, + # glacier_job_parameters: { + # tier: "Standard", # required, accepts Standard, Bulk, Expedited + # }, + # type: "SELECT", # accepts SELECT + # tier: "Standard", # accepts Standard, Bulk, Expedited + # description: "Description", + # select_parameters: { + # input_serialization: { # required + # csv: { + # file_header_info: "USE", # accepts USE, IGNORE, NONE + # comments: "Comments", + # quote_escape_character: "QuoteEscapeCharacter", + # record_delimiter: "RecordDelimiter", + # field_delimiter: "FieldDelimiter", + # quote_character: "QuoteCharacter", + # allow_quoted_record_delimiter: false, + # }, + # compression_type: "NONE", # accepts NONE, GZIP, BZIP2 + # json: { + # type: "DOCUMENT", # accepts DOCUMENT, LINES + # }, + # parquet: { + # }, + # }, + # expression_type: "SQL", # required, accepts SQL + # expression: "Expression", # required + # output_serialization: { # required + # csv: { + # quote_fields: "ALWAYS", # accepts ALWAYS, ASNEEDED + # quote_escape_character: "QuoteEscapeCharacter", + # record_delimiter: "RecordDelimiter", + # field_delimiter: "FieldDelimiter", + # quote_character: "QuoteCharacter", + # }, + # json: { + # record_delimiter: "RecordDelimiter", + # }, + # }, + # }, + # output_location: { + # s3: { + # bucket_name: "BucketName", # required + # prefix: "LocationPrefix", # required + # encryption: { + # encryption_type: "AES256", # required, accepts AES256, aws:kms, aws:kms:dsse + # kms_key_id: "SSEKMSKeyId", + # kms_context: "KMSContext", + # }, + # canned_acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control + # access_control_list: [ + # { + # grantee: { + # display_name: "DisplayName", + # email_address: "EmailAddress", + # id: "ID", + # type: "CanonicalUser", # required, accepts CanonicalUser, AmazonCustomerByEmail, Group + # uri: "URI", + # }, + # permission: "FULL_CONTROL", # accepts FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP + # }, + # ], + # tagging: { + # tag_set: [ # required + # { + # key: "ObjectKey", # required + # value: "Value", # required + # }, + # ], + # }, + # user_metadata: [ + # { + # name: "MetadataKey", + # value: "MetadataValue", + # }, + # ], + # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE + # }, + # }, + # }, + # request_payer: "requester", # accepts requester + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::RestoreObjectOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#2992 + def restore_object(options = T.unsafe(nil)); end + + # The server-side encryption algorithm used when you store this object + # in Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`). + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#292 + def server_side_encryption; end + + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#131 + def size; end + + # If server-side encryption with a customer-provided encryption key was + # requested, the response will include this header to confirm the + # encryption algorithm that's used. + # + # This functionality is not supported for directory buckets. + # + # + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#310 + def sse_customer_algorithm; end + + # If server-side encryption with a customer-provided encryption key was + # requested, the response will include this header to provide the + # round-trip message integrity verification of the customer-provided + # encryption key. + # + # This functionality is not supported for directory buckets. + # + # + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#323 + def sse_customer_key_md5; end + + # If present, indicates the ID of the KMS key that was used for object + # encryption. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#330 + def ssekms_key_id; end + + # Provides storage class information of the object. Amazon S3 returns + # this header for all objects except for S3 Standard storage class + # objects. + # + # For more information, see [Storage Classes][1]. + # + # Directory buckets - Only the S3 Express One Zone storage class + # is supported by directory buckets to store objects. + # + # + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#356 + def storage_class; end + + # Uploads a file from disk to the current object in S3. + # + # # small files are uploaded in a single API call + # obj.upload_file('/path/to/file') + # + # Files larger than or equal to `:multipart_threshold` are uploaded + # using the Amazon S3 multipart upload APIs. + # + # # large files are automatically split into parts + # # and the parts are uploaded in parallel + # obj.upload_file('/path/to/very_large_file') + # + # The response of the S3 upload API is yielded if a block given. + # + # # API response will have etag value of the file + # obj.upload_file('/path/to/file') do |response| + # etag = response.etag + # end + # + # You can provide a callback to monitor progress of the upload: + # + # # bytes and totals are each an array with 1 entry per part + # progress = Proc.new do |bytes, totals| + # puts bytes.map.with_index { |b, i| "Part #{i+1}: #{b} / #{totals[i]}"}.join(' ') + "Total: #{100.0 * bytes.sum / totals.sum }%" } + # end + # obj.upload_file('/path/to/file', progress_callback: progress) + # + # @option options + # @option options + # @option options + # @param source [String, Pathname, File, Tempfile] A file on the local + # file system that will be uploaded as this object. This can either be + # a String or Pathname to the file, an open File object, or an open + # Tempfile object. If you pass an open File or Tempfile object, then + # you are responsible for closing it after the upload completes. When + # using an open Tempfile, rewind it before uploading or else the object + # will be empty. + # @param options [Hash] Additional options for {Client#put_object} + # when file sizes below the multipart threshold. For files larger than + # the multipart threshold, options for {Client#create_multipart_upload}, + # {Client#complete_multipart_upload}, + # and {Client#upload_part} can be provided. + # @raise [MultipartUploadError] If an object is being uploaded in + # parts, and the upload can not be completed, then the upload is + # aborted and this error is raised. The raised error has a `#errors` + # method that returns the failures that caused the upload to be + # aborted. + # @return [Boolean] Returns `true` when the object is uploaded + # without any errors. + # @see Client#put_object + # @see Client#create_multipart_upload + # @see Client#complete_multipart_upload + # @see Client#upload_part + # @yield [response] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/object.rb#470 + def upload_file(source, options = T.unsafe(nil)); end + + # Uploads a stream in a streaming fashion to the current object in S3. + # + # Passed chunks automatically split into multipart upload parts and the + # parts are uploaded in parallel. This allows for streaming uploads that + # never touch the disk. + # + # Note that this is known to have issues in JRuby until jruby-9.1.15.0, + # so avoid using this with older versions of JRuby. + # + # @example Streaming chunks of data + # obj.upload_stream do |write_stream| + # 10.times { write_stream << 'foo' } + # end + # @example Streaming chunks of data + # obj.upload_stream do |write_stream| + # IO.copy_stream(IO.popen('ls'), write_stream) + # end + # @example Streaming chunks of data + # obj.upload_stream do |write_stream| + # IO.copy_stream(STDIN, write_stream) + # end + # @option options + # @option options + # @option options + # @param options [Hash] Additional options for {Client#create_multipart_upload}, + # {Client#complete_multipart_upload}, + # and {Client#upload_part} can be provided. + # @raise [MultipartUploadError] If an object is being uploaded in + # parts, and the upload can not be completed, then the upload is + # aborted and this error is raised. The raised error has a `#errors` + # method that returns the failures that caused the upload to be + # aborted. + # @return [Boolean] Returns `true` when the object is uploaded + # without any errors. + # @see Client#create_multipart_upload + # @see Client#complete_multipart_upload + # @see Client#upload_part + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/object.rb#385 + def upload_stream(options = T.unsafe(nil), &block); end + + # @param id [String] + # @return [ObjectVersion] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#3234 + def version(id); end + + # Version ID of the object. + # + # This functionality is not supported for directory buckets. + # + # + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#230 + def version_id; end + + # Waiter polls an API operation until a resource enters a desired + # state. + # + # ## Basic Usage + # + # Waiter will polls until it is successful, it fails by + # entering a terminal state, or until a maximum number of attempts + # are made. + # + # # polls in a loop until condition is true + # resource.wait_until(options) {|resource| condition} + # + # ## Example + # + # instance.wait_until(max_attempts:10, delay:5) do |instance| + # instance.state.name == 'running' + # end + # + # ## Configuration + # + # You can configure the maximum number of polling attempts, and the + # delay (in seconds) between each polling attempt. The waiting condition is + # set by passing a block to {#wait_until}: + # + # # poll for ~25 seconds + # resource.wait_until(max_attempts:5,delay:5) {|resource|...} + # + # ## Callbacks + # + # You can be notified before each polling attempt and before each + # delay. If you throw `:success` or `:failure` from these callbacks, + # it will terminate the waiter. + # + # started_at = Time.now + # # poll for 1 hour, instead of a number of attempts + # proc = Proc.new do |attempts, response| + # throw :failure if Time.now - started_at > 3600 + # end + # + # # disable max attempts + # instance.wait_until(before_wait:proc, max_attempts:nil) {...} + # + # ## Handling Errors + # + # When a waiter is successful, it returns the Resource. When a waiter + # fails, it raises an error. + # + # begin + # resource.wait_until(...) + # rescue Aws::Waiters::Errors::WaiterFailed + # # resource did not enter the desired state in time + # end + # + # attempts + # attempt in seconds + # invoked before each attempt + # invoked before each wait + # + # @deprecated Use [Aws::S3::Client] #wait_until instead + # @note The waiting operation is performed on a copy. The original resource + # remains unchanged. + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter + # terminates because the waiter has entered a state that it will not + # transition out of, preventing success. + # + # yet successful. + # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is + # encountered while polling for a resource that is not expected. + # @raise [NotImplementedError] Raised when the resource does not + # @return [Resource] if the waiter was successful + # @yieldparam resource [Resource] to be used in the waiting condition. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#651 + def wait_until(options = T.unsafe(nil), &block); end + + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Object] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#535 + def wait_until_exists(options = T.unsafe(nil), &block); end + + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Object] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#556 + def wait_until_not_exists(options = T.unsafe(nil), &block); end + + # If the bucket is configured as a website, redirects requests for this + # object to another object in the same bucket or to an external URL. + # Amazon S3 stores the value of this header in the object metadata. + # + # This functionality is not supported for directory buckets. + # + # + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#285 + def website_redirect_location; end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#3255 + def extract_bucket_name(args, options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#3266 + def extract_key(args, options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#3287 + def separate_params_and_options(options); end + + # @yield [waiter.waiter] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#3277 + def yield_waiter_and_warn(waiter, &block); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#3304 +class Aws::S3::Object::Collection < ::Aws::Resources::Collection + # @example Request syntax with placeholder values + # + # object.batch_delete!({ + # mfa: "MFA", + # request_payer: "requester", # accepts requester + # bypass_governance_retention: false, + # expected_bucket_owner: "AccountId", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [{}] + # @return [void] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#3403 + def batch_delete!(options = T.unsafe(nil)); end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def delete(*args, &block); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/object.rb#3403 + def deprecated_delete(options = T.unsafe(nil)); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/object_acl.rb#12 +class Aws::S3::ObjectAcl + extend ::Aws::Deprecations + + # @overload initialize + # @overload initialize + # @return [ObjectAcl] a new instance of ObjectAcl + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_acl.rb#24 + def initialize(*args); end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_acl.rb#36 + def bucket_name; end + + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_acl.rb#71 + def client; end + + # @return [Types::GetObjectAclOutput] Returns the data for this {ObjectAcl}. Calls + # {Client#get_object_acl} if {#data_loaded?} is `false`. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_acl.rb#96 + def data; end + + # @return [Boolean] Returns `true` if this resource is loaded. Accessing attributes or + # {#data} on an unloaded resource will trigger a call to {#load}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_acl.rb#104 + def data_loaded?; end + + # source://aws-sdk-s3//lib/aws-sdk-s3/object_acl.rb#354 + def deprecated_identifiers; end + + # A list of grants. + # + # @return [Array] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_acl.rb#53 + def grants; end + + # @api private + # @deprecated + # + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def identifiers(*args, &block); end + + # Loads, or reloads {#data} for the current {ObjectAcl}. + # Returns `self` making it possible to chain methods. + # + # object_acl.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_acl.rb#81 + def load; end + + # @return [Object] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_acl.rb#344 + def object; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_acl.rb#41 + def object_key; end + + # Container for the bucket owner's display name and ID. + # + # @return [Types::Owner] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_acl.rb#47 + def owner; end + + # @example Request syntax with placeholder values + # + # object_acl.put({ + # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control + # access_control_policy: { + # grants: [ + # { + # grantee: { + # display_name: "DisplayName", + # email_address: "EmailAddress", + # id: "ID", + # type: "CanonicalUser", # required, accepts CanonicalUser, AmazonCustomerByEmail, Group + # uri: "URI", + # }, + # permission: "FULL_CONTROL", # accepts FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP + # }, + # ], + # owner: { + # display_name: "DisplayName", + # id: "ID", + # }, + # }, + # content_md5: "ContentMD5", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # grant_full_control: "GrantFullControl", + # grant_read: "GrantRead", + # grant_read_acp: "GrantReadACP", + # grant_write: "GrantWrite", + # grant_write_acp: "GrantWriteACP", + # request_payer: "requester", # accepts requester + # version_id: "ObjectVersionId", + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::PutObjectAclOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_acl.rb#330 + def put(options = T.unsafe(nil)); end + + # Loads, or reloads {#data} for the current {ObjectAcl}. + # Returns `self` making it possible to chain methods. + # + # object_acl.reload.data + # + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_acl.rb#81 + def reload; end + + # If present, indicates that the requester was successfully charged for + # the request. + # + # This functionality is not supported for directory buckets. + # + # + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_acl.rb#64 + def request_charged; end + + # Waiter polls an API operation until a resource enters a desired + # state. + # + # ## Basic Usage + # + # Waiter will polls until it is successful, it fails by + # entering a terminal state, or until a maximum number of attempts + # are made. + # + # # polls in a loop until condition is true + # resource.wait_until(options) {|resource| condition} + # + # ## Example + # + # instance.wait_until(max_attempts:10, delay:5) do |instance| + # instance.state.name == 'running' + # end + # + # ## Configuration + # + # You can configure the maximum number of polling attempts, and the + # delay (in seconds) between each polling attempt. The waiting condition is + # set by passing a block to {#wait_until}: + # + # # poll for ~25 seconds + # resource.wait_until(max_attempts:5,delay:5) {|resource|...} + # + # ## Callbacks + # + # You can be notified before each polling attempt and before each + # delay. If you throw `:success` or `:failure` from these callbacks, + # it will terminate the waiter. + # + # started_at = Time.now + # # poll for 1 hour, instead of a number of attempts + # proc = Proc.new do |attempts, response| + # throw :failure if Time.now - started_at > 3600 + # end + # + # # disable max attempts + # instance.wait_until(before_wait:proc, max_attempts:nil) {...} + # + # ## Handling Errors + # + # When a waiter is successful, it returns the Resource. When a waiter + # fails, it raises an error. + # + # begin + # resource.wait_until(...) + # rescue Aws::Waiters::Errors::WaiterFailed + # # resource did not enter the desired state in time + # end + # + # attempts + # attempt in seconds + # invoked before each attempt + # invoked before each wait + # + # @deprecated Use [Aws::S3::Client] #wait_until instead + # @note The waiting operation is performed on a copy. The original resource + # remains unchanged. + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter + # terminates because the waiter has entered a state that it will not + # transition out of, preventing success. + # + # yet successful. + # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is + # encountered while polling for a resource that is not expected. + # @raise [NotImplementedError] Raised when the resource does not + # @return [Resource] if the waiter was successful + # @yieldparam resource [Resource] to be used in the waiting condition. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_acl.rb#188 + def wait_until(options = T.unsafe(nil), &block); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/object_acl.rb#364 + def extract_bucket_name(args, options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/object_acl.rb#375 + def extract_object_key(args, options); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/object_acl.rb#386 +class Aws::S3::ObjectAcl::Collection < ::Aws::Resources::Collection; end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/object_copier.rb#8 +class Aws::S3::ObjectCopier + # @api private + # @param object [S3::Object] + # @return [ObjectCopier] a new instance of ObjectCopier + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_copier.rb#11 + def initialize(object, options = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_copier.rb#16 + def copy_from(source, options = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_copier.rb#20 + def copy_to(target, options = T.unsafe(nil)); end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_copier.rb#80 + def apply_source_client(source, options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_copier.rb#26 + def copy_object(source, target, options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_copier.rb#41 + def copy_source(source); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_copier.rb#58 + def copy_target(target); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_copier.rb#97 + def escape(str); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_copier.rb#69 + def merge_options(source_or_target, options); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#9 +class Aws::S3::ObjectMultipartCopier + # @api private + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [ObjectMultipartCopier] a new instance of ObjectMultipartCopier + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#28 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#36 + def client; end + + # @api private + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @param params [Hash] a customizable set of options + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#39 + def copy(options = T.unsafe(nil)); end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#95 + def abort_upload(options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#120 + def byte_range(offset, part_size, size); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#128 + def calculate_part_size(part_number, default_part_size, options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#89 + def complete_upload(parts, options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#103 + def compute_parts(size, default_part_size, options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#83 + def copy_part(part); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#68 + def copy_part_thread(queue); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#59 + def copy_parts(size, default_part_size, options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#162 + def default_part_size(source_size); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#54 + def initiate_upload(options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#170 + def options_for(operation_name, options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#136 + def source_has_parts(options); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#140 + def source_metadata(options); end + + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#178 + def options_for(shape_name); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#182 +Aws::S3::ObjectMultipartCopier::API_OPTIONS = T.let(T.unsafe(nil), Hash) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#13 +Aws::S3::ObjectMultipartCopier::FILE_TOO_SMALL = T.let(T.unsafe(nil), String) + +# 5MB +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#11 +Aws::S3::ObjectMultipartCopier::FIVE_MB = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#15 +Aws::S3::ObjectMultipartCopier::MAX_PARTS = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#188 +class Aws::S3::ObjectMultipartCopier::PartQueue + # @api private + # @return [PartQueue] a new instance of PartQueue + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#190 + def initialize(parts = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#199 + def clear!; end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_multipart_copier.rb#195 + def shift; end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#12 +class Aws::S3::ObjectSummary + extend ::Aws::Deprecations + + # @overload initialize + # @overload initialize + # @return [ObjectSummary] a new instance of ObjectSummary + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#24 + def initialize(*args); end + + # @return [ObjectAcl] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#2656 + def acl; end + + # @return [Bucket] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#2665 + def bucket; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#36 + def bucket_name; end + + # The algorithm that was used to create a checksum of the object. + # + # @return [Array] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#83 + def checksum_algorithm; end + + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#138 + def client; end + + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#89 + def content_length; end + + # @example Request syntax with placeholder values + # + # object_summary.copy_from({ + # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control + # cache_control: "CacheControl", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # content_disposition: "ContentDisposition", + # content_encoding: "ContentEncoding", + # content_language: "ContentLanguage", + # content_type: "ContentType", + # copy_source: "CopySource", # required + # copy_source_if_match: "CopySourceIfMatch", + # copy_source_if_modified_since: Time.now, + # copy_source_if_none_match: "CopySourceIfNoneMatch", + # copy_source_if_unmodified_since: Time.now, + # expires: Time.now, + # grant_full_control: "GrantFullControl", + # grant_read: "GrantRead", + # grant_read_acp: "GrantReadACP", + # grant_write_acp: "GrantWriteACP", + # metadata: { + # "MetadataKey" => "MetadataValue", + # }, + # metadata_directive: "COPY", # accepts COPY, REPLACE + # tagging_directive: "COPY", # accepts COPY, REPLACE + # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse + # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE + # website_redirect_location: "WebsiteRedirectLocation", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # ssekms_key_id: "SSEKMSKeyId", + # ssekms_encryption_context: "SSEKMSEncryptionContext", + # bucket_key_enabled: false, + # copy_source_sse_customer_algorithm: "CopySourceSSECustomerAlgorithm", + # copy_source_sse_customer_key: "CopySourceSSECustomerKey", + # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5", + # request_payer: "requester", # accepts requester + # tagging: "TaggingHeader", + # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE + # object_lock_retain_until_date: Time.now, + # object_lock_legal_hold_status: "ON", # accepts ON, OFF + # expected_bucket_owner: "AccountId", + # expected_source_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::CopyObjectOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/object_summary.rb#16 + def copy_from(source, options = T.unsafe(nil)); end + + # @param target [S3::Object, String, Hash] Where to copy the object + # data to. `target` must be one of the following: + # + # * {Aws::S3::Object} + # * Hash - with `:bucket` and `:key` + # * String - formatted like `"target-bucket-name/target-key"` + # @see Object#copy_to + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/object_summary.rb#24 + def copy_to(target, options = T.unsafe(nil)); end + + # @raise [NotImplementedError] Raises when {#data_loaded?} is `false`. + # @return [Types::Object] Returns the data for this {ObjectSummary}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#153 + def data; end + + # @return [Boolean] Returns `true` if this resource is loaded. Accessing attributes or + # {#data} on an unloaded resource will trigger a call to {#load}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#161 + def data_loaded?; end + + # @example Request syntax with placeholder values + # + # object_summary.delete({ + # mfa: "MFA", + # version_id: "ObjectVersionId", + # request_payer: "requester", # accepts requester + # bypass_governance_retention: false, + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::DeleteObjectOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#1105 + def delete(options = T.unsafe(nil)); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#2705 + def deprecated_identifiers; end + + # @param destination [String] Where to download the file to. + # @param options [Hash] Additional options for {Client#get_object} and #{Client#head_object} + # may be provided. + # @return [Boolean] Returns `true` when the file is downloaded without + # any errors. + # @see Object#download_file + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/object_summary.rb#79 + def download_file(destination, options = T.unsafe(nil)); end + + # The entity tag is a hash of the object. The ETag reflects changes only + # to the contents of an object, not its metadata. The ETag may or may + # not be an MD5 digest of the object data. Whether or not it is depends + # on how the object was created and how it is encrypted as described + # below: + # + # * Objects created by the PUT Object, POST Object, or Copy operation, + # or through the Amazon Web Services Management Console, and are + # encrypted by SSE-S3 or plaintext, have ETags that are an MD5 digest + # of their object data. + # + # * Objects created by the PUT Object, POST Object, or Copy operation, + # or through the Amazon Web Services Management Console, and are + # encrypted by SSE-C or SSE-KMS, have ETags that are not an MD5 digest + # of their object data. + # + # * If an object is created by either the Multipart Upload or Part Copy + # operation, the ETag is not an MD5 digest, regardless of the method + # of encryption. If an object is larger than 16 MB, the Amazon Web + # Services Management Console will upload or copy that object as a + # Multipart Upload, and therefore the ETag will not be an MD5 digest. + # + # **Directory buckets** - MD5 is not supported by directory buckets. + # + # + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#77 + def etag; end + + # @param options [Hash] ({}) + # @return [Boolean] Returns `true` if the ObjectSummary exists. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#168 + def exists?(options = T.unsafe(nil)); end + + # @example Request syntax with placeholder values + # + # object_summary.get({ + # if_match: "IfMatch", + # if_modified_since: Time.now, + # if_none_match: "IfNoneMatch", + # if_unmodified_since: Time.now, + # range: "Range", + # response_cache_control: "ResponseCacheControl", + # response_content_disposition: "ResponseContentDisposition", + # response_content_encoding: "ResponseContentEncoding", + # response_content_language: "ResponseContentLanguage", + # response_content_type: "ResponseContentType", + # response_expires: Time.now, + # version_id: "ObjectVersionId", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # request_payer: "requester", # accepts requester + # part_number: 1, + # expected_bucket_owner: "AccountId", + # checksum_mode: "ENABLED", # accepts ENABLED + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::GetObjectOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#1370 + def get(options = T.unsafe(nil), &block); end + + # @api private + # @deprecated + # + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def identifiers(*args, &block); end + + # @example Request syntax with placeholder values + # + # multipartupload = object_summary.initiate_multipart_upload({ + # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control + # cache_control: "CacheControl", + # content_disposition: "ContentDisposition", + # content_encoding: "ContentEncoding", + # content_language: "ContentLanguage", + # content_type: "ContentType", + # expires: Time.now, + # grant_full_control: "GrantFullControl", + # grant_read: "GrantRead", + # grant_read_acp: "GrantReadACP", + # grant_write_acp: "GrantWriteACP", + # metadata: { + # "MetadataKey" => "MetadataValue", + # }, + # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse + # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE + # website_redirect_location: "WebsiteRedirectLocation", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # ssekms_key_id: "SSEKMSKeyId", + # ssekms_encryption_context: "SSEKMSEncryptionContext", + # bucket_key_enabled: false, + # request_payer: "requester", # accepts requester + # tagging: "TaggingHeader", + # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE + # object_lock_retain_until_date: Time.now, + # object_lock_legal_hold_status: "ON", # accepts ON, OFF + # expected_bucket_owner: "AccountId", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [MultipartUpload] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#1934 + def initiate_multipart_upload(options = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#41 + def key; end + + # Creation date of the object. + # + # @return [Time] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#47 + def last_modified; end + + # @api private + # @raise [NotImplementedError] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#144 + def load; end + + # @param target [S3::Object, String, Hash] Where to copy the object + # data to. `target` must be one of the following: + # + # * {Aws::S3::Object} + # * Hash - with `:bucket` and `:key` + # * String - formatted like `"target-bucket-name/target-key"` + # @return [void] + # @see Object#move_to + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/object_summary.rb#32 + def move_to(target, options = T.unsafe(nil)); end + + # @param id [String] + # @return [MultipartUpload] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#2674 + def multipart_upload(id); end + + # @return [Object] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#2684 + def object; end + + # The owner of the object + # + # **Directory buckets** - The bucket owner is returned as the object + # owner. + # + # + # + # @return [Types::Owner] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#111 + def owner; end + + # @return [PresignedPost] + # @see Object#presigned_post + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/object_summary.rb#40 + def presigned_post(options = T.unsafe(nil)); end + + # @param method [Symbol] The S3 operation to generate a presigned URL for. Valid values + # are `:get`, `:put`, `:head`, `:delete`, `:create_multipart_upload`, + # `:list_multipart_uploads`, `:complete_multipart_upload`, + # `:abort_multipart_upload`, `:list_parts`, and `:upload_part`. + # @param params [Hash] Additional request parameters to use when generating the pre-signed + # URL. See the related documentation in {Client} for accepted + # params. + # + # | Method | Client Method | + # |------------------------------|------------------------------------| + # | `:get` | {Client#get_object} | + # | `:put` | {Client#put_object} | + # | `:head` | {Client#head_object} | + # | `:delete` | {Client#delete_object} | + # | `:create_multipart_upload` | {Client#create_multipart_upload} | + # | `:list_multipart_uploads` | {Client#list_multipart_uploads} | + # | `:complete_multipart_upload` | {Client#complete_multipart_upload} | + # | `:abort_multipart_upload` | {Client#abort_multipart_upload} | + # | `:list_parts` | {Client#list_parts} | + # | `:upload_part` | {Client#upload_part} | + # @return [String] + # @see Object#presigned_url + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/object_summary.rb#48 + def presigned_url(http_method, params = T.unsafe(nil)); end + + # @param options [Hash] a customizable set of options + # @return [String] + # @see Object#public_url + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/object_summary.rb#56 + def public_url(options = T.unsafe(nil)); end + + # @example Request syntax with placeholder values + # + # object_summary.put({ + # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control + # body: source_file, + # cache_control: "CacheControl", + # content_disposition: "ContentDisposition", + # content_encoding: "ContentEncoding", + # content_language: "ContentLanguage", + # content_length: 1, + # content_md5: "ContentMD5", + # content_type: "ContentType", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # checksum_crc32: "ChecksumCRC32", + # checksum_crc32c: "ChecksumCRC32C", + # checksum_sha1: "ChecksumSHA1", + # checksum_sha256: "ChecksumSHA256", + # expires: Time.now, + # if_none_match: "IfNoneMatch", + # grant_full_control: "GrantFullControl", + # grant_read: "GrantRead", + # grant_read_acp: "GrantReadACP", + # grant_write_acp: "GrantWriteACP", + # metadata: { + # "MetadataKey" => "MetadataValue", + # }, + # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse + # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE + # website_redirect_location: "WebsiteRedirectLocation", + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # ssekms_key_id: "SSEKMSKeyId", + # ssekms_encryption_context: "SSEKMSEncryptionContext", + # bucket_key_enabled: false, + # request_payer: "requester", # accepts requester + # tagging: "TaggingHeader", + # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE + # object_lock_retain_until_date: Time.now, + # object_lock_legal_hold_status: "ON", # accepts ON, OFF + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::PutObjectOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#2501 + def put(options = T.unsafe(nil)); end + + # @api private + # @raise [NotImplementedError] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#144 + def reload; end + + # @example Request syntax with placeholder values + # + # object_summary.restore_object({ + # version_id: "ObjectVersionId", + # restore_request: { + # days: 1, + # glacier_job_parameters: { + # tier: "Standard", # required, accepts Standard, Bulk, Expedited + # }, + # type: "SELECT", # accepts SELECT + # tier: "Standard", # accepts Standard, Bulk, Expedited + # description: "Description", + # select_parameters: { + # input_serialization: { # required + # csv: { + # file_header_info: "USE", # accepts USE, IGNORE, NONE + # comments: "Comments", + # quote_escape_character: "QuoteEscapeCharacter", + # record_delimiter: "RecordDelimiter", + # field_delimiter: "FieldDelimiter", + # quote_character: "QuoteCharacter", + # allow_quoted_record_delimiter: false, + # }, + # compression_type: "NONE", # accepts NONE, GZIP, BZIP2 + # json: { + # type: "DOCUMENT", # accepts DOCUMENT, LINES + # }, + # parquet: { + # }, + # }, + # expression_type: "SQL", # required, accepts SQL + # expression: "Expression", # required + # output_serialization: { # required + # csv: { + # quote_fields: "ALWAYS", # accepts ALWAYS, ASNEEDED + # quote_escape_character: "QuoteEscapeCharacter", + # record_delimiter: "RecordDelimiter", + # field_delimiter: "FieldDelimiter", + # quote_character: "QuoteCharacter", + # }, + # json: { + # record_delimiter: "RecordDelimiter", + # }, + # }, + # }, + # output_location: { + # s3: { + # bucket_name: "BucketName", # required + # prefix: "LocationPrefix", # required + # encryption: { + # encryption_type: "AES256", # required, accepts AES256, aws:kms, aws:kms:dsse + # kms_key_id: "SSEKMSKeyId", + # kms_context: "KMSContext", + # }, + # canned_acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control + # access_control_list: [ + # { + # grantee: { + # display_name: "DisplayName", + # email_address: "EmailAddress", + # id: "ID", + # type: "CanonicalUser", # required, accepts CanonicalUser, AmazonCustomerByEmail, Group + # uri: "URI", + # }, + # permission: "FULL_CONTROL", # accepts FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP + # }, + # ], + # tagging: { + # tag_set: [ # required + # { + # key: "ObjectKey", # required + # value: "Value", # required + # }, + # ], + # }, + # user_metadata: [ + # { + # name: "MetadataKey", + # value: "MetadataValue", + # }, + # ], + # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE + # }, + # }, + # }, + # request_payer: "requester", # accepts requester + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::RestoreObjectOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#2642 + def restore_object(options = T.unsafe(nil)); end + + # Specifies the restoration status of an object. Objects in certain + # storage classes must be restored before they can be retrieved. For + # more information about these storage classes and how to work with + # archived objects, see [ Working with archived objects][1] in the + # *Amazon S3 User Guide*. + # + # This functionality is not supported for directory buckets. Only the S3 + # Express One Zone storage class is supported by directory buckets to + # store objects. + # + # + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html + # + # @return [Types::RestoreStatus] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#131 + def restore_status; end + + # Size in bytes of the object + # + # @return [Integer] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#89 + def size; end + + # The class of storage used to store the object. + # + # **Directory buckets** - Only the S3 Express One Zone storage class is + # supported by directory buckets to store objects. + # + # + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#100 + def storage_class; end + + # @param source [String, Pathname, File, Tempfile] A file on the local + # file system that will be uploaded as this object. This can either be + # a String or Pathname to the file, an open File object, or an open + # Tempfile object. If you pass an open File or Tempfile object, then + # you are responsible for closing it after the upload completes. When + # using an open Tempfile, rewind it before uploading or else the object + # will be empty. + # @param options [Hash] Additional options for {Client#put_object} + # when file sizes below the multipart threshold. For files larger than + # the multipart threshold, options for {Client#create_multipart_upload}, + # {Client#complete_multipart_upload}, + # and {Client#upload_part} can be provided. + # @return [Boolean] Returns `true` when the object is uploaded + # without any errors. + # @see Object#upload_file + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/object_summary.rb#64 + def upload_file(source, options = T.unsafe(nil)); end + + # @return [Boolean] Returns `true` when the object is uploaded + # without any errors. + # @see Object#upload_stream + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/object_summary.rb#71 + def upload_stream(options = T.unsafe(nil), &block); end + + # @param id [String] + # @return [ObjectVersion] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#2694 + def version(id); end + + # Waiter polls an API operation until a resource enters a desired + # state. + # + # ## Basic Usage + # + # Waiter will polls until it is successful, it fails by + # entering a terminal state, or until a maximum number of attempts + # are made. + # + # # polls in a loop until condition is true + # resource.wait_until(options) {|resource| condition} + # + # ## Example + # + # instance.wait_until(max_attempts:10, delay:5) do |instance| + # instance.state.name == 'running' + # end + # + # ## Configuration + # + # You can configure the maximum number of polling attempts, and the + # delay (in seconds) between each polling attempt. The waiting condition is + # set by passing a block to {#wait_until}: + # + # # poll for ~25 seconds + # resource.wait_until(max_attempts:5,delay:5) {|resource|...} + # + # ## Callbacks + # + # You can be notified before each polling attempt and before each + # delay. If you throw `:success` or `:failure` from these callbacks, + # it will terminate the waiter. + # + # started_at = Time.now + # # poll for 1 hour, instead of a number of attempts + # proc = Proc.new do |attempts, response| + # throw :failure if Time.now - started_at > 3600 + # end + # + # # disable max attempts + # instance.wait_until(before_wait:proc, max_attempts:nil) {...} + # + # ## Handling Errors + # + # When a waiter is successful, it returns the Resource. When a waiter + # fails, it raises an error. + # + # begin + # resource.wait_until(...) + # rescue Aws::Waiters::Errors::WaiterFailed + # # resource did not enter the desired state in time + # end + # + # attempts + # attempt in seconds + # invoked before each attempt + # invoked before each wait + # + # @deprecated Use [Aws::S3::Client] #wait_until instead + # @note The waiting operation is performed on a copy. The original resource + # remains unchanged. + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter + # terminates because the waiter has entered a state that it will not + # transition out of, preventing success. + # + # yet successful. + # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is + # encountered while polling for a resource that is not expected. + # @raise [NotImplementedError] Raised when the resource does not + # @return [Resource] if the waiter was successful + # @yieldparam resource [Resource] to be used in the waiting condition. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#301 + def wait_until(options = T.unsafe(nil), &block); end + + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [ObjectSummary] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#185 + def wait_until_exists(options = T.unsafe(nil), &block); end + + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [ObjectSummary] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#206 + def wait_until_not_exists(options = T.unsafe(nil), &block); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#2715 + def extract_bucket_name(args, options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#2726 + def extract_key(args, options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#2747 + def separate_params_and_options(options); end + + # @yield [waiter.waiter] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#2737 + def yield_waiter_and_warn(waiter, &block); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#2764 +class Aws::S3::ObjectSummary::Collection < ::Aws::Resources::Collection + # @example Request syntax with placeholder values + # + # object_summary.batch_delete!({ + # mfa: "MFA", + # request_payer: "requester", # accepts requester + # bypass_governance_retention: false, + # expected_bucket_owner: "AccountId", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [{}] + # @return [void] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#2863 + def batch_delete!(options = T.unsafe(nil)); end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def delete(*args, &block); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/object_summary.rb#2863 + def deprecated_delete(options = T.unsafe(nil)); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#12 +class Aws::S3::ObjectVersion + extend ::Aws::Deprecations + + # @overload initialize + # @overload initialize + # @return [ObjectVersion] a new instance of ObjectVersion + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#26 + def initialize(*args); end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#39 + def bucket_name; end + + # The algorithm that was used to create a checksum of the object. + # + # @return [Array] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#61 + def checksum_algorithm; end + + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#125 + def client; end + + # @raise [NotImplementedError] Raises when {#data_loaded?} is `false`. + # @return [Types::ObjectVersion] Returns the data for this {ObjectVersion}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#140 + def data; end + + # @return [Boolean] Returns `true` if this resource is loaded. Accessing attributes or + # {#data} on an unloaded resource will trigger a call to {#load}. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#148 + def data_loaded?; end + + # @example Request syntax with placeholder values + # + # object_version.delete({ + # mfa: "MFA", + # request_payer: "requester", # accepts requester + # bypass_governance_retention: false, + # expected_bucket_owner: "AccountId", + # }) + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::DeleteObjectOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#300 + def delete(options = T.unsafe(nil)); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#753 + def deprecated_identifiers; end + + # The entity tag is an MD5 hash of that version of the object. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#55 + def etag; end + + # @example Request syntax with placeholder values + # + # object_version.get({ + # if_match: "IfMatch", + # if_modified_since: Time.now, + # if_none_match: "IfNoneMatch", + # if_unmodified_since: Time.now, + # range: "Range", + # response_cache_control: "ResponseCacheControl", + # response_content_disposition: "ResponseContentDisposition", + # response_content_encoding: "ResponseContentEncoding", + # response_content_language: "ResponseContentLanguage", + # response_content_type: "ResponseContentType", + # response_expires: Time.now, + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # request_payer: "requester", # accepts requester + # part_number: 1, + # expected_bucket_owner: "AccountId", + # checksum_mode: "ENABLED", # accepts ENABLED + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::GetObjectOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#536 + def get(options = T.unsafe(nil), &block); end + + # @example Request syntax with placeholder values + # + # object_version.head({ + # if_match: "IfMatch", + # if_modified_since: Time.now, + # if_none_match: "IfNoneMatch", + # if_unmodified_since: Time.now, + # range: "Range", + # response_cache_control: "ResponseCacheControl", + # response_content_disposition: "ResponseContentDisposition", + # response_content_encoding: "ResponseContentEncoding", + # response_content_language: "ResponseContentLanguage", + # response_content_type: "ResponseContentType", + # response_expires: Time.now, + # sse_customer_algorithm: "SSECustomerAlgorithm", + # sse_customer_key: "SSECustomerKey", + # sse_customer_key_md5: "SSECustomerKeyMD5", + # request_payer: "requester", # accepts requester + # part_number: 1, + # expected_bucket_owner: "AccountId", + # checksum_mode: "ENABLED", # accepts ENABLED + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Types::HeadObjectOutput] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#728 + def head(options = T.unsafe(nil)); end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#49 + def id; end + + # @api private + # @deprecated + # + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def identifiers(*args, &block); end + + # Specifies whether the object is (true) or is not (false) the latest + # version of an object. + # + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#92 + def is_latest; end + + # The object key. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#79 + def key; end + + # Date and time when the object was last modified. + # + # @return [Time] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#98 + def last_modified; end + + # @api private + # @raise [NotImplementedError] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#131 + def load; end + + # @return [Object] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#743 + def object; end + + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#44 + def object_key; end + + # Specifies the owner of the object. + # + # @return [Types::Owner] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#104 + def owner; end + + # @api private + # @raise [NotImplementedError] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#131 + def reload; end + + # Specifies the restoration status of an object. Objects in certain + # storage classes must be restored before they can be retrieved. For + # more information about these storage classes and how to work with + # archived objects, see [ Working with archived objects][1] in the + # *Amazon S3 User Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html + # + # @return [Types::RestoreStatus] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#118 + def restore_status; end + + # Size in bytes of the object. + # + # @return [Integer] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#67 + def size; end + + # The class of storage used to store the object. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#73 + def storage_class; end + + # Version ID of an object. + # + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#85 + def version_id; end + + # Waiter polls an API operation until a resource enters a desired + # state. + # + # ## Basic Usage + # + # Waiter will polls until it is successful, it fails by + # entering a terminal state, or until a maximum number of attempts + # are made. + # + # # polls in a loop until condition is true + # resource.wait_until(options) {|resource| condition} + # + # ## Example + # + # instance.wait_until(max_attempts:10, delay:5) do |instance| + # instance.state.name == 'running' + # end + # + # ## Configuration + # + # You can configure the maximum number of polling attempts, and the + # delay (in seconds) between each polling attempt. The waiting condition is + # set by passing a block to {#wait_until}: + # + # # poll for ~25 seconds + # resource.wait_until(max_attempts:5,delay:5) {|resource|...} + # + # ## Callbacks + # + # You can be notified before each polling attempt and before each + # delay. If you throw `:success` or `:failure` from these callbacks, + # it will terminate the waiter. + # + # started_at = Time.now + # # poll for 1 hour, instead of a number of attempts + # proc = Proc.new do |attempts, response| + # throw :failure if Time.now - started_at > 3600 + # end + # + # # disable max attempts + # instance.wait_until(before_wait:proc, max_attempts:nil) {...} + # + # ## Handling Errors + # + # When a waiter is successful, it returns the Resource. When a waiter + # fails, it raises an error. + # + # begin + # resource.wait_until(...) + # rescue Aws::Waiters::Errors::WaiterFailed + # # resource did not enter the desired state in time + # end + # + # attempts + # attempt in seconds + # invoked before each attempt + # invoked before each wait + # + # @deprecated Use [Aws::S3::Client] #wait_until instead + # @note The waiting operation is performed on a copy. The original resource + # remains unchanged. + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter + # terminates because the waiter has entered a state that it will not + # transition out of, preventing success. + # + # yet successful. + # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is + # encountered while polling for a resource that is not expected. + # @raise [NotImplementedError] Raised when the resource does not + # @return [Resource] if the waiter was successful + # @yieldparam resource [Resource] to be used in the waiting condition. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#232 + def wait_until(options = T.unsafe(nil), &block); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#764 + def extract_bucket_name(args, options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#786 + def extract_id(args, options); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#775 + def extract_object_key(args, options); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#797 +class Aws::S3::ObjectVersion::Collection < ::Aws::Resources::Collection + # @example Request syntax with placeholder values + # + # object_version.batch_delete!({ + # mfa: "MFA", + # request_payer: "requester", # accepts requester + # bypass_governance_retention: false, + # expected_bucket_owner: "AccountId", + # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256 + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [{}] + # @return [void] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#896 + def batch_delete!(options = T.unsafe(nil)); end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core/deprecations.rb#65 + def delete(*args, &block); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/object_version.rb#896 + def deprecated_delete(options = T.unsafe(nil)); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3.rb#48 +module Aws::S3::Plugins; end + +# When an accesspoint ARN is provided for :bucket in S3 operations, this +# plugin resolves the request endpoint from the ARN when possible. +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/arn.rb#9 +class Aws::S3::Plugins::ARN < ::Seahorse::Client::Plugin + class << self + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/arn.rb#52 + def resolve_s3_disable_multiregion_access_points(cfg); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/arn.rb#37 + def resolve_s3_use_arn_region(cfg); end + end +end + +# Provides support for using `Aws::S3::Client` with Amazon S3 Transfer +# Acceleration. +# +# Go here for more information about transfer acceleration: +# [http://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html](http://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/accelerate.rb#11 +class Aws::S3::Plugins::Accelerate < ::Seahorse::Client::Plugin + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/accelerate.rb#22 + def add_handlers(handlers, config); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/accelerate.rb#32 +class Aws::S3::Plugins::Accelerate::OptionHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/accelerate.rb#33 + def call(context); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/access_grants.rb#7 +class Aws::S3::Plugins::AccessGrants < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/access_grants.rb#157 + def add_handlers(handlers, config); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/access_grants.rb#163 + def after_initialize(client); end + + class << self + # @api private + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/access_grants.rb#171 + def s3control?; end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/access_grants.rb#38 +class Aws::S3::Plugins::AccessGrants::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/access_grants.rb#60 + def call(context); end + + private + + # @api private + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/access_grants.rb#111 + def access_grants_operation?(context); end + + # Return the common prefix of the keys, regardless of the delimiter. + # For example, given keys ['foo/bar', 'foo/baz'], the common prefix + # is 'foo/ba'. + # + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/access_grants.rb#123 + def common_prefixes(keys); end + + # HeadBucket is a supported call. When fetching credentials, + # this plugin is executed again, and becomes recursive. + # + # @api private + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/access_grants.rb#107 + def credentials_head_bucket_call?(provider); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/access_grants.rb#116 + def s3_express_endpoint?(context); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/access_grants.rb#99 + def with_metric(credentials, &block); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/access_grants.rb#39 +Aws::S3::Plugins::AccessGrants::Handler::PERMISSION_MAP = T.let(T.unsafe(nil), Hash) + +# Amazon S3 requires DNS style addressing for buckets outside of +# the classic region when possible. +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/bucket_dns.rb#9 +class Aws::S3::Plugins::BucketDns < ::Seahorse::Client::Plugin + class << self + # @param bucket_name [String] + # @param ssl [Boolean] + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/bucket_dns.rb#33 + def dns_compatible?(bucket_name, ssl); end + + # @param bucket_name [String] + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/bucket_dns.rb#43 + def valid_subdomain?(bucket_name); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb#7 +class Aws::S3::Plugins::BucketNameRestrictions < ::Seahorse::Client::Plugin; end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb#8 +class Aws::S3::Plugins::BucketNameRestrictions::Handler < ::Seahorse::Client::Handler + # Useful because Aws::S3::Errors::SignatureDoesNotMatch is thrown + # when passed a bucket with a forward slash. Instead provide a more + # helpful error. Ideally should not be a plugin? + # + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb#13 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb#26 + def _bucket_member(input); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/dualstack.rb#7 +class Aws::S3::Plugins::Dualstack < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/dualstack.rb#8 + def add_handlers(handlers, _config); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/dualstack.rb#13 +class Aws::S3::Plugins::Dualstack::OptionHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/dualstack.rb#14 + def call(context); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/endpoints.rb#13 +class Aws::S3::Plugins::Endpoints < ::Seahorse::Client::Plugin + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/endpoints.rb#284 + def add_handlers(handlers, _config); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/endpoints.rb#36 +class Aws::S3::Plugins::Endpoints::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/endpoints.rb#37 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/endpoints.rb#69 + def apply_endpoint_headers(context, headers); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/endpoints.rb#80 + def parameters_for_operation(context); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/endpoints.rb#57 + def with_metrics(context, &block); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/expect_100_continue.rb#6 +class Aws::S3::Plugins::Expect100Continue < ::Seahorse::Client::Plugin + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/expect_100_continue.rb#8 + def add_handlers(handlers, config); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/expect_100_continue.rb#15 +class Aws::S3::Plugins::Expect100Continue::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/expect_100_continue.rb#17 + def call(context); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/express_session_auth.rb#9 +class Aws::S3::Plugins::ExpressSessionAuth < ::Seahorse::Client::Plugin + # Optimization - sets this client as the client to create sessions. + # + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/express_session_auth.rb#71 + def after_initialize(client); end + + class << self + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/express_session_auth.rb#79 + def resolve_disable_s3_express_session_auth(cfg); end + end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/express_session_auth.rb#30 +class Aws::S3::Plugins::ExpressSessionAuth::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/express_session_auth.rb#31 + def call(context); end + + private + + # @api private + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/express_session_auth.rb#61 + def checksum_required?(context); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/express_session_auth.rb#55 + def with_metric(credentials, &block); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/get_bucket_location_fix.rb#6 +class Aws::S3::Plugins::GetBucketLocationFix < ::Seahorse::Client::Plugin; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/get_bucket_location_fix.rb#8 +class Aws::S3::Plugins::GetBucketLocationFix::Handler < ::Seahorse::Client::Handler + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/get_bucket_location_fix.rb#10 + def call(context); end +end + +# A handful of Amazon S3 operations will respond with a 200 status +# code but will send an error in the response body. This plugin +# injects a handler that will parse 200 response bodies for potential +# errors, allowing them to be retried. +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/http_200_errors.rb#12 +class Aws::S3::Plugins::Http200Errors < ::Seahorse::Client::Plugin; end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/http_200_errors.rb#14 +class Aws::S3::Plugins::Http200Errors::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/http_200_errors.rb#16 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/http_200_errors.rb#72 + def check_for_error(context); end + + # Must have a member in the body and have the start of an XML Tag. + # Other incomplete xml bodies will result in an XML ParsingError. + # + # @api private + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/http_200_errors.rb#68 + def incomplete_xml_body?(xml, output); end + + # Checks if the output shape is a structure shape and has members that + # are in the body for the case of a payload and a normal structure. A + # non-structure shape will not have members in the body. In the case + # of a string or blob, the body contents would have been checked first + # before this method is called in incomplete_xml_body?. + # + # @api private + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/http_200_errors.rb#47 + def members_in_body?(output); end + + # Streaming outputs are not subject to 200 errors. + # + # @api private + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/http_200_errors.rb#32 + def streaming_output?(output); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/http_200_errors.rb#62 + def structure_shape?(shape); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb#7 +class Aws::S3::Plugins::IADRegionalEndpoint < ::Seahorse::Client::Plugin + class << self + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb#21 + def resolve_iad_regional_endpoint(cfg); end + end +end + +# When making calls to {S3::Client#create_bucket} outside the +# "classic" region, the bucket location constraint must be specified. +# This plugin auto populates the constraint to the configured region. +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/location_constraint.rb#10 +class Aws::S3::Plugins::LocationConstraint < ::Seahorse::Client::Plugin; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/location_constraint.rb#12 +class Aws::S3::Plugins::LocationConstraint::Handler < ::Seahorse::Client::Handler + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/location_constraint.rb#14 + def call(context); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/location_constraint.rb#23 + def populate_location_constraint(params, region); end +end + +# This plugin is effectively deprecated in favor of modeled +# httpChecksumRequired traits. +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/md5s.rb#13 +class Aws::S3::Plugins::Md5s < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/md5s.rb#73 + def add_handlers(handlers, config); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/md5s.rb#20 +class Aws::S3::Plugins::Md5s::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/md5s.rb#24 + def call(context); end + + private + + # @api private + # @param value [File, Tempfile, IO#read, String] + # @return [String] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/md5s.rb#39 + def md5(value); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/md5s.rb#51 + def update_in_chunks(digest, io); end +end + +# one MB +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/md5s.rb#22 +Aws::S3::Plugins::Md5s::Handler::CHUNK_SIZE = T.let(T.unsafe(nil), Integer) + +# These operations allow Content MD5 but are not required by +# httpChecksumRequired. This list should not grow. +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/md5s.rb#14 +Aws::S3::Plugins::Md5s::OPTIONAL_OPERATIONS = T.let(T.unsafe(nil), Array) + +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/streaming_retry.rb#39 +class Aws::S3::Plugins::NonRetryableStreamingError < ::StandardError + # @return [NonRetryableStreamingError] a new instance of NonRetryableStreamingError + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/streaming_retry.rb#41 + def initialize(error); end + + # Returns the value of attribute original_error. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/streaming_retry.rb#47 + def original_error; end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/redirects.rb#6 +class Aws::S3::Plugins::Redirects < ::Seahorse::Client::Plugin + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/redirects.rb#35 + def add_handlers(handlers, config); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/redirects.rb#17 +class Aws::S3::Plugins::Redirects::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/redirects.rb#19 + def call(context); end +end + +# A wrapper around BlockIO that adds no-ops for truncate and rewind +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/streaming_retry.rb#11 +class Aws::S3::Plugins::RetryableBlockIO + extend ::Forwardable + + # @api private + # @return [RetryableBlockIO] a new instance of RetryableBlockIO + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/streaming_retry.rb#15 + def initialize(block_io); end + + # source://forwardable/1.3.2/forwardable.rb#229 + def read(*args, **_arg1, &block); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/streaming_retry.rb#21 + def rewind; end + + # source://forwardable/1.3.2/forwardable.rb#229 + def size(*args, **_arg1, &block); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/streaming_retry.rb#19 + def truncate(_integer); end + + # source://forwardable/1.3.2/forwardable.rb#229 + def write(*args, **_arg1, &block); end +end + +# A wrapper around ManagedFile that adds no-ops for truncate and rewind +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/streaming_retry.rb#26 +class Aws::S3::Plugins::RetryableManagedFile + extend ::Forwardable + + # @api private + # @return [RetryableManagedFile] a new instance of RetryableManagedFile + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/streaming_retry.rb#30 + def initialize(managed_file); end + + # source://forwardable/1.3.2/forwardable.rb#229 + def close(*args, **_arg1, &block); end + + # source://forwardable/1.3.2/forwardable.rb#229 + def open?(*args, **_arg1, &block); end + + # source://forwardable/1.3.2/forwardable.rb#229 + def read(*args, **_arg1, &block); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/streaming_retry.rb#36 + def rewind; end + + # source://forwardable/1.3.2/forwardable.rb#229 + def size(*args, **_arg1, &block); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/streaming_retry.rb#34 + def truncate(_integer); end + + # source://forwardable/1.3.2/forwardable.rb#229 + def write(*args, **_arg1, &block); end +end + +# Support S3 host id, more information, see: +# http://docs.aws.amazon.com/AmazonS3/latest/dev/troubleshooting.html#sdk-request-ids +# +# This plugin adds :host_id for s3 responses when available +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_host_id.rb#12 +class Aws::S3::Plugins::S3HostId < ::Seahorse::Client::Plugin; end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_host_id.rb#14 +class Aws::S3::Plugins::S3HostId::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_host_id.rb#16 + def call(context); end +end + +# This plugin used to have a V4 signer but it was removed in favor of +# generic Sign plugin that uses endpoint auth scheme. +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#17 +class Aws::S3::Plugins::S3Signer < ::Seahorse::Client::Plugin + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#20 + def add_handlers(handlers, cfg); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#35 + def add_legacy_handler(handlers); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#30 + def add_v4_handlers(handlers); end + + class << self + # @api private + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#170 + def custom_endpoint?(context); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#161 + def new_hostname(context, region); end + end +end + +# This handler detects when a request fails because of a mismatched bucket +# region. It follows up by making a request to determine the correct +# region, then finally a version 4 signed request against the correct +# regional endpoint. This is intended for s3's global endpoint which +# will return 400 if the bucket is not in region. +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#76 +class Aws::S3::Plugins::S3Signer::BucketRegionErrorHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#77 + def call(context); end + + private + + # @api private + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#112 + def expired_credentials?(resp); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#108 + def fips_region?(resp); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#95 + def get_region_and_retry(context); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#84 + def handle_region_errors(response); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#147 + def log_warning(context, actual_region); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#138 + def region_from_body(body); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#122 + def resign_with_new_region(context, actual_region); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#104 + def update_bucket_cache(context, actual_region); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#116 + def wrong_sigv4_region?(resp); end +end + +# This handler will update the http endpoint when the bucket region +# is known/cached. +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#49 +class Aws::S3::Plugins::S3Signer::CachedBucketRegionHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#50 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#58 + def check_for_cached_region(context, bucket); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#40 +class Aws::S3::Plugins::S3Signer::LegacyHandler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/s3_signer.rb#41 + def call(context); end +end + +# S3 GetObject results for whole Multipart Objects contain a checksum +# that cannot be validated. These should be skipped by the +# ChecksumAlgorithm plugin. +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb#10 +class Aws::S3::Plugins::SkipWholeMultipartGetChecksums < ::Seahorse::Client::Plugin; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb#12 +class Aws::S3::Plugins::SkipWholeMultipartGetChecksums::Handler < ::Seahorse::Client::Handler + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb#14 + def call(context); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/sse_cpk.rb#9 +class Aws::S3::Plugins::SseCpk < ::Seahorse::Client::Plugin; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/sse_cpk.rb#20 +class Aws::S3::Plugins::SseCpk::Handler < ::Seahorse::Client::Handler + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/sse_cpk.rb#22 + def call(context); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/sse_cpk.rb#59 + def base64(str); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/sse_cpk.rb#29 + def compute_key_md5(context); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/sse_cpk.rb#55 + def md5(str); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/sse_cpk.rb#43 + def require_https(context); end +end + +# This handler works with the ResponseTarget plugin to provide smart +# retries of S3 streaming operations that support the range parameter +# (currently only: get_object). When a 200 OK with a TruncatedBodyError +# is received this handler will add a range header that excludes the +# data that has already been processed (written to file or sent to +# the target Proc). +# It is important to not write data to the custom target in the case of +# a non-success response. We do not want to write an XML error +# message to someone's file or pass it to a user's Proc. +# +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/streaming_retry.rb#60 +class Aws::S3::Plugins::StreamingRetry < ::Seahorse::Client::Plugin; end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/streaming_retry.rb#62 +class Aws::S3::Plugins::StreamingRetry::Handler < ::Seahorse::Client::Handler + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/streaming_retry.rb#64 + def call(context); end + + private + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/streaming_retry.rb#76 + def add_event_listeners(context, target); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/streaming_retry.rb#121 + def retryable_body?(context); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/streaming_retry.rb#126 + def supported_target?(target); end + + # @api private + # @return [Boolean] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/streaming_retry.rb#114 + def truncated_body?(error); end +end + +# This plugin auto-populates the `:encoding_type` request parameter +# to all calls made to Amazon S3 that accept it. +# +# This enables Amazon S3 to return object keys that might contain +# invalid XML characters as URL encoded strings. This plugin also +# automatically decodes these keys so that the key management is +# transparent to the user. +# +# If you specify the `:encoding_type` parameter, then this plugin +# will be disabled, and you will need to decode the keys yourself. +# +# The following operations are managed: +# +# * {S3::Client#list_objects} +# * {S3::Client#list_multipart_uploads} +# * {S3::Client#list_object_versions} +# +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/url_encoded_keys.rb#27 +class Aws::S3::Plugins::UrlEncodedKeys < ::Seahorse::Client::Plugin; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/plugins/url_encoded_keys.rb#29 +class Aws::S3::Plugins::UrlEncodedKeys::Handler < ::Seahorse::Client::Handler + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/url_encoded_keys.rb#31 + def call(context); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/url_encoded_keys.rb#76 + def decode(member, struct); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/url_encoded_keys.rb#67 + def decode_list_multipart_uploads_keys(data); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/url_encoded_keys.rb#57 + def decode_list_object_versions_keys(data); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/url_encoded_keys.rb#48 + def decode_list_objects_keys(data); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/plugins/url_encoded_keys.rb#41 + def manage_keys(context); end +end + +# ## Basic Usage +# +# To generate a presigned post, you need AWS credentials, the region +# your bucket is in, and the name of your bucket. You can apply constraints +# to the post object as options to {#initialize} or by calling +# methods such as {#key} and {#content_length_range}. +# +# The following two examples are equivalent. +# +# ```ruby +# post = Aws::S3::PresignedPost.new(creds, region, bucket, { +# key: '/uploaded/object/key', +# content_length_range: 0..1024, +# acl: 'public-read', +# metadata: { +# 'original-filename' => '${filename}' +# } +# }) +# post.fields +# #=> { ... } +# +# post = Aws::S3::PresignedPost.new(creds, region, bucket). +# key('/uploaded/object/key'). +# content_length_range(0..1024). +# acl('public-read'). +# metadata('original-filename' => '${filename}'). +# fields +# #=> { ... } +# ``` +# +# ## HTML Forms +# +# You can use a {PresignedPost} object to build an HTML form. It is +# recommended to use some helper to build the form tag and input +# tags that properly escapes values. +# +# ### Form Tag +# +# To upload a file to Amazon S3 using a browser, you need to create +# a post form. The {#url} method returns the value you should use +# as the form action. +# +# ```erb +#
+# ... +#
+# ``` +# +# The follow attributes must be set on the form: +# +# * `action` - This must be the {#url}. +# * `method` - This must be `post`. +# * `enctype` - This must be `multipart/form-data`. +# +# ### Form Fields +# +# The {#fields} method returns a hash of form fields to render inside +# the form. Typically these are rendered as hidden input fields. +# +# ```erb +# <% @post.fields.each do |name, value| %> +# +# <% end %> +# ``` +# +# Lastly, the form must have a file field with the name `file`. +# +# ```erb +# +# ``` +# +# ## Post Policy +# +# When you construct a {PresignedPost}, you must specify every form +# field name that will be posted by the browser. If you omit a form +# field sent by the browser, Amazon S3 will reject the request. +# You can specify accepted form field values three ways: +# +# * Specify exactly what the value must be. +# * Specify what value the field starts with. +# * Specify the field may have any value. +# +# ### Field Equals +# +# You can specify that a form field must be a certain value. +# Simply pass an option like `:content_type` to the constructor, +# or call the associated method. +# +# ```ruby +# post = Aws::S3::PresignedPost.new(creds, region, bucket) +# post.content_type('text/plain') +# ``` +# +# If any of the given values are changed by the user in the form, then +# Amazon S3 will reject the POST request. +# +# ### Field Starts With +# +# You can specify prefix values for many of the POST form fields. +# To specify a required prefix, use the `:_starts_with` +# option or call the associated `#_starts_with` method. +# +# ```ruby +# post = Aws::S3::PresignedPost.new(creds, region, bucket, { +# key_starts_with: '/images/', +# content_type_starts_with: 'image/', +# # ... +# }) +# ``` +# +# When using starts with, the form must contain a field where the +# user can specify the value. The {PresignedPost} will not add +# a value for these fields. +# +# ### Any Field Value +# +# To white-list a form field to send any value, you can name that +# field with `:allow_any` or {#allow_any}. +# +# ```ruby +# post = Aws::S3::PresignedPost.new(creds, region, bucket, { +# key: 'object-key', +# allow_any: ['Filename'], +# # ... +# }) +# ``` +# +# ### Metadata +# +# You can add rules for metadata fields using `:metadata`, {#metadata}, +# `:metadata_starts_with` and {#metadata_starts_with}. Unlike other +# form fields, you pass a hash value to these options/methods: +# +# ```ruby +# post = Aws::S3::PresignedPost.new(creds, region, bucket). +# key('/fixed/key'). +# metadata(foo: 'bar') +# +# post.fields['x-amz-meta-foo'] +# #=> 'bar' +# ``` +# +# ### The `${filename}` Variable +# +# The string `${filename}` is automatically replaced with the name of the +# file provided by the user and is recognized by all form fields. It is +# not supported with `starts_with` conditions. +# +# If the browser or client provides a full or partial path to the file, +# only the text following the last slash (/) or backslash (\) will be used +# (e.g., "C:\Program Files\directory1\file.txt" will be interpreted +# as "file.txt"). If no file or file name is provided, the variable is +# replaced with an empty string. +# +# In the following example, we use `${filename}` to store the original +# filename in the `x-amz-meta-` hash with the uploaded object. +# +# ```ruby +# post = Aws::S3::PresignedPost.new(creds, region, bucket, { +# key: '/fixed/key', +# metadata: { +# 'original-filename': '${filename}' +# } +# }) +# ``` +# +# @note Normally you do not need to construct a {PresignedPost} yourself. +# See {Bucket#presigned_post} and {Object#presigned_post}. +# +# source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#178 +class Aws::S3::PresignedPost + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param credentials [Credentials] Security credentials for signing + # the post policy. + # @param bucket_region [String] Region of the target bucket. + # @param bucket_name [String] Name of the target bucket. + # @param options [Hash] a customizable set of options + # @return [PresignedPost] a new instance of PresignedPost + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#243 + def initialize(credentials, bucket_region, bucket_name, options = T.unsafe(nil)); end + + # Specify the cannedl ACL (access control list) for the object. + # May be one of the following values: + # + # * `private` + # * `public-read` + # * `public-read-write` + # * `authenticated-read` + # * `bucket-owner-read` + # * `bucket-owner-full-control` + # + # @param canned_acl [String] + # @return [self] + # @see http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#303 + def acl(value); end + + # @param prefix [String] + # @return [self] + # @see #acl + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#309 + def acl_starts_with(value); end + + # A list of form fields to white-list with any value. + # + # @param field_names [Sting, Array] + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#286 + def allow_any(*field_names); end + + # Specify caching behavior along the request/reply chain. + # + # @param value [String] + # @return [self] + # @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#303 + def cache_control(value); end + + # @param prefix [String] + # @return [self] + # @see #cache_control + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#309 + def cache_control_starts_with(value); end + + # Specifies presentational information for the object. + # + # @param value [String] + # @return [self] + # @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1 + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#303 + def content_disposition(value); end + + # @param prefix [String] + # @return [self] + # @see #content_disposition + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#309 + def content_disposition_starts_with(value); end + + # Specifies what content encodings have been applied to the object + # and thus what decoding mechanisms must be applied to obtain the + # media-type referenced by the Content-Type header field. + # + # @param value [String] + # @return [self] + # @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11 + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#303 + def content_encoding(value); end + + # @param prefix [String] + # @return [self] + # @see #content_encoding + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#309 + def content_encoding_starts_with(value); end + + # The minimum and maximum allowable size for the uploaded content. + # + # @param byte_range [Range] + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#440 + def content_length_range(byte_range); end + + # A standard MIME type describing the format of the contents. + # + # @param value [String] + # @return [self] + # @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21 + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#303 + def content_type(value); end + + # @param prefix [String] + # @return [self] + # @see #content_type + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#309 + def content_type_starts_with(value); end + + # The date and time at which the object is no longer cacheable. + # + # @note This does not affect the expiration of the presigned post + # signature. + # @param time [Time] + # @return [self] + # @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21 + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#424 + def expires(time); end + + # @param prefix [String] + # @return [self] + # @see #expires + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#432 + def expires_starts_with(prefix); end + + # @return [Hash] A hash of fields to render in an HTML form + # as hidden input fields. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#274 + def fields; end + + # The key to use for the uploaded object. You can use `${filename}` + # as a variable in the key. This will be replaced with the name + # of the file as provided by the user. + # + # For example, if the key is given as `/user/betty/${filename}` and + # the file uploaded is named `lolcatz.jpg`, the resultant key will + # be `/user/betty/lolcatz.jpg`. + # + # @param key [String] + # @return [self] + # @see http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html) + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#330 + def key(key); end + + # Specify a prefix the uploaded + # + # @param prefix [String] + # @return [self] + # @see #key + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#340 + def key_starts_with(prefix); end + + # Metadata hash to store with the uploaded object. Hash keys will be + # prefixed with "x-amz-meta-". + # + # @param hash [Hash] + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#520 + def metadata(hash); end + + # Specify allowable prefix for each key in the metadata hash. + # + # @param hash [Hash] + # @return [self] + # @see #metadata + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#532 + def metadata_starts_with(hash); end + + # Specifies a server-side encryption algorithm to use when Amazon + # S3 creates an object. Valid values include: + # + # * `aws:kms` + # * `AES256` + # + # @param value [String] + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#303 + def server_side_encryption(value); end + + # If {#server_side_encryption} is called with the value of `aws:kms`, + # this method specifies the ID of the AWS Key Management Service + # (KMS) master encryption key to use for the object. + # + # @param value [String] + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#303 + def server_side_encryption_aws_kms_key_id(value); end + + # Specifies the algorithm to use to when encrypting the object. + # Must be set to `AES256` when using customer-provided encryption + # keys. Must also call {#server_side_encryption_customer_key}. + # + # @param value [String] + # @return [self] + # @see #server_side_encryption_customer_key + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#303 + def server_side_encryption_customer_algorithm(value); end + + # Specifies the customer-provided encryption key for Amazon S3 to use + # in encrypting data. This value is used to store the object and then + # it is discarded; Amazon does not store the encryption key. + # + # You must also call {#server_side_encryption_customer_algorithm}. + # + # @param value [String] + # @return [self] + # @see #server_side_encryption_customer_algorithm + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#591 + def server_side_encryption_customer_key(value); end + + # @param prefix [String] + # @return [self] + # @see #server_side_encryption_customer_key + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#601 + def server_side_encryption_customer_key_starts_with(prefix); end + + # Storage class to use for storing the object. Defaults to + # `STANDARD`. Must be one of: + # + # * `STANDARD` + # * `REDUCED_REDUNDANCY` + # + # You cannot specify `GLACIER` as the storage class. To transition + # objects to the GLACIER storage class you can use lifecycle + # configuration. + # + # @param value [String] Storage class to use for storing the + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#303 + def storage_class(value); end + + # The URL to which the client is redirected + # upon successful upload. If {#success_action_redirect} is not + # specified, Amazon S3 returns the empty document type specified + # by {#success_action_status}. + # + # If Amazon S3 cannot interpret the URL, it acts as if the field + # is not present. If the upload fails, Amazon S3 displays an error + # and does not redirect the user to a URL. + # + # @param value [String] + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#303 + def success_action_redirect(value); end + + # @param prefix [String] + # @return [self] + # @see #success_action_redirect + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#309 + def success_action_redirect_starts_with(value); end + + # The status code returned to the client upon + # successful upload if {#success_action_redirect} is not + # specified. + # + # Accepts the values `200`, `201`, or `204` (default). + # + # If the value is set to 200 or 204, Amazon S3 returns an empty + # document with a 200 or 204 status code. If the value is set to 201, + # Amazon S3 returns an XML document with a 201 status code. + # + # If the value is not set or if it is set to an invalid value, Amazon + # S3 returns an empty document with a 204 status code. + # + # @param value [String] The status code returned to the client upon + # @return [self] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#303 + def success_action_status(value); end + + # @return [String] The URL to post a file upload to. This should be + # the form action. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#270 + def url; end + + # If the bucket is configured as a website, + # redirects requests for this object to another object in the + # same bucket or to an external URL. Amazon S3 stores this value + # in the object metadata. + # + # The value must be prefixed by, "/", "http://" or "https://". + # The length of the value is limited to 2K. + # + # @param value [String] + # @return [self] + # @see http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html + # @see http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html + # @see http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#303 + def website_redirect_location(value); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#702 + def base64(str); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#640 + def bucket_url; end + + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#632 + def check_required_values!; end + + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#692 + def credential_scope(datetime); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#688 + def hexhmac(key, value); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#684 + def hmac(key, value); end + + # @return [Hash] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#653 + def policy(datetime); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#675 + def signature(datetime, string_to_sign); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#664 + def signature_fields(datetime); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#627 + def starts_with(field_name, value, &block); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#610 + def with(field_name, value); end + + class << self + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigned_post.rb#295 + def define_field(field, *args, &block); end + end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/presigner.rb#5 +class Aws::S3::Presigner + # @option options + # @param options [Hash] a customizable set of options + # @return [Presigner] a new instance of Presigner + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigner.rb#35 + def initialize(options = T.unsafe(nil)); end + + # Allows you to create presigned URL requests for S3 operations. This + # method returns a tuple containing the URL and the signed X-amz-* headers + # to be used with the presigned url. + # + # @example + # signer = Aws::S3::Presigner.new + # url, headers = signer.presigned_request( + # :get_object, bucket: "bucket", key: "key" + # ) + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @param method [Symbol] Symbolized method name of the operation you want + # to presign. + # @param params [Hash] a customizable set of options + # @raise [ArgumentError] Raises an ArgumentError if `:expires_in` + # exceeds one week. + # @return [String, Hash] A tuple with a presigned URL and headers that + # should be included with the request. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigner.rb#128 + def presigned_request(method, params = T.unsafe(nil)); end + + # Create presigned URLs for S3 operations. + # + # @example + # signer = Aws::S3::Presigner.new + # url = signer.presigned_url(:get_object, bucket: "bucket", key: "key") + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @param method [Symbol] Symbolized method name of the operation you want + # to presign. + # @param params [Hash] a customizable set of options + # @raise [ArgumentError] Raises an ArgumentError if `:expires_in` + # exceeds one week. + # @return [String] a presigned url + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigner.rb#78 + def presigned_url(method, params = T.unsafe(nil)); end + + private + + # source://aws-sdk-s3//lib/aws-sdk-s3/presigner.rb#134 + def _presigned_request(method, params, hoist = T.unsafe(nil)); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/presigner.rb#156 + def expires_in(params); end + + # Used for excluding presigned_urls from API request count. + # + # Store context information as early as possible, to allow + # handlers to perform decisions based on this flag if need. + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigner.rb#184 + def handle_presigned_url_context(req); end + + # @param req [Seahorse::Client::Request] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/presigner.rb#192 + def sign_but_dont_send(req, expires_in, secure, time, unsigned_headers, hoist = T.unsafe(nil)); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/presigner.rb#151 + def unsigned_headers(params); end + + # source://aws-sdk-s3//lib/aws-sdk-s3/presigner.rb#171 + def use_bucket_as_hostname(req); end +end + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/presigner.rb#13 +Aws::S3::Presigner::BLACKLISTED_HEADERS = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/presigner.rb#10 +Aws::S3::Presigner::FIFTEEN_MINUTES = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://aws-sdk-s3//lib/aws-sdk-s3/presigner.rb#7 +Aws::S3::Presigner::ONE_WEEK = T.let(T.unsafe(nil), Integer) + +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#8 +Aws::S3::REQUIRED_PARAMS = T.let(T.unsafe(nil), Array) + +# This class provides a resource oriented interface for S3. +# To create a resource object: +# +# resource = Aws::S3::Resource.new(region: 'us-west-2') +# +# You can supply a client object with custom configuration that will be used for all resource operations. +# If you do not pass `:client`, a default client will be constructed. +# +# client = Aws::S3::Client.new(region: 'us-west-2') +# resource = Aws::S3::Resource.new(client: client) +# +# source://aws-sdk-s3//lib/aws-sdk-s3/resource.rb#23 +class Aws::S3::Resource + # @option options + # @param options [{}] + # @return [Resource] a new instance of Resource + # + # source://aws-sdk-s3//lib/aws-sdk-s3/resource.rb#27 + def initialize(options = T.unsafe(nil)); end + + # @param name [String] + # @return [Bucket] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/resource.rb#182 + def bucket(name); end + + # @example Request syntax with placeholder values + # + # s3.buckets() + # @param options [Hash] ({}) + # @return [Bucket::Collection] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/resource.rb#194 + def buckets(options = T.unsafe(nil)); end + + # @return [Client] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/resource.rb#32 + def client; end + + # @example Request syntax with placeholder values + # + # bucket = s3.create_bucket({ + # acl: "private", # accepts private, public-read, public-read-write, authenticated-read + # bucket: "BucketName", # required + # create_bucket_configuration: { + # location_constraint: "af-south-1", # accepts af-south-1, ap-east-1, ap-northeast-1, ap-northeast-2, ap-northeast-3, ap-south-1, ap-south-2, ap-southeast-1, ap-southeast-2, ap-southeast-3, ca-central-1, cn-north-1, cn-northwest-1, EU, eu-central-1, eu-north-1, eu-south-1, eu-south-2, eu-west-1, eu-west-2, eu-west-3, me-south-1, sa-east-1, us-east-2, us-gov-east-1, us-gov-west-1, us-west-1, us-west-2 + # location: { + # type: "AvailabilityZone", # accepts AvailabilityZone + # name: "LocationNameAsString", + # }, + # bucket: { + # data_redundancy: "SingleAvailabilityZone", # accepts SingleAvailabilityZone + # type: "Directory", # accepts Directory + # }, + # }, + # grant_full_control: "GrantFullControl", + # grant_read: "GrantRead", + # grant_read_acp: "GrantReadACP", + # grant_write: "GrantWrite", + # grant_write_acp: "GrantWriteACP", + # object_lock_enabled_for_bucket: false, + # object_ownership: "BucketOwnerPreferred", # accepts BucketOwnerPreferred, ObjectWriter, BucketOwnerEnforced + # }) + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] ({}) + # @return [Bucket] + # + # source://aws-sdk-s3//lib/aws-sdk-s3/resource.rb#168 + def create_bucket(options = T.unsafe(nil)); end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/encryptionV2/client.rb#9 +Aws::S3::SUPPORTED_SECURITY_PROFILES = T.let(T.unsafe(nil), Array) + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11 +module Aws::S3::Types; end + +# Specifies the days since the initiation of an incomplete multipart +# upload that Amazon S3 will wait before permanently removing all parts +# of the upload. For more information, see [ Aborting Incomplete +# Multipart Uploads Using a Bucket Lifecycle Configuration][1] in the +# *Amazon S3 User Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AbortIncompleteMultipartUpload AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#31 +class Aws::S3::Types::AbortIncompleteMultipartUpload < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#32 +Aws::S3::Types::AbortIncompleteMultipartUpload::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AbortMultipartUploadOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#48 +class Aws::S3::Types::AbortMultipartUploadOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#49 +Aws::S3::Types::AbortMultipartUploadOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AbortMultipartUploadRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#138 +class Aws::S3::Types::AbortMultipartUploadRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#139 +Aws::S3::Types::AbortMultipartUploadRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Configures the transfer acceleration state for an Amazon S3 bucket. +# For more information, see [Amazon S3 Transfer Acceleration][1] in the +# *Amazon S3 User Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AccelerateConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#158 +class Aws::S3::Types::AccelerateConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#159 +Aws::S3::Types::AccelerateConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Contains the elements that set the ACL permissions for an object per +# grantee. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AccessControlPolicy AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#178 +class Aws::S3::Types::AccessControlPolicy < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#179 +Aws::S3::Types::AccessControlPolicy::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A container for information about access control for replicas. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AccessControlTranslation AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#197 +class Aws::S3::Types::AccessControlTranslation < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#198 +Aws::S3::Types::AccessControlTranslation::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A conjunction (logical AND) of predicates, which is used in evaluating +# a metrics filter. The operator must have at least two predicates in +# any combination, and an object must match all of the predicates for +# the filter to apply. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AnalyticsAndOperator AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#220 +class Aws::S3::Types::AnalyticsAndOperator < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#221 +Aws::S3::Types::AnalyticsAndOperator::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies the configuration and any analyses for the analytics filter +# of an Amazon S3 bucket. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AnalyticsConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#250 +class Aws::S3::Types::AnalyticsConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#251 +Aws::S3::Types::AnalyticsConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Where to publish the analytics results. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AnalyticsExportDestination AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#264 +class Aws::S3::Types::AnalyticsExportDestination < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#265 +Aws::S3::Types::AnalyticsExportDestination::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The filter used to describe a set of objects for analyses. A filter +# must have exactly one prefix, one tag, or one conjunction +# (AnalyticsAndOperator). If no filter is provided, all objects will be +# considered in any analysis. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AnalyticsFilter AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#293 +class Aws::S3::Types::AnalyticsFilter < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#294 +Aws::S3::Types::AnalyticsFilter::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Contains information about where to publish the analytics results. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AnalyticsS3BucketDestination AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#331 +class Aws::S3::Types::AnalyticsS3BucketDestination < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#332 +Aws::S3::Types::AnalyticsS3BucketDestination::SENSITIVE = T.let(T.unsafe(nil), Array) + +# In terms of implementation, a Bucket is a resource. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Bucket AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#351 +class Aws::S3::Types::Bucket < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#352 +Aws::S3::Types::Bucket::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The requested bucket name is not available. The bucket namespace is +# shared by all users of the system. Select a different name and try +# again. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/BucketAlreadyExists AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#362 +class Aws::S3::Types::BucketAlreadyExists < ::Aws::EmptyStructure; end + +# The bucket you tried to create already exists, and you own it. Amazon +# S3 returns this error in all Amazon Web Services Regions except in the +# North Virginia Region. For legacy compatibility, if you re-create an +# existing bucket that you already own in the North Virginia Region, +# Amazon S3 returns 200 OK and resets the bucket access control lists +# (ACLs). +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/BucketAlreadyOwnedByYou AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#373 +class Aws::S3::Types::BucketAlreadyOwnedByYou < ::Aws::EmptyStructure; end + +# Specifies the information about the bucket that will be created. For +# more information about directory buckets, see [Directory buckets][1] +# in the *Amazon S3 User Guide*. +# +# This functionality is only supported by directory buckets. +# +# +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/BucketInfo AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#400 +class Aws::S3::Types::BucketInfo < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#401 +Aws::S3::Types::BucketInfo::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies the lifecycle configuration for objects in an Amazon S3 +# bucket. For more information, see [Object Lifecycle Management][1] in +# the *Amazon S3 User Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/BucketLifecycleConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#420 +class Aws::S3::Types::BucketLifecycleConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#421 +Aws::S3::Types::BucketLifecycleConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for logging status information. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/BucketLoggingStatus AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#440 +class Aws::S3::Types::BucketLoggingStatus < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#441 +Aws::S3::Types::BucketLoggingStatus::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Describes the cross-origin access configuration for objects in an +# Amazon S3 bucket. For more information, see [Enabling Cross-Origin +# Resource Sharing][1] in the *Amazon S3 User Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CORSConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#461 +class Aws::S3::Types::CORSConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#462 +Aws::S3::Types::CORSConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies a cross-origin access rule for an Amazon S3 bucket. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CORSRule AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#509 +class Aws::S3::Types::CORSRule < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#510 +Aws::S3::Types::CORSRule::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Describes how an uncompressed comma-separated values (CSV)-formatted +# input object is formatted. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CSVInput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#584 +class Aws::S3::Types::CSVInput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#585 +Aws::S3::Types::CSVInput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Describes how uncompressed comma-separated values (CSV)-formatted +# results are formatted. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CSVOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#629 +class Aws::S3::Types::CSVOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#630 +Aws::S3::Types::CSVOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Contains all the possible checksum or digest values for an object. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Checksum AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#702 +class Aws::S3::Types::Checksum < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#703 +Aws::S3::Types::Checksum::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for specifying the Lambda notification configuration. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CloudFunctionConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#739 +class Aws::S3::Types::CloudFunctionConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#740 +Aws::S3::Types::CloudFunctionConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for all (if there are any) keys between Prefix and the next +# occurrence of the string specified by a delimiter. CommonPrefixes +# lists keys that act like subdirectories in the directory specified by +# Prefix. For example, if the prefix is notes/ and the delimiter is a +# slash (/) as in notes/summer/july, the common prefix is notes/summer/. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CommonPrefix AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#757 +class Aws::S3::Types::CommonPrefix < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#758 +Aws::S3::Types::CommonPrefix::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CompleteMultipartUploadOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#915 +class Aws::S3::Types::CompleteMultipartUploadOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#916 +Aws::S3::Types::CompleteMultipartUploadOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CompleteMultipartUploadRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#1133 +class Aws::S3::Types::CompleteMultipartUploadRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#1134 +Aws::S3::Types::CompleteMultipartUploadRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The container for the completed multipart upload details. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CompletedMultipartUpload AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#1150 +class Aws::S3::Types::CompletedMultipartUpload < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#1151 +Aws::S3::Types::CompletedMultipartUpload::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Details of the parts that were uploaded. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CompletedPart AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#1248 +class Aws::S3::Types::CompletedPart < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#1249 +Aws::S3::Types::CompletedPart::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A container for describing a condition that must be met for the +# specified redirect to apply. For example, 1. If request is for pages +# in the `/docs` folder, redirect to the `/documents` folder. 2. If +# request results in HTTP error 4xx, redirect request to another host +# where you might process the error. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Condition AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#1291 +class Aws::S3::Types::Condition < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#1292 +Aws::S3::Types::Condition::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ContinuationEvent AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#1299 +class Aws::S3::Types::ContinuationEvent < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#1300 +Aws::S3::Types::ContinuationEvent::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CopyObjectOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#1400 +class Aws::S3::Types::CopyObjectOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#1401 +Aws::S3::Types::CopyObjectOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CopyObjectRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#2259 +class Aws::S3::Types::CopyObjectRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#2260 +Aws::S3::Types::CopyObjectRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for all response elements. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CopyObjectResult AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#2327 +class Aws::S3::Types::CopyObjectResult < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#2328 +Aws::S3::Types::CopyObjectResult::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for all response elements. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CopyPartResult AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#2410 +class Aws::S3::Types::CopyPartResult < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#2411 +Aws::S3::Types::CopyPartResult::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The configuration information for the bucket. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucketConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#2460 +class Aws::S3::Types::CreateBucketConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#2461 +Aws::S3::Types::CreateBucketConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucketOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#2472 +class Aws::S3::Types::CreateBucketOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#2473 +Aws::S3::Types::CreateBucketOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucketRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#2614 +class Aws::S3::Types::CreateBucketRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#2615 +Aws::S3::Types::CreateBucketRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateMultipartUploadOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#2740 +class Aws::S3::Types::CreateMultipartUploadOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#2741 +Aws::S3::Types::CreateMultipartUploadOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateMultipartUploadRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3406 +class Aws::S3::Types::CreateMultipartUploadRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3407 +Aws::S3::Types::CreateMultipartUploadRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateSessionOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3448 +class Aws::S3::Types::CreateSessionOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3449 +Aws::S3::Types::CreateSessionOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateSessionRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3557 +class Aws::S3::Types::CreateSessionRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3558 +Aws::S3::Types::CreateSessionRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The container element for optionally specifying the default Object +# Lock retention settings for new objects placed in the specified +# bucket. +# +# * The `DefaultRetention` settings require both a mode and a period. +# +# * The `DefaultRetention` period can be either `Days` or `Years` but +# you must select one. You cannot specify `Days` and `Years` at the +# same time. +# +# +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DefaultRetention AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3595 +class Aws::S3::Types::DefaultRetention < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3596 +Aws::S3::Types::DefaultRetention::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for the objects to delete. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Delete AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3623 +class Aws::S3::Types::Delete < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3624 +Aws::S3::Types::Delete::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketAnalyticsConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3649 +class Aws::S3::Types::DeleteBucketAnalyticsConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3650 +Aws::S3::Types::DeleteBucketAnalyticsConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketCorsRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3669 +class Aws::S3::Types::DeleteBucketCorsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3670 +Aws::S3::Types::DeleteBucketCorsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketEncryptionRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3710 +class Aws::S3::Types::DeleteBucketEncryptionRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3711 +Aws::S3::Types::DeleteBucketEncryptionRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketIntelligentTieringConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3728 +class Aws::S3::Types::DeleteBucketIntelligentTieringConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3729 +Aws::S3::Types::DeleteBucketIntelligentTieringConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketInventoryConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3754 +class Aws::S3::Types::DeleteBucketInventoryConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3755 +Aws::S3::Types::DeleteBucketInventoryConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketLifecycleRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3774 +class Aws::S3::Types::DeleteBucketLifecycleRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3775 +Aws::S3::Types::DeleteBucketLifecycleRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketMetricsConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3802 +class Aws::S3::Types::DeleteBucketMetricsConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3803 +Aws::S3::Types::DeleteBucketMetricsConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketOwnershipControlsRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3822 +class Aws::S3::Types::DeleteBucketOwnershipControlsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3823 +Aws::S3::Types::DeleteBucketOwnershipControlsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketPolicyRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3862 +class Aws::S3::Types::DeleteBucketPolicyRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3863 +Aws::S3::Types::DeleteBucketPolicyRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketReplicationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3882 +class Aws::S3::Types::DeleteBucketReplicationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3883 +Aws::S3::Types::DeleteBucketReplicationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3922 +class Aws::S3::Types::DeleteBucketRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3923 +Aws::S3::Types::DeleteBucketRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketTaggingRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3942 +class Aws::S3::Types::DeleteBucketTaggingRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3943 +Aws::S3::Types::DeleteBucketTaggingRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketWebsiteRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3963 +class Aws::S3::Types::DeleteBucketWebsiteRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3964 +Aws::S3::Types::DeleteBucketWebsiteRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Information about the delete marker. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteMarkerEntry AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3998 +class Aws::S3::Types::DeleteMarkerEntry < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#3999 +Aws::S3::Types::DeleteMarkerEntry::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies whether Amazon S3 replicates delete markers. If you specify +# a `Filter` in your replication configuration, you must also include a +# `DeleteMarkerReplication` element. If your `Filter` includes a `Tag` +# element, the `DeleteMarkerReplication` `Status` must be set to +# Disabled, because Amazon S3 does not support replicating delete +# markers for tag-based rules. For an example configuration, see [Basic +# Rule Configuration][1]. +# +# For more information about delete marker replication, see [Basic Rule +# Configuration][2]. +# +# If you are using an earlier version of the replication configuration, +# Amazon S3 handles replication of delete markers differently. For more +# information, see [Backward Compatibility][3]. +# +# +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config +# [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html +# [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteMarkerReplication AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4037 +class Aws::S3::Types::DeleteMarkerReplication < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4038 +Aws::S3::Types::DeleteMarkerReplication::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4076 +class Aws::S3::Types::DeleteObjectOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4077 +Aws::S3::Types::DeleteObjectOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4194 +class Aws::S3::Types::DeleteObjectRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4195 +Aws::S3::Types::DeleteObjectRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectTaggingOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4206 +class Aws::S3::Types::DeleteObjectTaggingOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4207 +Aws::S3::Types::DeleteObjectTaggingOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectTaggingRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4263 +class Aws::S3::Types::DeleteObjectTaggingRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4264 +Aws::S3::Types::DeleteObjectTaggingRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectsOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4292 +class Aws::S3::Types::DeleteObjectsOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4293 +Aws::S3::Types::DeleteObjectsOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectsRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4452 +class Aws::S3::Types::DeleteObjectsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4453 +Aws::S3::Types::DeleteObjectsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeletePublicAccessBlockRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4473 +class Aws::S3::Types::DeletePublicAccessBlockRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4474 +Aws::S3::Types::DeletePublicAccessBlockRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Information about the deleted object. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeletedObject AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4520 +class Aws::S3::Types::DeletedObject < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4521 +Aws::S3::Types::DeletedObject::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies information about where to publish analysis or configuration +# results for an Amazon S3 bucket and S3 Replication Time Control (S3 +# RTC). +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Destination AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4597 +class Aws::S3::Types::Destination < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4598 +Aws::S3::Types::Destination::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Contains the type of server-side encryption used. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Encryption AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4632 +class Aws::S3::Types::Encryption < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4633 +Aws::S3::Types::Encryption::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies encryption-related information for an Amazon S3 bucket that +# is a destination for replicated objects. +# +# If you're specifying a customer managed KMS key, we recommend using a +# fully qualified KMS key ARN. If you use a KMS key alias instead, then +# KMS resolves the key within the requester’s account. This behavior can +# result in data that's encrypted with a KMS key that belongs to the +# requester, and not the bucket owner. +# +# +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/EncryptionConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4665 +class Aws::S3::Types::EncryptionConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4666 +Aws::S3::Types::EncryptionConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A message that indicates the request is complete and no more messages +# will be sent. You should not assume that the request is complete until +# the client receives an `EndEvent`. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/EndEvent AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4677 +class Aws::S3::Types::EndEvent < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#4678 +Aws::S3::Types::EndEvent::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for all error elements. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Error AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5517 +class Aws::S3::Types::Error < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5518 +Aws::S3::Types::Error::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The error information. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ErrorDocument AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5539 +class Aws::S3::Types::ErrorDocument < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5540 +Aws::S3::Types::ErrorDocument::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A container for specifying the configuration for Amazon EventBridge. +# +# @api private +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/EventBridgeConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5550 +class Aws::S3::Types::EventBridgeConfiguration < ::Aws::EmptyStructure; end + +# Optional configuration to replicate existing source bucket objects. +# +# This parameter is no longer supported. To replicate existing objects, +# see [Replicating existing objects with S3 Batch Replication][1] in the +# *Amazon S3 User Guide*. +# +# +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-batch-replication-batch.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ExistingObjectReplication AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5572 +class Aws::S3::Types::ExistingObjectReplication < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5573 +Aws::S3::Types::ExistingObjectReplication::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies the Amazon S3 object key name to filter on. An object key +# name is the name assigned to an object in your Amazon S3 bucket. You +# specify whether to filter on the suffix or prefix of the object key +# name. A prefix is a specific string of characters at the beginning of +# an object key name, which you can use to organize objects. For +# example, you can start the key names of related objects with a prefix, +# such as `2023-` or `engineering/`. Then, you can use `FilterRule` to +# find objects in a bucket with key names that have the same prefix. A +# suffix is similar to a prefix, but it is at the end of the object key +# name instead of at the beginning. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/FilterRule AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5608 +class Aws::S3::Types::FilterRule < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5609 +Aws::S3::Types::FilterRule::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAccelerateConfigurationOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5630 +class Aws::S3::Types::GetBucketAccelerateConfigurationOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5631 +Aws::S3::Types::GetBucketAccelerateConfigurationOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAccelerateConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5670 +class Aws::S3::Types::GetBucketAccelerateConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5671 +Aws::S3::Types::GetBucketAccelerateConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAclOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5687 +class Aws::S3::Types::GetBucketAclOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5688 +Aws::S3::Types::GetBucketAclOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAclRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5721 +class Aws::S3::Types::GetBucketAclRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5722 +Aws::S3::Types::GetBucketAclRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAnalyticsConfigurationOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5733 +class Aws::S3::Types::GetBucketAnalyticsConfigurationOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5734 +Aws::S3::Types::GetBucketAnalyticsConfigurationOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAnalyticsConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5759 +class Aws::S3::Types::GetBucketAnalyticsConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5760 +Aws::S3::Types::GetBucketAnalyticsConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketCorsOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5772 +class Aws::S3::Types::GetBucketCorsOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5773 +Aws::S3::Types::GetBucketCorsOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketCorsRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5806 +class Aws::S3::Types::GetBucketCorsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5807 +Aws::S3::Types::GetBucketCorsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketEncryptionOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5818 +class Aws::S3::Types::GetBucketEncryptionOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5819 +Aws::S3::Types::GetBucketEncryptionOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketEncryptionRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5859 +class Aws::S3::Types::GetBucketEncryptionRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5860 +Aws::S3::Types::GetBucketEncryptionRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketIntelligentTieringConfigurationOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5871 +class Aws::S3::Types::GetBucketIntelligentTieringConfigurationOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5872 +Aws::S3::Types::GetBucketIntelligentTieringConfigurationOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketIntelligentTieringConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5889 +class Aws::S3::Types::GetBucketIntelligentTieringConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5890 +Aws::S3::Types::GetBucketIntelligentTieringConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketInventoryConfigurationOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5901 +class Aws::S3::Types::GetBucketInventoryConfigurationOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5902 +Aws::S3::Types::GetBucketInventoryConfigurationOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketInventoryConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5927 +class Aws::S3::Types::GetBucketInventoryConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5928 +Aws::S3::Types::GetBucketInventoryConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycleConfigurationOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5958 +class Aws::S3::Types::GetBucketLifecycleConfigurationOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5959 +Aws::S3::Types::GetBucketLifecycleConfigurationOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycleConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5978 +class Aws::S3::Types::GetBucketLifecycleConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5979 +Aws::S3::Types::GetBucketLifecycleConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycleOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5990 +class Aws::S3::Types::GetBucketLifecycleOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#5991 +Aws::S3::Types::GetBucketLifecycleOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycleRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6010 +class Aws::S3::Types::GetBucketLifecycleRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6011 +Aws::S3::Types::GetBucketLifecycleRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLocationOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6029 +class Aws::S3::Types::GetBucketLocationOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6030 +Aws::S3::Types::GetBucketLocationOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLocationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6063 +class Aws::S3::Types::GetBucketLocationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6064 +Aws::S3::Types::GetBucketLocationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLoggingOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6081 +class Aws::S3::Types::GetBucketLoggingOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6082 +Aws::S3::Types::GetBucketLoggingOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLoggingRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6101 +class Aws::S3::Types::GetBucketLoggingRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6102 +Aws::S3::Types::GetBucketLoggingRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketMetricsConfigurationOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6113 +class Aws::S3::Types::GetBucketMetricsConfigurationOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6114 +Aws::S3::Types::GetBucketMetricsConfigurationOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketMetricsConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6141 +class Aws::S3::Types::GetBucketMetricsConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6142 +Aws::S3::Types::GetBucketMetricsConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotificationConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6176 +class Aws::S3::Types::GetBucketNotificationConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6177 +Aws::S3::Types::GetBucketNotificationConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketOwnershipControlsOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6189 +class Aws::S3::Types::GetBucketOwnershipControlsOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6190 +Aws::S3::Types::GetBucketOwnershipControlsOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketOwnershipControlsRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6210 +class Aws::S3::Types::GetBucketOwnershipControlsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6211 +Aws::S3::Types::GetBucketOwnershipControlsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6222 +class Aws::S3::Types::GetBucketPolicyOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6223 +Aws::S3::Types::GetBucketPolicyOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6279 +class Aws::S3::Types::GetBucketPolicyRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6280 +Aws::S3::Types::GetBucketPolicyRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyStatusOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6291 +class Aws::S3::Types::GetBucketPolicyStatusOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6292 +Aws::S3::Types::GetBucketPolicyStatusOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyStatusRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6312 +class Aws::S3::Types::GetBucketPolicyStatusRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6313 +Aws::S3::Types::GetBucketPolicyStatusRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketReplicationOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6325 +class Aws::S3::Types::GetBucketReplicationOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6326 +Aws::S3::Types::GetBucketReplicationOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketReplicationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6345 +class Aws::S3::Types::GetBucketReplicationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6346 +Aws::S3::Types::GetBucketReplicationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketRequestPaymentOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6357 +class Aws::S3::Types::GetBucketRequestPaymentOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6358 +Aws::S3::Types::GetBucketRequestPaymentOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketRequestPaymentRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6378 +class Aws::S3::Types::GetBucketRequestPaymentRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6379 +Aws::S3::Types::GetBucketRequestPaymentRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketTaggingOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6390 +class Aws::S3::Types::GetBucketTaggingOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6391 +Aws::S3::Types::GetBucketTaggingOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketTaggingRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6410 +class Aws::S3::Types::GetBucketTaggingRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6411 +Aws::S3::Types::GetBucketTaggingRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketVersioningOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6430 +class Aws::S3::Types::GetBucketVersioningOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6431 +Aws::S3::Types::GetBucketVersioningOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketVersioningRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6450 +class Aws::S3::Types::GetBucketVersioningRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6451 +Aws::S3::Types::GetBucketVersioningRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketWebsiteOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6481 +class Aws::S3::Types::GetBucketWebsiteOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6482 +Aws::S3::Types::GetBucketWebsiteOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketWebsiteRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6501 +class Aws::S3::Types::GetBucketWebsiteRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6502 +Aws::S3::Types::GetBucketWebsiteRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAclOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6528 +class Aws::S3::Types::GetObjectAclOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6529 +Aws::S3::Types::GetObjectAclOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAclRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6597 +class Aws::S3::Types::GetObjectAclRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6598 +Aws::S3::Types::GetObjectAclRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAttributesOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6678 +class Aws::S3::Types::GetObjectAttributesOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6679 +Aws::S3::Types::GetObjectAttributesOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A collection of parts associated with a multipart upload. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAttributesParts AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6735 +class Aws::S3::Types::GetObjectAttributesParts < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6736 +Aws::S3::Types::GetObjectAttributesParts::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAttributesRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6883 +class Aws::S3::Types::GetObjectAttributesRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6884 +Aws::S3::Types::GetObjectAttributesRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHoldOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6895 +class Aws::S3::Types::GetObjectLegalHoldOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6896 +Aws::S3::Types::GetObjectLegalHoldOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHoldRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6962 +class Aws::S3::Types::GetObjectLegalHoldRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6963 +Aws::S3::Types::GetObjectLegalHoldRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfigurationOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6974 +class Aws::S3::Types::GetObjectLockConfigurationOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#6975 +Aws::S3::Types::GetObjectLockConfigurationOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7009 +class Aws::S3::Types::GetObjectLockConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7010 +Aws::S3::Types::GetObjectLockConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7347 +class Aws::S3::Types::GetObjectOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7348 +Aws::S3::Types::GetObjectOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7702 +class Aws::S3::Types::GetObjectRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7703 +Aws::S3::Types::GetObjectRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetentionOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7714 +class Aws::S3::Types::GetObjectRetentionOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7715 +Aws::S3::Types::GetObjectRetentionOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetentionRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7781 +class Aws::S3::Types::GetObjectRetentionRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7782 +Aws::S3::Types::GetObjectRetentionRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTaggingOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7799 +class Aws::S3::Types::GetObjectTaggingOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7800 +Aws::S3::Types::GetObjectTaggingOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTaggingRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7875 +class Aws::S3::Types::GetObjectTaggingRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7876 +Aws::S3::Types::GetObjectTaggingRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTorrentOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7897 +class Aws::S3::Types::GetObjectTorrentOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7898 +Aws::S3::Types::GetObjectTorrentOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTorrentRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7942 +class Aws::S3::Types::GetObjectTorrentRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7943 +Aws::S3::Types::GetObjectTorrentRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetPublicAccessBlockOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7955 +class Aws::S3::Types::GetPublicAccessBlockOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7956 +Aws::S3::Types::GetPublicAccessBlockOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetPublicAccessBlockRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7976 +class Aws::S3::Types::GetPublicAccessBlockRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7977 +Aws::S3::Types::GetPublicAccessBlockRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for S3 Glacier job parameters. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GlacierJobParameters AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7990 +class Aws::S3::Types::GlacierJobParameters < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#7991 +Aws::S3::Types::GlacierJobParameters::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for grant information. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Grant AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8009 +class Aws::S3::Types::Grant < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8010 +Aws::S3::Types::Grant::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for the person being granted permissions. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Grantee AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8072 +class Aws::S3::Types::Grantee < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8073 +Aws::S3::Types::Grantee::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadBucketOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8115 +class Aws::S3::Types::HeadBucketOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8116 +Aws::S3::Types::HeadBucketOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadBucketRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8184 +class Aws::S3::Types::HeadBucketRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8185 +Aws::S3::Types::HeadBucketRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadObjectOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8589 +class Aws::S3::Types::HeadObjectOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8590 +Aws::S3::Types::HeadObjectOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadObjectRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8868 +class Aws::S3::Types::HeadObjectRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8869 +Aws::S3::Types::HeadObjectRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for the `Suffix` element. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/IndexDocument AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8895 +class Aws::S3::Types::IndexDocument < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8896 +Aws::S3::Types::IndexDocument::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container element that identifies who initiated the multipart upload. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Initiator AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8926 +class Aws::S3::Types::Initiator < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8927 +Aws::S3::Types::Initiator::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Describes the serialization format of the object. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InputSerialization AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8956 +class Aws::S3::Types::InputSerialization < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8957 +Aws::S3::Types::InputSerialization::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A container for specifying S3 Intelligent-Tiering filters. The filters +# determine the subset of objects to which the rule applies. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/IntelligentTieringAndOperator AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8978 +class Aws::S3::Types::IntelligentTieringAndOperator < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#8979 +Aws::S3::Types::IntelligentTieringAndOperator::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 +# bucket. +# +# For information about the S3 Intelligent-Tiering storage class, see +# [Storage class for automatically optimizing frequently and +# infrequently accessed objects][1]. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/IntelligentTieringConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9018 +class Aws::S3::Types::IntelligentTieringConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9019 +Aws::S3::Types::IntelligentTieringConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The `Filter` is used to identify objects that the S3 +# Intelligent-Tiering configuration applies to. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/IntelligentTieringFilter AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9055 +class Aws::S3::Types::IntelligentTieringFilter < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9056 +Aws::S3::Types::IntelligentTieringFilter::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Object is archived and inaccessible until restored. +# +# If the object you are retrieving is stored in the S3 Glacier Flexible +# Retrieval storage class, the S3 Glacier Deep Archive storage class, +# the S3 Intelligent-Tiering Archive Access tier, or the S3 +# Intelligent-Tiering Deep Archive Access tier, before you can retrieve +# the object you must first restore a copy using [RestoreObject][1]. +# Otherwise, this operation returns an `InvalidObjectState` error. For +# information about restoring archived objects, see [Restoring Archived +# Objects][2] in the *Amazon S3 User Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html +# [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InvalidObjectState AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9086 +class Aws::S3::Types::InvalidObjectState < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9087 +Aws::S3::Types::InvalidObjectState::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies the inventory configuration for an Amazon S3 bucket. For +# more information, see [GET Bucket inventory][1] in the *Amazon S3 API +# Reference*. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InventoryConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9144 +class Aws::S3::Types::InventoryConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9145 +Aws::S3::Types::InventoryConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies the inventory configuration for an Amazon S3 bucket. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InventoryDestination AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9159 +class Aws::S3::Types::InventoryDestination < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9160 +Aws::S3::Types::InventoryDestination::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Contains the type of server-side encryption used to encrypt the +# inventory results. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InventoryEncryption AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9179 +class Aws::S3::Types::InventoryEncryption < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9180 +Aws::S3::Types::InventoryEncryption::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies an inventory filter. The inventory only includes objects +# that meet the filter's criteria. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InventoryFilter AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9195 +class Aws::S3::Types::InventoryFilter < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9196 +Aws::S3::Types::InventoryFilter::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Contains the bucket name, file format, bucket owner (optional), and +# prefix (optional) where inventory results are published. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InventoryS3BucketDestination AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9239 +class Aws::S3::Types::InventoryS3BucketDestination < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9240 +Aws::S3::Types::InventoryS3BucketDestination::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies the schedule for generating inventory results. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InventorySchedule AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9253 +class Aws::S3::Types::InventorySchedule < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9254 +Aws::S3::Types::InventorySchedule::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies JSON as object's input serialization format. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/JSONInput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9267 +class Aws::S3::Types::JSONInput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9268 +Aws::S3::Types::JSONInput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies JSON as request's output serialization format. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/JSONOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9282 +class Aws::S3::Types::JSONOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9283 +Aws::S3::Types::JSONOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A container for specifying the configuration for Lambda notifications. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/LambdaFunctionConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9326 +class Aws::S3::Types::LambdaFunctionConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9327 +Aws::S3::Types::LambdaFunctionConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for lifecycle rules. You can add as many as 1000 rules. +# +# For more information see, [Managing your storage lifecycle][1] in the +# *Amazon S3 User Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/LifecycleConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9347 +class Aws::S3::Types::LifecycleConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9348 +Aws::S3::Types::LifecycleConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for the expiration for the lifecycle of the object. +# +# For more information see, [Managing your storage lifecycle][1] in the +# *Amazon S3 User Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/LifecycleExpiration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9384 +class Aws::S3::Types::LifecycleExpiration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9385 +Aws::S3::Types::LifecycleExpiration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A lifecycle rule for individual objects in an Amazon S3 bucket. +# +# For more information see, [Managing your storage lifecycle][1] in the +# *Amazon S3 User Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/LifecycleRule AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9479 +class Aws::S3::Types::LifecycleRule < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9480 +Aws::S3::Types::LifecycleRule::SENSITIVE = T.let(T.unsafe(nil), Array) + +# This is used in a Lifecycle Rule Filter to apply a logical AND to two +# or more predicates. The Lifecycle Rule will apply to any object +# matching all of the predicates configured inside the And operator. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/LifecycleRuleAndOperator AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9511 +class Aws::S3::Types::LifecycleRuleAndOperator < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9512 +Aws::S3::Types::LifecycleRuleAndOperator::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The `Filter` is used to identify objects that a Lifecycle Rule applies +# to. A `Filter` can have exactly one of `Prefix`, `Tag`, +# `ObjectSizeGreaterThan`, `ObjectSizeLessThan`, or `And` specified. If +# the `Filter` element is left empty, the Lifecycle Rule applies to all +# objects in the bucket. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/LifecycleRuleFilter AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9560 +class Aws::S3::Types::LifecycleRuleFilter < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9561 +Aws::S3::Types::LifecycleRuleFilter::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketAnalyticsConfigurationsOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9595 +class Aws::S3::Types::ListBucketAnalyticsConfigurationsOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9596 +Aws::S3::Types::ListBucketAnalyticsConfigurationsOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketAnalyticsConfigurationsRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9622 +class Aws::S3::Types::ListBucketAnalyticsConfigurationsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9623 +Aws::S3::Types::ListBucketAnalyticsConfigurationsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketIntelligentTieringConfigurationsOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9656 +class Aws::S3::Types::ListBucketIntelligentTieringConfigurationsOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9657 +Aws::S3::Types::ListBucketIntelligentTieringConfigurationsOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketIntelligentTieringConfigurationsRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9675 +class Aws::S3::Types::ListBucketIntelligentTieringConfigurationsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9676 +Aws::S3::Types::ListBucketIntelligentTieringConfigurationsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketInventoryConfigurationsOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9708 +class Aws::S3::Types::ListBucketInventoryConfigurationsOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9709 +Aws::S3::Types::ListBucketInventoryConfigurationsOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketInventoryConfigurationsRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9737 +class Aws::S3::Types::ListBucketInventoryConfigurationsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9738 +Aws::S3::Types::ListBucketInventoryConfigurationsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketMetricsConfigurationsOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9772 +class Aws::S3::Types::ListBucketMetricsConfigurationsOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9773 +Aws::S3::Types::ListBucketMetricsConfigurationsOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketMetricsConfigurationsRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9801 +class Aws::S3::Types::ListBucketMetricsConfigurationsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9802 +Aws::S3::Types::ListBucketMetricsConfigurationsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketsOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9826 +class Aws::S3::Types::ListBucketsOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9827 +Aws::S3::Types::ListBucketsOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketsRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9852 +class Aws::S3::Types::ListBucketsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9853 +Aws::S3::Types::ListBucketsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListDirectoryBucketsOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9871 +class Aws::S3::Types::ListDirectoryBucketsOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9872 +Aws::S3::Types::ListDirectoryBucketsOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListDirectoryBucketsRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9894 +class Aws::S3::Types::ListDirectoryBucketsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#9895 +Aws::S3::Types::ListDirectoryBucketsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListMultipartUploadsOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#10023 +class Aws::S3::Types::ListMultipartUploadsOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#10024 +Aws::S3::Types::ListMultipartUploadsOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListMultipartUploadsRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#10210 +class Aws::S3::Types::ListMultipartUploadsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#10211 +Aws::S3::Types::ListMultipartUploadsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectVersionsOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#10316 +class Aws::S3::Types::ListObjectVersionsOutput < ::Struct + include ::Aws::Structure + + # TODO : Remove this customization once the resource code + # generator correct handles the JMESPath || expression. + # Only used by the Bucket#object_versions collection. + # + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/customizations/types/list_object_versions_output.rb#9 + def versions_delete_markers; end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#10317 +Aws::S3::Types::ListObjectVersionsOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectVersionsRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#10426 +class Aws::S3::Types::ListObjectVersionsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#10427 +Aws::S3::Types::ListObjectVersionsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectsOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#10545 +class Aws::S3::Types::ListObjectsOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#10546 +Aws::S3::Types::ListObjectsOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectsRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#10667 +class Aws::S3::Types::ListObjectsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#10668 +Aws::S3::Types::ListObjectsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectsV2Output AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#10818 +class Aws::S3::Types::ListObjectsV2Output < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#10819 +Aws::S3::Types::ListObjectsV2Output::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectsV2Request AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#10991 +class Aws::S3::Types::ListObjectsV2Request < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#10992 +Aws::S3::Types::ListObjectsV2Request::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListPartsOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11127 +class Aws::S3::Types::ListPartsOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11128 +Aws::S3::Types::ListPartsOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListPartsRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11277 +class Aws::S3::Types::ListPartsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11278 +Aws::S3::Types::ListPartsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies the location where the bucket will be created. +# +# For directory buckets, the location type is Availability Zone. For +# more information about directory buckets, see [Directory buckets][1] +# in the *Amazon S3 User Guide*. +# +# This functionality is only supported by directory buckets. +# +# +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/LocationInfo AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11312 +class Aws::S3::Types::LocationInfo < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11313 +Aws::S3::Types::LocationInfo::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Describes where logs are stored and the prefix that Amazon S3 assigns +# to all log object keys for a bucket. For more information, see [PUT +# Bucket logging][1] in the *Amazon S3 API Reference*. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/LoggingEnabled AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11364 +class Aws::S3::Types::LoggingEnabled < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11365 +Aws::S3::Types::LoggingEnabled::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A metadata key-value pair to store with an object. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/MetadataEntry AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11383 +class Aws::S3::Types::MetadataEntry < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11384 +Aws::S3::Types::MetadataEntry::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A container specifying replication metrics-related settings enabling +# replication metrics and events. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Metrics AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11404 +class Aws::S3::Types::Metrics < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11405 +Aws::S3::Types::Metrics::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A conjunction (logical AND) of predicates, which is used in evaluating +# a metrics filter. The operator must have at least two predicates, and +# an object must match all of the predicates in order for the filter to +# apply. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/MetricsAndOperator AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11431 +class Aws::S3::Types::MetricsAndOperator < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11432 +Aws::S3::Types::MetricsAndOperator::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies a metrics configuration for the CloudWatch request metrics +# (specified by the metrics configuration ID) from an Amazon S3 bucket. +# If you're updating an existing metrics configuration, note that this +# is a full replacement of the existing metrics configuration. If you +# don't include the elements you want to keep, they are erased. For +# more information, see [PutBucketMetricsConfiguration][1]. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/MetricsConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11464 +class Aws::S3::Types::MetricsConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11465 +Aws::S3::Types::MetricsConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies a metrics configuration filter. The metrics configuration +# only includes objects that meet the filter's criteria. A filter must +# be a prefix, an object tag, an access point ARN, or a conjunction +# (MetricsAndOperator). For more information, see +# [PutBucketMetricsConfiguration][1]. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/MetricsFilter AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11504 +class Aws::S3::Types::MetricsFilter < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11505 +Aws::S3::Types::MetricsFilter::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for the `MultipartUpload` for the Amazon S3 object. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/MultipartUpload AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11559 +class Aws::S3::Types::MultipartUpload < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11560 +Aws::S3::Types::MultipartUpload::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The specified bucket does not exist. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/NoSuchBucket AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11568 +class Aws::S3::Types::NoSuchBucket < ::Aws::EmptyStructure; end + +# The specified key does not exist. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/NoSuchKey AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11574 +class Aws::S3::Types::NoSuchKey < ::Aws::EmptyStructure; end + +# The specified multipart upload does not exist. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/NoSuchUpload AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11580 +class Aws::S3::Types::NoSuchUpload < ::Aws::EmptyStructure; end + +# Specifies when noncurrent object versions expire. Upon expiration, +# Amazon S3 permanently deletes the noncurrent object versions. You set +# this lifecycle configuration action on a bucket that has versioning +# enabled (or suspended) to request that Amazon S3 delete noncurrent +# object versions at a specific period in the object's lifetime. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/NoncurrentVersionExpiration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11617 +class Aws::S3::Types::NoncurrentVersionExpiration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11618 +Aws::S3::Types::NoncurrentVersionExpiration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for the transition rule that describes when noncurrent +# objects transition to the `STANDARD_IA`, `ONEZONE_IA`, +# `INTELLIGENT_TIERING`, `GLACIER_IR`, `GLACIER`, or `DEEP_ARCHIVE` +# storage class. If your bucket is versioning-enabled (or versioning is +# suspended), you can set this action to request that Amazon S3 +# transition noncurrent object versions to the `STANDARD_IA`, +# `ONEZONE_IA`, `INTELLIGENT_TIERING`, `GLACIER_IR`, `GLACIER`, or +# `DEEP_ARCHIVE` storage class at a specific period in the object's +# lifetime. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/NoncurrentVersionTransition AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11665 +class Aws::S3::Types::NoncurrentVersionTransition < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11666 +Aws::S3::Types::NoncurrentVersionTransition::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A container for specifying the notification configuration of the +# bucket. If this element is empty, notifications are turned off for the +# bucket. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/NotificationConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11699 +class Aws::S3::Types::NotificationConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11700 +Aws::S3::Types::NotificationConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/NotificationConfigurationDeprecated AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11726 +class Aws::S3::Types::NotificationConfigurationDeprecated < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11727 +Aws::S3::Types::NotificationConfigurationDeprecated::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies object key name filtering rules. For information about key +# name filtering, see [Configuring event notifications using object key +# name filtering][1] in the *Amazon S3 User Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-filtering.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/NotificationConfigurationFilter AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11746 +class Aws::S3::Types::NotificationConfigurationFilter < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11747 +Aws::S3::Types::NotificationConfigurationFilter::SENSITIVE = T.let(T.unsafe(nil), Array) + +# An object consists of data and its descriptive metadata. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Object AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11845 +class Aws::S3::Types::Object < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11846 +Aws::S3::Types::Object::SENSITIVE = T.let(T.unsafe(nil), Array) + +# This action is not allowed against this storage tier. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectAlreadyInActiveTierError AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11854 +class Aws::S3::Types::ObjectAlreadyInActiveTierError < ::Aws::EmptyStructure; end + +# Object Identifier is unique value to identify objects. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectIdentifier AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11882 +class Aws::S3::Types::ObjectIdentifier < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11883 +Aws::S3::Types::ObjectIdentifier::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The container element for Object Lock configuration parameters. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectLockConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11907 +class Aws::S3::Types::ObjectLockConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11908 +Aws::S3::Types::ObjectLockConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A legal hold configuration for an object. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectLockLegalHold AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11921 +class Aws::S3::Types::ObjectLockLegalHold < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11922 +Aws::S3::Types::ObjectLockLegalHold::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A Retention configuration for an object. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectLockRetention AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11940 +class Aws::S3::Types::ObjectLockRetention < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11941 +Aws::S3::Types::ObjectLockRetention::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The container element for an Object Lock rule. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectLockRule AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11958 +class Aws::S3::Types::ObjectLockRule < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11959 +Aws::S3::Types::ObjectLockRule::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The source object of the COPY action is not in the active tier and is +# only stored in Amazon S3 Glacier. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectNotInActiveTierError AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#11968 +class Aws::S3::Types::ObjectNotInActiveTierError < ::Aws::EmptyStructure; end + +# A container for elements related to an individual part. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectPart AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12046 +class Aws::S3::Types::ObjectPart < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12047 +Aws::S3::Types::ObjectPart::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The version of an object. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectVersion AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12114 +class Aws::S3::Types::ObjectVersion < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12115 +Aws::S3::Types::ObjectVersion::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Describes the location where the restore job's output is stored. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/OutputLocation AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12129 +class Aws::S3::Types::OutputLocation < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12130 +Aws::S3::Types::OutputLocation::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Describes how results of the Select job are serialized. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/OutputSerialization AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12148 +class Aws::S3::Types::OutputSerialization < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12149 +Aws::S3::Types::OutputSerialization::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for the owner's display name and ID. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Owner AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12188 +class Aws::S3::Types::Owner < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12189 +Aws::S3::Types::Owner::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The container element for a bucket's ownership controls. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/OwnershipControls AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12202 +class Aws::S3::Types::OwnershipControls < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12203 +Aws::S3::Types::OwnershipControls::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The container element for an ownership control rule. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/OwnershipControlsRule AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12249 +class Aws::S3::Types::OwnershipControlsRule < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12250 +Aws::S3::Types::OwnershipControlsRule::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for Parquet. +# +# @api private +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ParquetInput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12260 +class Aws::S3::Types::ParquetInput < ::Aws::EmptyStructure; end + +# Container for elements related to a part. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Part AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12345 +class Aws::S3::Types::Part < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12346 +Aws::S3::Types::Part::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Amazon S3 keys for log objects are partitioned in the following +# format: +# +# `[DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]` +# +# PartitionedPrefix defaults to EventTime delivery when server access +# logs are delivered. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PartitionedPrefix AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12374 +class Aws::S3::Types::PartitionedPrefix < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12375 +Aws::S3::Types::PartitionedPrefix::SENSITIVE = T.let(T.unsafe(nil), Array) + +# This error is not modeled. +# +# The bucket you are attempting to access must be addressed using the +# specified endpoint. Please send all future requests to this endpoint. +# +# source://aws-sdk-s3//lib/aws-sdk-s3/customizations/types/permanent_redirect.rb#20 +class Aws::S3::Types::PermanentRedirect < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/customizations/types/permanent_redirect.rb#21 +Aws::S3::Types::PermanentRedirect::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The container element for a bucket's policy status. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PolicyStatus AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12389 +class Aws::S3::Types::PolicyStatus < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12390 +Aws::S3::Types::PolicyStatus::SENSITIVE = T.let(T.unsafe(nil), Array) + +# This data type contains information about progress of an operation. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Progress AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12413 +class Aws::S3::Types::Progress < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12414 +Aws::S3::Types::Progress::SENSITIVE = T.let(T.unsafe(nil), Array) + +# This data type contains information about the progress event of an +# operation. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ProgressEvent AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12429 +class Aws::S3::Types::ProgressEvent < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12430 +Aws::S3::Types::ProgressEvent::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The PublicAccessBlock configuration that you want to apply to this +# Amazon S3 bucket. You can enable the configuration options in any +# combination. For more information about when Amazon S3 considers a +# bucket or object public, see [The Meaning of "Public"][1] in the +# *Amazon S3 User Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PublicAccessBlockConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12497 +class Aws::S3::Types::PublicAccessBlockConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12498 +Aws::S3::Types::PublicAccessBlockConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAccelerateConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12541 +class Aws::S3::Types::PutBucketAccelerateConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12542 +Aws::S3::Types::PutBucketAccelerateConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAclRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12635 +class Aws::S3::Types::PutBucketAclRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12636 +Aws::S3::Types::PutBucketAclRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAnalyticsConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12666 +class Aws::S3::Types::PutBucketAnalyticsConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12667 +Aws::S3::Types::PutBucketAnalyticsConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketCorsRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12731 +class Aws::S3::Types::PutBucketCorsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12732 +Aws::S3::Types::PutBucketCorsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketEncryptionRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12815 +class Aws::S3::Types::PutBucketEncryptionRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12816 +Aws::S3::Types::PutBucketEncryptionRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketIntelligentTieringConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12838 +class Aws::S3::Types::PutBucketIntelligentTieringConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12839 +Aws::S3::Types::PutBucketIntelligentTieringConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketInventoryConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12869 +class Aws::S3::Types::PutBucketInventoryConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12870 +Aws::S3::Types::PutBucketInventoryConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycleConfigurationOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12895 +class Aws::S3::Types::PutBucketLifecycleConfigurationOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12896 +Aws::S3::Types::PutBucketLifecycleConfigurationOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycleConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12957 +class Aws::S3::Types::PutBucketLifecycleConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#12958 +Aws::S3::Types::PutBucketLifecycleConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycleRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13005 +class Aws::S3::Types::PutBucketLifecycleRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13006 +Aws::S3::Types::PutBucketLifecycleRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLoggingRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13057 +class Aws::S3::Types::PutBucketLoggingRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13058 +Aws::S3::Types::PutBucketLoggingRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketMetricsConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13089 +class Aws::S3::Types::PutBucketMetricsConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13090 +Aws::S3::Types::PutBucketMetricsConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotificationConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13122 +class Aws::S3::Types::PutBucketNotificationConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13123 +Aws::S3::Types::PutBucketNotificationConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotificationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13174 +class Aws::S3::Types::PutBucketNotificationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13175 +Aws::S3::Types::PutBucketNotificationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketOwnershipControlsRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13210 +class Aws::S3::Types::PutBucketOwnershipControlsRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13211 +Aws::S3::Types::PutBucketOwnershipControlsRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketPolicyRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13322 +class Aws::S3::Types::PutBucketPolicyRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13323 +Aws::S3::Types::PutBucketPolicyRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketReplicationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13387 +class Aws::S3::Types::PutBucketReplicationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13388 +Aws::S3::Types::PutBucketReplicationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketRequestPaymentRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13446 +class Aws::S3::Types::PutBucketRequestPaymentRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13447 +Aws::S3::Types::PutBucketRequestPaymentRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketTaggingRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13505 +class Aws::S3::Types::PutBucketTaggingRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13506 +Aws::S3::Types::PutBucketTaggingRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketVersioningRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13571 +class Aws::S3::Types::PutBucketVersioningRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13572 +Aws::S3::Types::PutBucketVersioningRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketWebsiteRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13630 +class Aws::S3::Types::PutBucketWebsiteRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13631 +Aws::S3::Types::PutBucketWebsiteRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectAclOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13647 +class Aws::S3::Types::PutObjectAclOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13648 +Aws::S3::Types::PutObjectAclOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectAclRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13813 +class Aws::S3::Types::PutObjectAclRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13814 +Aws::S3::Types::PutObjectAclRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHoldOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13830 +class Aws::S3::Types::PutObjectLegalHoldOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13831 +Aws::S3::Types::PutObjectLegalHoldOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHoldRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13928 +class Aws::S3::Types::PutObjectLegalHoldRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13929 +Aws::S3::Types::PutObjectLegalHoldRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfigurationOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13945 +class Aws::S3::Types::PutObjectLockConfigurationOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#13946 +Aws::S3::Types::PutObjectLockConfigurationOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfigurationRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#14023 +class Aws::S3::Types::PutObjectLockConfigurationRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#14024 +Aws::S3::Types::PutObjectLockConfigurationRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#14211 +class Aws::S3::Types::PutObjectOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#14212 +Aws::S3::Types::PutObjectOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#14892 +class Aws::S3::Types::PutObjectRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#14893 +Aws::S3::Types::PutObjectRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetentionOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#14909 +class Aws::S3::Types::PutObjectRetentionOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#14910 +Aws::S3::Types::PutObjectRetentionOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetentionRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15014 +class Aws::S3::Types::PutObjectRetentionRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15015 +Aws::S3::Types::PutObjectRetentionRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectTaggingOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15026 +class Aws::S3::Types::PutObjectTaggingOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15027 +Aws::S3::Types::PutObjectTaggingOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectTaggingRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15132 +class Aws::S3::Types::PutObjectTaggingRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15133 +Aws::S3::Types::PutObjectTaggingRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutPublicAccessBlockRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15193 +class Aws::S3::Types::PutPublicAccessBlockRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15194 +Aws::S3::Types::PutPublicAccessBlockRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies the configuration for publishing messages to an Amazon +# Simple Queue Service (Amazon SQS) queue when Amazon S3 detects +# specified events. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/QueueConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15234 +class Aws::S3::Types::QueueConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15235 +Aws::S3::Types::QueueConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# This data type is deprecated. Use [QueueConfiguration][1] for the same +# purposes. This data type specifies the configuration for publishing +# messages to an Amazon Simple Queue Service (Amazon SQS) queue when +# Amazon S3 detects specified events. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_QueueConfiguration.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/QueueConfigurationDeprecated AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15274 +class Aws::S3::Types::QueueConfigurationDeprecated < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15275 +Aws::S3::Types::QueueConfigurationDeprecated::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The container for the records event. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RecordsEvent AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15297 +class Aws::S3::Types::RecordsEvent < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15298 +Aws::S3::Types::RecordsEvent::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies how requests are redirected. In the event of an error, you +# can specify a different error code to return. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Redirect AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15359 +class Aws::S3::Types::Redirect < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15360 +Aws::S3::Types::Redirect::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies the redirect behavior of all requests to a website endpoint +# of an Amazon S3 bucket. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RedirectAllRequestsTo AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15380 +class Aws::S3::Types::RedirectAllRequestsTo < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15381 +Aws::S3::Types::RedirectAllRequestsTo::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A filter that you can specify for selection for modifications on +# replicas. Amazon S3 doesn't replicate replica modifications by +# default. In the latest version of replication configuration (when +# `Filter` is specified), you can specify this element and set the +# status to `Enabled` to replicate modifications on replicas. +# +# If you don't specify the `Filter` element, Amazon S3 assumes that the +# replication configuration is the earlier version, V1. In the earlier +# version, this element is not allowed. +# +# +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ReplicaModifications AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15404 +class Aws::S3::Types::ReplicaModifications < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15405 +Aws::S3::Types::ReplicaModifications::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A container for replication rules. You can add up to 1,000 rules. The +# maximum size of a replication configuration is 2 MB. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ReplicationConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15433 +class Aws::S3::Types::ReplicationConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15434 +Aws::S3::Types::ReplicationConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies which Amazon S3 objects to replicate and where to store the +# replicas. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ReplicationRule AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15552 +class Aws::S3::Types::ReplicationRule < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15553 +Aws::S3::Types::ReplicationRule::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A container for specifying rule filters. The filters determine the +# subset of objects to which the rule applies. This element is required +# only if you specify more than one filter. +# +# For example: +# +# * If you specify both a `Prefix` and a `Tag` filter, wrap these +# filters in an `And` tag. +# +# * If you specify a filter based on multiple tags, wrap the `Tag` +# elements in an `And` tag. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ReplicationRuleAndOperator AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15582 +class Aws::S3::Types::ReplicationRuleAndOperator < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15583 +Aws::S3::Types::ReplicationRuleAndOperator::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A filter that identifies the subset of objects to which the +# replication rule applies. A `Filter` must specify exactly one +# `Prefix`, `Tag`, or an `And` child element. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ReplicationRuleFilter AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15627 +class Aws::S3::Types::ReplicationRuleFilter < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15628 +Aws::S3::Types::ReplicationRuleFilter::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A container specifying S3 Replication Time Control (S3 RTC) related +# information, including whether S3 RTC is enabled and the time when all +# objects and operations on objects must be replicated. Must be +# specified together with a `Metrics` block. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ReplicationTime AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15650 +class Aws::S3::Types::ReplicationTime < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15651 +Aws::S3::Types::ReplicationTime::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A container specifying the time value for S3 Replication Time Control +# (S3 RTC) and replication metrics `EventThreshold`. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ReplicationTimeValue AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15667 +class Aws::S3::Types::ReplicationTimeValue < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15668 +Aws::S3::Types::ReplicationTimeValue::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for Payer. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RequestPaymentConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15681 +class Aws::S3::Types::RequestPaymentConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15682 +Aws::S3::Types::RequestPaymentConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for specifying if periodic `QueryProgress` messages should +# be sent. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RequestProgress AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15697 +class Aws::S3::Types::RequestProgress < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15698 +Aws::S3::Types::RequestProgress::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RestoreObjectOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15720 +class Aws::S3::Types::RestoreObjectOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15721 +Aws::S3::Types::RestoreObjectOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RestoreObjectRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15817 +class Aws::S3::Types::RestoreObjectRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15818 +Aws::S3::Types::RestoreObjectRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for restore job parameters. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RestoreRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15882 +class Aws::S3::Types::RestoreRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15883 +Aws::S3::Types::RestoreRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies the restoration status of an object. Objects in certain +# storage classes must be restored before they can be retrieved. For +# more information about these storage classes and how to work with +# archived objects, see [ Working with archived objects][1] in the +# *Amazon S3 User Guide*. +# +# This functionality is not supported for directory buckets. Only the S3 +# Express One Zone storage class is supported by directory buckets to +# store objects. +# +# +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RestoreStatus AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15931 +class Aws::S3::Types::RestoreStatus < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15932 +Aws::S3::Types::RestoreStatus::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies the redirect behavior and when a redirect is applied. For +# more information about routing rules, see [Configuring advanced +# conditional redirects][1] in the *Amazon S3 User Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html#advanced-conditional-redirects +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RoutingRule AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15962 +class Aws::S3::Types::RoutingRule < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#15963 +Aws::S3::Types::RoutingRule::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies lifecycle rules for an Amazon S3 bucket. For more +# information, see [Put Bucket Lifecycle Configuration][1] in the +# *Amazon S3 API Reference*. For examples, see [Put Bucket Lifecycle +# Configuration Examples][2]. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html +# [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html#API_PutBucketLifecycleConfiguration_Examples +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Rule AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16058 +class Aws::S3::Types::Rule < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16059 +Aws::S3::Types::Rule::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A container for object key name prefix and suffix filtering rules. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/S3KeyFilter AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16073 +class Aws::S3::Types::S3KeyFilter < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16074 +Aws::S3::Types::S3KeyFilter::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Describes an Amazon S3 location that will receive the results of the +# restore request. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/S3Location AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16124 +class Aws::S3::Types::S3Location < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16125 +Aws::S3::Types::S3Location::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies the use of SSE-KMS to encrypt delivered inventory reports. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SSEKMS AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16140 +class Aws::S3::Types::SSEKMS < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16141 +Aws::S3::Types::SSEKMS::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies the use of SSE-S3 to encrypt delivered inventory reports. +# +# @api private +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SSES3 AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16151 +class Aws::S3::Types::SSES3 < ::Aws::EmptyStructure; end + +# Specifies the byte range of the object to get the records from. A +# record is processed when its first byte is contained by the range. +# This parameter is optional, but when specified, it must not be empty. +# See RFC 2616, Section 14.35.1 about how to specify the start and end +# of the range. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ScanRange AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16180 +class Aws::S3::Types::ScanRange < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16181 +Aws::S3::Types::ScanRange::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The container for selecting objects from a content event stream. +# +# EventStream is an Enumerator of Events. +# #event_types #=> Array, returns all modeled event types in the stream +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SelectObjectContentEventStream AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#18159 +class Aws::S3::Types::SelectObjectContentEventStream < ::Enumerator + # source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#18161 + def event_types; end +end + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SelectObjectContentOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16192 +class Aws::S3::Types::SelectObjectContentOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16193 +Aws::S3::Types::SelectObjectContentOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Learn Amazon S3 Select is no longer available to new customers. +# Existing customers of Amazon S3 Select can continue to use the feature +# as usual. [Learn more][1] +# +# +# +# Request to filter the contents of an Amazon S3 object based on a +# simple Structured Query Language (SQL) statement. In the request, +# along with the SQL expression, you must specify a data serialization +# format (JSON or CSV) of the object. Amazon S3 uses this to parse +# object data into records. It returns only records that match the +# specified SQL expression. You must also specify the data serialization +# format for the response. For more information, see [S3Select API +# Documentation][2]. +# +# +# +# [1]: http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/ +# [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SelectObjectContentRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16322 +class Aws::S3::Types::SelectObjectContentRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16323 +Aws::S3::Types::SelectObjectContentRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Amazon S3 Select is no longer available to new customers. Existing +# customers of Amazon S3 Select can continue to use the feature as +# usual. [Learn more][1] +# +# Describes the parameters for Select job types. +# +# Learn [How to optimize querying your data in Amazon S3][1] using +# [Amazon Athena][2], [S3 Object Lambda][3], or client-side filtering. +# +# +# +# [1]: http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/ +# [2]: https://docs.aws.amazon.com/athena/latest/ug/what-is.html +# [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SelectParameters AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16372 +class Aws::S3::Types::SelectParameters < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16373 +Aws::S3::Types::SelectParameters::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Describes the default server-side encryption to apply to new objects +# in the bucket. If a PUT Object request doesn't specify any +# server-side encryption, this default encryption will be applied. For +# more information, see [PutBucketEncryption][1]. +# +# * **General purpose buckets** - If you don't specify a customer +# managed key at configuration, Amazon S3 automatically creates an +# Amazon Web Services KMS key (`aws/s3`) in your Amazon Web Services +# account the first time that you add an object encrypted with SSE-KMS +# to a bucket. By default, Amazon S3 uses this KMS key for SSE-KMS. +# +# * **Directory buckets** - Your SSE-KMS configuration can only support +# 1 [customer managed key][2] per directory bucket for the lifetime of +# the bucket. [Amazon Web Services managed key][3] (`aws/s3`) isn't +# supported. +# +# * **Directory buckets** - For directory buckets, there are only two +# supported options for server-side encryption: SSE-S3 and SSE-KMS. +# +# +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html +# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk +# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ServerSideEncryptionByDefault AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16471 +class Aws::S3::Types::ServerSideEncryptionByDefault < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16472 +Aws::S3::Types::ServerSideEncryptionByDefault::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies the default server-side-encryption configuration. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ServerSideEncryptionConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16486 +class Aws::S3::Types::ServerSideEncryptionConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16487 +Aws::S3::Types::ServerSideEncryptionConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies the default server-side encryption configuration. +# +# * **General purpose buckets** - If you're specifying a customer +# managed KMS key, we recommend using a fully qualified KMS key ARN. +# If you use a KMS key alias instead, then KMS resolves the key within +# the requester’s account. This behavior can result in data that's +# encrypted with a KMS key that belongs to the requester, and not the +# bucket owner. +# +# * **Directory buckets** - When you specify an [KMS customer managed +# key][1] for encryption in your directory bucket, only use the key ID +# or key ARN. The key alias format of the KMS key isn't supported. +# +# +# +# +# +# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ServerSideEncryptionRule AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16552 +class Aws::S3::Types::ServerSideEncryptionRule < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16553 +Aws::S3::Types::ServerSideEncryptionRule::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The established temporary security credentials of the session. +# +# **Directory buckets** - These session credentials are only supported +# for the authentication and authorization of Zonal endpoint API +# operations on directory buckets. +# +# +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SessionCredentials AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16596 +class Aws::S3::Types::SessionCredentials < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16597 +Aws::S3::Types::SessionCredentials::SENSITIVE = T.let(T.unsafe(nil), Array) + +# To use simple format for S3 keys for log objects, set SimplePrefix to +# an empty object. +# +# `[DestinationPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]` +# +# @api private +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SimplePrefix AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16610 +class Aws::S3::Types::SimplePrefix < ::Aws::EmptyStructure; end + +# A container that describes additional filters for identifying the +# source objects that you want to replicate. You can choose to enable or +# disable the replication of these objects. Currently, Amazon S3 +# supports only the filter that you can specify for objects created with +# server-side encryption using a customer managed key stored in Amazon +# Web Services Key Management Service (SSE-KMS). +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SourceSelectionCriteria AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16644 +class Aws::S3::Types::SourceSelectionCriteria < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16645 +Aws::S3::Types::SourceSelectionCriteria::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A container for filter information for the selection of S3 objects +# encrypted with Amazon Web Services KMS. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SseKmsEncryptedObjects AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16661 +class Aws::S3::Types::SseKmsEncryptedObjects < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16662 +Aws::S3::Types::SseKmsEncryptedObjects::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for the stats details. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Stats AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16685 +class Aws::S3::Types::Stats < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16686 +Aws::S3::Types::Stats::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for the Stats Event. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/StatsEvent AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16700 +class Aws::S3::Types::StatsEvent < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16701 +Aws::S3::Types::StatsEvent::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies data related to access patterns to be collected and made +# available to analyze the tradeoffs between different storage classes +# for an Amazon S3 bucket. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/StorageClassAnalysis AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16717 +class Aws::S3::Types::StorageClassAnalysis < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16718 +Aws::S3::Types::StorageClassAnalysis::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for data related to the storage class analysis for an Amazon +# S3 bucket for export. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/StorageClassAnalysisDataExport AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16738 +class Aws::S3::Types::StorageClassAnalysisDataExport < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16739 +Aws::S3::Types::StorageClassAnalysisDataExport::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A container of a key value name pair. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Tag AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16757 +class Aws::S3::Types::Tag < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16758 +Aws::S3::Types::Tag::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for `TagSet` elements. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Tagging AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16771 +class Aws::S3::Types::Tagging < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16772 +Aws::S3::Types::Tagging::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Container for granting information. +# +# Buckets that use the bucket owner enforced setting for Object +# Ownership don't support target grants. For more information, see +# [Permissions server access log delivery][1] in the *Amazon S3 User +# Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/TargetGrant AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16799 +class Aws::S3::Types::TargetGrant < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16800 +Aws::S3::Types::TargetGrant::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Amazon S3 key format for log objects. Only one format, +# PartitionedPrefix or SimplePrefix, is allowed. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/TargetObjectKeyFormat AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16820 +class Aws::S3::Types::TargetObjectKeyFormat < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16821 +Aws::S3::Types::TargetObjectKeyFormat::SENSITIVE = T.let(T.unsafe(nil), Array) + +# The S3 Intelligent-Tiering storage class is designed to optimize +# storage costs by automatically moving data to the most cost-effective +# storage access tier, without additional operational overhead. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Tiering AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16852 +class Aws::S3::Types::Tiering < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16853 +Aws::S3::Types::Tiering::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A container for specifying the configuration for publication of +# messages to an Amazon Simple Notification Service (Amazon SNS) topic +# when Amazon S3 detects specified events. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/TopicConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16899 +class Aws::S3::Types::TopicConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16900 +Aws::S3::Types::TopicConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# A container for specifying the configuration for publication of +# messages to an Amazon Simple Notification Service (Amazon SNS) topic +# when Amazon S3 detects specified events. This data type is deprecated. +# Use [TopicConfiguration][1] instead. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_TopicConfiguration.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/TopicConfigurationDeprecated AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16938 +class Aws::S3::Types::TopicConfigurationDeprecated < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16939 +Aws::S3::Types::TopicConfigurationDeprecated::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies when an object transitions to a specified storage class. For +# more information about Amazon S3 lifecycle configuration rules, see +# [Transitioning Objects Using Amazon S3 Lifecycle][1] in the *Amazon S3 +# User Guide*. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Transition AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16973 +class Aws::S3::Types::Transition < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#16974 +Aws::S3::Types::Transition::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPartCopyOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#17048 +class Aws::S3::Types::UploadPartCopyOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#17049 +Aws::S3::Types::UploadPartCopyOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPartCopyRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#17369 +class Aws::S3::Types::UploadPartCopyRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#17370 +Aws::S3::Types::UploadPartCopyRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPartOutput AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#17497 +class Aws::S3::Types::UploadPartOutput < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#17498 +Aws::S3::Types::UploadPartOutput::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPartRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#17725 +class Aws::S3::Types::UploadPartRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#17726 +Aws::S3::Types::UploadPartRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Describes the versioning state of an Amazon S3 bucket. For more +# information, see [PUT Bucket versioning][1] in the *Amazon S3 API +# Reference*. +# +# +# +# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/VersioningConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#17753 +class Aws::S3::Types::VersioningConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#17754 +Aws::S3::Types::VersioningConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Specifies website configuration parameters for an Amazon S3 bucket. +# +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/WebsiteConfiguration AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#17786 +class Aws::S3::Types::WebsiteConfiguration < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#17787 +Aws::S3::Types::WebsiteConfiguration::SENSITIVE = T.let(T.unsafe(nil), Array) + +# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/WriteGetObjectResponseRequest AWS API Documentation +# +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#18147 +class Aws::S3::Types::WriteGetObjectResponseRequest < ::Struct + include ::Aws::Structure +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/types.rb#18148 +Aws::S3::Types::WriteGetObjectResponseRequest::SENSITIVE = T.let(T.unsafe(nil), Array) + +# Waiters are utility methods that poll for a particular state to occur +# on a client. Waiters can fail after a number of attempts at a polling +# interval defined for the service client. +# +# For a list of operations that can be waited for and the +# client methods called for each operation, see the table below or the +# {Client#wait_until} field documentation for the {Client}. +# +# # Invoking a Waiter +# To invoke a waiter, call #wait_until on a {Client}. The first parameter +# is the waiter name, which is specific to the service client and indicates +# which operation is being waited for. The second parameter is a hash of +# parameters that are passed to the client method called by the waiter, +# which varies according to the waiter name. +# +# # Wait Failures +# To catch errors in a waiter, use WaiterFailed, +# as shown in the following example. +# +# rescue rescue Aws::Waiters::Errors::WaiterFailed => error +# puts "failed waiting for instance running: #{error.message} +# end +# +# # Configuring a Waiter +# Each waiter has a default polling interval and a maximum number of +# attempts it will make before returning control to your program. +# To set these values, use the `max_attempts` and `delay` parameters +# in your `#wait_until` call. +# The following example waits for up to 25 seconds, polling every five seconds. +# +# client.wait_until(...) do |w| +# w.max_attempts = 5 +# w.delay = 5 +# end +# +# To disable wait failures, set the value of either of these parameters +# to `nil`. +# +# # Extending a Waiter +# To modify the behavior of waiters, you can register callbacks that are +# triggered before each polling attempt and before waiting. +# +# The following example implements an exponential backoff in a waiter +# by doubling the amount of time to wait on every attempt. +# +# client.wait_until(...) do |w| +# w.interval = 0 # disable normal sleep +# w.before_wait do |n, resp| +# sleep(n ** 2) +# end +# end +# +# # Available Waiters +# +# The following table lists the valid waiter names, the operations they call, +# and the default `:delay` and `:max_attempts` values. +# +# | waiter_name | params | :delay | :max_attempts | +# | ----------------- | -------------------- | -------- | ------------- | +# | bucket_exists | {Client#head_bucket} | 5 | 20 | +# | bucket_not_exists | {Client#head_bucket} | 5 | 20 | +# | object_exists | {Client#head_object} | 5 | 20 | +# | object_not_exists | {Client#head_object} | 5 | 20 | +# +# source://aws-sdk-s3//lib/aws-sdk-s3/waiters.rb#77 +module Aws::S3::Waiters; end + +# source://aws-sdk-s3//lib/aws-sdk-s3/waiters.rb#79 +class Aws::S3::Waiters::BucketExists + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] + # @return [BucketExists] a new instance of BucketExists + # + # source://aws-sdk-s3//lib/aws-sdk-s3/waiters.rb#87 + def initialize(options); end + + # @option params + # @option params + # @param params [Hash] a customizable set of options + # @return [Types::HeadBucketOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::HeadBucketOutput#bucket_location_type #bucket_location_type} => String + # * {Types::HeadBucketOutput#bucket_location_name #bucket_location_name} => String + # * {Types::HeadBucketOutput#bucket_region #bucket_region} => String + # * {Types::HeadBucketOutput#access_point_alias #access_point_alias} => Boolean + # + # source://aws-sdk-s3//lib/aws-sdk-s3/waiters.rb#122 + def wait(params = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/waiters.rb#127 + def waiter; end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/waiters.rb#131 +class Aws::S3::Waiters::BucketNotExists + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] + # @return [BucketNotExists] a new instance of BucketNotExists + # + # source://aws-sdk-s3//lib/aws-sdk-s3/waiters.rb#139 + def initialize(options); end + + # @option params + # @option params + # @param params [Hash] a customizable set of options + # @return [Types::HeadBucketOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::HeadBucketOutput#bucket_location_type #bucket_location_type} => String + # * {Types::HeadBucketOutput#bucket_location_name #bucket_location_name} => String + # * {Types::HeadBucketOutput#bucket_region #bucket_region} => String + # * {Types::HeadBucketOutput#access_point_alias #access_point_alias} => Boolean + # + # source://aws-sdk-s3//lib/aws-sdk-s3/waiters.rb#157 + def wait(params = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/waiters.rb#162 + def waiter; end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/waiters.rb#166 +class Aws::S3::Waiters::ObjectExists + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] + # @return [ObjectExists] a new instance of ObjectExists + # + # source://aws-sdk-s3//lib/aws-sdk-s3/waiters.rb#174 + def initialize(options); end + + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @param params [Hash] a customizable set of options + # @return [Types::HeadObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::HeadObjectOutput#delete_marker #delete_marker} => Boolean + # * {Types::HeadObjectOutput#accept_ranges #accept_ranges} => String + # * {Types::HeadObjectOutput#expiration #expiration} => String + # * {Types::HeadObjectOutput#restore #restore} => String + # * {Types::HeadObjectOutput#archive_status #archive_status} => String + # * {Types::HeadObjectOutput#last_modified #last_modified} => Time + # * {Types::HeadObjectOutput#content_length #content_length} => Integer + # * {Types::HeadObjectOutput#checksum_crc32 #checksum_crc32} => String + # * {Types::HeadObjectOutput#checksum_crc32c #checksum_crc32c} => String + # * {Types::HeadObjectOutput#checksum_sha1 #checksum_sha1} => String + # * {Types::HeadObjectOutput#checksum_sha256 #checksum_sha256} => String + # * {Types::HeadObjectOutput#etag #etag} => String + # * {Types::HeadObjectOutput#missing_meta #missing_meta} => Integer + # * {Types::HeadObjectOutput#version_id #version_id} => String + # * {Types::HeadObjectOutput#cache_control #cache_control} => String + # * {Types::HeadObjectOutput#content_disposition #content_disposition} => String + # * {Types::HeadObjectOutput#content_encoding #content_encoding} => String + # * {Types::HeadObjectOutput#content_language #content_language} => String + # * {Types::HeadObjectOutput#content_type #content_type} => String + # * {Types::HeadObjectOutput#expires #expires} => Time + # * {Types::HeadObjectOutput#expires_string #expires_string} => String + # * {Types::HeadObjectOutput#website_redirect_location #website_redirect_location} => String + # * {Types::HeadObjectOutput#server_side_encryption #server_side_encryption} => String + # * {Types::HeadObjectOutput#metadata #metadata} => Hash<String,String> + # * {Types::HeadObjectOutput#sse_customer_algorithm #sse_customer_algorithm} => String + # * {Types::HeadObjectOutput#sse_customer_key_md5 #sse_customer_key_md5} => String + # * {Types::HeadObjectOutput#ssekms_key_id #ssekms_key_id} => String + # * {Types::HeadObjectOutput#bucket_key_enabled #bucket_key_enabled} => Boolean + # * {Types::HeadObjectOutput#storage_class #storage_class} => String + # * {Types::HeadObjectOutput#request_charged #request_charged} => String + # * {Types::HeadObjectOutput#replication_status #replication_status} => String + # * {Types::HeadObjectOutput#parts_count #parts_count} => Integer + # * {Types::HeadObjectOutput#object_lock_mode #object_lock_mode} => String + # * {Types::HeadObjectOutput#object_lock_retain_until_date #object_lock_retain_until_date} => Time + # * {Types::HeadObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String + # + # source://aws-sdk-s3//lib/aws-sdk-s3/waiters.rb#199 + def wait(params = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/waiters.rb#204 + def waiter; end +end + +# source://aws-sdk-s3//lib/aws-sdk-s3/waiters.rb#208 +class Aws::S3::Waiters::ObjectNotExists + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] + # @return [ObjectNotExists] a new instance of ObjectNotExists + # + # source://aws-sdk-s3//lib/aws-sdk-s3/waiters.rb#216 + def initialize(options); end + + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @option params + # @param params [Hash] a customizable set of options + # @return [Types::HeadObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::HeadObjectOutput#delete_marker #delete_marker} => Boolean + # * {Types::HeadObjectOutput#accept_ranges #accept_ranges} => String + # * {Types::HeadObjectOutput#expiration #expiration} => String + # * {Types::HeadObjectOutput#restore #restore} => String + # * {Types::HeadObjectOutput#archive_status #archive_status} => String + # * {Types::HeadObjectOutput#last_modified #last_modified} => Time + # * {Types::HeadObjectOutput#content_length #content_length} => Integer + # * {Types::HeadObjectOutput#checksum_crc32 #checksum_crc32} => String + # * {Types::HeadObjectOutput#checksum_crc32c #checksum_crc32c} => String + # * {Types::HeadObjectOutput#checksum_sha1 #checksum_sha1} => String + # * {Types::HeadObjectOutput#checksum_sha256 #checksum_sha256} => String + # * {Types::HeadObjectOutput#etag #etag} => String + # * {Types::HeadObjectOutput#missing_meta #missing_meta} => Integer + # * {Types::HeadObjectOutput#version_id #version_id} => String + # * {Types::HeadObjectOutput#cache_control #cache_control} => String + # * {Types::HeadObjectOutput#content_disposition #content_disposition} => String + # * {Types::HeadObjectOutput#content_encoding #content_encoding} => String + # * {Types::HeadObjectOutput#content_language #content_language} => String + # * {Types::HeadObjectOutput#content_type #content_type} => String + # * {Types::HeadObjectOutput#expires #expires} => Time + # * {Types::HeadObjectOutput#expires_string #expires_string} => String + # * {Types::HeadObjectOutput#website_redirect_location #website_redirect_location} => String + # * {Types::HeadObjectOutput#server_side_encryption #server_side_encryption} => String + # * {Types::HeadObjectOutput#metadata #metadata} => Hash<String,String> + # * {Types::HeadObjectOutput#sse_customer_algorithm #sse_customer_algorithm} => String + # * {Types::HeadObjectOutput#sse_customer_key_md5 #sse_customer_key_md5} => String + # * {Types::HeadObjectOutput#ssekms_key_id #ssekms_key_id} => String + # * {Types::HeadObjectOutput#bucket_key_enabled #bucket_key_enabled} => Boolean + # * {Types::HeadObjectOutput#storage_class #storage_class} => String + # * {Types::HeadObjectOutput#request_charged #request_charged} => String + # * {Types::HeadObjectOutput#replication_status #replication_status} => String + # * {Types::HeadObjectOutput#parts_count #parts_count} => Integer + # * {Types::HeadObjectOutput#object_lock_mode #object_lock_mode} => String + # * {Types::HeadObjectOutput#object_lock_retain_until_date #object_lock_retain_until_date} => Time + # * {Types::HeadObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String + # + # source://aws-sdk-s3//lib/aws-sdk-s3/waiters.rb#234 + def wait(params = T.unsafe(nil)); end + + # @api private + # + # source://aws-sdk-s3//lib/aws-sdk-s3/waiters.rb#239 + def waiter; end +end diff --git a/sorbet/rbi/gems/aws-sigv4@1.10.0.rbi b/sorbet/rbi/gems/aws-sigv4@1.10.0.rbi new file mode 100644 index 00000000..44810116 --- /dev/null +++ b/sorbet/rbi/gems/aws-sigv4@1.10.0.rbi @@ -0,0 +1,655 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for types exported from the `aws-sigv4` gem. +# Please instead update this file by running `bin/tapioca gem aws-sigv4`. + + +# source://aws-sigv4//lib/aws-sigv4/asymmetric_credentials.rb#3 +module Aws + class << self + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#93 + def config; end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#96 + def config=(config); end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#155 + def eager_autoload!(*args); end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#148 + def empty_connection_pools!; end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#105 + def partition(partition_name); end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#110 + def partitions; end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#86 + def shared_config; end + + # source://aws-sdk-core/3.209.1/lib/aws-sdk-core.rb#125 + def use_bundled_cert!; end + end +end + +# source://aws-sigv4//lib/aws-sigv4/asymmetric_credentials.rb#4 +module Aws::Sigv4; end + +# To make it easier to support mixed mode, we have created an asymmetric +# key derivation mechanism. This module derives +# asymmetric keys from the current secret for use with +# Asymmetric signatures. +# +# @api private +# +# source://aws-sigv4//lib/aws-sigv4/asymmetric_credentials.rb#10 +module Aws::Sigv4::AsymmetricCredentials + class << self + # unsigned integer. + # + # @api private + # @return [Number] The value of the bytes interpreted as a big-endian + # + # source://aws-sigv4//lib/aws-sigv4/asymmetric_credentials.rb#57 + def be_bytes_to_num(bytes); end + + # @api private + # + # source://aws-sigv4//lib/aws-sigv4/asymmetric_credentials.rb#80 + def check_openssl_support!; end + + # @api private + # @param :access_key_id [String] + # @param :secret_access_key [String] + # @return [OpenSSL::PKey::EC, Hash] + # + # source://aws-sigv4//lib/aws-sigv4/asymmetric_credentials.rb#17 + def derive_asymmetric_key(access_key_id, secret_access_key); end + + # Prior to openssl3 we could directly set public and private key on EC + # However, openssl3 deprecated those methods and we must now construct + # a der with the keys and load the EC from it. + # + # @api private + # + # source://aws-sigv4//lib/aws-sigv4/asymmetric_credentials.rb#66 + def generate_ec(public_key, d); end + end +end + +# @api private +# +# source://aws-sigv4//lib/aws-sigv4/asymmetric_credentials.rb#12 +Aws::Sigv4::AsymmetricCredentials::N_MINUS_2 = T.let(T.unsafe(nil), Integer) + +# Users that wish to configure static credentials can use the +# `:access_key_id` and `:secret_access_key` constructor options. +# +# @api private +# +# source://aws-sigv4//lib/aws-sigv4/credentials.rb#8 +class Aws::Sigv4::Credentials + # @api private + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Credentials] a new instance of Credentials + # + # source://aws-sigv4//lib/aws-sigv4/credentials.rb#13 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @return [String] + # + # source://aws-sigv4//lib/aws-sigv4/credentials.rb#25 + def access_key_id; end + + # @api private + # @return [String] + # + # source://aws-sigv4//lib/aws-sigv4/credentials.rb#28 + def secret_access_key; end + + # @api private + # @return [String, nil] + # + # source://aws-sigv4//lib/aws-sigv4/credentials.rb#31 + def session_token; end + + # @api private + # @return [Boolean] Returns `true` if the access key id and secret + # access key are both set. + # + # source://aws-sigv4//lib/aws-sigv4/credentials.rb#35 + def set?; end +end + +# source://aws-sigv4//lib/aws-sigv4/errors.rb#5 +module Aws::Sigv4::Errors; end + +# source://aws-sigv4//lib/aws-sigv4/errors.rb#7 +class Aws::Sigv4::Errors::MissingCredentialsError < ::ArgumentError + # @return [MissingCredentialsError] a new instance of MissingCredentialsError + # + # source://aws-sigv4//lib/aws-sigv4/errors.rb#8 + def initialize(msg = T.unsafe(nil)); end +end + +# source://aws-sigv4//lib/aws-sigv4/errors.rb#18 +class Aws::Sigv4::Errors::MissingRegionError < ::ArgumentError + # @return [MissingRegionError] a new instance of MissingRegionError + # + # source://aws-sigv4//lib/aws-sigv4/errors.rb#19 + def initialize(*args); end +end + +# source://aws-sigv4//lib/aws-sigv4/signature.rb#5 +class Aws::Sigv4::Signature + # @api private + # @return [Signature] a new instance of Signature + # + # source://aws-sigv4//lib/aws-sigv4/signature.rb#8 + def initialize(options); end + + # @return [String] For debugging purposes. + # + # source://aws-sigv4//lib/aws-sigv4/signature.rb#27 + def canonical_request; end + + # @return [String] For debugging purposes. + # + # source://aws-sigv4//lib/aws-sigv4/signature.rb#27 + def canonical_request=(_arg0); end + + # @return [String] For debugging purposes. + # + # source://aws-sigv4//lib/aws-sigv4/signature.rb#33 + def content_sha256; end + + # @return [String] For debugging purposes. + # + # source://aws-sigv4//lib/aws-sigv4/signature.rb#33 + def content_sha256=(_arg0); end + + # @return [Hash] Internal data for debugging purposes. + # + # source://aws-sigv4//lib/aws-sigv4/signature.rb#39 + def extra; end + + # @return [Hash] Internal data for debugging purposes. + # + # source://aws-sigv4//lib/aws-sigv4/signature.rb#39 + def extra=(_arg0); end + + # @return [Hash] A hash of headers that should + # be applied to the HTTP request. Header keys are lower + # cased strings and may include the following: + # + # * 'host' + # * 'x-amz-date' + # * 'x-amz-security-token' + # * 'x-amz-content-sha256' + # * 'authorization' + # + # source://aws-sigv4//lib/aws-sigv4/signature.rb#24 + def headers; end + + # @return [Hash] A hash of headers that should + # be applied to the HTTP request. Header keys are lower + # cased strings and may include the following: + # + # * 'host' + # * 'x-amz-date' + # * 'x-amz-security-token' + # * 'x-amz-content-sha256' + # * 'authorization' + # + # source://aws-sigv4//lib/aws-sigv4/signature.rb#24 + def headers=(_arg0); end + + # @return [String] For debugging purposes. + # + # source://aws-sigv4//lib/aws-sigv4/signature.rb#36 + def signature; end + + # @return [String] For debugging purposes. + # + # source://aws-sigv4//lib/aws-sigv4/signature.rb#36 + def signature=(_arg0); end + + # @return [String] For debugging purposes. + # + # source://aws-sigv4//lib/aws-sigv4/signature.rb#30 + def string_to_sign; end + + # @return [String] For debugging purposes. + # + # source://aws-sigv4//lib/aws-sigv4/signature.rb#30 + def string_to_sign=(_arg0); end +end + +# Utility class for creating AWS signature version 4 signature. This class +# provides two methods for generating signatures: +# +# * {#sign_request} - Computes a signature of the given request, returning +# the hash of headers that should be applied to the request. +# +# * {#presign_url} - Computes a presigned request with an expiration. +# By default, the body of this request is not signed and the request +# expires in 15 minutes. +# +# ## Configuration +# +# To use the signer, you need to specify the service, region, and credentials. +# The service name is normally the endpoint prefix to an AWS service. For +# example: +# +# ec2.us-west-1.amazonaws.com => ec2 +# +# The region is normally the second portion of the endpoint, following +# the service name. +# +# ec2.us-west-1.amazonaws.com => us-west-1 +# +# It is important to have the correct service and region name, or the +# signature will be invalid. +# +# ## Credentials +# +# The signer requires credentials. You can configure the signer +# with static credentials: +# +# signer = Aws::Sigv4::Signer.new( +# service: 's3', +# region: 'us-east-1', +# # static credentials +# access_key_id: 'akid', +# secret_access_key: 'secret' +# ) +# +# You can also provide refreshing credentials via the `:credentials_provider`. +# If you are using the AWS SDK for Ruby, you can use any of the credential +# classes: +# +# signer = Aws::Sigv4::Signer.new( +# service: 's3', +# region: 'us-east-1', +# credentials_provider: Aws::InstanceProfileCredentials.new +# ) +# +# Other AWS SDK for Ruby classes that can be provided via `:credentials_provider`: +# +# * `Aws::Credentials` +# * `Aws::SharedCredentials` +# * `Aws::InstanceProfileCredentials` +# * `Aws::AssumeRoleCredentials` +# * `Aws::ECSCredentials` +# +# A credential provider is any object that responds to `#credentials` +# returning another object that responds to `#access_key_id`, `#secret_access_key`, +# and `#session_token`. +# +# source://aws-sigv4//lib/aws-sigv4/signer.rb#76 +class Aws::Sigv4::Signer + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @overload initialize + # @overload initialize + # @overload initialize + # @param options [Hash] a customizable set of options + # @return [Signer] a new instance of Signer + # + # source://aws-sigv4//lib/aws-sigv4/signer.rb#135 + def initialize(options = T.unsafe(nil)); end + + # @return [Boolean] When `true` the `x-amz-content-sha256` header will be signed and + # returned in the signature headers. + # + # source://aws-sigv4//lib/aws-sigv4/signer.rb#173 + def apply_checksum_header; end + + # @return [#credentials] Returns an object that responds to + # `#credentials`, returning an object that responds to the following + # methods: + # + # * `#access_key_id` => String + # * `#secret_access_key` => String + # * `#session_token` => String, nil + # * `#set?` => Boolean + # + # source://aws-sigv4//lib/aws-sigv4/signer.rb#165 + def credentials_provider; end + + # Signs a URL with query authentication. Using query parameters + # to authenticate requests is useful when you want to express a + # request entirely in a URL. This method is also referred as + # presigning a URL. + # + # See [Authenticating Requests: Using Query Parameters (AWS Signature Version 4)](http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html) for more information. + # + # To generate a presigned URL, you must provide a HTTP URI and + # the http method. + # + # url = signer.presign_url( + # http_method: 'GET', + # url: 'https://my-bucket.s3-us-east-1.amazonaws.com/key', + # expires_in: 60 + # ) + # + # By default, signatures are valid for 15 minutes. You can specify + # the number of seconds for the URL to expire in. + # + # url = signer.presign_url( + # http_method: 'GET', + # url: 'https://my-bucket.s3-us-east-1.amazonaws.com/key', + # expires_in: 3600 # one hour + # ) + # + # You can provide a hash of headers that you plan to send with the + # request. Every 'X-Amz-*' header you plan to send with the request + # **must** be provided, or the signature is invalid. Other headers + # are optional, but should be provided for security reasons. + # + # url = signer.presign_url( + # http_method: 'PUT', + # url: 'https://my-bucket.s3-us-east-1.amazonaws.com/key', + # headers: { + # 'X-Amz-Meta-Custom' => 'metadata' + # } + # ) + # + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [HTTPS::URI, HTTP::URI] + # + # source://aws-sigv4//lib/aws-sigv4/signer.rb#413 + def presign_url(options); end + + # @return [String] + # + # source://aws-sigv4//lib/aws-sigv4/signer.rb#154 + def region; end + + # @return [String] + # + # source://aws-sigv4//lib/aws-sigv4/signer.rb#151 + def service; end + + # Signs a event and returns signature headers and prior signature + # used for next event signing. + # + # Headers of a sigv4 signed event message only contains 2 headers + # * ':chunk-signature' + # * computed signature of the event, binary string, 'bytes' type + # * ':date' + # * millisecond since epoch, 'timestamp' type + # + # Payload of the sigv4 signed event message contains eventstream encoded message + # which is serialized based on input and protocol + # + # To sign events + # + # headers_0, signature_0 = signer.sign_event( + # prior_signature, # hex-encoded string + # payload_0, # binary string (eventstream encoded event 0) + # encoder, # Aws::EventStreamEncoder + # ) + # + # headers_1, signature_1 = signer.sign_event( + # signature_0, + # payload_1, # binary string (eventstream encoded event 1) + # encoder + # ) + # + # The initial prior_signature should be using the signature computed at initial request + # + # Note: + # + # Since ':chunk-signature' header value has bytes type, the signature value provided + # needs to be a binary string instead of a hex-encoded string (like original signature + # V4 algorithm). Thus, when returning signature value used for next event siging, the + # signature value (a binary string) used at ':chunk-signature' needs to converted to + # hex-encoded string using #unpack + # + # source://aws-sigv4//lib/aws-sigv4/signer.rb#327 + def sign_event(prior_signature, payload, encoder); end + + # Computes a version 4 signature signature. Returns the resultant + # signature as a hash of headers to apply to your HTTP request. The given + # request is not modified. + # + # signature = signer.sign_request( + # http_method: 'PUT', + # url: 'https://domain.com', + # headers: { + # 'Abc' => 'xyz', + # }, + # body: 'body' # String or IO object + # ) + # + # # Apply the following hash of headers to your HTTP request + # signature.headers['host'] + # signature.headers['x-amz-date'] + # signature.headers['x-amz-security-token'] + # signature.headers['x-amz-content-sha256'] + # signature.headers['authorization'] + # + # In addition to computing the signature headers, the canonicalized + # request, string to sign and content sha256 checksum are also available. + # These values are useful for debugging signature errors returned by AWS. + # + # signature.canonical_request #=> "..." + # signature.string_to_sign #=> "..." + # signature.content_sha256 #=> "..." + # + # @option request + # @option request + # @option request + # @option request + # @param request [Hash] + # @return [Signature] Return an instance of {Signature} that has + # a `#headers` method. The headers must be applied to your request. + # + # source://aws-sigv4//lib/aws-sigv4/signer.rb#222 + def sign_request(request); end + + # @return [Set] Returns a set of header names that should not be signed. + # All header names have been downcased. + # + # source://aws-sigv4//lib/aws-sigv4/signer.rb#169 + def unsigned_headers; end + + private + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#543 + def asymmetric_signature(creds, string_to_sign); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#631 + def canonical_header_value(value); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#619 + def canonical_headers(headers); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#479 + def canonical_request(http_method, url, headers, content_sha256); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#531 + def credential(credentials, date); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#522 + def credential_scope(date); end + + # Returns true if credentials are set (not nil or empty) + # Credentials may not implement the Credentials interface + # and may just be credential like Client response objects + # (eg those returned by sts#assume_role) + # + # @return [Boolean] + # + # source://aws-sigv4//lib/aws-sigv4/signer.rb#759 + def credentials_set?(credentials); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#716 + def downcase_headers(headers); end + + # Comparing to original signature v4 algorithm, + # returned signature is a binary string instread of + # hex-encoded string. (Since ':chunk-signature' requires + # 'bytes' type) + # + # Note: + # converting signature from binary string to hex-encoded + # string is handled at #sign_event instead. (Will be used + # as next prior signature for event signing) + # + # source://aws-sigv4//lib/aws-sigv4/signer.rb#562 + def event_signature(secret_access_key, date, string_to_sign); end + + # Compared to original #string_to_sign at signature v4 algorithm + # there is no canonical_request concept for an eventstream event, + # instead, an event contains headers and payload two parts, and + # they will be used for computing digest in #event_string_to_sign + # + # Note: + # While headers need to be encoded under eventstream format, + # payload used is already eventstream encoded (event without signature), + # thus no extra encoding is needed. + # + # source://aws-sigv4//lib/aws-sigv4/signer.rb#508 + def event_string_to_sign(datetime, headers, payload, prior_signature, encoder); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#688 + def extract_credentials_provider(options); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#723 + def extract_expires_in(options); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#698 + def extract_http_method(request); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#680 + def extract_region(options); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#671 + def extract_service(options); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#707 + def extract_url(request); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#741 + def fetch_credentials; end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#667 + def hexhmac(key, value); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#663 + def hmac(key, value); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#635 + def host(uri); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#580 + def normalized_querystring(querystring); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#570 + def path(url); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#766 + def presigned_url_expiration(options, expiration, datetime); end + + # @param value [File, Tempfile, IO#read, String] + # @return [String] + # + # source://aws-sigv4//lib/aws-sigv4/signer.rb#646 + def sha256_hexdigest(value); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#535 + def signature(secret_access_key, date, string_to_sign); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#609 + def signed_headers(headers); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#490 + def string_to_sign(datetime, canonical_request, algorithm); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#475 + def sts_algorithm; end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#733 + def uri_escape(string); end + + # source://aws-sigv4//lib/aws-sigv4/signer.rb#737 + def uri_escape_path(string); end + + class << self + # @api private + # + # source://aws-sigv4//lib/aws-sigv4/signer.rb#804 + def normalize_path(uri); end + + # @api private + # + # source://aws-sigv4//lib/aws-sigv4/signer.rb#795 + def uri_escape(string); end + + # @api private + # + # source://aws-sigv4//lib/aws-sigv4/signer.rb#790 + def uri_escape_path(path); end + + # Kept for backwards compatability + # Always return false since we are not using crt signing functionality + # + # @return [Boolean] + # + # source://aws-sigv4//lib/aws-sigv4/signer.rb#785 + def use_crt?; end + end +end + +# Users that wish to configure static credentials can use the +# `:access_key_id` and `:secret_access_key` constructor options. +# +# @api private +# +# source://aws-sigv4//lib/aws-sigv4/credentials.rb#46 +class Aws::Sigv4::StaticCredentialsProvider + # @api private + # @option options + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [StaticCredentialsProvider] a new instance of StaticCredentialsProvider + # + # source://aws-sigv4//lib/aws-sigv4/credentials.rb#52 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @return [Credentials] + # + # source://aws-sigv4//lib/aws-sigv4/credentials.rb#59 + def credentials; end + + # @api private + # @return [Boolean] + # + # source://aws-sigv4//lib/aws-sigv4/credentials.rb#62 + def set?; end +end + +# source://aws-sigv4//lib/aws-sigv4.rb#11 +Aws::Sigv4::VERSION = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/jmespath@1.6.2.rbi b/sorbet/rbi/gems/jmespath@1.6.2.rbi new file mode 100644 index 00000000..e98ca250 --- /dev/null +++ b/sorbet/rbi/gems/jmespath@1.6.2.rbi @@ -0,0 +1,1921 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for types exported from the `jmespath` gem. +# Please instead update this file by running `bin/tapioca gem jmespath`. + + +# source://jmespath//lib/jmespath.rb#6 +module JMESPath + class << self + # @api private + # + # source://jmespath//lib/jmespath.rb#35 + def load_json(path); end + + # @param expression [String] A valid + # [JMESPath](https://github.com/boto/jmespath) expression. + # @param data [Hash] + # @return [Mixed, nil] Returns the matched values. Returns `nil` if the + # expression does not resolve inside `data`. + # + # source://jmespath//lib/jmespath.rb#24 + def search(expression, data, runtime_options = T.unsafe(nil)); end + end +end + +# source://jmespath//lib/jmespath/caching_parser.rb#5 +class JMESPath::CachingParser + # @return [CachingParser] a new instance of CachingParser + # + # source://jmespath//lib/jmespath/caching_parser.rb#6 + def initialize(options = T.unsafe(nil)); end + + # source://jmespath//lib/jmespath/caching_parser.rb#12 + def parse(expression); end + + private + + # source://jmespath//lib/jmespath/caching_parser.rb#22 + def cache_expression(expression); end +end + +# source://jmespath//lib/jmespath/errors.rb#4 +module JMESPath::Errors; end + +# source://jmespath//lib/jmespath/errors.rb#5 +class JMESPath::Errors::Error < ::StandardError; end + +# source://jmespath//lib/jmespath/errors.rb#15 +class JMESPath::Errors::InvalidArityError < ::JMESPath::Errors::Error; end + +# source://jmespath//lib/jmespath/errors.rb#11 +class JMESPath::Errors::InvalidTypeError < ::JMESPath::Errors::Error; end + +# source://jmespath//lib/jmespath/errors.rb#13 +class JMESPath::Errors::InvalidValueError < ::JMESPath::Errors::Error; end + +# source://jmespath//lib/jmespath/errors.rb#7 +class JMESPath::Errors::RuntimeError < ::JMESPath::Errors::Error; end + +# source://jmespath//lib/jmespath/errors.rb#9 +class JMESPath::Errors::SyntaxError < ::JMESPath::Errors::Error; end + +# source://jmespath//lib/jmespath/errors.rb#17 +class JMESPath::Errors::UnknownFunctionError < ::JMESPath::Errors::Error; end + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#7 +class JMESPath::Lexer + # @api private + # @param expression [String] + # @return [Array] + # + # source://jmespath//lib/jmespath/lexer.rb#163 + def tokenize(expression); end + + private + + # @api private + # + # source://jmespath//lib/jmespath/lexer.rb#277 + def inside(chars, delim, type); end + + # @api private + # + # source://jmespath//lib/jmespath/lexer.rb#268 + def match_or(chars, current, expected, type, or_type); end + + # @api private + # + # source://jmespath//lib/jmespath/lexer.rb#346 + def parse_json(token, quoted = T.unsafe(nil)); end + + class << self + # Certain versions of Ruby and of the pure_json gem not support loading + # scalar JSON values, such a numbers, booleans, strings, etc. These + # simple values must be first wrapped inside a JSON object before calling + # `JSON.parse`. + # + # # works in most JSON versions, raises in some versions + # JSON.parse("true") + # JSON.parse("123") + # JSON.parse("\"abc\"") + # + # This is an known issue for: + # + # * Ruby 1.9.3 bundled v1.5.5 of json; Ruby 1.9.3 defaults to bundled + # version despite newer versions being available. + # + # * json_pure v2.0.0+ + # + # It is not possible to change the version of JSON loaded in the + # user's application. Adding an explicit dependency on json gem + # causes issues in environments that cannot compile the gem. We previously + # had a direct dependency on `json_pure`, but this broke with the v2 update. + # + # This method allows us to detect how the `JSON.parse` behaves so we know + # if we have to wrap scalar JSON values to parse them or not. + # + # @api private + # @return [Boolean] + # + # source://jmespath//lib/jmespath/lexer.rb#322 + def requires_wrapping?; end + end +end + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#364 +class JMESPath::Lexer::CharacterStream + # @api private + # @return [CharacterStream] a new instance of CharacterStream + # + # source://jmespath//lib/jmespath/lexer.rb#365 + def initialize(chars); end + + # @api private + # + # source://jmespath//lib/jmespath/lexer.rb#370 + def current; end + + # @api private + # + # source://jmespath//lib/jmespath/lexer.rb#374 + def next; end + + # @api private + # + # source://jmespath//lib/jmespath/lexer.rb#379 + def position; end +end + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#146 +JMESPath::Lexer::NUMBERS = T.let(T.unsafe(nil), Set) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#148 +JMESPath::Lexer::SIMPLE_TOKENS = T.let(T.unsafe(nil), Hash) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#47 +JMESPath::Lexer::STATE_AND = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#45 +JMESPath::Lexer::STATE_EQ = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#44 +JMESPath::Lexer::STATE_GT = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#34 +JMESPath::Lexer::STATE_IDENTIFIER = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#40 +JMESPath::Lexer::STATE_JSON_LITERAL = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#41 +JMESPath::Lexer::STATE_LBRACKET = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#43 +JMESPath::Lexer::STATE_LT = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#46 +JMESPath::Lexer::STATE_NOT = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#35 +JMESPath::Lexer::STATE_NUMBER = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#42 +JMESPath::Lexer::STATE_PIPE = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#39 +JMESPath::Lexer::STATE_QUOTED_STRING = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#36 +JMESPath::Lexer::STATE_SINGLE_CHAR = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#38 +JMESPath::Lexer::STATE_STRING_LITERAL = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#37 +JMESPath::Lexer::STATE_WHITESPACE = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#49 +JMESPath::Lexer::TRANSLATION_TABLE = T.let(T.unsafe(nil), Hash) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#27 +JMESPath::Lexer::T_AND = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#11 +JMESPath::Lexer::T_COLON = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#10 +JMESPath::Lexer::T_COMMA = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#32 +JMESPath::Lexer::T_COMPARATOR = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#12 +JMESPath::Lexer::T_CURRENT = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#8 +JMESPath::Lexer::T_DOT = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#31 +JMESPath::Lexer::T_EOF = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#13 +JMESPath::Lexer::T_EXPREF = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#29 +JMESPath::Lexer::T_FILTER = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#20 +JMESPath::Lexer::T_FLATTEN = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#21 +JMESPath::Lexer::T_IDENTIFIER = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#16 +JMESPath::Lexer::T_LBRACE = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#18 +JMESPath::Lexer::T_LBRACKET = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#30 +JMESPath::Lexer::T_LITERAL = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#14 +JMESPath::Lexer::T_LPAREN = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#28 +JMESPath::Lexer::T_NOT = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#22 +JMESPath::Lexer::T_NUMBER = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#26 +JMESPath::Lexer::T_OR = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#25 +JMESPath::Lexer::T_PIPE = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#23 +JMESPath::Lexer::T_QUOTED_IDENTIFIER = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#17 +JMESPath::Lexer::T_RBRACE = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#19 +JMESPath::Lexer::T_RBRACKET = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#15 +JMESPath::Lexer::T_RPAREN = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#9 +JMESPath::Lexer::T_STAR = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#24 +JMESPath::Lexer::T_UNKNOWN = T.let(T.unsafe(nil), Symbol) + +# @api private +# +# source://jmespath//lib/jmespath/lexer.rb#140 +JMESPath::Lexer::VALID_IDENTIFIERS = T.let(T.unsafe(nil), Set) + +# @api private +# +# source://jmespath//lib/jmespath/nodes.rb#4 +module JMESPath::Nodes; end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#87 +class JMESPath::Nodes::AbsFunction < ::JMESPath::Nodes::Function + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#90 + def call(args); end +end + +# source://jmespath//lib/jmespath/nodes/and.rb#4 +class JMESPath::Nodes::And < ::JMESPath::Nodes::Node + # @return [And] a new instance of And + # + # source://jmespath//lib/jmespath/nodes/and.rb#5 + def initialize(left, right); end + + # source://jmespath//lib/jmespath/nodes/and.rb#19 + def optimize; end + + # source://jmespath//lib/jmespath/nodes/and.rb#10 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/projection.rb#45 +class JMESPath::Nodes::ArrayProjection < ::JMESPath::Nodes::Projection + # @api private + # + # source://jmespath//lib/jmespath/nodes/projection.rb#46 + def extract_targets(target); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/projection.rb#50 + def fast_instance; end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#104 +class JMESPath::Nodes::AvgFunction < ::JMESPath::Nodes::Function + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#107 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#129 +class JMESPath::Nodes::CeilFunction < ::JMESPath::Nodes::Function + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#132 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/subexpression.rb#38 +class JMESPath::Nodes::Chain + # @api private + # @return [Chain] a new instance of Chain + # + # source://jmespath//lib/jmespath/nodes/subexpression.rb#39 + def initialize(children); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/subexpression.rb#49 + def optimize; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/subexpression.rb#43 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/field.rb#41 +class JMESPath::Nodes::ChainedField < ::JMESPath::Nodes::Field + # @api private + # @return [ChainedField] a new instance of ChainedField + # + # source://jmespath//lib/jmespath/nodes/field.rb#42 + def initialize(keys); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/field.rb#66 + def chain(other); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/field.rb#49 + def visit(obj); end + + private + + # @api private + # + # source://jmespath//lib/jmespath/nodes/field.rb#72 + def keys; end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/comparator.rb#5 +class JMESPath::Nodes::Comparator < ::JMESPath::Nodes::Node + # @api private + # @return [Comparator] a new instance of Comparator + # + # source://jmespath//lib/jmespath/nodes/comparator.rb#10 + def initialize(left, right); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/comparator.rb#8 + def left; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/comparator.rb#33 + def optimize; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/comparator.rb#8 + def right; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/comparator.rb#29 + def visit(value); end + + private + + # @api private + # + # source://jmespath//lib/jmespath/nodes/comparator.rb#39 + def check(_left_value, _right_value); end + + # @api private + # @return [Boolean] + # + # source://jmespath//lib/jmespath/nodes/comparator.rb#43 + def comparable?(left_value, right_value); end + + class << self + # @api private + # + # source://jmespath//lib/jmespath/nodes/comparator.rb#15 + def create(relation, left, right); end + end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/comparator.rb#6 +JMESPath::Nodes::Comparator::COMPARABLE_TYPES = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://jmespath//lib/jmespath/nodes/condition.rb#29 +class JMESPath::Nodes::ComparatorCondition < ::JMESPath::Nodes::Node + # @api private + # @return [ComparatorCondition] a new instance of ComparatorCondition + # + # source://jmespath//lib/jmespath/nodes/condition.rb#33 + def initialize(left, right, child); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/condition.rb#39 + def visit(_value); end + + private + + # @api private + # @return [Boolean] + # + # source://jmespath//lib/jmespath/nodes/condition.rb#45 + def comparable?(left_value, right_value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/condition.rb#31 +JMESPath::Nodes::ComparatorCondition::COMPARABLE_TYPES = T.let(T.unsafe(nil), Array) + +# @api private +# +# source://jmespath//lib/jmespath/nodes/condition.rb#30 +JMESPath::Nodes::ComparatorCondition::COMPARATOR_TO_CONDITION = T.let(T.unsafe(nil), Hash) + +# @api private +# +# source://jmespath//lib/jmespath/nodes/comparator.rb#50 +module JMESPath::Nodes::Comparators; end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/comparator.rb#51 +class JMESPath::Nodes::Comparators::Eq < ::JMESPath::Nodes::Comparator + # @api private + # + # source://jmespath//lib/jmespath/nodes/comparator.rb#52 + def check(left_value, right_value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/comparator.rb#63 +class JMESPath::Nodes::Comparators::Gt < ::JMESPath::Nodes::Comparator + # @api private + # + # source://jmespath//lib/jmespath/nodes/comparator.rb#64 + def check(left_value, right_value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/comparator.rb#69 +class JMESPath::Nodes::Comparators::Gte < ::JMESPath::Nodes::Comparator + # @api private + # + # source://jmespath//lib/jmespath/nodes/comparator.rb#70 + def check(left_value, right_value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/comparator.rb#75 +class JMESPath::Nodes::Comparators::Lt < ::JMESPath::Nodes::Comparator + # @api private + # + # source://jmespath//lib/jmespath/nodes/comparator.rb#76 + def check(left_value, right_value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/comparator.rb#81 +class JMESPath::Nodes::Comparators::Lte < ::JMESPath::Nodes::Comparator + # @api private + # + # source://jmespath//lib/jmespath/nodes/comparator.rb#82 + def check(left_value, right_value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/comparator.rb#57 +class JMESPath::Nodes::Comparators::Neq < ::JMESPath::Nodes::Comparator + # @api private + # + # source://jmespath//lib/jmespath/nodes/comparator.rb#58 + def check(left_value, right_value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#503 +module JMESPath::Nodes::CompareBy + include ::JMESPath::Nodes::TypeChecker + + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#506 + def compare_by(mode, *args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/condition.rb#5 +class JMESPath::Nodes::Condition < ::JMESPath::Nodes::Node + # @api private + # @return [Condition] a new instance of Condition + # + # source://jmespath//lib/jmespath/nodes/condition.rb#6 + def initialize(test, child); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/condition.rb#19 + def optimize; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/condition.rb#11 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#146 +class JMESPath::Nodes::ContainsFunction < ::JMESPath::Nodes::Function + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#149 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/current.rb#5 +class JMESPath::Nodes::Current < ::JMESPath::Nodes::Node + # @api private + # + # source://jmespath//lib/jmespath/nodes/current.rb#6 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#558 +class JMESPath::Nodes::EndsWithFunction < ::JMESPath::Nodes::Function + include ::JMESPath::Nodes::TypeChecker + + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#563 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/condition.rb#52 +class JMESPath::Nodes::EqCondition < ::JMESPath::Nodes::ComparatorCondition + # @api private + # + # source://jmespath//lib/jmespath/nodes/condition.rb#59 + def optimize; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/condition.rb#55 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/expression.rb#5 +class JMESPath::Nodes::Expression < ::JMESPath::Nodes::Node + # @api private + # @return [Expression] a new instance of Expression + # + # source://jmespath//lib/jmespath/nodes/expression.rb#8 + def initialize(expression); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/expression.rb#16 + def eval(value); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/expression.rb#6 + def expression; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/expression.rb#20 + def optimize; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/expression.rb#12 + def visit(_value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/projection.rb#55 +class JMESPath::Nodes::FastArrayProjection < ::JMESPath::Nodes::ArrayProjection + include ::JMESPath::Nodes::FastProjector +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/projection.rb#73 +class JMESPath::Nodes::FastObjectProjection < ::JMESPath::Nodes::ObjectProjection + include ::JMESPath::Nodes::FastProjector +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/projection.rb#37 +module JMESPath::Nodes::FastProjector + # @api private + # + # source://jmespath//lib/jmespath/nodes/projection.rb#38 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/field.rb#5 +class JMESPath::Nodes::Field < ::JMESPath::Nodes::Node + # @api private + # @return [Field] a new instance of Field + # + # source://jmespath//lib/jmespath/nodes/field.rb#6 + def initialize(key); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/field.rb#30 + def chain(other); end + + # @api private + # @return [Boolean] + # + # source://jmespath//lib/jmespath/nodes/field.rb#26 + def chains_with?(other); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/field.rb#11 + def visit(value); end + + protected + + # @api private + # + # source://jmespath//lib/jmespath/nodes/field.rb#36 + def keys; end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/flatten.rb#5 +class JMESPath::Nodes::Flatten < ::JMESPath::Nodes::Node + # @api private + # @return [Flatten] a new instance of Flatten + # + # source://jmespath//lib/jmespath/nodes/flatten.rb#6 + def initialize(child); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/flatten.rb#23 + def optimize; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/flatten.rb#10 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#166 +class JMESPath::Nodes::FloorFunction < ::JMESPath::Nodes::Function + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#169 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#5 +class JMESPath::Nodes::Function < ::JMESPath::Nodes::Node + # @api private + # @return [Function] a new instance of Function + # + # source://jmespath//lib/jmespath/nodes/function.rb#8 + def initialize(children, options = T.unsafe(nil)); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#26 + def optimize; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#22 + def visit(value); end + + private + + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#44 + def call(_args); end + + # @api private + # @raise [error_type] + # + # source://jmespath//lib/jmespath/nodes/function.rb#40 + def maybe_raise(error_type, message); end + + class << self + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#14 + def create(name, children, options = T.unsafe(nil)); end + end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#6 +JMESPath::Nodes::Function::FUNCTIONS = T.let(T.unsafe(nil), Hash) + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#30 +class JMESPath::Nodes::Function::FunctionName + # @api private + # @return [FunctionName] a new instance of FunctionName + # + # source://jmespath//lib/jmespath/nodes/function.rb#33 + def initialize(name); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#31 + def name; end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/condition.rb#106 +class JMESPath::Nodes::GtCondition < ::JMESPath::Nodes::ComparatorCondition + # @api private + # + # source://jmespath//lib/jmespath/nodes/condition.rb#109 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/condition.rb#116 +class JMESPath::Nodes::GteCondition < ::JMESPath::Nodes::ComparatorCondition + # @api private + # + # source://jmespath//lib/jmespath/nodes/condition.rb#119 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/index.rb#5 +JMESPath::Nodes::Index = JMESPath::Nodes::Field + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#351 +class JMESPath::Nodes::JoinFunction < ::JMESPath::Nodes::Function + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#354 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#311 +class JMESPath::Nodes::KeysFunction < ::JMESPath::Nodes::Function + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#314 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#183 +class JMESPath::Nodes::LengthFunction < ::JMESPath::Nodes::Function + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#186 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/literal.rb#5 +class JMESPath::Nodes::Literal < ::JMESPath::Nodes::Node + # @api private + # @return [Literal] a new instance of Literal + # + # source://jmespath//lib/jmespath/nodes/literal.rb#8 + def initialize(value); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/literal.rb#6 + def value; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/literal.rb#12 + def visit(_value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/condition.rb#68 +class JMESPath::Nodes::LiteralRightEqCondition < ::JMESPath::Nodes::EqCondition + # @api private + # @return [LiteralRightEqCondition] a new instance of LiteralRightEqCondition + # + # source://jmespath//lib/jmespath/nodes/condition.rb#69 + def initialize(left, right, child); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/condition.rb#74 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/condition.rb#95 +class JMESPath::Nodes::LiteralRightNeqCondition < ::JMESPath::Nodes::NeqCondition + # @api private + # @return [LiteralRightNeqCondition] a new instance of LiteralRightNeqCondition + # + # source://jmespath//lib/jmespath/nodes/condition.rb#96 + def initialize(left, right, child); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/condition.rb#101 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/condition.rb#126 +class JMESPath::Nodes::LtCondition < ::JMESPath::Nodes::ComparatorCondition + # @api private + # + # source://jmespath//lib/jmespath/nodes/condition.rb#129 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/condition.rb#136 +class JMESPath::Nodes::LteCondition < ::JMESPath::Nodes::ComparatorCondition + # @api private + # + # source://jmespath//lib/jmespath/nodes/condition.rb#139 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#204 +class JMESPath::Nodes::Map < ::JMESPath::Nodes::Function + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#207 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#538 +class JMESPath::Nodes::MaxByFunction < ::JMESPath::Nodes::Function + include ::JMESPath::Nodes::TypeChecker + include ::JMESPath::Nodes::CompareBy + + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#543 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#225 +class JMESPath::Nodes::MaxFunction < ::JMESPath::Nodes::Function + include ::JMESPath::Nodes::TypeChecker + + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#230 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#610 +class JMESPath::Nodes::MergeFunction < ::JMESPath::Nodes::Function + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#613 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#548 +class JMESPath::Nodes::MinByFunction < ::JMESPath::Nodes::Function + include ::JMESPath::Nodes::TypeChecker + include ::JMESPath::Nodes::CompareBy + + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#553 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#261 +class JMESPath::Nodes::MinFunction < ::JMESPath::Nodes::Function + include ::JMESPath::Nodes::TypeChecker + + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#266 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/multi_select_hash.rb#5 +class JMESPath::Nodes::MultiSelectHash < ::JMESPath::Nodes::Node + # @api private + # @return [MultiSelectHash] a new instance of MultiSelectHash + # + # source://jmespath//lib/jmespath/nodes/multi_select_hash.rb#6 + def initialize(kv_pairs); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/multi_select_hash.rb#20 + def optimize; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/multi_select_hash.rb#10 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/multi_select_hash.rb#24 +class JMESPath::Nodes::MultiSelectHash::KeyValuePair + # @api private + # @return [KeyValuePair] a new instance of KeyValuePair + # + # source://jmespath//lib/jmespath/nodes/multi_select_hash.rb#27 + def initialize(key, value); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/multi_select_hash.rb#25 + def key; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/multi_select_hash.rb#32 + def optimize; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/multi_select_hash.rb#25 + def value; end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/multi_select_list.rb#5 +class JMESPath::Nodes::MultiSelectList < ::JMESPath::Nodes::Node + # @api private + # @return [MultiSelectList] a new instance of MultiSelectList + # + # source://jmespath//lib/jmespath/nodes/multi_select_list.rb#6 + def initialize(children); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/multi_select_list.rb#18 + def optimize; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/multi_select_list.rb#10 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/condition.rb#79 +class JMESPath::Nodes::NeqCondition < ::JMESPath::Nodes::ComparatorCondition + # @api private + # + # source://jmespath//lib/jmespath/nodes/condition.rb#86 + def optimize; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/condition.rb#82 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes.rb#5 +class JMESPath::Nodes::Node + # @api private + # @return [Boolean] + # + # source://jmespath//lib/jmespath/nodes.rb#13 + def chains_with?(_other); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes.rb#9 + def optimize; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes.rb#6 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/not.rb#4 +class JMESPath::Nodes::Not < ::JMESPath::Nodes::Node + # @api private + # @return [Not] a new instance of Not + # + # source://jmespath//lib/jmespath/nodes/not.rb#5 + def initialize(expression); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/not.rb#13 + def optimize; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/not.rb#9 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#419 +class JMESPath::Nodes::NotNullFunction < ::JMESPath::Nodes::Function + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#422 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/projection.rb#59 +class JMESPath::Nodes::ObjectProjection < ::JMESPath::Nodes::Projection + # @api private + # + # source://jmespath//lib/jmespath/nodes/projection.rb#60 + def extract_targets(target); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/projection.rb#68 + def fast_instance; end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/or.rb#5 +class JMESPath::Nodes::Or < ::JMESPath::Nodes::Node + # @api private + # @return [Or] a new instance of Or + # + # source://jmespath//lib/jmespath/nodes/or.rb#6 + def initialize(left, right); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/or.rb#20 + def optimize; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/or.rb#11 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/pipe.rb#5 +JMESPath::Nodes::Pipe = JMESPath::Nodes::Subexpression + +# @api private +# +# source://jmespath//lib/jmespath/nodes/projection.rb#5 +class JMESPath::Nodes::Projection < ::JMESPath::Nodes::Node + # @api private + # @return [Projection] a new instance of Projection + # + # source://jmespath//lib/jmespath/nodes/projection.rb#6 + def initialize(target, projection); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/projection.rb#22 + def optimize; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/projection.rb#11 + def visit(value); end + + private + + # @api private + # + # source://jmespath//lib/jmespath/nodes/projection.rb#32 + def extract_targets(_left_value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#624 +class JMESPath::Nodes::ReverseFunction < ::JMESPath::Nodes::Function + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#627 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/slice.rb#74 +class JMESPath::Nodes::SimpleSlice < ::JMESPath::Nodes::Slice + # @api private + # @return [SimpleSlice] a new instance of SimpleSlice + # + # source://jmespath//lib/jmespath/nodes/slice.rb#75 + def initialize(start, stop); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/slice.rb#79 + def visit(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/slice.rb#5 +class JMESPath::Nodes::Slice < ::JMESPath::Nodes::Node + # @api private + # @raise [Errors::InvalidValueError] + # @return [Slice] a new instance of Slice + # + # source://jmespath//lib/jmespath/nodes/slice.rb#6 + def initialize(start, stop, step); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/slice.rb#34 + def optimize; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/slice.rb#13 + def visit(value); end + + private + + # @api private + # + # source://jmespath//lib/jmespath/nodes/slice.rb#61 + def adjust_endpoint(length, endpoint, step); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/slice.rb#44 + def adjust_slice(length, start, stop, step); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#467 +class JMESPath::Nodes::SortByFunction < ::JMESPath::Nodes::Function + include ::JMESPath::Nodes::TypeChecker + + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#472 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#431 +class JMESPath::Nodes::SortFunction < ::JMESPath::Nodes::Function + include ::JMESPath::Nodes::TypeChecker + + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#436 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#584 +class JMESPath::Nodes::StartsWithFunction < ::JMESPath::Nodes::Function + include ::JMESPath::Nodes::TypeChecker + + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#589 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/subexpression.rb#5 +class JMESPath::Nodes::Subexpression < ::JMESPath::Nodes::Node + # @api private + # @return [Subexpression] a new instance of Subexpression + # + # source://jmespath//lib/jmespath/nodes/subexpression.rb#6 + def initialize(left, right); end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/subexpression.rb#15 + def optimize; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/subexpression.rb#11 + def visit(value); end + + protected + + # @api private + # + # source://jmespath//lib/jmespath/nodes/subexpression.rb#23 + def flatten; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/subexpression.rb#21 + def left; end + + # @api private + # + # source://jmespath//lib/jmespath/nodes/subexpression.rb#21 + def right; end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#401 +class JMESPath::Nodes::SumFunction < ::JMESPath::Nodes::Function + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#404 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#644 +class JMESPath::Nodes::ToArrayFunction < ::JMESPath::Nodes::Function + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#647 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#384 +class JMESPath::Nodes::ToNumberFunction < ::JMESPath::Nodes::Function + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#387 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#371 +class JMESPath::Nodes::ToStringFunction < ::JMESPath::Nodes::Function + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#374 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#49 +module JMESPath::Nodes::TypeChecker + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#50 + def get_type(value); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#68 +JMESPath::Nodes::TypeChecker::ARRAY_TYPE = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#69 +JMESPath::Nodes::TypeChecker::BOOLEAN_TYPE = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#70 +JMESPath::Nodes::TypeChecker::EXPRESSION_TYPE = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#71 +JMESPath::Nodes::TypeChecker::NULL_TYPE = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#72 +JMESPath::Nodes::TypeChecker::NUMBER_TYPE = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#73 +JMESPath::Nodes::TypeChecker::OBJECT_TYPE = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#74 +JMESPath::Nodes::TypeChecker::STRING_TYPE = T.let(T.unsafe(nil), Integer) + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#76 +JMESPath::Nodes::TypeChecker::TYPE_NAMES = T.let(T.unsafe(nil), Hash) + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#297 +class JMESPath::Nodes::TypeFunction < ::JMESPath::Nodes::Function + include ::JMESPath::Nodes::TypeChecker + + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#302 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/nodes/function.rb#330 +class JMESPath::Nodes::ValuesFunction < ::JMESPath::Nodes::Function + # @api private + # + # source://jmespath//lib/jmespath/nodes/function.rb#333 + def call(args); end +end + +# @api private +# +# source://jmespath//lib/jmespath/parser.rb#6 +class JMESPath::Parser + # @api private + # @option options + # @param options [Hash] a customizable set of options + # @return [Parser] a new instance of Parser + # + # source://jmespath//lib/jmespath/parser.rb#30 + def initialize(options = T.unsafe(nil)); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#48 + def method_missing(method_name, *args); end + + # @api private + # @param expression [String] + # + # source://jmespath//lib/jmespath/parser.rb#36 + def parse(expression); end + + private + + # @api private + # @param stream [TokenStream] + # @param rbp [Integer] Right binding power + # + # source://jmespath//lib/jmespath/parser.rb#60 + def expr(stream, rbp = T.unsafe(nil)); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#230 + def led_and(stream, left); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#160 + def led_comparator(stream, left); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#167 + def led_dot(stream, left); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#177 + def led_filter(stream, left); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#190 + def led_flatten(stream, left); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#197 + def led_lbracket(stream, left); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#208 + def led_lparen(stream, left); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#224 + def led_or(stream, left); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#236 + def led_pipe(stream, left); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#68 + def nud_current(stream); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#73 + def nud_expref(stream); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#93 + def nud_filter(stream); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#97 + def nud_flatten(stream); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#101 + def nud_identifier(stream); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#111 + def nud_lbrace(stream); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#123 + def nud_lbracket(stream); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#135 + def nud_literal(stream); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#83 + def nud_lparen(stream); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#78 + def nud_not(stream); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#141 + def nud_quoted_identifier(stream); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#152 + def nud_star(stream); end + + # @api private + # @raise [Errors::SyntaxError] + # + # source://jmespath//lib/jmespath/parser.rb#156 + def nud_unknown(stream); end + + # parse array index expressions, for example [0], [1:2:3], etc. + # + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#243 + def parse_array_index_expression(stream); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#274 + def parse_dot(stream, binding_power); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#283 + def parse_key_value_pair(stream); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#290 + def parse_multi_select_list(stream); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#305 + def parse_projection(stream, binding_power); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#319 + def parse_wildcard_array(stream, left = T.unsafe(nil)); end + + # @api private + # + # source://jmespath//lib/jmespath/parser.rb#327 + def parse_wildcard_object(stream, left = T.unsafe(nil)); end +end + +# @api private +# +# source://jmespath//lib/jmespath/parser.rb#7 +JMESPath::Parser::AFTER_DOT = T.let(T.unsafe(nil), Set) + +# @api private +# +# source://jmespath//lib/jmespath/parser.rb#22 +JMESPath::Parser::COLON_RBRACKET = T.let(T.unsafe(nil), Set) + +# @api private +# +# source://jmespath//lib/jmespath/parser.rb#27 +JMESPath::Parser::CURRENT_NODE = T.let(T.unsafe(nil), JMESPath::Nodes::Current) + +# @api private +# +# source://jmespath//lib/jmespath/parser.rb#16 +JMESPath::Parser::NUM_COLON_RBRACKET = T.let(T.unsafe(nil), Set) + +# @api private +# +# source://jmespath//lib/jmespath/runtime.rb#4 +class JMESPath::Runtime + # Constructs a new runtime object for evaluating JMESPath expressions. + # + # runtime = JMESPath::Runtime.new + # runtime.search(expression, data) + # #=> ... + # + # ## Caching + # + # When constructing a {Runtime}, the default parser caches expressions. + # This significantly speeds up calls to {#search} multiple times + # with the same expression but different data. To disable caching, pass + # `:cache_expressions => false` to the constructor or pass a custom + # `:parser`. + # + # @api private + # @example Re-use a Runtime, caching enabled by default + # + # runtime = JMESPath::Runtime.new + # runtime.parser + # #=> # + # @example Disable caching + # + # runtime = JMESPath::Runtime.new(cache_expressions: false) + # runtime.parser + # #=> # + # @option options + # @option options + # @option options + # @param options [Hash] a customizable set of options + # @return [Runtime] a new instance of Runtime + # + # source://jmespath//lib/jmespath/runtime.rb#45 + def initialize(options = T.unsafe(nil)); end + + # @api private + # @return [Parser, CachingParser] + # + # source://jmespath//lib/jmespath/runtime.rb#50 + def parser; end + + # @api private + # @param expression [String] + # @param data [Hash] + # @return [Mixed, nil] + # + # source://jmespath//lib/jmespath/runtime.rb#55 + def search(expression, data); end + + private + + # @api private + # + # source://jmespath//lib/jmespath/runtime.rb#62 + def default_parser(options); end +end + +# @api private +# +# source://jmespath//lib/jmespath/runtime.rb#6 +JMESPath::Runtime::DEFAULT_PARSER = JMESPath::CachingParser + +# @api private +# +# source://jmespath//lib/jmespath/token.rb#4 +class JMESPath::Token < ::Struct + # @api private + # @param type [Symbol] + # @param value [Mixed] + # @param position [Integer] + # @return [Token] a new instance of Token + # + # source://jmespath//lib/jmespath/token.rb#37 + def initialize(type, value, position); end +end + +# @api private +# +# source://jmespath//lib/jmespath/token.rb#7 +JMESPath::Token::BINDING_POWER = T.let(T.unsafe(nil), Hash) + +# @api private +# +# source://jmespath//lib/jmespath/token.rb#5 +JMESPath::Token::NULL_TOKEN = T.let(T.unsafe(nil), JMESPath::Token) + +# @api private +# +# source://jmespath//lib/jmespath/token_stream.rb#4 +class JMESPath::TokenStream + # @api private + # @param expression [String] + # @param tokens [Array] + # @return [TokenStream] a new instance of TokenStream + # + # source://jmespath//lib/jmespath/token_stream.rb#7 + def initialize(expression, tokens); end + + # @api private + # @return [String] + # + # source://jmespath//lib/jmespath/token_stream.rb#16 + def expression; end + + # @api private + # + # source://jmespath//lib/jmespath/token_stream.rb#35 + def inspect; end + + # @api private + # + # source://jmespath//lib/jmespath/token_stream.rb#30 + def lookahead(count); end + + # @api private + # @option options + # @param options [Hash] a customizable set of options + # + # source://jmespath//lib/jmespath/token_stream.rb#26 + def next(options = T.unsafe(nil)); end + + # @api private + # @return [Integer] + # + # source://jmespath//lib/jmespath/token_stream.rb#22 + def position; end + + # @api private + # @return [Token] + # + # source://jmespath//lib/jmespath/token_stream.rb#19 + def token; end + + private + + # @api private + # + # source://jmespath//lib/jmespath/token_stream.rb#46 + def _next; end + + # @api private + # + # source://jmespath//lib/jmespath/token_stream.rb#51 + def validate_match(token, match); end +end + +# @api private +# +# source://jmespath//lib/jmespath/util.rb#4 +module JMESPath::Util + class << self + # @api private + # + # source://jmespath//lib/jmespath/util.rb#19 + def as_json(value); end + + # Determines if a value is false as defined by JMESPath: + # + # https://github.com/jmespath/jmespath.site/blob/master/docs/proposals/improved-filters.rst#and-expressions-1 + # + # @api private + # @return [Boolean] + # + # source://jmespath//lib/jmespath/util.rb#10 + def falsey?(value); end + end +end + +# source://jmespath//lib/jmespath/version.rb#3 +JMESPath::VERSION = T.let(T.unsafe(nil), String) From 480e44e218a2ea6dba6a2b19f5620d4a751a2de7 Mon Sep 17 00:00:00 2001 From: zjmletang Date: Tue, 8 Oct 2024 17:49:37 +0800 Subject: [PATCH 2/2] Add support for S3-compatible storage in Result Uploader - Implemented support for S3-compatible cloud storage, including but not limited to AWS S3, Alibaba Cloud OSS, and others. For the problem description, please visit #471 Signed-off-by: Zhang JianMing zhangjianming.zjm@alibaba-inc.com --- lib/resultuploaders/s3/s3.json | 5 ++ lib/resultuploaders/s3/s3.rb | 143 +++++++++++++++++++++++++++++++++ lib/templates/index.html.erb | 23 ++++++ 3 files changed, 171 insertions(+) create mode 100644 lib/resultuploaders/s3/s3.json create mode 100644 lib/resultuploaders/s3/s3.rb create mode 100644 lib/templates/index.html.erb diff --git a/lib/resultuploaders/s3/s3.json b/lib/resultuploaders/s3/s3.json new file mode 100644 index 00000000..d2bbff22 --- /dev/null +++ b/lib/resultuploaders/s3/s3.json @@ -0,0 +1,5 @@ +{ + "bucket_name": "auto-hck-result", + "region": "us-east-1", + "endpoint": "s3.amazonaws.com" +} diff --git a/lib/resultuploaders/s3/s3.rb b/lib/resultuploaders/s3/s3.rb new file mode 100644 index 00000000..2b4c47ab --- /dev/null +++ b/lib/resultuploaders/s3/s3.rb @@ -0,0 +1,143 @@ +# frozen_string_literal: true + +module AutoHCK + # S3 class for managing interactions with S3-compatible storage services. + # This class is designed to work with services that are compatible with the S3 API, + # including AWS S3 and Alibaba Cloud OSS. + class S3 + CONFIG_JSON = 'lib/resultuploaders/s3/s3.json' + INDEX_FILE_NAME = 'index.html' + + include Helper + + # Provides read access to the URL for the index.html file. + # + # In the context of S3 compatibility, there is no concept of folders. + # The `url` will point to an index.html file that records the paths of all files. + # This allows `index.html` to be displayed directly in HTML format. + # + # Note: While AWS S3 supports this behavior of rendering HTML files directly, + # not all S3-compatible storage services do. For example, Alibaba Cloud OSS + # has security restrictions on its default domain that may require files to be + # downloaded rather than rendered directly, thus preventing HTML files from being displayed. + attr_reader :url + + def initialize(project) + tag = project.engine_tag + timestamp = project.timestamp + repo = project.config['repository'] + @path = "#{repo}/CI/#{tag}-#{timestamp}" + + @logger = project.logger + + @bucket = new_bucket + + @index_obj = @bucket.object("#{@path}/#{INDEX_FILE_NAME}") + @index_template = ERB.new(File.read('lib/templates/index.html.erb')) + @filenames = [] + end + + def html_url; end + + # The current exception handling only logs errors without any additional recovery or fallback mechanisms. + # Rescue only Aws::Errors::ServiceError and Seahorse::Client::NetworkingError, + # as rescuing StandardError may suppress other programming errors (e.g., NoMethodError). + # This approach focuses on handling networking errors and those reported by the storage service. + # Future enhancements may include more robust error handling strategies and raising a special error class + # instead of just logging when we need to handle errors in callers. + def handle_exceptions(where) + yield + rescue Aws::Errors::ServiceError, Seahorse::Client::NetworkingError => e + @logger.warn("S3 #{where} error: #{e.detailed_message}") + false + end + + # These methods are intentionally left blank to maintain the interface, + # as S3-compatible does not require this function. It prevents external calls + # from causing errors while adhering to the expected API structure. + def ask_token; end + + def connect + true + end + + def create_project_folder + handle_exceptions(__method__) do + generate_index + @url = @index_obj.public_url + @logger.info("S3 project folder created: #{@url}") + true + end + end + + def upload_file(l_path, r_name) + handle_exceptions(__method__) do + r_path = "#{@path}/#{r_name}" + type = 'text/html' if r_name.end_with?('.html') + obj = @bucket.object(r_path) + obj.upload_file(l_path, content_type: type) + @filenames << r_name + generate_index + @logger.info("S3 file uploaded: #{r_path}") + true + end + end + + def update_file_content(content, r_name) + handle_exceptions(__method__) do + r_path = "#{@path}/#{r_name}" + obj = @bucket.object(r_path) + obj.put(body: content) + @logger.info("S3 file content updated: #{r_path}") + true + end + end + + def delete_file(r_name) + handle_exceptions(__method__) do + r_path = "#{@path}/#{r_name}" + obj = @bucket.object(r_path) + obj.delete + @filenames.delete(r_name) + generate_index + @logger.info("S3 file deleted: #{r_path}") + true + end + end + + def close; end + + private + + def new_bucket + access_key_id = ENV.fetch('AUTOHCK_S3_ACCESS_KEY_ID') + secret_access_key = ENV.fetch('AUTOHCK_S3_SECRET_ACCESS_KEY') + + config = Json.read_json(CONFIG_JSON, @logger) + region = config['region'] + bucket_name = config['bucket_name'] + endpoint = config['endpoint'] + + s3_resource = Aws::S3::Resource.new( + access_key_id:, + secret_access_key:, + region:, + endpoint: "https://#{endpoint}" + ) + + s3_resource.bucket(bucket_name) + end + + def generate_index + handle_exceptions(__method__) do + index_data = { + 'path' => @path, + 'filenames' => @filenames, + 'bucket' => @bucket + } + @index_obj.put(body: @index_template.result_with_hash(index_data), content_type: 'text/html') + true + end + end + end +end diff --git a/lib/templates/index.html.erb b/lib/templates/index.html.erb new file mode 100644 index 00000000..68140dc1 --- /dev/null +++ b/lib/templates/index.html.erb @@ -0,0 +1,23 @@ + + + + + + <%= path %> + + + +
+

<%= path %>

+
    + <% filenames.each do |filename| %> + <% url = bucket.object("#{path}/#{filename}").public_url %> +
  • + <%= filename %> +
  • + <% end %> +
+
+ + +