class Aws::Waiters::Waiter

def before_attempt(&block)

Other tags:
    Yieldparam: attempts - The number of attempts made.
def before_attempt(&block)
  @before_attempt << Proc.new
end

def before_wait(&block)

Other tags:
    Yieldparam: response - The response from
    Yieldparam: attempts - The number of attempts already made.
def before_wait(&block)
  @before_wait << Proc.new
end

def initialize(options = {})

Other tags:
    Api: - private
def initialize(options = {})
  @poller = options[:poller]
  @max_attempts = options[:max_attempts]
  @delay = options[:delay]
  @before_attempt = Array(options[:before_attempt])
  @before_wait = Array(options[:before_wait])
end

def poll(options)

def poll(options)
  n = 0
  loop do
    trigger_before_attempt(n)
    state, resp = @poller.call(options)
    n += 1
    case state
    when :retry
    when :success then return resp
    when :failure then raise Errors::FailureStateError.new(resp)
    when :error   then raise Errors::UnexpectedError.new(resp.error)
    end
    raise Errors::TooManyAttemptsError.new(n) if n == @max_attempts
    trigger_before_wait(n, resp)
    sleep(@delay)
  end
end

def trigger_before_attempt(attempts)

def trigger_before_attempt(attempts)
  @before_attempt.each { |block| block.call(attempts) }
end

def trigger_before_wait(attempts, response)

def trigger_before_wait(attempts, response)
  @before_wait.each { |block| block.call(attempts, response) }
end

def wait(options)

Options Hash: (**options)
  • :params (Hash) --
  • :client (Client) --
def wait(options)
  catch(:success) do
    failure_msg = catch(:failure) do
      return poll(options)
    end
    raise Errors::WaiterFailed.new(failure_msg || 'waiter failed')
  end || true
end