cloudmersive-validate-api-client 1.3.2 → 1.3.7

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 (102) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +24 -9
  3. data/cloudmersive-validate-api-client.gemspec +1 -1
  4. data/docs/AddressApi.md +63 -0
  5. data/docs/AddressGetServersResponse.md +2 -2
  6. data/docs/DomainApi.md +110 -0
  7. data/docs/FullEmailValidationResponse.md +2 -0
  8. data/docs/NameApi.md +55 -0
  9. data/docs/ParseAddressRequest.md +9 -0
  10. data/docs/ParseAddressResponse.md +15 -0
  11. data/docs/UserAgentApi.md +63 -0
  12. data/docs/UserAgentValidateRequest.md +8 -0
  13. data/docs/UserAgentValidateResponse.md +21 -0
  14. data/docs/ValidateIdentifierRequest.md +15 -0
  15. data/docs/ValidateIdentifierResponse.md +9 -0
  16. data/docs/ValidateUrlRequestFull.md +8 -0
  17. data/docs/ValidateUrlRequestSyntaxOnly.md +8 -0
  18. data/docs/ValidateUrlResponseFull.md +12 -0
  19. data/docs/ValidateUrlResponseSyntaxOnly.md +9 -0
  20. data/docs/VatLookupRequest.md +1 -1
  21. data/docs/VatLookupResponse.md +5 -5
  22. data/lib/cloudmersive-validate-api-client.rb +13 -1
  23. data/lib/cloudmersive-validate-api-client/api/address_api.rb +78 -0
  24. data/lib/cloudmersive-validate-api-client/api/domain_api.rb +111 -1
  25. data/lib/cloudmersive-validate-api-client/api/email_api.rb +1 -1
  26. data/lib/cloudmersive-validate-api-client/api/ip_address_api.rb +1 -1
  27. data/lib/cloudmersive-validate-api-client/api/name_api.rb +56 -1
  28. data/lib/cloudmersive-validate-api-client/api/phone_number_api.rb +1 -1
  29. data/lib/cloudmersive-validate-api-client/api/user_agent_api.rb +78 -0
  30. data/lib/cloudmersive-validate-api-client/api/vat_api.rb +1 -1
  31. data/lib/cloudmersive-validate-api-client/api_client.rb +1 -1
  32. data/lib/cloudmersive-validate-api-client/api_error.rb +1 -1
  33. data/lib/cloudmersive-validate-api-client/configuration.rb +1 -1
  34. data/lib/cloudmersive-validate-api-client/models/address_get_servers_response.rb +3 -1
  35. data/lib/cloudmersive-validate-api-client/models/address_verify_syntax_only_response.rb +1 -1
  36. data/lib/cloudmersive-validate-api-client/models/check_response.rb +1 -1
  37. data/lib/cloudmersive-validate-api-client/models/first_name_validation_request.rb +1 -1
  38. data/lib/cloudmersive-validate-api-client/models/first_name_validation_response.rb +1 -1
  39. data/lib/cloudmersive-validate-api-client/models/full_email_validation_response.rb +25 -5
  40. data/lib/cloudmersive-validate-api-client/models/full_name_validation_request.rb +1 -1
  41. data/lib/cloudmersive-validate-api-client/models/full_name_validation_response.rb +1 -1
  42. data/lib/cloudmersive-validate-api-client/models/geolocate_response.rb +1 -1
  43. data/lib/cloudmersive-validate-api-client/models/get_gender_request.rb +1 -1
  44. data/lib/cloudmersive-validate-api-client/models/get_gender_response.rb +1 -1
  45. data/lib/cloudmersive-validate-api-client/models/last_name_validation_request.rb +1 -1
  46. data/lib/cloudmersive-validate-api-client/models/last_name_validation_response.rb +1 -1
  47. data/lib/cloudmersive-validate-api-client/models/parse_address_request.rb +199 -0
  48. data/lib/cloudmersive-validate-api-client/models/parse_address_response.rb +259 -0
  49. data/lib/cloudmersive-validate-api-client/models/phone_number_validate_request.rb +1 -1
  50. data/lib/cloudmersive-validate-api-client/models/phone_number_validation_response.rb +1 -1
  51. data/lib/cloudmersive-validate-api-client/models/user_agent_validate_request.rb +189 -0
  52. data/lib/cloudmersive-validate-api-client/models/user_agent_validate_response.rb +319 -0
  53. data/lib/cloudmersive-validate-api-client/models/validate_identifier_request.rb +259 -0
  54. data/lib/cloudmersive-validate-api-client/models/validate_identifier_response.rb +199 -0
  55. data/lib/cloudmersive-validate-api-client/models/validate_url_request_full.rb +189 -0
  56. data/lib/cloudmersive-validate-api-client/models/validate_url_request_syntax_only.rb +189 -0
  57. data/lib/cloudmersive-validate-api-client/models/validate_url_response_full.rb +229 -0
  58. data/lib/cloudmersive-validate-api-client/models/validate_url_response_syntax_only.rb +199 -0
  59. data/lib/cloudmersive-validate-api-client/models/vat_lookup_request.rb +2 -1
  60. data/lib/cloudmersive-validate-api-client/models/vat_lookup_response.rb +6 -1
  61. data/lib/cloudmersive-validate-api-client/models/whois_response.rb +1 -1
  62. data/lib/cloudmersive-validate-api-client/version.rb +2 -2
  63. data/spec/api/address_api_spec.rb +47 -0
  64. data/spec/api/domain_api_spec.rb +25 -1
  65. data/spec/api/email_api_spec.rb +1 -1
  66. data/spec/api/ip_address_api_spec.rb +1 -1
  67. data/spec/api/name_api_spec.rb +13 -1
  68. data/spec/api/phone_number_api_spec.rb +1 -1
  69. data/spec/api/user_agent_api_spec.rb +47 -0
  70. data/spec/api/vat_api_spec.rb +1 -1
  71. data/spec/api_client_spec.rb +1 -1
  72. data/spec/configuration_spec.rb +1 -1
  73. data/spec/models/address_get_servers_response_spec.rb +1 -1
  74. data/spec/models/address_verify_syntax_only_response_spec.rb +1 -1
  75. data/spec/models/check_response_spec.rb +1 -1
  76. data/spec/models/first_name_validation_request_spec.rb +1 -1
  77. data/spec/models/first_name_validation_response_spec.rb +1 -1
  78. data/spec/models/full_email_validation_response_spec.rb +13 -1
  79. data/spec/models/full_name_validation_request_spec.rb +1 -1
  80. data/spec/models/full_name_validation_response_spec.rb +1 -1
  81. data/spec/models/geolocate_response_spec.rb +1 -1
  82. data/spec/models/get_gender_request_spec.rb +1 -1
  83. data/spec/models/get_gender_response_spec.rb +1 -1
  84. data/spec/models/last_name_validation_request_spec.rb +1 -1
  85. data/spec/models/last_name_validation_response_spec.rb +1 -1
  86. data/spec/models/parse_address_request_spec.rb +48 -0
  87. data/spec/models/parse_address_response_spec.rb +84 -0
  88. data/spec/models/phone_number_validate_request_spec.rb +1 -1
  89. data/spec/models/phone_number_validation_response_spec.rb +1 -1
  90. data/spec/models/user_agent_validate_request_spec.rb +42 -0
  91. data/spec/models/user_agent_validate_response_spec.rb +120 -0
  92. data/spec/models/validate_identifier_request_spec.rb +84 -0
  93. data/spec/models/validate_identifier_response_spec.rb +48 -0
  94. data/spec/models/validate_url_request_full_spec.rb +42 -0
  95. data/spec/models/validate_url_request_syntax_only_spec.rb +42 -0
  96. data/spec/models/validate_url_response_full_spec.rb +66 -0
  97. data/spec/models/validate_url_response_syntax_only_spec.rb +48 -0
  98. data/spec/models/vat_lookup_request_spec.rb +1 -1
  99. data/spec/models/vat_lookup_response_spec.rb +1 -1
  100. data/spec/models/whois_response_spec.rb +1 -1
  101. data/spec/spec_helper.rb +1 -1
  102. metadata +51 -16
