cloudmersive-validate-api-client 1.3.6 → 1.4.2

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 (132) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +25 -9
  3. data/cloudmersive-validate-api-client.gemspec +1 -1
  4. data/docs/AddressApi.md +166 -1
  5. data/docs/AddressGetServersResponse.md +2 -2
  6. data/docs/AddressVerifySyntaxOnlyResponse.md +3 -0
  7. data/docs/DomainApi.md +8 -8
  8. data/docs/EmailApi.md +3 -3
  9. data/docs/GetTimezonesRequest.md +8 -0
  10. data/docs/GetTimezonesResponse.md +13 -0
  11. data/docs/IPAddressApi.md +1 -1
  12. data/docs/LeadEnrichmentApi.md +61 -0
  13. data/docs/LeadEnrichmentRequest.md +21 -0
  14. data/docs/LeadEnrichmentResponse.md +25 -0
  15. data/docs/NameApi.md +59 -4
  16. data/docs/ParseAddressResponse.md +2 -1
  17. data/docs/PhoneNumberApi.md +1 -1
  18. data/docs/Timezone.md +10 -0
  19. data/docs/UserAgentApi.md +1 -1
  20. data/docs/ValidateAddressRequest.md +13 -0
  21. data/docs/ValidateAddressResponse.md +10 -0
  22. data/docs/ValidateCountryRequest.md +8 -0
  23. data/docs/ValidateCountryResponse.md +13 -0
  24. data/docs/ValidateIdentifierRequest.md +15 -0
  25. data/docs/ValidateIdentifierResponse.md +9 -0
  26. data/docs/ValidateUrlRequestFull.md +1 -1
  27. data/docs/ValidateUrlRequestSyntaxOnly.md +1 -1
  28. data/docs/VatApi.md +5 -5
  29. data/docs/VatLookupRequest.md +1 -1
  30. data/docs/VatLookupResponse.md +12 -5
  31. data/docs/WhoisResponse.md +11 -0
  32. data/lib/cloudmersive-validate-api-client.rb +13 -1
  33. data/lib/cloudmersive-validate-api-client/api/address_api.rb +167 -2
  34. data/lib/cloudmersive-validate-api-client/api/domain_api.rb +9 -9
  35. data/lib/cloudmersive-validate-api-client/api/email_api.rb +4 -4
  36. data/lib/cloudmersive-validate-api-client/api/ip_address_api.rb +2 -2
  37. data/lib/cloudmersive-validate-api-client/api/lead_enrichment_api.rb +78 -0
  38. data/lib/cloudmersive-validate-api-client/api/name_api.rb +60 -5
  39. data/lib/cloudmersive-validate-api-client/api/phone_number_api.rb +2 -2
  40. data/lib/cloudmersive-validate-api-client/api/user_agent_api.rb +2 -2
  41. data/lib/cloudmersive-validate-api-client/api/vat_api.rb +6 -6
  42. data/lib/cloudmersive-validate-api-client/api_client.rb +1 -1
  43. data/lib/cloudmersive-validate-api-client/api_error.rb +1 -1
  44. data/lib/cloudmersive-validate-api-client/configuration.rb +1 -1
  45. data/lib/cloudmersive-validate-api-client/models/address_get_servers_response.rb +3 -1
  46. data/lib/cloudmersive-validate-api-client/models/address_verify_syntax_only_response.rb +35 -5
  47. data/lib/cloudmersive-validate-api-client/models/check_response.rb +1 -1
  48. data/lib/cloudmersive-validate-api-client/models/first_name_validation_request.rb +1 -1
  49. data/lib/cloudmersive-validate-api-client/models/first_name_validation_response.rb +1 -1
  50. data/lib/cloudmersive-validate-api-client/models/full_email_validation_response.rb +1 -1
  51. data/lib/cloudmersive-validate-api-client/models/full_name_validation_request.rb +1 -1
  52. data/lib/cloudmersive-validate-api-client/models/full_name_validation_response.rb +1 -1
  53. data/lib/cloudmersive-validate-api-client/models/geolocate_response.rb +1 -1
  54. data/lib/cloudmersive-validate-api-client/models/get_gender_request.rb +1 -1
  55. data/lib/cloudmersive-validate-api-client/models/get_gender_response.rb +1 -1
  56. data/lib/cloudmersive-validate-api-client/models/get_timezones_request.rb +189 -0
  57. data/lib/cloudmersive-validate-api-client/models/get_timezones_response.rb +241 -0
  58. data/lib/cloudmersive-validate-api-client/models/last_name_validation_request.rb +1 -1
  59. data/lib/cloudmersive-validate-api-client/models/last_name_validation_response.rb +1 -1
  60. data/lib/cloudmersive-validate-api-client/models/lead_enrichment_request.rb +319 -0
  61. data/lib/cloudmersive-validate-api-client/models/lead_enrichment_response.rb +359 -0
  62. data/lib/cloudmersive-validate-api-client/models/parse_address_request.rb +1 -1
  63. data/lib/cloudmersive-validate-api-client/models/parse_address_response.rb +18 -8
  64. data/lib/cloudmersive-validate-api-client/models/phone_number_validate_request.rb +1 -1
  65. data/lib/cloudmersive-validate-api-client/models/phone_number_validation_response.rb +1 -1
  66. data/lib/cloudmersive-validate-api-client/models/timezone.rb +209 -0
  67. data/lib/cloudmersive-validate-api-client/models/user_agent_validate_request.rb +1 -1
  68. data/lib/cloudmersive-validate-api-client/models/user_agent_validate_response.rb +1 -1
  69. data/lib/cloudmersive-validate-api-client/models/validate_address_request.rb +239 -0
  70. data/lib/cloudmersive-validate-api-client/models/validate_address_response.rb +209 -0
  71. data/lib/cloudmersive-validate-api-client/models/validate_country_request.rb +189 -0
  72. data/lib/cloudmersive-validate-api-client/models/validate_country_response.rb +241 -0
  73. data/lib/cloudmersive-validate-api-client/models/validate_identifier_request.rb +259 -0
  74. data/lib/cloudmersive-validate-api-client/models/validate_identifier_response.rb +199 -0
  75. data/lib/cloudmersive-validate-api-client/models/validate_url_request_full.rb +2 -1
  76. data/lib/cloudmersive-validate-api-client/models/validate_url_request_syntax_only.rb +2 -1
  77. data/lib/cloudmersive-validate-api-client/models/validate_url_response_full.rb +1 -1
  78. data/lib/cloudmersive-validate-api-client/models/validate_url_response_syntax_only.rb +1 -1
  79. data/lib/cloudmersive-validate-api-client/models/vat_lookup_request.rb +2 -1
  80. data/lib/cloudmersive-validate-api-client/models/vat_lookup_response.rb +80 -5
  81. data/lib/cloudmersive-validate-api-client/models/whois_response.rb +112 -2
  82. data/lib/cloudmersive-validate-api-client/version.rb +2 -2
  83. data/spec/api/address_api_spec.rb +37 -1
  84. data/spec/api/domain_api_spec.rb +3 -3
  85. data/spec/api/email_api_spec.rb +1 -1
  86. data/spec/api/ip_address_api_spec.rb +1 -1
  87. data/spec/api/lead_enrichment_api_spec.rb +47 -0
  88. data/spec/api/name_api_spec.rb +13 -1
  89. data/spec/api/phone_number_api_spec.rb +1 -1
  90. data/spec/api/user_agent_api_spec.rb +1 -1
  91. data/spec/api/vat_api_spec.rb +3 -3
  92. data/spec/api_client_spec.rb +1 -1
  93. data/spec/configuration_spec.rb +1 -1
  94. data/spec/models/address_get_servers_response_spec.rb +1 -1
  95. data/spec/models/address_verify_syntax_only_response_spec.rb +19 -1
  96. data/spec/models/check_response_spec.rb +1 -1
  97. data/spec/models/first_name_validation_request_spec.rb +1 -1
  98. data/spec/models/first_name_validation_response_spec.rb +1 -1
  99. data/spec/models/full_email_validation_response_spec.rb +1 -1
  100. data/spec/models/full_name_validation_request_spec.rb +1 -1
  101. data/spec/models/full_name_validation_response_spec.rb +1 -1
  102. data/spec/models/geolocate_response_spec.rb +1 -1
  103. data/spec/models/get_gender_request_spec.rb +1 -1
  104. data/spec/models/get_gender_response_spec.rb +1 -1
  105. data/spec/models/get_timezones_request_spec.rb +42 -0
  106. data/spec/models/get_timezones_response_spec.rb +72 -0
  107. data/spec/models/last_name_validation_request_spec.rb +1 -1
  108. data/spec/models/last_name_validation_response_spec.rb +1 -1
  109. data/spec/models/lead_enrichment_request_spec.rb +120 -0
  110. data/spec/models/lead_enrichment_response_spec.rb +144 -0
  111. data/spec/models/parse_address_request_spec.rb +1 -1
  112. data/spec/models/parse_address_response_spec.rb +8 -2
  113. data/spec/models/phone_number_validate_request_spec.rb +1 -1
  114. data/spec/models/phone_number_validation_response_spec.rb +1 -1
  115. data/spec/models/timezone_spec.rb +54 -0
  116. data/spec/models/user_agent_validate_request_spec.rb +1 -1
  117. data/spec/models/user_agent_validate_response_spec.rb +1 -1
  118. data/spec/models/validate_address_request_spec.rb +72 -0
  119. data/spec/models/validate_address_response_spec.rb +54 -0
  120. data/spec/models/validate_country_request_spec.rb +42 -0
  121. data/spec/models/validate_country_response_spec.rb +72 -0
  122. data/spec/models/validate_identifier_request_spec.rb +84 -0
  123. data/spec/models/validate_identifier_response_spec.rb +48 -0
  124. data/spec/models/validate_url_request_full_spec.rb +1 -1
  125. data/spec/models/validate_url_request_syntax_only_spec.rb +1 -1
  126. data/spec/models/validate_url_response_full_spec.rb +1 -1
  127. data/spec/models/validate_url_response_syntax_only_spec.rb +1 -1
  128. data/spec/models/vat_lookup_request_spec.rb +1 -1
  129. data/spec/models/vat_lookup_response_spec.rb +43 -1
  130. data/spec/models/whois_response_spec.rb +67 -1
  131. data/spec/spec_helper.rb +1 -1
  132. metadata +51 -16
