turnkey_client 0.0.9 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/lib/turnkey_client/api/features_api.rb +4 -4
  3. data/lib/turnkey_client/api/organizations_api.rb +60 -2
  4. data/lib/turnkey_client/api/user_auth_api.rb +348 -0
  5. data/lib/turnkey_client/api/users_api.rb +0 -232
  6. data/lib/turnkey_client/api/wallets_api.rb +118 -2
  7. data/lib/turnkey_client/models/activity_type.rb +4 -0
  8. data/lib/turnkey_client/models/address_format.rb +7 -0
  9. data/lib/turnkey_client/models/create_sub_organization_intent_v7.rb +292 -0
  10. data/lib/turnkey_client/models/create_sub_organization_request.rb +2 -2
  11. data/lib/turnkey_client/models/create_sub_organization_result_v7.rb +230 -0
  12. data/lib/turnkey_client/models/credential_type.rb +1 -0
  13. data/lib/turnkey_client/models/email_auth_intent.rb +14 -4
  14. data/lib/turnkey_client/models/email_auth_intent_v2.rb +14 -4
  15. data/lib/turnkey_client/models/feature_name.rb +2 -0
  16. data/lib/turnkey_client/models/get_sub_org_ids_request.rb +1 -1
  17. data/lib/turnkey_client/models/get_verified_sub_org_ids_request.rb +240 -0
  18. data/lib/turnkey_client/models/get_verified_sub_org_ids_response.rb +213 -0
  19. data/lib/turnkey_client/models/get_wallet_account_request.rb +246 -0
  20. data/lib/turnkey_client/models/get_wallet_account_response.rb +210 -0
  21. data/lib/turnkey_client/models/get_wallet_accounts_response.rb +1 -1
  22. data/lib/turnkey_client/models/init_otp_auth_intent.rb +264 -0
  23. data/lib/turnkey_client/models/init_otp_auth_request.rb +288 -0
  24. data/lib/turnkey_client/models/init_otp_auth_result.rb +211 -0
  25. data/lib/turnkey_client/models/intent.rb +40 -4
  26. data/lib/turnkey_client/models/otp_auth_intent.rb +266 -0
  27. data/lib/turnkey_client/models/otp_auth_request.rb +288 -0
  28. data/lib/turnkey_client/models/otp_auth_result.rb +231 -0
  29. data/lib/turnkey_client/models/result.rb +40 -4
  30. data/lib/turnkey_client/models/root_user_params_v4.rb +282 -0
  31. data/lib/turnkey_client/models/sms_customization_params.rb +206 -0
  32. data/lib/turnkey_client/models/update_user_intent.rb +14 -4
  33. data/lib/turnkey_client/models/update_wallet_intent.rb +221 -0
  34. data/lib/turnkey_client/models/update_wallet_request.rb +288 -0
  35. data/lib/turnkey_client/models/update_wallet_result.rb +211 -0
  36. data/lib/turnkey_client/models/user.rb +11 -1
  37. data/lib/turnkey_client/models/wallet_account.rb +16 -1
  38. data/lib/turnkey_client/version.rb +1 -1
  39. data/lib/turnkey_client.rb +17 -0
  40. data/turnkey_client-0.0.12.gem +0 -0
  41. data/turnkey_client-0.0.9.gem +0 -0
  42. metadata +21 -2
