cloudmersive-validate-api-client 1.3.7 → 1.3.9

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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +14 -8
  3. data/docs/AddressApi.md +56 -1
  4. data/docs/AddressVerifySyntaxOnlyResponse.md +3 -0
  5. data/docs/DomainApi.md +8 -8
  6. data/docs/EmailApi.md +3 -3
  7. data/docs/IPAddressApi.md +1 -1
  8. data/docs/LeadEnrichmentApi.md +61 -0
  9. data/docs/LeadEnrichmentRequest.md +21 -0
  10. data/docs/LeadEnrichmentResponse.md +25 -0
  11. data/docs/NameApi.md +5 -5
  12. data/docs/ParseAddressResponse.md +2 -1
  13. data/docs/PhoneNumberApi.md +1 -1
  14. data/docs/UserAgentApi.md +1 -1
  15. data/docs/ValidateCountryRequest.md +8 -0
  16. data/docs/ValidateCountryResponse.md +12 -0
  17. data/docs/VatApi.md +1 -1
  18. data/docs/VatLookupResponse.md +8 -1
  19. data/docs/WhoisResponse.md +11 -0
  20. data/lib/cloudmersive-validate-api-client.rb +5 -0
  21. data/lib/cloudmersive-validate-api-client/api/address_api.rb +56 -1
  22. data/lib/cloudmersive-validate-api-client/api/domain_api.rb +8 -8
  23. data/lib/cloudmersive-validate-api-client/api/email_api.rb +3 -3
  24. data/lib/cloudmersive-validate-api-client/api/ip_address_api.rb +1 -1
  25. data/lib/cloudmersive-validate-api-client/api/lead_enrichment_api.rb +78 -0
  26. data/lib/cloudmersive-validate-api-client/api/name_api.rb +5 -5
  27. data/lib/cloudmersive-validate-api-client/api/phone_number_api.rb +1 -1
  28. data/lib/cloudmersive-validate-api-client/api/user_agent_api.rb +1 -1
  29. data/lib/cloudmersive-validate-api-client/api/vat_api.rb +1 -1
  30. data/lib/cloudmersive-validate-api-client/models/address_verify_syntax_only_response.rb +34 -4
  31. data/lib/cloudmersive-validate-api-client/models/lead_enrichment_request.rb +319 -0
  32. data/lib/cloudmersive-validate-api-client/models/lead_enrichment_response.rb +359 -0
  33. data/lib/cloudmersive-validate-api-client/models/parse_address_response.rb +17 -7
  34. data/lib/cloudmersive-validate-api-client/models/validate_country_request.rb +189 -0
  35. data/lib/cloudmersive-validate-api-client/models/validate_country_response.rb +229 -0
  36. data/lib/cloudmersive-validate-api-client/models/vat_lookup_response.rb +75 -5
  37. data/lib/cloudmersive-validate-api-client/models/whois_response.rb +111 -1
  38. data/lib/cloudmersive-validate-api-client/version.rb +1 -1
  39. data/spec/api/address_api_spec.rb +12 -0
  40. data/spec/api/domain_api_spec.rb +2 -2
  41. data/spec/api/lead_enrichment_api_spec.rb +47 -0
  42. data/spec/models/address_verify_syntax_only_response_spec.rb +18 -0
  43. data/spec/models/lead_enrichment_request_spec.rb +120 -0
  44. data/spec/models/lead_enrichment_response_spec.rb +144 -0
  45. data/spec/models/parse_address_response_spec.rb +7 -1
  46. data/spec/models/validate_country_request_spec.rb +42 -0
  47. data/spec/models/validate_country_response_spec.rb +66 -0
  48. data/spec/models/vat_lookup_response_spec.rb +42 -0
  49. data/spec/models/whois_response_spec.rb +66 -0
  50. metadata +17 -2
@@ -18,18 +18,33 @@ module CloudmersiveValidateApiClient
18
18
  # True if the email address is syntactically valid, false if it is not
19
19
  attr_accessor :valid_address
20
20
 
21
+ # Domain name of the email address
22
+ attr_accessor :domain
23
+
24
+ # True if the email domain name is a free provider (typically a free to sign up web email provider for consumers / personal use), false otherwise.
25
+ attr_accessor :is_free_email_provider
26
+
27
+ # True if the email address is a disposable email address, false otherwise; these disposable providers are not typically used to receive email and so will have a low likelihood of opening mail sent there.
28
+ attr_accessor :is_disposable
29
+
21
30
 
