Method: Mongo::Auth::Aws::Request#initialize

Defined in:
lib/mongo/auth/aws/request.rb

#initialize(access_key_id:, secret_access_key:, session_token: nil, host:, server_nonce:, time: Time.now) ⇒ Request

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Note:

By overriding the time, it is possible to create reproducible requests (in other words, replay a request).

Constructs the request.

Parameters:

  • access_key_id (String)

    The access key id.

  • secret_access_key (String)

    The secret access key.

  • session_token (String) (defaults to: nil)

    The session token for temporary credentials.

  • host (String)

    The value of Host HTTP header to use.

  • server_nonce (String)

    The server nonce binary string.

  • time (Time) (defaults to: Time.now)

    The time of the request.

Since:

  • 2.0.0



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/mongo/auth/aws/request.rb', line 54

def initialize(access_key_id:, secret_access_key:, session_token: nil,
  host:, server_nonce:, time: Time.now
)
  @access_key_id = access_key_id
  @secret_access_key = secret_access_key
  @session_token = session_token
  @host = host
  @server_nonce = server_nonce
  @time = time

  %i(access_key_id secret_access_key host server_nonce).each do |arg|
    value = instance_variable_get("@#{arg}")
    if value.nil? || value.empty?
      raise Error::InvalidServerAuthResponse, "Value for '#{arg}' is required"
    end
  end

  if host && host.length > 255
      raise Error::InvalidServerAuthHost, "Value for 'host' is too long: #{@host}"
  end
end