@@ -0,0 +1,231 @@
1
+ =begin
2
+ #API Reference
3
+
4
+ #Review our [API Introduction](../api-introduction) to get started.
5
+
6
+ OpenAPI spec version: 1.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ =end
10
+
11
+ require 'date'
12
+
13
+ module TurnkeyClient
14
+ class OtpAuthResult
15
+ # Unique identifier for the authenticating User.
16
+ attr_accessor :user_id
17
+
18
+ # Unique identifier for the created API key.
19
+ attr_accessor :api_key_id
20
+
21
+ # HPKE encrypted credential bundle
22
+ attr_accessor :credential_bundle
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+ :'user_id' => :'userId',
28
+ :'api_key_id' => :'apiKeyId',
29
+ :'credential_bundle' => :'credentialBundle'
30
+ }
31
+ end
32
+
33
+ # Attribute type mapping.
34
+ def self.openapi_types
35
+ {
36
+ :'user_id' => :'Object',
37
+ :'api_key_id' => :'Object',
38
+ :'credential_bundle' => :'Object'
39
+ }
40
+ end
41
+
42
+ # List of attributes with nullable: true
43
+ def self.openapi_nullable
44
+ Set.new([
45
+ ])
46
+ end
47
+
48
+ # Initializes the object
49
+ # @param [Hash] attributes Model attributes in the form of hash
50
+ def initialize(attributes = {})
51
+ if (!attributes.is_a?(Hash))
52
+ fail ArgumentError, "The input argument (attributes) must be a hash in `TurnkeyClient::OtpAuthResult` initialize method"
53
+ end
54
+
55
+ # check to see if the attribute exists and convert string to symbol for hash key
56
+ attributes = attributes.each_with_object({}) { |(k, v), h|
57
+ if (!self.class.attribute_map.key?(k.to_sym))
58
+ fail ArgumentError, "`#{k}` is not a valid attribute in `TurnkeyClient::OtpAuthResult`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
59
+ end
60
+ h[k.to_sym] = v
61
+ }
62
+
63
+ if attributes.key?(:'user_id')
64
+ self.user_id = attributes[:'user_id']
65
+ end
66
+
67
+ if attributes.key?(:'api_key_id')
68
+ self.api_key_id = attributes[:'api_key_id']
69
+ end
70
+
71
+ if attributes.key?(:'credential_bundle')
72
+ self.credential_bundle = attributes[:'credential_bundle']
73
+ end
74
+ end
75
+
76
+ # Show invalid properties with the reasons. Usually used together with valid?
77
+ # @return Array for valid properties with the reasons
78
+ def list_invalid_properties
79
+ invalid_properties = Array.new
80
+ if @user_id.nil?
81
+ invalid_properties.push('invalid value for "user_id", user_id cannot be nil.')
82
+ end
83
+
84
+ invalid_properties
85
+ end
86
+
87
+ # Check to see if the all the properties in the model are valid
88
+ # @return true if the model is valid
89
+ def valid?
90
+ return false if @user_id.nil?
91
+ true
92
+ end
93
+
94
+ # Checks equality by comparing each attribute.
95
+ # @param [Object] Object to be compared
96
+ def ==(o)
97
+ return true if self.equal?(o)
98
+ self.class == o.class &&
99
+ user_id == o.user_id &&
100
+ api_key_id == o.api_key_id &&
101
+ credential_bundle == o.credential_bundle
102
+ end
103
+
104
+ # @see the `==` method
105
+ # @param [Object] Object to be compared
106
+ def eql?(o)
107
+ self == o
108
+ end
109
+
110
+ # Calculates hash code according to all attributes.
111
+ # @return [Integer] Hash code
112
+ def hash
113
+ [user_id, api_key_id, credential_bundle].hash
114
+ end
115
+
116
+ # Builds the object from hash
117
+ # @param [Hash] attributes Model attributes in the form of hash
118
+ # @return [Object] Returns the model itself
119
+ def self.build_from_hash(attributes)
120
+ new.build_from_hash(attributes)
121
+ end
122
+
123
+ # Builds the object from hash
124
+ # @param [Hash] attributes Model attributes in the form of hash
125
+ # @return [Object] Returns the model itself
126
+ def build_from_hash(attributes)
127
+ return nil unless attributes.is_a?(Hash)
128
+ self.class.openapi_types.each_pair do |key, type|
129
+ if type =~ /\AArray<(.*)>/i
130
+ # check to ensure the input is an array given that the attribute
131
+ # is documented as an array but the input is not
132
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
133
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
134
+ end
135
+ elsif !attributes[self.class.attribute_map[key]].nil?
136
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
137
+ elsif attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
138
+ self.send("#{key}=", nil)
139
+ end
140
+ end
141
+
142
+ self
143
+ end
144
+
145
+ # Deserializes the data based on type
146
+ # @param string type Data type
147
+ # @param string value Value to be deserialized
148
+ # @return [Object] Deserialized data
149
+ def _deserialize(type, value)
150
+ case type.to_sym
151
+ when :DateTime
152
+ DateTime.parse(value)
153
+ when :Date
154
+ Date.parse(value)
155
+ when :String
156
+ value.to_s
157
+ when :Integer
158
+ value.to_i
159
+ when :Float
160
+ value.to_f
161
+ when :Boolean
162
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
163
+ true
164
+ else
165
+ false
166
+ end
167
+ when :Object
168
+ # generic object (usually a Hash), return directly
169
+ value
170
+ when /\AArray<(?<inner_type>.+)>\z/
171
+ inner_type = Regexp.last_match[:inner_type]
172
+ value.map { |v| _deserialize(inner_type, v) }
173
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
174
+ k_type = Regexp.last_match[:k_type]
175
+ v_type = Regexp.last_match[:v_type]
176
+ {}.tap do |hash|
177
+ value.each do |k, v|
178
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
179
+ end
180
+ end
181
+ else # model
182
+ TurnkeyClient.const_get(type).build_from_hash(value)
183
+ end
184
+ end
185
+
186
+ # Returns the string representation of the object
187
+ # @return [String] String presentation of the object
188
+ def to_s
189
+ to_hash.to_s
190
+ end
191
+
192
+ # to_body is an alias to to_hash (backward compatibility)
193
+ # @return [Hash] Returns the object in the form of hash
194
+ def to_body
195
+ to_hash
196
+ end
197
+
198
+ # Returns the object in the form of hash
199
+ # @return [Hash] Returns the object in the form of hash
200
+ def to_hash
201
+ hash = {}
202
+ self.class.attribute_map.each_pair do |attr, param|
203
+ value = self.send(attr)
204
+ if value.nil?
205
+ is_nullable = self.class.openapi_nullable.include?(attr)
206
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
207
+ end
208
+
209
+ hash[param] = _to_hash(value)
210
+ end
211
+ hash
212
+ end
213
+
214
+ # Outputs non-array value in the form of hash
215
+ # For object, use to_hash. Otherwise, just return the value
216
+ # @param [Object] value Any valid value
217
+ # @return [Hash] Returns the value in the form of hash
218
+ def _to_hash(value)
219
+ if value.is_a?(Array)
220
+ value.compact.map { |v| _to_hash(v) }
221
+ elsif value.is_a?(Hash)
222
+ {}.tap do |hash|
223
+ value.each { |k, v| hash[k] = _to_hash(v) }
224
+ end
225
+ elsif value.respond_to? :to_hash
226
+ value.to_hash
227
+ else
228
+ value
229
+ end
230
+ end end
231
+ end
@@ -136,6 +136,14 @@ module TurnkeyClient
136
136
 