@@ -0,0 +1,319 @@
1
+ =begin
2
+ #validateapi
3
+
4
+ #The validation APIs help you validate data. Check if an E-mail address is real. Check if a domain is real. Check up on an IP address, and even where it is located. All this and much more is available in the validation API.
5
+
6
+ OpenAPI spec version: v1
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module CloudmersiveValidateApiClient
16
+ # The result of a User-Agent validation request
17
+ class UserAgentValidateResponse
18
+ # True if the operation was successful, false otherwise
19
+ attr_accessor :successful
20
+
21
+ # True if the request is a known robot, false otherwise
22
+ attr_accessor :is_bot
23
+
24
+ # Optional; name of the robot if the request was from a known robot, otherwise null
25
+ attr_accessor :bot_name
26
+
27
+ # Optional; if available, the URL to the robot
28
+ attr_accessor :bot_url
29
+
30
+ # Operating System of the User-Agent (e.g. Windows)
31
+ attr_accessor :operating_system
32
+
33
+ # The CPU platform of the User-Agent (e.g. x64)
34
+ attr_accessor :operating_system_cpu_platform
35
+
36
+ # The version of the operating system of the User-Agent (e.g. \"10\" for Windows 10)
37
+ attr_accessor :operating_system_version
38
+
39
+ # Device type of the User-Agent; possible values are \"DESKTOP\", \"SMARTPHONE\", \"TABLET\"
40
+ attr_accessor :device_type
41
+
42
+ # Brand name of the User-Agent
43
+ attr_accessor :device_brand_name
44
+
45
+ # Model name or number of the User-Agent
46
+ attr_accessor :device_model
47
+
48
+ # Name of the Browser
49
+ attr_accessor :browser_name
50
+
51
+ # Version of the Browser
52
+ attr_accessor :browser_version
53
+
54
+ # Name of the Browser Engine
55
+ attr_accessor :browser_engine_name
56
+
57
+ # Version of the Browser Engine
58
+ attr_accessor :browser_engine_version
59
+
60
+
61
+ # Attribute mapping from ruby-style variable name to JSON key.
62
+ def self.attribute_map
63
+ {
64
+ :'successful' => :'Successful',
65
+ :'is_bot' => :'IsBot',
66
+ :'bot_name' => :'BotName',
67
+ :'bot_url' => :'BotURL',
68
+ :'operating_system' => :'OperatingSystem',
69
+ :'operating_system_cpu_platform' => :'OperatingSystemCPUPlatform',
70
+ :'operating_system_version' => :'OperatingSystemVersion',
71
+ :'device_type' => :'DeviceType',
72
+ :'device_brand_name' => :'DeviceBrandName',
73
+ :'device_model' => :'DeviceModel',
74
+ :'browser_name' => :'BrowserName',
75
+ :'browser_version' => :'BrowserVersion',
76
+ :'browser_engine_name' => :'BrowserEngineName',
77
+ :'browser_engine_version' => :'BrowserEngineVersion'
78
+ }
79
+ end
80
+
81
+ # Attribute type mapping.
82
+ def self.swagger_types
83
+ {
84
+ :'successful' => :'BOOLEAN',
85
+ :'is_bot' => :'BOOLEAN',
86
+ :'bot_name' => :'String',
87
+ :'bot_url' => :'String',
88
+ :'operating_system' => :'String',
89
+ :'operating_system_cpu_platform' => :'String',
90
+ :'operating_system_version' => :'String',
91
+ :'device_type' => :'String',
92
+ :'device_brand_name' => :'String',
93
+ :'device_model' => :'String',
94
+ :'browser_name' => :'String',
95
+ :'browser_version' => :'String',
96
+ :'browser_engine_name' => :'String',
97
+ :'browser_engine_version' => :'String'
98
+ }
99
+ end
100
+
101
+ # Initializes the object
102
+ # @param [Hash] attributes Model attributes in the form of hash
103
+ def initialize(attributes = {})
104
+ return unless attributes.is_a?(Hash)
105
+
106
+ # convert string to symbol for hash key
107
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
108
+
109
+ if attributes.has_key?(:'Successful')
110
+ self.successful = attributes[:'Successful']
111
+ end
112
+
113
+ if attributes.has_key?(:'IsBot')
114
+ self.is_bot = attributes[:'IsBot']
115
+ end
116
+
117
+ if attributes.has_key?(:'BotName')
118
+ self.bot_name = attributes[:'BotName']
119
+ end
120
+
121
+ if attributes.has_key?(:'BotURL')
122
+ self.bot_url = attributes[:'BotURL']
123
+ end
124
+
125
+ if attributes.has_key?(:'OperatingSystem')
126
+ self.operating_system = attributes[:'OperatingSystem']
127
+ end
128
+
129
+ if attributes.has_key?(:'OperatingSystemCPUPlatform')
130
+ self.operating_system_cpu_platform = attributes[:'OperatingSystemCPUPlatform']
131
+ end
132
+
133
+ if attributes.has_key?(:'OperatingSystemVersion')
134
+ self.operating_system_version = attributes[:'OperatingSystemVersion']
135
+ end
136
+
137
+ if attributes.has_key?(:'DeviceType')
138
+ self.device_type = attributes[:'DeviceType']
139
+ end
140
+
141
+ if attributes.has_key?(:'DeviceBrandName')
142
+ self.device_brand_name = attributes[:'DeviceBrandName']
143
+ end
144
+
145
+ if attributes.has_key?(:'DeviceModel')
146
+ self.device_model = attributes[:'DeviceModel']
147
+ end
148
+
149
+ if attributes.has_key?(:'BrowserName')
150
+ self.browser_name = attributes[:'BrowserName']
151
+ end
152
+
153
+ if attributes.has_key?(:'BrowserVersion')
154
+ self.browser_version = attributes[:'BrowserVersion']
155
+ end
156
+
157
+ if attributes.has_key?(:'BrowserEngineName')
158
+ self.browser_engine_name = attributes[:'BrowserEngineName']
159
+ end
160
+
161
+ if attributes.has_key?(:'BrowserEngineVersion')
162
+ self.browser_engine_version = attributes[:'BrowserEngineVersion']
163
+ end
164
+
165
+ end
166
+
167
+ # Show invalid properties with the reasons. Usually used together with valid?
168
+ # @return Array for valid properties with the reasons
169
+ def list_invalid_properties
170
+ invalid_properties = Array.new
171
+ return invalid_properties
172
+ end
173
+
174
+ # Check to see if the all the properties in the model are valid
175
+ # @return true if the model is valid
176
+ def valid?
177
+ return true
178
+ end
179
+
180
+ # Checks equality by comparing each attribute.
181
+ # @param [Object] Object to be compared
182
+ def ==(o)
183
+ return true if self.equal?(o)
184
+ self.class == o.class &&
185
+ successful == o.successful &&
186
+ is_bot == o.is_bot &&
187
+ bot_name == o.bot_name &&
188
+ bot_url == o.bot_url &&
189
+ operating_system == o.operating_system &&
190
+ operating_system_cpu_platform == o.operating_system_cpu_platform &&
191
+ operating_system_version == o.operating_system_version &&
192
+ device_type == o.device_type &&
193
+ device_brand_name == o.device_brand_name &&
194
+ device_model == o.device_model &&
195
+ browser_name == o.browser_name &&
196
+ browser_version == o.browser_version &&
197
+ browser_engine_name == o.browser_engine_name &&
198
+ browser_engine_version == o.browser_engine_version
199
+ end
200
+
201
+ # @see the `==` method
202
+ # @param [Object] Object to be compared
203
+ def eql?(o)
204
+ self == o
205
+ end
206
+
207
+ # Calculates hash code according to all attributes.
208
+ # @return [Fixnum] Hash code
209
+ def hash
210
+ [successful, is_bot, bot_name, bot_url, operating_system, operating_system_cpu_platform, operating_system_version, device_type, device_brand_name, device_model, browser_name, browser_version, browser_engine_name, browser_engine_version].hash
211
+ end
212
+
213
+ # Builds the object from hash
214
+ # @param [Hash] attributes Model attributes in the form of hash
215
+ # @return [Object] Returns the model itself
216
+ def build_from_hash(attributes)
217
+ return nil unless attributes.is_a?(Hash)
218
+ self.class.swagger_types.each_pair do |key, type|
219
+ if type =~ /\AArray<(.*)>/i
220
+ # check to ensure the input is an array given that the the attribute
221
+ # is documented as an array but the input is not
222
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
223
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
224
+ end
225
+ elsif !attributes[self.class.attribute_map[key]].nil?
226
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
227
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
228
+ end
229
+
230
+ self
231
+ end
232
+
233
+ # Deserializes the data based on type
234
+ # @param string type Data type
235
+ # @param string value Value to be deserialized
236
+ # @return [Object] Deserialized data
237
+ def _deserialize(type, value)
238
+ case type.to_sym
239
+ when :DateTime
240
+ DateTime.parse(value)
241
+ when :Date
242
+ Date.parse(value)
243
+ when :String
244
+ value.to_s
245
+ when :Integer
246
+ value.to_i
247
+ when :Float
248
+ value.to_f
249
+ when :BOOLEAN
250
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
251
+ true
252
+ else
253
+ false
254
+ end
255
+ when :Object
256
+ # generic object (usually a Hash), return directly
257
+ value
258
+ when /\AArray<(?<inner_type>.+)>\z/
259
+ inner_type = Regexp.last_match[:inner_type]
260
+ value.map { |v| _deserialize(inner_type, v) }
261
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
262
+ k_type = Regexp.last_match[:k_type]
263
+ v_type = Regexp.last_match[:v_type]
264
+ {}.tap do |hash|
265
+ value.each do |k, v|
266
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
267
+ end
268
+ end
269
+ else # model
270
+ temp_model = CloudmersiveValidateApiClient.const_get(type).new
271
+ temp_model.build_from_hash(value)
272
+ end
273
+ end
274
+
275
+ # Returns the string representation of the object
276
+ # @return [String] String presentation of the object
277
+ def to_s
278
+ to_hash.to_s
279
+ end
280
+
281
+ # to_body is an alias to to_hash (backward compatibility)
282
+ # @return [Hash] Returns the object in the form of hash
283
+ def to_body
284
+ to_hash
285
+ end
286
+
287
+ # Returns the object in the form of hash
288
+ # @return [Hash] Returns the object in the form of hash
289
+ def to_hash
290
+ hash = {}
291
+ self.class.attribute_map.each_pair do |attr, param|
292
+ value = self.send(attr)
293
+ next if value.nil?
294
+ hash[param] = _to_hash(value)
295
+ end
296
+ hash
297
+ end
298
+
299
+ # Outputs non-array value in the form of hash
300
+ # For object, use to_hash. Otherwise, just return the value
301
+ # @param [Object] value Any valid value
302
+ # @return [Hash] Returns the value in the form of hash
303
+ def _to_hash(value)
304
+ if value.is_a?(Array)
305
+ value.compact.map{ |v| _to_hash(v) }
306
+ elsif value.is_a?(Hash)
307
+ {}.tap do |hash|
308
+ value.each { |k, v| hash[k] = _to_hash(v) }
309
+ end
310
+ elsif value.respond_to? :to_hash
311
+ value.to_hash
312
+ else
313
+ value
314
+ end
315
+ end
316
+
317
+ end
318
+
319
+ end
@@ -0,0 +1,259 @@
1
+ =begin
2
+ #validateapi
3
+
4
+ #The validation APIs help you validate data. Check if an E-mail address is real. Check if a domain is real. Check up on an IP address, and even where it is located. All this and much more is available in the validation API.
5
+
6
+ OpenAPI spec version: v1
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module CloudmersiveValidateApiClient
16
+ # Identifier validation request, including the input identifier as well as various identifier rules
17
+ class ValidateIdentifierRequest
18
+ # Text string identifier input
19
+ attr_accessor :input
20
+
21
+ # True if whitespace is allowed in the identifier, false otherwise
22
+ attr_accessor :allow_whitespace
23
+
24
+ # True if hyphens are allowd in the identifier, false otherwise
25
+ attr_accessor :allow_hyphens
26
+
27
+ # True if underscores are allowed in the identifier, false otherwise
28
+ attr_accessor :allow_underscore
29
+
30
+ # True if numbers are allowed in the identifier, false otherwise
31
+ attr_accessor :allow_numbers
32
+
33
+ # True if periods are allowed in the identifier, false otherwise
34
+ attr_accessor :allow_periods
35
+
36
+ # Optional; maximum length, if any, of the identifier
37
+ attr_accessor :max_length
38
+
39
+ # Optional; minimum length, if any, of the identifier
40
+ attr_accessor :min_length
41
+
42
+
43
+ # Attribute mapping from ruby-style variable name to JSON key.
44
+ def self.attribute_map
45
+ {
46
+ :'input' => :'Input',
47
+ :'allow_whitespace' => :'AllowWhitespace',
48
+ :'allow_hyphens' => :'AllowHyphens',
49
+ :'allow_underscore' => :'AllowUnderscore',
50
+ :'allow_numbers' => :'AllowNumbers',
51
+ :'allow_periods' => :'AllowPeriods',
52
+ :'max_length' => :'MaxLength',
53
+ :'min_length' => :'MinLength'
54
+ }
55
+ end
56
+
57
+ # Attribute type mapping.
58
+ def self.swagger_types
59
+ {
60
+ :'input' => :'String',
61
+ :'allow_whitespace' => :'BOOLEAN',
62
+ :'allow_hyphens' => :'BOOLEAN',
63
+ :'allow_underscore' => :'BOOLEAN',
64
+ :'allow_numbers' => :'BOOLEAN',
65
+ :'allow_periods' => :'BOOLEAN',
66
+ :'max_length' => :'Integer',
67
+ :'min_length' => :'Integer'
68
+ }
69
+ end
70
+
71
+ # Initializes the object
72
+ # @param [Hash] attributes Model attributes in the form of hash
73
+ def initialize(attributes = {})
74
+ return unless attributes.is_a?(Hash)
75
+
76
+ # convert string to symbol for hash key
77
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
78
+
79
+ if attributes.has_key?(:'Input')
80
+ self.input = attributes[:'Input']
81
+ end
82
+
83
+ if attributes.has_key?(:'AllowWhitespace')
84
+ self.allow_whitespace = attributes[:'AllowWhitespace']
85
+ end
86
+
87
+ if attributes.has_key?(:'AllowHyphens')
88
+ self.allow_hyphens = attributes[:'AllowHyphens']
89
+ end
90
+
91
+ if attributes.has_key?(:'AllowUnderscore')
92
+ self.allow_underscore = attributes[:'AllowUnderscore']
93
+ end
94
+
95
+ if attributes.has_key?(:'AllowNumbers')
96
+ self.allow_numbers = attributes[:'AllowNumbers']
97
+ end
98
+
99
+ if attributes.has_key?(:'AllowPeriods')
100
+ self.allow_periods = attributes[:'AllowPeriods']
101
+ end
102
+
103
+ if attributes.has_key?(:'MaxLength')
104
+ self.max_length = attributes[:'MaxLength']
105
+ end
106
+
107
+ if attributes.has_key?(:'MinLength')
108
+ self.min_length = attributes[:'MinLength']
109
+ end
110
+
111
+ end
112
+
113
+ # Show invalid properties with the reasons. Usually used together with valid?
114
+ # @return Array for valid properties with the reasons
115
+ def list_invalid_properties
116
+ invalid_properties = Array.new
117
+ return invalid_properties
118
+ end
119
+
120
+ # Check to see if the all the properties in the model are valid
121
+ # @return true if the model is valid
122
+ def valid?
123
+ return true
124
+ end
125
+
126
+ # Checks equality by comparing each attribute.
127
+ # @param [Object] Object to be compared
128
+ def ==(o)
129
+ return true if self.equal?(o)
130
+ self.class == o.class &&
131
+ input == o.input &&
132
+ allow_whitespace == o.allow_whitespace &&
133
+ allow_hyphens == o.allow_hyphens &&
134
+ allow_underscore == o.allow_underscore &&
135
+ allow_numbers == o.allow_numbers &&
136
+ allow_periods == o.allow_periods &&
137
+ max_length == o.max_length &&
138
+ min_length == o.min_length
139
+ end
140
+
141
+ # @see the `==` method
142
+ # @param [Object] Object to be compared
143
+ def eql?(o)
144
+ self == o
145
+ end
146
+
147
+ # Calculates hash code according to all attributes.
148
+ # @return [Fixnum] Hash code
149
+ def hash
150
+ [input, allow_whitespace, allow_hyphens, allow_underscore, allow_numbers, allow_periods, max_length, min_length].hash
151
+ end
152
+
153
+ # Builds the object from hash
154
+ # @param [Hash] attributes Model attributes in the form of hash
155
+ # @return [Object] Returns the model itself
156
+ def build_from_hash(attributes)
157
+ return nil unless attributes.is_a?(Hash)
158
+ self.class.swagger_types.each_pair do |key, type|
159
+ if type =~ /\AArray<(.*)>/i
160
+ # check to ensure the input is an array given that the the attribute
161
+ # is documented as an array but the input is not
162
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
163
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
164
+ end
165
+ elsif !attributes[self.class.attribute_map[key]].nil?
166
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
167
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
168
+ end
169
+
170
+ self
171
+ end
172
+
173
+ # Deserializes the data based on type
174
+ # @param string type Data type
175
+ # @param string value Value to be deserialized
176
+ # @return [Object] Deserialized data
177
+ def _deserialize(type, value)
178
+ case type.to_sym
179
+ when :DateTime
180
+ DateTime.parse(value)
181
+ when :Date
182
+ Date.parse(value)
183
+ when :String
184
+ value.to_s
185
+ when :Integer
186
+ value.to_i
187
+ when :Float
188
+ value.to_f
189
+ when :BOOLEAN
190
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
191
+ true
192
+ else
193
+ false
194
+ end
195
+ when :Object
196
+ # generic object (usually a Hash), return directly
197
+ value
198
+ when /\AArray<(?<inner_type>.+)>\z/
199
+ inner_type = Regexp.last_match[:inner_type]
200
+ value.map { |v| _deserialize(inner_type, v) }
201
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
202
+ k_type = Regexp.last_match[:k_type]
203
+ v_type = Regexp.last_match[:v_type]
204
+ {}.tap do |hash|
205
+ value.each do |k, v|
206
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
207
+ end
208
+ end
209
+ else # model
210
+ temp_model = CloudmersiveValidateApiClient.const_get(type).new
211
+ temp_model.build_from_hash(value)
212
+ end
213
+ end
214
+
215
+ # Returns the string representation of the object
216
+ # @return [String] String presentation of the object
217
+ def to_s
218
+ to_hash.to_s
219
+ end
220
+
221
+ # to_body is an alias to to_hash (backward compatibility)
222
+ # @return [Hash] Returns the object in the form of hash
223
+ def to_body
224
+ to_hash
225
+ end
226
+
227
+ # Returns the object in the form of hash
228
+ # @return [Hash] Returns the object in the form of hash
229
+ def to_hash
230
+ hash = {}
231
+ self.class.attribute_map.each_pair do |attr, param|
232
+ value = self.send(attr)
233
+ next if value.nil?
234
+ hash[param] = _to_hash(value)
235
+ end
236
+ hash
237
+ end
238
+
239
+ # Outputs non-array value in the form of hash
240
+ # For object, use to_hash. Otherwise, just return the value
241
+ # @param [Object] value Any valid value
242
+ # @return [Hash] Returns the value in the form of hash
243
+ def _to_hash(value)
244
+ if value.is_a?(Array)
245
+ value.compact.map{ |v| _to_hash(v) }
246
+ elsif value.is_a?(Hash)
247
+ {}.tap do |hash|
248
+ value.each { |k, v| hash[k] = _to_hash(v) }
249
+ end
250
+ elsif value.respond_to? :to_hash
251
+ value.to_hash
252
+ else
253
+ value
254
+ end
255
+ end
256
+
257
+ end
258
+
259
+ end