22
31
  # Attribute mapping from ruby-style variable name to JSON key.
23
32
  def self.attribute_map
24
33
  {
25
- :'valid_address' => :'ValidAddress'
34
+ :'valid_address' => :'ValidAddress',
35
+ :'domain' => :'Domain',
36
+ :'is_free_email_provider' => :'IsFreeEmailProvider',
37
+ :'is_disposable' => :'IsDisposable'
26
38
  }
27
39
  end
28
40
 
29
41
  # Attribute type mapping.
30
42
  def self.swagger_types
31
43
  {
32
- :'valid_address' => :'BOOLEAN'
44
+ :'valid_address' => :'BOOLEAN',
45
+ :'domain' => :'String',
46
+ :'is_free_email_provider' => :'BOOLEAN',
47
+ :'is_disposable' => :'BOOLEAN'
33
48
  }
34
49
  end
35
50
 
@@ -45,6 +60,18 @@ module CloudmersiveValidateApiClient
45
60
  self.valid_address = attributes[:'ValidAddress']
46
61
  end
47
62
 
63
+ if attributes.has_key?(:'Domain')
64
+ self.domain = attributes[:'Domain']
65
+ end
66
+
67
+ if attributes.has_key?(:'IsFreeEmailProvider')
68
+ self.is_free_email_provider = attributes[:'IsFreeEmailProvider']
69
+ end
70
+
71
+ if attributes.has_key?(:'IsDisposable')
72
+ self.is_disposable = attributes[:'IsDisposable']
73
+ end
74
+
48
75
  end
49
76
 
50
77
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -65,7 +92,10 @@ module CloudmersiveValidateApiClient
65
92
  def ==(o)
66
93
  return true if self.equal?(o)
67
94
  self.class == o.class &&
68
- valid_address == o.valid_address
95
+ valid_address == o.valid_address &&
96
+ domain == o.domain &&
97
+ is_free_email_provider == o.is_free_email_provider &&
98
+ is_disposable == o.is_disposable
69
99
  end
70
100
 
71
101
  # @see the `==` method
@@ -77,7 +107,7 @@ module CloudmersiveValidateApiClient
77
107
  # Calculates hash code according to all attributes.
78
108
  # @return [Fixnum] Hash code
79
109
  def hash
80
- [valid_address].hash
110
+ [valid_address, domain, is_free_email_provider, is_disposable].hash
81
111
  end
82
112
 
83
113
  # Builds the object from hash