137
137
  attr_accessor :delete_sub_organization_result
138
138
 
139
+ attr_accessor :init_otp_auth_result
140
+
141
+ attr_accessor :otp_auth_result
142
+
143
+ attr_accessor :create_sub_organization_result_v7
144
+
145
+ attr_accessor :update_wallet_result
146
+
139
147
  # Attribute mapping from ruby-style variable name to JSON key.
140
148
  def self.attribute_map
141
149
  {
@@ -200,7 +208,11 @@ module TurnkeyClient
200
208
  :'delete_private_keys_result' => :'deletePrivateKeysResult',
201
209
  :'delete_wallets_result' => :'deleteWalletsResult',
202
210
  :'create_read_write_session_result_v2' => :'createReadWriteSessionResultV2',
203
- :'delete_sub_organization_result' => :'deleteSubOrganizationResult'
211
+ :'delete_sub_organization_result' => :'deleteSubOrganizationResult',
212
+ :'init_otp_auth_result' => :'initOtpAuthResult',
213
+ :'otp_auth_result' => :'otpAuthResult',
214
+ :'create_sub_organization_result_v7' => :'createSubOrganizationResultV7',
215
+ :'update_wallet_result' => :'updateWalletResult'
204
216
  }
205
217
  end
206
218
 
@@ -268,7 +280,11 @@ module TurnkeyClient
268
280
  :'delete_private_keys_result' => :'Object',
