class Aws::Plugins::RequestCompression

@api private

def add_handlers(handlers, _config)

def add_handlers(handlers, _config)
  # priority set to ensure compression happens BEFORE checksum
  handlers.add(CompressionHandler, priority: 16, step: :build)
end

def after_initialize(client)

def after_initialize(client)
  validate_disable_request_compression_input(client.config)
  validate_request_min_compression_size_bytes_input(client.config)
end

def resolve_disable_request_compression(cfg)

def resolve_disable_request_compression(cfg)
  value = ENV['AWS_DISABLE_REQUEST_COMPRESSION'] ||
          Aws.shared_config.disable_request_compression(profile: cfg.profile) ||
          'false'
  Aws::Util.str_2_bool(value)
end

def resolve_request_min_compression_size_bytes(cfg)

def resolve_request_min_compression_size_bytes(cfg)
  value = ENV['AWS_REQUEST_MIN_COMPRESSION_SIZE_BYTES'] ||
          Aws.shared_config.request_min_compression_size_bytes(profile: cfg.profile) ||
          DEFAULT_MIN_COMPRESSION_SIZE.to_s
  Integer(value)
end

def validate_disable_request_compression_input(cfg)

def validate_disable_request_compression_input(cfg)
  unless [true, false].include?(cfg.disable_request_compression)
    raise ArgumentError,
          'Must provide either `true` or `false` for the '\
          '`disable_request_compression` configuration option.'
  end
end

def validate_request_min_compression_size_bytes_input(cfg)

def validate_request_min_compression_size_bytes_input(cfg)
  value = Integer(cfg.request_min_compression_size_bytes)
  unless value.between?(0, MIN_COMPRESSION_SIZE_LIMIT)
    raise ArgumentError,
          'Must provide a non-negative integer value between '\
            '`0` and `10485760` bytes inclusive for the '\
            '`request_min_compression_size_bytes` configuration option.'
  end
end