class Aws::Plugins::RetryErrors

@api private

def self.resolve_adaptive_retry_wait_to_fill(cfg)

def self.resolve_adaptive_retry_wait_to_fill(cfg)
  value = ENV['AWS_ADAPTIVE_RETRY_WAIT_TO_FILL'] ||
    Aws.shared_config.adaptive_retry_wait_to_fill(profile: cfg.profile) ||
    'true'
  # Raise if provided value is not true or false
  if value != 'true' && value != 'false'
    raise ArgumentError,
      'Must provide either `true` or `false` for '\
      'adaptive_retry_wait_to_fill profile option or for '\
      'ENV[\'AWS_ADAPTIVE_RETRY_WAIT_TO_FILL\']'
  end
  value == 'true'
end

def self.resolve_correct_clock_skew(cfg)

def self.resolve_correct_clock_skew(cfg)
  value = ENV['AWS_CORRECT_CLOCK_SKEW'] ||
    Aws.shared_config.correct_clock_skew(profile: cfg.profile) ||
    'true'
  # Raise if provided value is not true or false
  if value != 'true' && value != 'false'
    raise ArgumentError,
      'Must provide either `true` or `false` for '\
      'correct_clock_skew profile option or for '\
      'ENV[\'AWS_CORRECT_CLOCK_SKEW\']'
  end
  value == 'true'
end

def self.resolve_max_attempts(cfg)

def self.resolve_max_attempts(cfg)
  value = (ENV['AWS_MAX_ATTEMPTS'] && ENV['AWS_MAX_ATTEMPTS'].to_i) ||
          Aws.shared_config.max_attempts(profile: cfg.profile) ||
          3
  # Raise if provided value is not a positive integer
  if !value.is_a?(Integer) || value <= 0
    raise ArgumentError,
      'Must provide a positive integer for max_attempts profile '\
      'option or for ENV[\'AWS_MAX_ATTEMPTS\']'
  end
  value
end

def self.resolve_retry_mode(cfg)

def self.resolve_retry_mode(cfg)
  value = ENV['AWS_RETRY_MODE'] ||
          Aws.shared_config.retry_mode(profile: cfg.profile) ||
          'legacy'
  # Raise if provided value is not one of the retry modes
  if value != 'legacy' && value != 'standard' && value != 'adaptive'
    raise ArgumentError,
      'Must provide either `legacy`, `standard`, or `adaptive` for '\
      'retry_mode profile option or for ENV[\'AWS_RETRY_MODE\']'
  end
  value
end

def add_handlers(handlers, config)

def add_handlers(handlers, config)
  if config.retry_mode == 'legacy'
    if config.retry_limit > 0
      handlers.add(LegacyHandler, step: :sign, priority: 99)
    end
  else
    handlers.add(Handler, step: :sign, priority: 99)
  end
end