269
281
  :'delete_wallets_result' => :'Object',
270
282
  :'create_read_write_session_result_v2' => :'Object',
271
- :'delete_sub_organization_result' => :'Object'
283
+ :'delete_sub_organization_result' => :'Object',
284
+ :'init_otp_auth_result' => :'Object',
285
+ :'otp_auth_result' => :'Object',
286
+ :'create_sub_organization_result_v7' => :'Object',
287
+ :'update_wallet_result' => :'Object'
272
288
  }
273
289
  end
274
290
 
@@ -540,6 +556,22 @@ module TurnkeyClient
540
556
  if attributes.key?(:'delete_sub_organization_result')
541
557
  self.delete_sub_organization_result = attributes[:'delete_sub_organization_result']
542
558
  end
559
+
560
+ if attributes.key?(:'init_otp_auth_result')
561
+ self.init_otp_auth_result = attributes[:'init_otp_auth_result']
562
+ end
563
+
564
+ if attributes.key?(:'otp_auth_result')
565
+ self.otp_auth_result = attributes[:'otp_auth_result']
566
+ end
567
+
568
+ if attributes.key?(:'create_sub_organization_result_v7')
569
+ self.create_sub_organization_result_v7 = attributes[:'create_sub_organization_result_v7']
570
+ end
571
+
572
+ if attributes.key?(:'update_wallet_result')
573
+ self.update_wallet_result = attributes[:'update_wallet_result']
574
+ end
543
575
  end
544
576
 
545
577
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -621,7 +653,11 @@ module TurnkeyClient
621
653
  delete_private_keys_result == o.delete_private_keys_result &&
622
654
  delete_wallets_result == o.delete_wallets_result &&
623
655
  create_read_write_session_result_v2 == o.create_read_write_session_result_v2 &&
624
- delete_sub_organization_result == o.delete_sub_organization_result
656
+ delete_sub_organization_result == o.delete_sub_organization_result &&
657
+ init_otp_auth_result == o.init_otp_auth_result &&
658
+ otp_auth_result == o.otp_auth_result &&
659
+ create_sub_organization_result_v7 == o.create_sub_organization_result_v7 &&
660
+ update_wallet_result == o.update_wallet_result
625
661
  end
626
662
 
627
663
  # @see the `==` method
@@ -633,7 +669,7 @@ module TurnkeyClient
633
669
  # Calculates hash code according to all attributes.
634
670
  # @return [Integer] Hash code
635
671
  def hash