@@ -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
+ # Input lead contact; fill in known fields to extend them with matched field values
17
+ class LeadEnrichmentRequest
18
+ # The person's business email address for the lead
19
+ attr_accessor :contact_business_email
20
+
21
+ # The person's first name for the lead
22
+ attr_accessor :contact_first_name
23
+
24
+ # The person's last name for the lead
25
+ attr_accessor :contact_last_name
26
+
27
+ # Name of the company for the lead
28
+ attr_accessor :company_name
29
+
30
+ # Domain name / website for the lead
31
+ attr_accessor :company_domain_name
32
+
33
+ # House number of the address of the company for the lead
34
+ attr_accessor :company_house_number
35
+
36
+ # Street name of the address of the company for the lead
37
+ attr_accessor :company_street
38
+
39
+ # City of the address of the company for the lead
40
+ attr_accessor :company_city
41
+
42
+ # State or Province of the address of the company for the lead
43
+ attr_accessor :company_state_or_province
44
+
45
+ # Postal Code of the address of the company for the lead
46
+ attr_accessor :company_postal_code
47
+
48
+ # Country of the address of the company for the lead
49
+ attr_accessor :company_country
50
+
51
+ # Country Code (2-letter ISO 3166-1) of the address of the company for the lead
52
+ attr_accessor :company_country_code
53
+
54
+ # Telephone of the company office for the lead
55
+ attr_accessor :company_telephone
56
+
57
+ # VAT number of the company for the lead
58
+ attr_accessor :company_vat_number
59
+
60
+
61
+ # Attribute mapping from ruby-style variable name to JSON key.
62
+ def self.attribute_map
63
+ {
64
+ :'contact_business_email' => :'ContactBusinessEmail',
65
+ :'contact_first_name' => :'ContactFirstName',
66
+ :'contact_last_name' => :'ContactLastName',
67
+ :'company_name' => :'CompanyName',
68
+ :'company_domain_name' => :'CompanyDomainName',
69
+ :'company_house_number' => :'CompanyHouseNumber',
70
+ :'company_street' => :'CompanyStreet',
71
+ :'company_city' => :'CompanyCity',
72
+ :'company_state_or_province' => :'CompanyStateOrProvince',
73
+ :'company_postal_code' => :'CompanyPostalCode',
74
+ :'company_country' => :'CompanyCountry',
75
+ :'company_country_code' => :'CompanyCountryCode',
76
+ :'company_telephone' => :'CompanyTelephone',
77
+ :'company_vat_number' => :'CompanyVATNumber'
78
+ }
79
+ end
80
+
81
+ # Attribute type mapping.
82
+ def self.swagger_types
83
+ {
84
+ :'contact_business_email' => :'String',
85
+ :'contact_first_name' => :'String',
86
+ :'contact_last_name' => :'String',
87
+ :'company_name' => :'String',
88
+ :'company_domain_name' => :'String',
89
+ :'company_house_number' => :'String',
90
+ :'company_street' => :'String',
91
+ :'company_city' => :'String',
92
+ :'company_state_or_province' => :'String',
93
+ :'company_postal_code' => :'String',
94
+ :'company_country' => :'String',
95
+ :'company_country_code' => :'String',
96
+ :'company_telephone' => :'String',
97
+ :'company_vat_number' => :'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?(:'ContactBusinessEmail')
110
+ self.contact_business_email = attributes[:'ContactBusinessEmail']
111
+ end
112
+
113
+ if attributes.has_key?(:'ContactFirstName')
114
+ self.contact_first_name = attributes[:'ContactFirstName']
115
+ end
116
+
117
+ if attributes.has_key?(:'ContactLastName')
118
+ self.contact_last_name = attributes[:'ContactLastName']
119
+ end
120
+
121
+ if attributes.has_key?(:'CompanyName')
122
+ self.company_name = attributes[:'CompanyName']
123
+ end
124
+
125
+ if attributes.has_key?(:'CompanyDomainName')
126
+ self.company_domain_name = attributes[:'CompanyDomainName']
127
+ end
128
+
129
+ if attributes.has_key?(:'CompanyHouseNumber')
130
+ self.company_house_number = attributes[:'CompanyHouseNumber']
131
+ end
132
+
133
+ if attributes.has_key?(:'CompanyStreet')
134
+ self.company_street = attributes[:'CompanyStreet']
135
+ end
136
+
137
+ if attributes.has_key?(:'CompanyCity')
138
+ self.company_city = attributes[:'CompanyCity']
139
+ end
140
+
141
+ if attributes.has_key?(:'CompanyStateOrProvince')
142
+ self.company_state_or_province = attributes[:'CompanyStateOrProvince']
143
+ end
144
+
145
+ if attributes.has_key?(:'CompanyPostalCode')
146
+ self.company_postal_code = attributes[:'CompanyPostalCode']
147
+ end
148
+
149
+ if attributes.has_key?(:'CompanyCountry')
150
+ self.company_country = attributes[:'CompanyCountry']
151
+ end
152
+
153
+ if attributes.has_key?(:'CompanyCountryCode')
154
+ self.company_country_code = attributes[:'CompanyCountryCode']
155
+ end
156
+
157
+ if attributes.has_key?(:'CompanyTelephone')
158
+ self.company_telephone = attributes[:'CompanyTelephone']
159
+ end
160
+
161
+ if attributes.has_key?(:'CompanyVATNumber')
162
+ self.company_vat_number = attributes[:'CompanyVATNumber']
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
+ contact_business_email == o.contact_business_email &&
186
+ contact_first_name == o.contact_first_name &&
187
+ contact_last_name == o.contact_last_name &&
188
+ company_name == o.company_name &&
189
+ company_domain_name == o.company_domain_name &&
190
+ company_house_number == o.company_house_number &&
191
+ company_street == o.company_street &&
192
+ company_city == o.company_city &&
193
+ company_state_or_province == o.company_state_or_province &&
194
+ company_postal_code == o.company_postal_code &&
195
+ company_country == o.company_country &&
196
+ company_country_code == o.company_country_code &&
197
+ company_telephone == o.company_telephone &&
198
+ company_vat_number == o.company_vat_number
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
+ [contact_business_email, contact_first_name, contact_last_name, company_name, company_domain_name, company_house_number, company_street, company_city, company_state_or_province, company_postal_code, company_country, company_country_code, company_telephone, company_vat_number].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,359 @@
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
+ # Result of the lead enrichment process
17
+ class LeadEnrichmentResponse
18
+ # True if the operation was successful, false otherwise
19
+ attr_accessor :successful
20
+
21
+ # The type of the lead; possible types are Junk (a single individual using a disposable/throwaway email address); Individual (a single individual, typically a consumer, not purchasing on behalf of a business); SmallBusiness (a small business, typically with fewer than 100 employees); MediumBusiness (a medium business, larger than 100 employees but fewer than 1000 employees); Enterprise (a large business with greater than 1000 employees); Business (a business customer of unknown size)
22
+ attr_accessor :lead_type
23
+
24
+ # The person's business email address for the lead
25
+ attr_accessor :contact_business_email
26
+
27
+ # The person's first name for the lead
28
+ attr_accessor :contact_first_name
29
+
30
+ # The person's last name for the lead
31
+ attr_accessor :contact_last_name
32
+
33
+ # Gender for contact name; possible values are Male, Female, and Neutral (can be applied to Male or Female). Requires ContactFirstName.
34
+ attr_accessor :contact_gender
35
+
36
+ # Name of the company for the lead
37
+ attr_accessor :company_name
38
+
39
+ # Domain name / website for the lead
40
+ attr_accessor :company_domain_name
41
+
42
+ # House number of the address of the company for the lead
43
+ attr_accessor :company_house_number
44
+
45
+ # Street name of the address of the company for the lead
46
+ attr_accessor :company_street
47
+
48
+ # City of the address of the company for the lead
49
+ attr_accessor :company_city
50
+
51
+ # State or Province of the address of the company for the lead
52
+ attr_accessor :company_state_or_province
53
+
54
+ # Postal Code of the address of the company for the lead
55
+ attr_accessor :company_postal_code
56
+
57
+ # Country Name of the address of the company for the lead
58
+ attr_accessor :company_country
59
+
60
+ # Country Code (2-letter ISO 3166-1) of the address of the company for the lead
61
+ attr_accessor :company_country_code
62
+
63
+ # Telephone of the company office for the lead
64
+ attr_accessor :company_telephone
65
+
66
+ # VAT number of the company for the lead
67
+ attr_accessor :company_vat_number
68
+
69
+ # Count of employees at the company (estimated), if available
70
+ attr_accessor :employee_count
71
+
72
+
73
+ # Attribute mapping from ruby-style variable name to JSON key.
74
+ def self.attribute_map
75
+ {
76
+ :'successful' => :'Successful',
77
+ :'lead_type' => :'LeadType',
78
+ :'contact_business_email' => :'ContactBusinessEmail',
79
+ :'contact_first_name' => :'ContactFirstName',
80
+ :'contact_last_name' => :'ContactLastName',
81
+ :'contact_gender' => :'ContactGender',
82
+ :'company_name' => :'CompanyName',
83
+ :'company_domain_name' => :'CompanyDomainName',
84
+ :'company_house_number' => :'CompanyHouseNumber',
85
+ :'company_street' => :'CompanyStreet',
86
+ :'company_city' => :'CompanyCity',
87
+ :'company_state_or_province' => :'CompanyStateOrProvince',
88
+ :'company_postal_code' => :'CompanyPostalCode',
89
+ :'company_country' => :'CompanyCountry',
90
+ :'company_country_code' => :'CompanyCountryCode',
91
+ :'company_telephone' => :'CompanyTelephone',
92
+ :'company_vat_number' => :'CompanyVATNumber',
93
+ :'employee_count' => :'EmployeeCount'
94
+ }
95
+ end
96
+
97
+ # Attribute type mapping.
98
+ def self.swagger_types
99
+ {
100
+ :'successful' => :'BOOLEAN',
101
+ :'lead_type' => :'String',
102
+ :'contact_business_email' => :'String',
103
+ :'contact_first_name' => :'String',
104
+ :'contact_last_name' => :'String',
105
+ :'contact_gender' => :'String',
106
+ :'company_name' => :'String',
107
+ :'company_domain_name' => :'String',
108
+ :'company_house_number' => :'String',
109
+ :'company_street' => :'String',
110
+ :'company_city' => :'String',
111
+ :'company_state_or_province' => :'String',
112
+ :'company_postal_code' => :'String',
113
+ :'company_country' => :'String',
114
+ :'company_country_code' => :'String',
115
+ :'company_telephone' => :'String',
116
+ :'company_vat_number' => :'String',
117
+ :'employee_count' => :'Integer'
118
+ }
119
+ end
120
+
121
+ # Initializes the object
122
+ # @param [Hash] attributes Model attributes in the form of hash
123
+ def initialize(attributes = {})
124
+ return unless attributes.is_a?(Hash)
125
+
126
+ # convert string to symbol for hash key
127
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
128
+
129
+ if attributes.has_key?(:'Successful')
130
+ self.successful = attributes[:'Successful']
131
+ end
132
+
133
+ if attributes.has_key?(:'LeadType')
134
+ self.lead_type = attributes[:'LeadType']
135
+ end
136
+
137
+ if attributes.has_key?(:'ContactBusinessEmail')
138
+ self.contact_business_email = attributes[:'ContactBusinessEmail']
139
+ end
140
+
141
+ if attributes.has_key?(:'ContactFirstName')
142
+ self.contact_first_name = attributes[:'ContactFirstName']
143
+ end
144
+
145
+ if attributes.has_key?(:'ContactLastName')
146
+ self.contact_last_name = attributes[:'ContactLastName']
147
+ end
148
+
149
+ if attributes.has_key?(:'ContactGender')
150
+ self.contact_gender = attributes[:'ContactGender']
151
+ end
152
+
153
+ if attributes.has_key?(:'CompanyName')
154
+ self.company_name = attributes[:'CompanyName']
155
+ end
156
+
157
+ if attributes.has_key?(:'CompanyDomainName')
158
+ self.company_domain_name = attributes[:'CompanyDomainName']
159
+ end
160
+
161
+ if attributes.has_key?(:'CompanyHouseNumber')
162
+ self.company_house_number = attributes[:'CompanyHouseNumber']
163
+ end
164
+
165
+ if attributes.has_key?(:'CompanyStreet')
166
+ self.company_street = attributes[:'CompanyStreet']
167
+ end
168
+
169
+ if attributes.has_key?(:'CompanyCity')
170
+ self.company_city = attributes[:'CompanyCity']
171
+ end
172
+
173
+ if attributes.has_key?(:'CompanyStateOrProvince')
174
+ self.company_state_or_province = attributes[:'CompanyStateOrProvince']
175
+ end
176
+
177
+ if attributes.has_key?(:'CompanyPostalCode')
178
+ self.company_postal_code = attributes[:'CompanyPostalCode']
179
+ end
180
+
181
+ if attributes.has_key?(:'CompanyCountry')
182
+ self.company_country = attributes[:'CompanyCountry']
183
+ end
184
+
185
+ if attributes.has_key?(:'CompanyCountryCode')
186
+ self.company_country_code = attributes[:'CompanyCountryCode']
187
+ end
188
+
189
+ if attributes.has_key?(:'CompanyTelephone')
190
+ self.company_telephone = attributes[:'CompanyTelephone']
191
+ end
192
+
193
+ if attributes.has_key?(:'CompanyVATNumber')
194
+ self.company_vat_number = attributes[:'CompanyVATNumber']
195
+ end
196
+
197
+ if attributes.has_key?(:'EmployeeCount')
198
+ self.employee_count = attributes[:'EmployeeCount']
199
+ end
200
+
201
+ end
202
+
203
+ # Show invalid properties with the reasons. Usually used together with valid?
204
+ # @return Array for valid properties with the reasons
205
+ def list_invalid_properties
206
+ invalid_properties = Array.new
207
+ return invalid_properties
208
+ end
209
+
210
+ # Check to see if the all the properties in the model are valid
211
+ # @return true if the model is valid
212
+ def valid?
213
+ return true
214
+ end
215
+
216
+ # Checks equality by comparing each attribute.
217
+ # @param [Object] Object to be compared
218
+ def ==(o)
219
+ return true if self.equal?(o)
220
+ self.class == o.class &&
221
+ successful == o.successful &&
222
+ lead_type == o.lead_type &&
223
+ contact_business_email == o.contact_business_email &&
224
+ contact_first_name == o.contact_first_name &&
225
+ contact_last_name == o.contact_last_name &&
226
+ contact_gender == o.contact_gender &&
227
+ company_name == o.company_name &&
228
+ company_domain_name == o.company_domain_name &&
229
+ company_house_number == o.company_house_number &&
230
+ company_street == o.company_street &&
231
+ company_city == o.company_city &&
232
+ company_state_or_province == o.company_state_or_province &&
233
+ company_postal_code == o.company_postal_code &&
234
+ company_country == o.company_country &&
235
+ company_country_code == o.company_country_code &&
236
+ company_telephone == o.company_telephone &&
237
+ company_vat_number == o.company_vat_number &&
238
+ employee_count == o.employee_count
239
+ end
240
+
241
+ # @see the `==` method
242
+ # @param [Object] Object to be compared
243
+ def eql?(o)
244
+ self == o
245
+ end
246
+
247
+ # Calculates hash code according to all attributes.
248
+ # @return [Fixnum] Hash code
249
+ def hash
250
+ [successful, lead_type, contact_business_email, contact_first_name, contact_last_name, contact_gender, company_name, company_domain_name, company_house_number, company_street, company_city, company_state_or_province, company_postal_code, company_country, company_country_code, company_telephone, company_vat_number, employee_count].hash
251
+ end
252
+
253
+ # Builds the object from hash
254
+ # @param [Hash] attributes Model attributes in the form of hash
255
+ # @return [Object] Returns the model itself
256
+ def build_from_hash(attributes)
257
+ return nil unless attributes.is_a?(Hash)
258
+ self.class.swagger_types.each_pair do |key, type|
259
+ if type =~ /\AArray<(.*)>/i
260
+ # check to ensure the input is an array given that the the attribute
261
+ # is documented as an array but the input is not
262
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
263
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
264
+ end
265
+ elsif !attributes[self.class.attribute_map[key]].nil?
266
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
267
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
268
+ end
269
+
270
+ self
271
+ end
272
+
273
+ # Deserializes the data based on type
274
+ # @param string type Data type
275
+ # @param string value Value to be deserialized
276
+ # @return [Object] Deserialized data
277
+ def _deserialize(type, value)
278
+ case type.to_sym
279
+ when :DateTime
280
+ DateTime.parse(value)
281
+ when :Date
282
+ Date.parse(value)
283
+ when :String
284
+ value.to_s
285
+ when :Integer
286
+ value.to_i
287
+ when :Float
288
+ value.to_f
289
+ when :BOOLEAN
290
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
291
+ true
292
+ else
293
+ false
294
+ end
295
+ when :Object
296
+ # generic object (usually a Hash), return directly
297
+ value
298
+ when /\AArray<(?<inner_type>.+)>\z/
299
+ inner_type = Regexp.last_match[:inner_type]
300
+ value.map { |v| _deserialize(inner_type, v) }
301
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
302
+ k_type = Regexp.last_match[:k_type]
303
+ v_type = Regexp.last_match[:v_type]
304
+ {}.tap do |hash|
305
+ value.each do |k, v|
306
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
307
+ end
308
+ end
309
+ else # model
310
+ temp_model = CloudmersiveValidateApiClient.const_get(type).new
311
+ temp_model.build_from_hash(value)
312
+ end
313
+ end
314
+
315
+ # Returns the string representation of the object
316
+ # @return [String] String presentation of the object
317
+ def to_s
318
+ to_hash.to_s
319
+ end
320
+
321
+ # to_body is an alias to to_hash (backward compatibility)
322
+ # @return [Hash] Returns the object in the form of hash
323
+ def to_body
324
+ to_hash
325
+ end
326
+
327
+ # Returns the object in the form of hash
328
+ # @return [Hash] Returns the object in the form of hash
329
+ def to_hash
330
+ hash = {}
331
+ self.class.attribute_map.each_pair do |attr, param|
332
+ value = self.send(attr)
333
+ next if value.nil?
334
+ hash[param] = _to_hash(value)
335
+ end
336
+ hash
337
+ end
338
+
339
+ # Outputs non-array value in the form of hash
340
+ # For object, use to_hash. Otherwise, just return the value
341
+ # @param [Object] value Any valid value
342
+ # @return [Hash] Returns the value in the form of hash
343
+ def _to_hash(value)
344
+ if value.is_a?(Array)
345
+ value.compact.map{ |v| _to_hash(v) }
346
+ elsif value.is_a?(Hash)
347
+ {}.tap do |hash|
348
+ value.each { |k, v| hash[k] = _to_hash(v) }
349
+ end
350
+ elsif value.respond_to? :to_hash
351
+ value.to_hash
352
+ else
353
+ value
354
+ end
355
+ end
356
+
357
+ end
358
+
359
+ end