authress-sdk 1.0.21.0 → 2.0.29.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c5a693c4a396e756163b59236b16585d436bed46ec77e1fcbcc3a7f4d20195b
4
- data.tar.gz: 634f538904c98074473f5abccf9c52fff75b6498f4b8918d85b3df932f923f0d
3
+ metadata.gz: d3c95b25f7727e7f6b90209419704f659a8738dd52ebaad303401b444cf90e7f
4
+ data.tar.gz: 7d401c5035c2228c58963a05c594fe76246353b60cb07c30502c15b02f492d66
5
5
  SHA512:
6
- metadata.gz: 431d45ed1cb1e78de9ca77ded3d5bcfcd757c0205bd59c59cc93faadcedf3b7b9bd5b447371ab7ba8de6f51b4fbeca1c40562ac2fd2f24feadfa56997734736b
7
- data.tar.gz: bbd2498547756f28ddf01361ec2f5baaf2e363d2c5fb411e7c720b44d0111ffdd1fd00f26172c5f38130fa9c5dac3f4c5db2baaf1c21aec022ff24f71c0f4edd
6
+ metadata.gz: 5800a573207985a6a2a27f9b51b7df07986e70c47f33b32d3f5851d12d91a8876e82ca3594e62cf1709d8147e39cd575dda1a93c43ffb47b9684ff6caa2135bf
7
+ data.tar.gz: b923b90bf8dead1f91fdc22f0f0b8f25fb022ba9e29ef01479073e15a44c64bcdf92534d4fa03f002d4b372cfce099b4589525925501fe5a6e0c2793b80c2638
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # authress-sdk.rb
1
+ # Authress SDK for Ruby
2
2
  This is the Authress SDK used to integrate with the authorization as a service provider Authress at https://authress.io.
3
3
 