@@ -6,7 +6,7 @@
6
6
  OpenAPI spec version: v1
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
- Swagger Codegen version: unset
9
+ Swagger Codegen version: 2.3.1
10
10
 
11
11
  =end
12
12
 
@@ -0,0 +1,209 @@
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
+ # IANA/Olsen time zone
17
+ class Timezone
18
+ # Name of the Time Zone
19
+ attr_accessor :name
20
+
21
+ # UTC offset for this time zone
22
+ attr_accessor :base_utc_offset
23
+
24
+ # The current time (Now) in this time zone
25
+ attr_accessor :now
26
+
27
+
28
+ # Attribute mapping from ruby-style variable name to JSON key.
29
+ def self.attribute_map
30
+ {
31
+ :'name' => :'Name',
32
+ :'base_utc_offset' => :'BaseUTCOffset',
33
+ :'now' => :'Now'
34
+ }
35
+ end
36
+
37
+ # Attribute type mapping.
38
+ def self.swagger_types
39
+ {
40
+ :'name' => :'String',
41
+ :'base_utc_offset' => :'String',
42
+ :'now' => :'DateTime'
43
+ }
44
+ end
45
+
46
+ # Initializes the object
47
+ # @param [Hash] attributes Model attributes in the form of hash
48
+ def initialize(attributes = {})
49
+ return unless attributes.is_a?(Hash)
50
+
51
+ # convert string to symbol for hash key
52
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
53
+
54
+ if attributes.has_key?(:'Name')
55
+ self.name = attributes[:'Name']
56
+ end
57
+
58
+ if attributes.has_key?(:'BaseUTCOffset')
59
+ self.base_utc_offset = attributes[:'BaseUTCOffset']
60
+ end
61
+
62
+ if attributes.has_key?(:'Now')
63
+ self.now = attributes[:'Now']
64
+ end
65
+
66
+ end
67
+
68
+ # Show invalid properties with the reasons. Usually used together with valid?
69
+ # @return Array for valid properties with the reasons
70
+ def list_invalid_properties
71
+ invalid_properties = Array.new
72
+ return invalid_properties
73
+ end
74
+
75
+ # Check to see if the all the properties in the model are valid
76
+ # @return true if the model is valid
77
+ def valid?
78
+ return true
79
+ end
80
+
81
+ # Checks equality by comparing each attribute.
82
+ # @param [Object] Object to be compared
83
+ def ==(o)
84
+ return true if self.equal?(o)
85
+ self.class == o.class &&
86
+ name == o.name &&
87
+ base_utc_offset == o.base_utc_offset &&
88
+ now == o.now
89
+ end
90
+
91
+ # @see the `==` method
92
+ # @param [Object] Object to be compared
93
+ def eql?(o)
94
+ self == o
95
+ end
96
+
97
+ # Calculates hash code according to all attributes.
98
+ # @return [Fixnum] Hash code
99
+ def hash
100
+ [name, base_utc_offset, now].hash
101
+ end
102
+
103
+ # Builds the object from hash
104
+ # @param [Hash] attributes Model attributes in the form of hash
105
+ # @return [Object] Returns the model itself
106
+ def build_from_hash(attributes)
107
+ return nil unless attributes.is_a?(Hash)
108
+ self.class.swagger_types.each_pair do |key, type|
109
+ if type =~ /\AArray<(.*)>/i
110
+ # check to ensure the input is an array given that the the attribute
111
+ # is documented as an array but the input is not
112
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
113
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
114
+ end
115
+ elsif !attributes[self.class.attribute_map[key]].nil?
116
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
117
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
118
+ end
119
+
120
+ self
121
+ end
122
+
123
+ # Deserializes the data based on type
124
+ # @param string type Data type
125
+ # @param string value Value to be deserialized
126
+ # @return [Object] Deserialized data
127
+ def _deserialize(type, value)
128
+ case type.to_sym
129
+ when :DateTime
130
+ DateTime.parse(value)
131
+ when :Date
132
+ Date.parse(value)
133
+ when :String
134
+ value.to_s
135
+ when :Integer
136
+ value.to_i
137
+ when :Float
138
+ value.to_f
139
+ when :BOOLEAN
140
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
141
+ true
142
+ else
143
+ false
144
+ end
145
+ when :Object
146
+ # generic object (usually a Hash), return directly
147
+ value
148
+ when /\AArray<(?<inner_type>.+)>\z/
149
+ inner_type = Regexp.last_match[:inner_type]
150
+ value.map { |v| _deserialize(inner_type, v) }
151
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
152
+ k_type = Regexp.last_match[:k_type]
153
+ v_type = Regexp.last_match[:v_type]
154
+ {}.tap do |hash|
155
+ value.each do |k, v|
156
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
157
+ end
158
+ end
159
+ else # model
160
+ temp_model = CloudmersiveValidateApiClient.const_get(type).new
161
+ temp_model.build_from_hash(value)
162
+ end
163
+ end
164
+
165
+ # Returns the string representation of the object
166
+ # @return [String] String presentation of the object
167
+ def to_s
168
+ to_hash.to_s
169
+ end
170
+
171
+ # to_body is an alias to to_hash (backward compatibility)
172
+ # @return [Hash] Returns the object in the form of hash
173
+ def to_body
174
+ to_hash
175
+ end
176
+
177
+ # Returns the object in the form of hash
178
+ # @return [Hash] Returns the object in the form of hash
179
+ def to_hash
180
+ hash = {}
181
+ self.class.attribute_map.each_pair do |attr, param|
182
+ value = self.send(attr)
183
+ next if value.nil?
184
+ hash[param] = _to_hash(value)
185
+ end
186
+ hash
187
+ end
188
+
189
+ # Outputs non-array value in the form of hash
190
+ # For object, use to_hash. Otherwise, just return the value
191
+ # @param [Object] value Any valid value
192
+ # @return [Hash] Returns the value in the form of hash
193
+ def _to_hash(value)
194
+ if value.is_a?(Array)
195
+ value.compact.map{ |v| _to_hash(v) }
196
+ elsif value.is_a?(Hash)
197
+ {}.tap do |hash|
198
+ value.each { |k, v| hash[k] = _to_hash(v) }
199
+ end
200
+ elsif value.respond_to? :to_hash
201
+ value.to_hash
202
+ else
203
+ value
204
+ end
205
+ end
206
+
207
+ end
208
+
209
+ end
@@ -6,7 +6,7 @@
6
6
  OpenAPI spec version: v1
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
- Swagger Codegen version: unset
9
+ Swagger Codegen version: 2.3.1
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
6
6
  OpenAPI spec version: v1
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
- Swagger Codegen version: unset
9
+ Swagger Codegen version: 2.3.1
10
10
 