636
- [create_organization_result, create_authenticators_result, create_users_result, create_private_keys_result, create_invitations_result, accept_invitation_result, sign_raw_payload_result, create_policy_result, disable_private_key_result, delete_users_result, delete_authenticators_result, delete_invitation_result, delete_organization_result, delete_policy_result, create_user_tag_result, delete_user_tags_result, sign_transaction_result, delete_api_keys_result, create_api_keys_result, create_private_key_tag_result, delete_private_key_tags_result, set_payment_method_result, activate_billing_tier_result, delete_payment_method_result, create_api_only_users_result, update_root_quorum_result, update_user_tag_result, update_private_key_tag_result, create_sub_organization_result, update_allowed_origins_result, create_private_keys_result_v2, update_user_result, update_policy_result, create_sub_organization_result_v3, create_wallet_result, create_wallet_accounts_result, init_user_email_recovery_result, recover_user_result, set_organization_feature_result, remove_organization_feature_result, export_private_key_result, export_wallet_result, create_sub_organization_result_v4, email_auth_result, export_wallet_account_result, init_import_wallet_result, import_wallet_result, init_import_private_key_result, import_private_key_result, create_policies_result, sign_raw_payloads_result, create_read_only_session_result, create_oauth_providers_result, delete_oauth_providers_result, create_sub_organization_result_v5, oauth_result, create_read_write_session_result, create_sub_organization_result_v6, delete_private_keys_result, delete_wallets_result, create_read_write_session_result_v2, delete_sub_organization_result].hash
672
+ [create_organization_result, create_authenticators_result, create_users_result, create_private_keys_result, create_invitations_result, accept_invitation_result, sign_raw_payload_result, create_policy_result, disable_private_key_result, delete_users_result, delete_authenticators_result, delete_invitation_result, delete_organization_result, delete_policy_result, create_user_tag_result, delete_user_tags_result, sign_transaction_result, delete_api_keys_result, create_api_keys_result, create_private_key_tag_result, delete_private_key_tags_result, set_payment_method_result, activate_billing_tier_result, delete_payment_method_result, create_api_only_users_result, update_root_quorum_result, update_user_tag_result, update_private_key_tag_result, create_sub_organization_result, update_allowed_origins_result, create_private_keys_result_v2, update_user_result, update_policy_result, create_sub_organization_result_v3, create_wallet_result, create_wallet_accounts_result, init_user_email_recovery_result, recover_user_result, set_organization_feature_result, remove_organization_feature_result, export_private_key_result, export_wallet_result, create_sub_organization_result_v4, email_auth_result, export_wallet_account_result, init_import_wallet_result, import_wallet_result, init_import_private_key_result, import_private_key_result, create_policies_result, sign_raw_payloads_result, create_read_only_session_result, create_oauth_providers_result, delete_oauth_providers_result, create_sub_organization_result_v5, oauth_result, create_read_write_session_result, create_sub_organization_result_v6, delete_private_keys_result, delete_wallets_result, create_read_write_session_result_v2, delete_sub_organization_result, init_otp_auth_result, otp_auth_result, create_sub_organization_result_v7, update_wallet_result].hash
637
673
  end
638
674
 
639
675
  # Builds the object from hash