4
4
  [![Gem Version](https://badge.fury.io/rb/authress-sdk.svg)](http://badge.fury.io/rb/authress-sdk)
@@ -22,9 +22,10 @@ require 'authress-sdk'
22
22
  require 'authress-sdk'
23
23
 
24
24
  # create an instance of the API class during service initialization
25
- # Replace DOMAIN with the Authress domain for your account
25
+ # Replace the base_url with the custom Authress domain for your account
26
+ # https://authress.io/app/#/settings?focus=domain
26
27
  AuthressSdk.configure do |config|
27
- config.base_url = 'https://DOMAIN.api-REGION.authress.io'
28
+ config.base_url = 'https://login.company.com'
28
29
  end
29
30
 
30
31
  # on api route
@@ -65,7 +66,7 @@ require 'authress-sdk'
65
66
  # Create a service client in the Authress management portal and past the access token here
66
67
  # This will generate a token automatically instead of passing the user token to the api
67
68
  AuthressSdk.configure do |config|
68
- config.base_url = 'https://DOMAIN.api-REGION.authress.io'
69
+ config.base_url = 'https://login.company.com'
69
70
  client_access_key = 'eyJrZXlJ....'
70
71
  config.token_provider = AuthressSdk::ServiceClientTokenProvider.new(client_access_key)
71
72
  end
@@ -78,7 +79,7 @@ def getResource(resourceId) {
78
79
  resource_uri = "resources/#{resourceId}" # String | The uri path of a resource to validate, must be URL encoded, uri segments are allowed, the resource must be a full path, and permissions are not inherited by sub-resources.
79
80
  permission = 'READ' # String | Permission to check, '*' and scoped permissions can also be checked here.
80
81
  begin
81
- #Check to see if a user has permissions to a resource.
82
+ # Check to see if a user has permissions to a resource.
82
83
  api_instance = AuthressSdk::UserPermissionsApi.new
83
84
  api_instance.authorize_user(user_id, resource_uri, permission)
84
85
  rescue AuthressSdk::ApiError => e
@@ -103,8 +104,8 @@ You may receive **User does not have sufficient access to grant permissions to r
103
104
  require 'authress-sdk'
104
105
 
105
106
  begin
106
- #Create a new access record.
107
- new_record = AuthressSdk::Body3.new {
107
+ # Create a new access record.
108
+ new_record = AuthressSdk::AccessRecord.new {
108
109
  name: "Access To New Resource #{NewResourceId}",
109
110
  users: [{ userId: requestUserId }],
110
111
  statements: [{
@@ -120,7 +121,4 @@ rescue AuthressSdk::ApiError => e
120
121
  puts "Exception when calling AccessRecordsApi->create_record: #{e}"
121
122
  raise
122
123
  end
123
- ```
124
-
125
- ### Early release
126
- * Add in access_token handling to client
124
+ ```
@@ -127,7 +127,7 @@ module AuthressSdk
127
127
  # Specify user roles for specific resources. (Records have a maximum size of ~100KB) <br><span class=\"badge badge-outline-secondary\">GRANT: Existing Resource Permissions</span>
128
128
  # @param body
129
129
  # @param [Hash] opts the optional parameters
130
- # @return [InlineResponse2008]
130
+ # @return [AccessRecord]
131
131
  def create_record(body, opts = {})
132
132
  data, _status_code, _headers = create_record_with_http_info(body, opts)
133
133
  data
@@ -137,7 +137,7 @@ module AuthressSdk
137
137
  # Specify user roles for specific resources. (Records have a maximum size of ~100KB) &lt;br&gt;&lt;span class&#x3D;\&quot;badge badge-outline-secondary\&quot;&gt;GRANT: Existing Resource Permissions&lt;/span&gt;
138
138
  # @param body
139
139
  # @param [Hash] opts the optional parameters
140
- # @return [Array<(InlineResponse2008, Integer, Hash)>] InlineResponse2008 data, response status code and response headers
140
+ # @return [Array<(AccessRecord, Integer, Hash)>] AccessRecord data, response status code and response headers
141
141
  def create_record_with_http_info(body, opts = {})
142
142
  if @authress_client.config.debugging
143
143
  @authress_client.config.logger.debug 'Calling API: AccessRecordsApi.create_record ...'
@@ -165,7 +165,7 @@ module AuthressSdk
165
165
  # http body (model)
166
166
  post_body = opts[:body] || @authress_client.object_to_http_body(body)
167
167
 
168
- return_type = opts[:return_type] || 'InlineResponse2008'
168
+ return_type = opts[:return_type] || 'AccessRecord'
169
169
 
170
170
  auth_names = opts[:auth_names] || ['oauth2']
171
171
  data, status_code, headers = @authress_client.call_api(:POST, local_var_path,
@@ -293,7 +293,7 @@ module AuthressSdk
293
293
  # Access records contain information assigning permissions to users for resources. <br><span class=\"badge badge-outline-secondary\">READ (or Admin): Authress:AccessRecords/{recordId}</span>
294
294
  # @param record_id The identifier of the access record.
295
295
  # @param [Hash] opts the optional parameters
296
- # @return [InlineResponse2008]
296
+ # @return [AccessRecord]
297
297
  def get_record(record_id, opts = {})
298
298
  data, _status_code, _headers = get_record_with_http_info(record_id, opts)
299
299
  data
@@ -303,7 +303,7 @@ module AuthressSdk
303
303
  # Access records contain information assigning permissions to users for resources. &lt;br&gt;&lt;span class&#x3D;\&quot;badge badge-outline-secondary\&quot;&gt;READ (or Admin): Authress:AccessRecords/{recordId}&lt;/span&gt;
304
304
  # @param record_id The identifier of the access record.
305
305
  # @param [Hash] opts the optional parameters
306
- # @return [Array<(InlineResponse2008, Integer, Hash)>] InlineResponse2008 data, response status code and response headers
306
+ # @return [Array<(AccessRecord, Integer, Hash)>] AccessRecord data, response status code and response headers
307
307
  def get_record_with_http_info(record_id, opts = {})
308
308
  if @authress_client.config.debugging
309
309
  @authress_client.config.logger.debug 'Calling API: AccessRecordsApi.get_record ...'
@@ -329,7 +329,7 @@ module AuthressSdk
329
329
  # http body (model)
330
330
  post_body = opts[:body]
331
331
 
332
- return_type = opts[:return_type] || 'InlineResponse2008'
332
+ return_type = opts[:return_type] || 'AccessRecord'
333
333
 
334
334
  auth_names = opts[:auth_names] || ['oauth2']
335
335
  data, status_code, headers = @authress_client.call_api(:GET, local_var_path,
@@ -471,7 +471,7 @@ module AuthressSdk
471
471
  # @param body
472
472
  # @param record_id The identifier of the access record.
473
473
  # @param [Hash] opts the optional parameters
474
- # @return [InlineResponse2008]
474
+ # @return [AccessRecord]
475
475
  def update_record(body, record_id, opts = {})
476
476
  data, _status_code, _headers = update_record_with_http_info(body, record_id, opts)
477
477
  data
@@ -482,7 +482,7 @@ module AuthressSdk
482
482
  # @param body
483
483
  # @param record_id The identifier of the access record.
484
484
  # @param [Hash] opts the optional parameters
485
- # @return [Array<(InlineResponse2008, Integer, Hash)>] InlineResponse2008 data, response status code and response headers
485
+ # @return [Array<(AccessRecord, Integer, Hash)>] AccessRecord data, response status code and response headers
486
486
  def update_record_with_http_info(body, record_id, opts = {})
487
487
  if @authress_client.config.debugging
488
488
  @authress_client.config.logger.debug 'Calling API: AccessRecordsApi.update_record ...'
@@ -514,7 +514,7 @@ module AuthressSdk
514
514
  # http body (model)
515
515
  post_body = opts[:body] || @authress_client.object_to_http_body(body)
516
516
 
517
- return_type = opts[:return_type] || 'InlineResponse2008'
517
+ return_type = opts[:return_type] || 'AccessRecord'
518
518
 
519
519
  auth_names = opts[:auth_names] || ['oauth2']
520
520
  data, status_code, headers = @authress_client.call_api(:PUT, local_var_path,
@@ -24,6 +24,9 @@ module AuthressSdk
24
24
  # The list of users this record applies to
25
25
  attr_accessor :users
26
26
 
27
+ # The list of groups this record applies to. Users in these groups will be receive access to the resources listed.
28
+ attr_accessor :groups
29
+
27
30
  # The list of admin that can edit this record even if they do not have global record edit permissions.
28
31
  attr_accessor :admins
29
32
 
@@ -63,6 +66,7 @@ module AuthressSdk
63
66
  :'status' => :'status',
64
67
  :'account' => :'account',
65
68
  :'users' => :'users',
69
+ :'groups' => :'groups',
66
70
  :'admins' => :'admins',
67
71
  :'statements' => :'statements',
68
72
  :'links' => :'links'
@@ -78,6 +82,7 @@ module AuthressSdk
78
82
  :'status' => :'Object',
79
83
  :'account' => :'Object',
80
84
  :'users' => :'Object',
85
+ :'groups' => :'Object',
81
86
  :'admins' => :'Object',
82
87
  :'statements' => :'Object',
83
88
  :'links' => :'Object'
@@ -131,6 +136,12 @@ module AuthressSdk
131
136
  end
132
137
  end
133
138
 
139
+ if attributes.key?(:'groups')
140
+ if (value = attributes[:'groups']).is_a?(Array)
141
+ self.groups = value
142
+ end
143
+ end
144
+
134
145
  if attributes.key?(:'admins')
135
146
  if (value = attributes[:'admins']).is_a?(Array)
136
147
  self.admins = value
@@ -209,6 +220,7 @@ module AuthressSdk
209
220
  status == o.status &&
210
221
  account == o.account &&
211
222
  users == o.users &&
223
+ groups == o.groups &&
212
224
  admins == o.admins &&
213
225
  statements == o.statements &&
214
226
  links == o.links
@@ -223,7 +235,7 @@ module AuthressSdk
223
235
  # Calculates hash code according to all attributes.
224
236
  # @return [Integer] Hash code
225
237
  def hash
226
- [record_id, name, description, status, account, users, admins, statements, links].hash
238
+ [record_id, name, description, status, account, users, groups, admins, statements, links].hash
227
239
  end
228
240
 
229
241
  # Builds the object from hash
@@ -12,6 +12,7 @@ module AuthressSdk
12
12
  end
13
13
 
14
14
  def get_token()
15
+ # TODO: This should use the JWT creation strategy and not the client api token one
15
16
  @client_access_key
16
17
  end
17
18
  end
metadata CHANGED
@@ -1,23 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: authress-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.21.0
4
+ version: 2.0.29.0
5
5
  platform: ruby
6
6
  authors:
7
- - Rhosys
8
7
  - Authress
9
- autorequire:
8
+ autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2020-12-20 00:00:00.000000000 Z
11
+ date: 2023-03-24 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: typhoeus
16
15
  requirement: !ruby/object:Gem::Requirement
17
16
  requirements:
18
- - - "~>"
19
- - !ruby/object:Gem::Version
20
- version: '1.0'
21
17
  - - ">="
22
18
  - !ruby/object:Gem::Version
23
19
  version: 1.0.1
@@ -25,9 +21,6 @@ dependencies:
25
21
  prerelease: false
26
22
  version_requirements: !ruby/object:Gem::Requirement
27
23
  requirements:
28
- - - "~>"
29
- - !ruby/object:Gem::Version
30
- version: '1.0'
31
24
  - - ">="
32
25
  - !ruby/object:Gem::Version
33
26
  version: 1.0.1
@@ -55,22 +48,16 @@ dependencies:
55
48
  name: rspec
56
49
  requirement: !ruby/object:Gem::Requirement
57
50
  requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: '3.6'
61
51
  - - ">="
62
52
  - !ruby/object:Gem::Version
63
- version: 3.6.0
53
+ version: '0'
64
54
  type: :development
65
55
  prerelease: false
66
56
  version_requirements: !ruby/object:Gem::Requirement
67
57
  requirements:
68
- - - "~>"
69
- - !ruby/object:Gem::Version
70
- version: '3.6'
71
58
  - - ">="
72
59
  - !ruby/object:Gem::Version
73
- version: 3.6.0
60
+ version: '0'
74
61
  description: " This is the Authress SDK used to integrate with the authorization
75
62
  as a service provider Authress at https://authress.io. The full documentation is
76
63
  available in the Github repo Readme: https://github.com/Authress/authress-sdk.rb.\n"
@@ -95,22 +82,9 @@ files:
95
82
  - lib/authress_sdk/constant_token_provider.rb
96
83
  - lib/authress_sdk/models/access_record.rb
97
84
  - lib/authress_sdk/models/access_record_collection.rb
98
- - lib/authress_sdk/models/access_record_collection_records.rb
99
85
  - lib/authress_sdk/models/account.rb
100
86
  - lib/authress_sdk/models/account_collection.rb
101
87
  - lib/authress_sdk/models/account_collection_accounts.rb
102
- - lib/authress_sdk/models/body.rb
103
- - lib/authress_sdk/models/body_1.rb
104
- - lib/authress_sdk/models/body_10.rb
105
- - lib/authress_sdk/models/body_11.rb
106
- - lib/authress_sdk/models/body_2.rb
107
- - lib/authress_sdk/models/body_3.rb
108
- - lib/authress_sdk/models/body_4.rb
109
- - lib/authress_sdk/models/body_5.rb
110
- - lib/authress_sdk/models/body_6.rb
111
- - lib/authress_sdk/models/body_7.rb
112
- - lib/authress_sdk/models/body_8.rb
113
- - lib/authress_sdk/models/body_9.rb
114
88
  - lib/authress_sdk/models/claim_request.rb
115
89
  - lib/authress_sdk/models/claim_response.rb
116
90
  - lib/authress_sdk/models/client.rb
@@ -135,7 +109,6 @@ files:
135
109
  - lib/authress_sdk/models/inline_response_200_5.rb
136
110
  - lib/authress_sdk/models/inline_response_200_6.rb
137
111
  - lib/authress_sdk/models/inline_response_200_7.rb
138
- - lib/authress_sdk/models/inline_response_200_8.rb
139
112
  - lib/authress_sdk/models/inline_response_200_9.rb
140
113
  - lib/authress_sdk/models/invite.rb
141
114
  - lib/authress_sdk/models/link.rb
@@ -178,7 +151,7 @@ metadata:
178
151
  homepage_uri: https://github.com/Authress/authress-sdk.rb
179
152
  source_code_uri: https://github.com/Authress/authress-sdk.rb
180
153
  wiki_uri: https://github.com/Authress/authress-sdk.rb/wiki
181
- post_install_message:
154
+ post_install_message:
182
155
  rdoc_options: []
183
156
  require_paths:
184
157
  - lib
@@ -186,15 +159,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
186
159
  requirements:
187
160
  - - ">="
188
161
  - !ruby/object:Gem::Version
189
- version: '2.0'
162
+ version: '3.0'
190
163
  required_rubygems_version: !ruby/object:Gem::Requirement
191
164
  requirements:
192
165
  - - ">="
193
166
  - !ruby/object:Gem::Version
194
167
  version: '0'
195
168
  requirements: []
196
- rubygems_version: 3.1.4
197
- signing_key:
169
+ rubygems_version: 3.4.6
170
+ signing_key:
198
171
  specification_version: 4
199
172
  summary: The Authress SDK for Ruby provides authorization as a service with fully
200
173
  compatible REST apis.
@@ -1,344 +0,0 @@
1
- =begin
2
-
3
- =end
4
-
5
- require 'date'
6
-
7
- module AuthressSdk
8
- # The access record which links users to roles.
9
- class AccessRecordCollectionRecords
10
- # Unique identifier for the record, can be specified on record creation.
11
- attr_accessor :record_id
12
-
13
- # A helpful name for this record
14
- attr_accessor :name
15
-
16
- # More details about this record
17
- attr_accessor :description
18
-
19
- # Current status of the access record.
20
- attr_accessor :status
21
-
22
- attr_accessor :account
23
-
24
- # The list of users this record applies to
25
- attr_accessor :users
26
-
27
- # The list of admin that can edit this record even if they do not have global record edit permissions.
28
- attr_accessor :admins
29
-
30
- # A list of statements which match roles to resources. Users in this record have all statements apply to them
31
- attr_accessor :statements
32
-
33
- attr_accessor :links
34
-
35
- class EnumAttributeValidator
36
- attr_reader :datatype
37
- attr_reader :allowable_values
38
-
39
- def initialize(datatype, allowable_values)
40
- @allowable_values = allowable_values.map do |value|
41
- case datatype.to_s
42
- when /Integer/i
43
- value.to_i
44
- when /Float/i
45
- value.to_f
46
- else
47
- value
48
- end
49
- end
50
- end
51
-
52
- def valid?(value)
53
- !value || allowable_values.include?(value)
54
- end
55
- end
56
-
57
- # Attribute mapping from ruby-style variable name to JSON key.
58
- def self.attribute_map
59
- {
60
- :'record_id' => :'recordId',
61
- :'name' => :'name',
62
- :'description' => :'description',
63
- :'status' => :'status',
64
- :'account' => :'account',
65
- :'users' => :'users',
66
- :'admins' => :'admins',
67
- :'statements' => :'statements',
68
- :'links' => :'links'
69
- }
70
- end
71
-
72
- # Attribute type mapping.
73
- def self.openapi_types
74
- {
75
- :'record_id' => :'Object',
76
- :'name' => :'Object',
77
- :'description' => :'Object',
78
- :'status' => :'Object',
79
- :'account' => :'Object',
80
- :'users' => :'Object',
81
- :'admins' => :'Object',
82
- :'statements' => :'Object',
83
- :'links' => :'Object'
84
- }
85
- end
86
-
87
- # List of attributes with nullable: true
88
- def self.openapi_nullable
89
- Set.new([
90
- ])
91
- end
92
-
93
- # Initializes the object
94
- # @param [Hash] attributes Model attributes in the form of hash
95
- def initialize(attributes = {})
96
- if (!attributes.is_a?(Hash))
97
- fail ArgumentError, "The input argument (attributes) must be a hash in `AuthressSdk::AccessRecordCollectionRecords` initialize method"
98
- end
99
-
100
- # check to see if the attribute exists and convert string to symbol for hash key
101
- attributes = attributes.each_with_object({}) { |(k, v), h|
102
- if (!self.class.attribute_map.key?(k.to_sym))
103
- fail ArgumentError, "`#{k}` is not a valid attribute in `AuthressSdk::AccessRecordCollectionRecords`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
104
- end
105
- h[k.to_sym] = v
106
- }
107
-
108
- if attributes.key?(:'record_id')
109
- self.record_id = attributes[:'record_id']
110
- end
111
-
112
- if attributes.key?(:'name')
113
- self.name = attributes[:'name']
114
- end
115
-
116
- if attributes.key?(:'description')
117
- self.description = attributes[:'description']
118
- end
119
-
120
- if attributes.key?(:'status')
121
- self.status = attributes[:'status']
122
- end
123
-
124
- if attributes.key?(:'account')
125
- self.account = attributes[:'account']
126
- end
127
-
128
- if attributes.key?(:'users')
129
- if (value = attributes[:'users']).is_a?(Array)
130
- self.users = value
131
- end
132
- end
133
-
134
- if attributes.key?(:'admins')
135
- if (value = attributes[:'admins']).is_a?(Array)
136
- self.admins = value
137
- end
138
- end
139
-
140
- if attributes.key?(:'statements')
141
- if (value = attributes[:'statements']).is_a?(Array)
142
- self.statements = value
143
- end
144
- end
145
-
146
- if attributes.key?(:'links')
147
- self.links = attributes[:'links']
148
- end
149
- end
150
-
151
- # Show invalid properties with the reasons. Usually used together with valid?
152
- # @return Array for valid properties with the reasons
153
- def list_invalid_properties
154
- invalid_properties = Array.new
155
- if @name.nil?
156
- invalid_properties.push('invalid value for "name", name cannot be nil.')
157
- end
158
-
159
- if @account.nil?
160
- invalid_properties.push('invalid value for "account", account cannot be nil.')
161
- end
162
-
163
- if @users.nil?
164
- invalid_properties.push('invalid value for "users", users cannot be nil.')
165
- end
166
-
167
- if @statements.nil?
168
- invalid_properties.push('invalid value for "statements", statements cannot be nil.')
169
- end
170
-
171
- if @links.nil?
172
- invalid_properties.push('invalid value for "links", links cannot be nil.')
173
- end
174
-
175
- invalid_properties
176
- end
177
-
178
- # Check to see if the all the properties in the model are valid
179
- # @return true if the model is valid
180
- def valid?
181
- return false if @name.nil?
182
- status_validator = EnumAttributeValidator.new('Object', ['ACTIVE', 'DELETED'])
183
- return false unless status_validator.valid?(@status)
184
- return false if @account.nil?
185
- return false if @users.nil?
186
- return false if @statements.nil?
187
- return false if @links.nil?
188
- true
189
- end
190
-
191
- # Custom attribute writer method checking allowed values (enum).
192
- # @param [Object] status Object to be assigned
193
- def status=(status)
194
- validator = EnumAttributeValidator.new('Object', ['ACTIVE', 'DELETED'])
195
- unless validator.valid?(status)
196
- fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
197
- end
198
- @status = status
199
- end
200
-
201
- # Checks equality by comparing each attribute.
202
- # @param [Object] Object to be compared
203
- def ==(o)
204
- return true if self.equal?(o)
205
- self.class == o.class &&
206
- record_id == o.record_id &&
207
- name == o.name &&
208
- description == o.description &&
209
- status == o.status &&
210
- account == o.account &&
211
- users == o.users &&
212
- admins == o.admins &&
213
- statements == o.statements &&
214
- links == o.links
215
- end
216
-
217
- # @see the `==` method
218
- # @param [Object] Object to be compared
219
- def eql?(o)
220
- self == o
221
- end
222
-
223
- # Calculates hash code according to all attributes.
224
- # @return [Integer] Hash code
225
- def hash
226
- [record_id, name, description, status, account, users, admins, statements, links].hash
227
- end
228
-
229
- # Builds the object from hash
230
- # @param [Hash] attributes Model attributes in the form of hash
231
- # @return [Object] Returns the model itself
232
- def self.build_from_hash(attributes)
233
- new.build_from_hash(attributes)
234
- end
235
-
236
- # Builds the object from hash
237
- # @param [Hash] attributes Model attributes in the form of hash
238
- # @return [Object] Returns the model itself
239
- def build_from_hash(attributes)
240
- return nil unless attributes.is_a?(Hash)
241
- self.class.openapi_types.each_pair do |key, type|
242
- if type =~ /\AArray<(.*)>/i
243
- # check to ensure the input is an array given that the attribute
244
- # is documented as an array but the input is not
245
- if attributes[self.class.attribute_map[key]].is_a?(Array)
246
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
247
- end
248
- elsif !attributes[self.class.attribute_map[key]].nil?
249
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
250
- elsif attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
251
- self.send("#{key}=", nil)
252
- end
253
- end
254
-
255
- self
256
- end
257
-
258
- # Deserializes the data based on type
259
- # @param string type Data type
260
- # @param string value Value to be deserialized
261
- # @return [Object] Deserialized data
262
- def _deserialize(type, value)
263
- case type.to_sym
264
- when :DateTime
265
- DateTime.parse(value)
266
- when :Date
267
- Date.parse(value)
268
- when :String
269
- value.to_s
270
- when :Integer
271
- value.to_i
272
- when :Float
273
- value.to_f
274
- when :Boolean
275
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
276
- true
277
- else
278
- false
279
- end
280
- when :Object
281
- # generic object (usually a Hash), return directly
282
- value
283
- when /\AArray<(?<inner_type>.+)>\z/
284
- inner_type = Regexp.last_match[:inner_type]
285
- value.map { |v| _deserialize(inner_type, v) }
286
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
287
- k_type = Regexp.last_match[:k_type]
288
- v_type = Regexp.last_match[:v_type]
289
- {}.tap do |hash|
290
- value.each do |k, v|
291
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
292
- end
293
- end
294
- else # model
295
- AuthressSdk.const_get(type).build_from_hash(value)
296
- end
297
- end
298
-
299
- # Returns the string representation of the object
300
- # @return [String] String presentation of the object
301
- def to_s
302
- to_hash.to_s
303
- end
304
-
305
- # to_body is an alias to to_hash (backward compatibility)
306
- # @return [Hash] Returns the object in the form of hash
307
- def to_body
308
- to_hash
309
- end
310
-
311
- # Returns the object in the form of hash
312
- # @return [Hash] Returns the object in the form of hash
313
- def to_hash
314
- hash = {}
315
- self.class.attribute_map.each_pair do |attr, param|
316
- value = self.send(attr)
317
- if value.nil?
318
- is_nullable = self.class.openapi_nullable.include?(attr)
319
- next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
320
- end
321
-
322
- hash[param] = _to_hash(value)
323
- end
324
- hash
325
- end
326
-
327
- # Outputs non-array value in the form of hash
328
- # For object, use to_hash. Otherwise, just return the value
329
- # @param [Object] value Any valid value
330
- # @return [Hash] Returns the value in the form of hash
331
- def _to_hash(value)
332
- if value.is_a?(Array)
333
- value.compact.map { |v| _to_hash(v) }
334
- elsif value.is_a?(Hash)
335
- {}.tap do |hash|
336
- value.each { |k, v| hash[k] = _to_hash(v) }
337
- end
338
- elsif value.respond_to? :to_hash
339
- value.to_hash
340
- else
341
- value
342
- end
343
- end end
344
- end