Class: Ably::Models::TokenRequest
- Inherits:
-
Object
- Object
- Ably::Models::TokenRequest
- Includes:
- Ably::Modules::ModelCommon
- Defined in:
- lib/submodules/ably-ruby/lib/ably/models/token_request.rb
Overview
Contains the properties of a request for a token to Ably. Tokens are generated using Auth#requestToken.
Ruby Time objects are supported in place of Ably ms since epoch time fields. However, if a numeric is provided it must always be expressed in milliseconds as the Ably API always uses milliseconds for time fields.
Instance Attribute Summary collapse
-
#attributes ⇒ Hash
readonly
The token request Hash object ruby’fied to use symbolized keys.
-
#capability ⇒ Hash
readonly
Capability of the requested Ably Token.
-
#client_id ⇒ String
readonly
The client ID to associate with the requested Ably Token.
-
#key_name ⇒ String
readonly
The name of the key against which this request is made.
-
#mac ⇒ String
readonly
The Message Authentication Code for this request.
-
#nonce ⇒ String
readonly
A cryptographically secure random string of at least 16 characters, used to ensure the TokenRequest cannot be reused.
-
#timestamp ⇒ Time
readonly
The timestamp of this request as milliseconds since the Unix epoch.
-
#ttl ⇒ Integer
readonly
Requested time to live for the Ably Token in milliseconds.
Attributes included from Ably::Modules::ModelCommon
Instance Method Summary collapse
-
#initialize(attributes = {}) ⇒ TokenRequest
constructor
A new instance of TokenRequest.
-
#persisted ⇒ Object
private
Requests that the token is always persisted.
Methods included from Ably::Modules::ModelCommon
#==, #[], #as_json, included, #to_json, #to_s
Methods included from Ably::Modules::MessagePack
Constructor Details
#initialize(attributes = {}) ⇒ TokenRequest
Returns a new instance of TokenRequest.
36 37 38 39 40 41 42 |
# File 'lib/submodules/ably-ruby/lib/ably/models/token_request.rb', line 36 def initialize(attributes = {}) @hash_object = IdiomaticRubyWrapper(attributes.clone) if self.attributes[:timestamp].kind_of?(Time) self.attributes[:timestamp] = (self.attributes[:timestamp].to_f * 1000).round end self.attributes.freeze end |
Instance Attribute Details
#attributes ⇒ Hash (readonly)
Returns the token request Hash object ruby’fied to use symbolized keys.
162 163 164 |
# File 'lib/submodules/ably-ruby/lib/ably/models/token_request.rb', line 162 def attributes @hash_object end |
#capability ⇒ Hash (readonly)
Capability of the requested Ably Token. If the Ably TokenRequest is successful, the capability of the returned Ably Token will be the intersection of this capability with the capability of the issuing key. The capabilities value is a JSON-encoded representation of the resource paths and associated operations. Read more about capabilities in the capabilities docs.
84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/submodules/ably-ruby/lib/ably/models/token_request.rb', line 84 def capability capability_val = attributes.fetch(:capability) { raise Ably::Exceptions::InvalidTokenRequest, 'Capability is missing' } case capability_val when Hash capability_val when Ably::Models::IdiomaticRubyWrapper capability_val.as_json else JSON.parse(attributes.fetch(:capability)) end end |
#client_id ⇒ String (readonly)
The client ID to associate with the requested Ably Token. When provided, the Ably Token may only be used to perform operations on behalf of that client ID.
106 107 108 |
# File 'lib/submodules/ably-ruby/lib/ably/models/token_request.rb', line 106 def client_id attributes[:client_id] end |
#key_name ⇒ String (readonly)
The name of the key against which this request is made. The key name is public, whereas the key secret is private.
52 53 54 |
# File 'lib/submodules/ably-ruby/lib/ably/models/token_request.rb', line 52 def key_name attributes.fetch(:key_name) { raise Ably::Exceptions::InvalidTokenRequest, 'Key name is missing' } end |
#mac ⇒ String (readonly)
The Message Authentication Code for this request.
146 147 148 |
# File 'lib/submodules/ably-ruby/lib/ably/models/token_request.rb', line 146 def mac attributes.fetch(:mac) { raise Ably::Exceptions::InvalidTokenRequest, 'MAC is missing' } end |
#nonce ⇒ String (readonly)
A cryptographically secure random string of at least 16 characters, used to ensure the TokenRequest cannot be reused.
134 135 136 |
# File 'lib/submodules/ably-ruby/lib/ably/models/token_request.rb', line 134 def nonce attributes.fetch(:nonce) { raise Ably::Exceptions::InvalidTokenRequest, 'Nonce is missing' } end |
#timestamp ⇒ Time (readonly)
The timestamp of this request as milliseconds since the Unix epoch.
120 121 122 123 |
# File 'lib/submodules/ably-ruby/lib/ably/models/token_request.rb', line 120 def = attributes.fetch(:timestamp) { raise Ably::Exceptions::InvalidTokenRequest, 'Timestamp is missing' } as_time_from_epoch(, granularity: :ms) end |
#ttl ⇒ Integer (readonly)
Requested time to live for the Ably Token in milliseconds. If the Ably TokenRequest is successful, the TTL of the returned Ably Token is less than or equal to this value, depending on application settings and the attributes of the issuing key. The default is 60 minutes.
68 69 70 |
# File 'lib/submodules/ably-ruby/lib/ably/models/token_request.rb', line 68 def ttl attributes.fetch(:ttl) / 1000 end |
Instance Method Details
#persisted ⇒ Object
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.
Requests that the token is always persisted
154 155 156 |
# File 'lib/submodules/ably-ruby/lib/ably/models/token_request.rb', line 154 def persisted attributes[:persisted] end |