11
11
  =end
12
12
 
@@ -0,0 +1,239 @@
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
+ # Request to Validate a Street Address
17
+ class ValidateAddressRequest
18
+ # Required; Street address to validate, such as '2950 Buskirk Ave.'
19
+ attr_accessor :street_address
20
+
21
+ # Required; City part of the addrerss to validate, such as 'Walnut Creek'
22
+ attr_accessor :city
23
+
24
+ # Required; State or province of the address to validate, such as 'CA' or 'California'
25
+ attr_accessor :state_or_province
26
+
27
+ # Optional (recommended); Zip code or postal code of the address to validate, such as '94597'
28
+ attr_accessor :postal_code
29
+
30
+ # Optional (recommended); Name of the country, such as 'United States'. If left blank, and CountryCode is also left blank, will default to United States. Global countries are supported.
31
+ attr_accessor :country_full_name
32
+
33
+ # Optional; two-letter country code (Two-letter ISO 3166-1 country code) of the country. If left blank, and CountryFullName is also left blank, will default to United States. Global countries are supported.
34
+ attr_accessor :country_code
35
+
36
+
37
+ # Attribute mapping from ruby-style variable name to JSON key.
38
+ def self.attribute_map
39
+ {
40
+ :'street_address' => :'StreetAddress',
41
+ :'city' => :'City',
42
+ :'state_or_province' => :'StateOrProvince',
43
+ :'postal_code' => :'PostalCode',
44
+ :'country_full_name' => :'CountryFullName',
45
+ :'country_code' => :'CountryCode'
46
+ }
47
+ end
48
+
49
+ # Attribute type mapping.
50
+ def self.swagger_types
51
+ {
52
+ :'street_address' => :'String',
53
+ :'city' => :'String',
54
+ :'state_or_province' => :'String',
55
+ :'postal_code' => :'String',
56
+ :'country_full_name' => :'String',
57
+ :'country_code' => :'String'
58
+ }
59
+ end
60
+
61
+ # Initializes the object
62
+ # @param [Hash] attributes Model attributes in the form of hash
63
+ def initialize(attributes = {})
64
+ return unless attributes.is_a?(Hash)
65
+
66
+ # convert string to symbol for hash key
67
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
68
+
69
+ if attributes.has_key?(:'StreetAddress')
70
+ self.street_address = attributes[:'StreetAddress']
71
+ end
72
+
73
+ if attributes.has_key?(:'City')
74
+ self.city = attributes[:'City']
75
+ end
76
+
77
+ if attributes.has_key?(:'StateOrProvince')
78
+ self.state_or_province = attributes[:'StateOrProvince']
79
+ end
80
+
81
+ if attributes.has_key?(:'PostalCode')
82
+ self.postal_code = attributes[:'PostalCode']
83
+ end
84
+
85
+ if attributes.has_key?(:'CountryFullName')
86
+ self.country_full_name = attributes[:'CountryFullName']
87
+ end
88
+
89
+ if attributes.has_key?(:'CountryCode')
90
+ self.country_code = attributes[:'CountryCode']
91
+ end
92
+
93
+ end
94
+
95
+ # Show invalid properties with the reasons. Usually used together with valid?
96
+ # @return Array for valid properties with the reasons
97
+ def list_invalid_properties
98
+ invalid_properties = Array.new
99
+ return invalid_properties
100
+ end
101
+
102
+ # Check to see if the all the properties in the model are valid
103
+ # @return true if the model is valid
104
+ def valid?
105
+ return true
106
+ end
107
+
108
+ # Checks equality by comparing each attribute.
109
+ # @param [Object] Object to be compared
110
+ def ==(o)
111
+ return true if self.equal?(o)
112
+ self.class == o.class &&
113
+ street_address == o.street_address &&
114
+ city == o.city &&
115
+ state_or_province == o.state_or_province &&
116
+ postal_code == o.postal_code &&
117
+ country_full_name == o.country_full_name &&
118
+ country_code == o.country_code
119
+ end
120
+
121
+ # @see the `==` method
122
+ # @param [Object] Object to be compared
123
+ def eql?(o)
124
+ self == o
125
+ end
126
+
127
+ # Calculates hash code according to all attributes.
128
+ # @return [Fixnum] Hash code
129
+ def hash
130
+ [street_address, city, state_or_province, postal_code, country_full_name, country_code].hash
131
+ end
132
+
133
+ # Builds the object from hash
134
+ # @param [Hash] attributes Model attributes in the form of hash
135
+ # @return [Object] Returns the model itself
136
+ def build_from_hash(attributes)
137
+ return nil unless attributes.is_a?(Hash)
138
+ self.class.swagger_types.each_pair do |key, type|
139
+ if type =~ /\AArray<(.*)>/i
140
+ # check to ensure the input is an array given that the the attribute
141
+ # is documented as an array but the input is not
142
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
143
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
144
+ end
145
+ elsif !attributes[self.class.attribute_map[key]].nil?
146
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
147
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
148
+ end
149
+
150
+ self
151
+ end
152
+
153
+ # Deserializes the data based on type
154
+ # @param string type Data type
155
+ # @param string value Value to be deserialized
156
+ # @return [Object] Deserialized data
157
+ def _deserialize(type, value)
158
+ case type.to_sym
159
+ when :DateTime
160
+ DateTime.parse(value)
161
+ when :Date
162
+ Date.parse(value)
163
+ when :String
164
+ value.to_s
165
+ when :Integer
166
+ value.to_i
167
+ when :Float
168
+ value.to_f
169
+ when :BOOLEAN
170
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
171
+ true
172
+ else
173
+ false
174
+ end
175
+ when :Object
176
+ # generic object (usually a Hash), return directly
177
+ value
178
+ when /\AArray<(?<inner_type>.+)>\z/
179
+ inner_type = Regexp.last_match[:inner_type]
180
+ value.map { |v| _deserialize(inner_type, v) }
181
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
182
+ k_type = Regexp.last_match[:k_type]
183
+ v_type = Regexp.last_match[:v_type]
184
+ {}.tap do |hash|
185
+ value.each do |k, v|
186
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
187
+ end
188
+ end
189
+ else # model
190
+ temp_model = CloudmersiveValidateApiClient.const_get(type).new
191
+ temp_model.build_from_hash(value)
192
+ end
193
+ end
194
+
195
+ # Returns the string representation of the object
196
+ # @return [String] String presentation of the object
197
+ def to_s
198
+ to_hash.to_s
199
+ end
200
+
201
+ # to_body is an alias to to_hash (backward compatibility)
202
+ # @return [Hash] Returns the object in the form of hash
203
+ def to_body
204
+ to_hash
205
+ end
206
+
207
+ # Returns the object in the form of hash
208
+ # @return [Hash] Returns the object in the form of hash
209
+ def to_hash
210
+ hash = {}
211
+ self.class.attribute_map.each_pair do |attr, param|
212
+ value = self.send(attr)
213
+ next if value.nil?
214
+ hash[param] = _to_hash(value)
215
+ end
216
+ hash
217
+ end
218
+
219
+ # Outputs non-array value in the form of hash
220
+ # For object, use to_hash. Otherwise, just return the value
221
+ # @param [Object] value Any valid value
222
+ # @return [Hash] Returns the value in the form of hash
223
+ def _to_hash(value)
224
+ if value.is_a?(Array)
225
+ value.compact.map{ |v| _to_hash(v) }
226
+ elsif value.is_a?(Hash)
227
+ {}.tap do |hash|
228
+ value.each { |k, v| hash[k] = _to_hash(v) }
229
+ end
230
+ elsif value.respond_to? :to_hash
231
+ value.to_hash
232
+ else
233
+ value
234
+ end
235
+ end
236
+
237
+ end
238
+
239
+ end