@@ -0,0 +1,282 @@
1
+ =begin
2
+ #API Reference
3
+
4
+ #Review our [API Introduction](../api-introduction) to get started.
5
+
6
+ OpenAPI spec version: 1.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ =end
10
+
11
+ require 'date'
12
+
13
+ module TurnkeyClient
14
+ class RootUserParamsV4
15
+ # Human-readable name for a User.
16
+ attr_accessor :user_name
17
+
18
+ # The user's email address.
19
+ attr_accessor :user_email
20
+
21
+ # The user's phone number in E.164 format e.g. +13214567890
22
+ attr_accessor :user_phone_number
23
+
24
+ # A list of API Key parameters.
25
+ attr_accessor :api_keys
26
+
27
+ # A list of Authenticator parameters.
28
+ attr_accessor :authenticators
29
+
30
+ # A list of Oauth providers.
31
+ attr_accessor :oauth_providers
32
+
33
+ # Attribute mapping from ruby-style variable name to JSON key.
34
+ def self.attribute_map
35
+ {
36
+ :'user_name' => :'userName',
37
+ :'user_email' => :'userEmail',
38
+ :'user_phone_number' => :'userPhoneNumber',
39
+ :'api_keys' => :'apiKeys',
40
+ :'authenticators' => :'authenticators',
41
+ :'oauth_providers' => :'oauthProviders'
42
+ }
43
+ end
44
+
45
+ # Attribute type mapping.
46
+ def self.openapi_types
47
+ {
48
+ :'user_name' => :'Object',
49
+ :'user_email' => :'Object',
50
+ :'user_phone_number' => :'Object',
51
+ :'api_keys' => :'Object',
52
+ :'authenticators' => :'Object',
53
+ :'oauth_providers' => :'Object'
54
+ }
55
+ end
56
+
57
+ # List of attributes with nullable: true
58
+ def self.openapi_nullable
59
+ Set.new([
60
+ ])
61
+ end
62
+
63
+ # Initializes the object
64
+ # @param [Hash] attributes Model attributes in the form of hash
65
+ def initialize(attributes = {})
66
+ if (!attributes.is_a?(Hash))
67
+ fail ArgumentError, "The input argument (attributes) must be a hash in `TurnkeyClient::RootUserParamsV4` initialize method"
68
+ end
69
+
70
+ # check to see if the attribute exists and convert string to symbol for hash key
71
+ attributes = attributes.each_with_object({}) { |(k, v), h|
72
+ if (!self.class.attribute_map.key?(k.to_sym))
73
+ fail ArgumentError, "`#{k}` is not a valid attribute in `TurnkeyClient::RootUserParamsV4`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
74
+ end
75
+ h[k.to_sym] = v
76
+ }
77
+
78
+ if attributes.key?(:'user_name')
79
+ self.user_name = attributes[:'user_name']
80
+ end
81
+
82
+ if attributes.key?(:'user_email')
83
+ self.user_email = attributes[:'user_email']
84
+ end
85
+
86
+ if attributes.key?(:'user_phone_number')
87
+ self.user_phone_number = attributes[:'user_phone_number']
88
+ end
89
+
90
+ if attributes.key?(:'api_keys')
91
+ if (value = attributes[:'api_keys']).is_a?(Array)
92
+ self.api_keys = value
93
+ end
94
+ end
95
+
96
+ if attributes.key?(:'authenticators')
97
+ if (value = attributes[:'authenticators']).is_a?(Array)
98
+ self.authenticators = value
99
+ end
100
+ end
101
+
102
+ if attributes.key?(:'oauth_providers')
103
+ if (value = attributes[:'oauth_providers']).is_a?(Array)
104
+ self.oauth_providers = value
105
+ end
106
+ end
107
+ end
108
+
109
+ # Show invalid properties with the reasons. Usually used together with valid?
110
+ # @return Array for valid properties with the reasons
111
+ def list_invalid_properties
112
+ invalid_properties = Array.new
113
+ if @user_name.nil?
114
+ invalid_properties.push('invalid value for "user_name", user_name cannot be nil.')
115
+ end
116
+
117
+ if @api_keys.nil?
118
+ invalid_properties.push('invalid value for "api_keys", api_keys cannot be nil.')
119
+ end
120
+
121
+ if @authenticators.nil?
122
+ invalid_properties.push('invalid value for "authenticators", authenticators cannot be nil.')
123
+ end
124
+
125
+ if @oauth_providers.nil?
126
+ invalid_properties.push('invalid value for "oauth_providers", oauth_providers cannot be nil.')
127
+ end
128
+
129
+ invalid_properties
130
+ end
131
+
132
+ # Check to see if the all the properties in the model are valid
133
+ # @return true if the model is valid
134
+ def valid?
135
+ return false if @user_name.nil?
136
+ return false if @api_keys.nil?
137
+ return false if @authenticators.nil?
138
+ return false if @oauth_providers.nil?
139
+ true
140
+ end
141
+
142
+ # Checks equality by comparing each attribute.
143
+ # @param [Object] Object to be compared
144
+ def ==(o)
145
+ return true if self.equal?(o)
146
+ self.class == o.class &&
147
+ user_name == o.user_name &&
148
+ user_email == o.user_email &&
149
+ user_phone_number == o.user_phone_number &&
150
+ api_keys == o.api_keys &&
151
+ authenticators == o.authenticators &&
152
+ oauth_providers == o.oauth_providers
153
+ end
154
+
155
+ # @see the `==` method
156
+ # @param [Object] Object to be compared
157
+ def eql?(o)
158
+ self == o
159
+ end
160
+
161
+ # Calculates hash code according to all attributes.
162
+ # @return [Integer] Hash code
163
+ def hash
164
+ [user_name, user_email, user_phone_number, api_keys, authenticators, oauth_providers].hash
165
+ end
166
+
167
+ # Builds the object from hash
168
+ # @param [Hash] attributes Model attributes in the form of hash
169
+ # @return [Object] Returns the model itself
170
+ def self.build_from_hash(attributes)
171
+ new.build_from_hash(attributes)
172
+ end
173
+
174
+ # Builds the object from hash
175
+ # @param [Hash] attributes Model attributes in the form of hash
176
+ # @return [Object] Returns the model itself
177
+ def build_from_hash(attributes)
178
+ return nil unless attributes.is_a?(Hash)
179
+ self.class.openapi_types.each_pair do |key, type|
180
+ if type =~ /\AArray<(.*)>/i
181
+ # check to ensure the input is an array given that the attribute
182
+ # is documented as an array but the input is not
183
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
184
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
185
+ end
186
+ elsif !attributes[self.class.attribute_map[key]].nil?
187
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
188
+ elsif attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
189
+ self.send("#{key}=", nil)
190
+ end
191
+ end
192
+
193
+ self
194
+ end
195
+
196
+ # Deserializes the data based on type
197
+ # @param string type Data type
198
+ # @param string value Value to be deserialized
199
+ # @return [Object] Deserialized data
200
+ def _deserialize(type, value)
201
+ case type.to_sym
202
+ when :DateTime
203
+ DateTime.parse(value)
204
+ when :Date
205
+ Date.parse(value)
206
+ when :String
207
+ value.to_s
208
+ when :Integer
209
+ value.to_i
210
+ when :Float
211
+ value.to_f
212
+ when :Boolean
213
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
214
+ true
215
+ else
216
+ false
217
+ end
218
+ when :Object
219
+ # generic object (usually a Hash), return directly
220
+ value
221
+ when /\AArray<(?<inner_type>.+)>\z/
222
+ inner_type = Regexp.last_match[:inner_type]
223
+ value.map { |v| _deserialize(inner_type, v) }
224
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
225
+ k_type = Regexp.last_match[:k_type]
226
+ v_type = Regexp.last_match[:v_type]
227
+ {}.tap do |hash|
228
+ value.each do |k, v|
229
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
230
+ end
231
+ end
232
+ else # model
233
+ TurnkeyClient.const_get(type).build_from_hash(value)
234
+ end
235
+ end
236
+
237
+ # Returns the string representation of the object
238
+ # @return [String] String presentation of the object
239
+ def to_s
240
+ to_hash.to_s
241
+ end
242
+
243
+ # to_body is an alias to to_hash (backward compatibility)
244
+ # @return [Hash] Returns the object in the form of hash
245
+ def to_body
246
+ to_hash
247
+ end
248
+
249
+ # Returns the object in the form of hash
250
+ # @return [Hash] Returns the object in the form of hash
251
+ def to_hash
252
+ hash = {}
253
+ self.class.attribute_map.each_pair do |attr, param|
254
+ value = self.send(attr)
255
+ if value.nil?
256
+ is_nullable = self.class.openapi_nullable.include?(attr)
257
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
258
+ end
259
+
260
+ hash[param] = _to_hash(value)
261
+ end
262
+ hash
263
+ end
264
+
265
+ # Outputs non-array value in the form of hash
266
+ # For object, use to_hash. Otherwise, just return the value
267
+ # @param [Object] value Any valid value
268
+ # @return [Hash] Returns the value in the form of hash
269
+ def _to_hash(value)
270
+ if value.is_a?(Array)
271
+ value.compact.map { |v| _to_hash(v) }
272
+ elsif value.is_a?(Hash)
273
+ {}.tap do |hash|
274
+ value.each { |k, v| hash[k] = _to_hash(v) }
275
+ end
276
+ elsif value.respond_to? :to_hash
277
+ value.to_hash
278
+ else
279
+ value
280
+ end
281
+ end end
282
+ end