cloudmersive-virus-scan-api-client 1.3.4 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. metadata +3 -34
  3. data/Gemfile +0 -7
  4. data/README.md +0 -108
  5. data/Rakefile +0 -8
  6. data/cloudmersive-virus-scan-api-client.gemspec +0 -45
  7. data/docs/ScanApi.md +0 -185
  8. data/docs/VirusFound.md +0 -9
  9. data/docs/VirusScanAdvancedResult.md +0 -15
  10. data/docs/VirusScanResult.md +0 -9
  11. data/docs/WebsiteScanRequest.md +0 -8
  12. data/docs/WebsiteScanResult.md +0 -11
  13. data/git_push.sh +0 -55
  14. data/lib/cloudmersive-virus-scan-api-client.rb +0 -45
  15. data/lib/cloudmersive-virus-scan-api-client/api/scan_api.rb +0 -205
  16. data/lib/cloudmersive-virus-scan-api-client/api_client.rb +0 -389
  17. data/lib/cloudmersive-virus-scan-api-client/api_error.rb +0 -38
  18. data/lib/cloudmersive-virus-scan-api-client/configuration.rb +0 -209
  19. data/lib/cloudmersive-virus-scan-api-client/models/virus_found.rb +0 -199
  20. data/lib/cloudmersive-virus-scan-api-client/models/virus_scan_advanced_result.rb +0 -261
  21. data/lib/cloudmersive-virus-scan-api-client/models/virus_scan_result.rb +0 -201
  22. data/lib/cloudmersive-virus-scan-api-client/models/website_scan_request.rb +0 -189
  23. data/lib/cloudmersive-virus-scan-api-client/models/website_scan_result.rb +0 -254
  24. data/lib/cloudmersive-virus-scan-api-client/version.rb +0 -15
  25. data/spec/api/scan_api_spec.rb +0 -76
  26. data/spec/api_client_spec.rb +0 -226
  27. data/spec/configuration_spec.rb +0 -42
  28. data/spec/models/virus_found_spec.rb +0 -48
  29. data/spec/models/virus_scan_advanced_result_spec.rb +0 -84
  30. data/spec/models/virus_scan_result_spec.rb +0 -48
  31. data/spec/models/website_scan_request_spec.rb +0 -42
  32. data/spec/models/website_scan_result_spec.rb +0 -64
  33. data/spec/spec_helper.rb +0 -111
@@ -1,38 +0,0 @@
1
- =begin
2
- #virusapi
3
-
4
- #The Cloudmersive Virus Scan API lets you scan files and content for viruses and identify security issues with content.
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
- module CloudmersiveVirusScanApiClient
14
- class ApiError < StandardError
15
- attr_reader :code, :response_headers, :response_body
16
-
17
- # Usage examples:
18
- # ApiError.new
19
- # ApiError.new("message")
20
- # ApiError.new(:code => 500, :response_headers => {}, :response_body => "")
21
- # ApiError.new(:code => 404, :message => "Not Found")
22
- def initialize(arg = nil)
23
- if arg.is_a? Hash
24
- if arg.key?(:message) || arg.key?('message')
25
- super(arg[:message] || arg['message'])
26
- else
27
- super arg
28
- end
29
-
30
- arg.each do |k, v|
31
- instance_variable_set "@#{k}", v
32
- end
33
- else
34
- super arg
35
- end
36
- end
37
- end
38
- end
@@ -1,209 +0,0 @@
1
- =begin
2
- #virusapi
3
-
4
- #The Cloudmersive Virus Scan API lets you scan files and content for viruses and identify security issues with content.
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 'uri'
14
-
15
- module CloudmersiveVirusScanApiClient
16
- class Configuration
17
- # Defines url scheme
18
- attr_accessor :scheme
19
-
20
- # Defines url host
21
- attr_accessor :host
22
-
23
- # Defines url base path
24
- attr_accessor :base_path
25
-
26
- # Defines API keys used with API Key authentications.
27
- #
28
- # @return [Hash] key: parameter name, value: parameter value (API key)
29
- #
30
- # @example parameter name is "api_key", API key is "xxx" (e.g. "api_key=xxx" in query string)
31
- # config.api_key['api_key'] = 'xxx'
32
- attr_accessor :api_key
33
-
34
- # Defines API key prefixes used with API Key authentications.
35
- #
36
- # @return [Hash] key: parameter name, value: API key prefix
37
- #
38
- # @example parameter name is "Authorization", API key prefix is "Token" (e.g. "Authorization: Token xxx" in headers)
39
- # config.api_key_prefix['api_key'] = 'Token'
40
- attr_accessor :api_key_prefix
41
-
42
- # Defines the username used with HTTP basic authentication.
43
- #
44
- # @return [String]
45
- attr_accessor :username
46
-
47
- # Defines the password used with HTTP basic authentication.
48
- #
49
- # @return [String]
50
- attr_accessor :password
51
-
52
- # Defines the access token (Bearer) used with OAuth2.
53
- attr_accessor :access_token
54
-
55
- # Set this to enable/disable debugging. When enabled (set to true), HTTP request/response
56
- # details will be logged with `logger.debug` (see the `logger` attribute).
57
- # Default to false.
58
- #
59
- # @return [true, false]
60
- attr_accessor :debugging
61
-
62
- # Defines the logger used for debugging.
63
- # Default to `Rails.logger` (when in Rails) or logging to STDOUT.
64
- #
65
- # @return [#debug]
66
- attr_accessor :logger
67
-
68
- # Defines the temporary folder to store downloaded files
69
- # (for API endpoints that have file response).
70
- # Default to use `Tempfile`.
71
- #
72
- # @return [String]
73
- attr_accessor :temp_folder_path
74
-
75
- # The time limit for HTTP request in seconds.
76
- # Default to 0 (never times out).
77
- attr_accessor :timeout
78
-
79
- # Set this to false to skip client side validation in the operation.
80
- # Default to true.
81
- # @return [true, false]
82
- attr_accessor :client_side_validation
83
-
84
- ### TLS/SSL setting
85
- # Set this to false to skip verifying SSL certificate when calling API from https server.
86
- # Default to true.
87
- #
88
- # @note Do NOT set it to false in production code, otherwise you would face multiple types of cryptographic attacks.
89
- #
90
- # @return [true, false]
91
- attr_accessor :verify_ssl
92
-
93
- ### TLS/SSL setting
94
- # Set this to false to skip verifying SSL host name
95
- # Default to true.
96
- #
97
- # @note Do NOT set it to false in production code, otherwise you would face multiple types of cryptographic attacks.
98
- #
99
- # @return [true, false]
100
- attr_accessor :verify_ssl_host
101
-
102
- ### TLS/SSL setting
103
- # Set this to customize the certificate file to verify the peer.
104
- #
105
- # @return [String] the path to the certificate file
106
- #
107
- # @see The `cainfo` option of Typhoeus, `--cert` option of libcurl. Related source code:
108
- # https://github.com/typhoeus/typhoeus/blob/master/lib/typhoeus/easy_factory.rb#L145
109
- attr_accessor :ssl_ca_cert
110
-
111
- ### TLS/SSL setting
112
- # Client certificate file (for client certificate)
113
- attr_accessor :cert_file
114
-
115
- ### TLS/SSL setting
116
- # Client private key file (for client certificate)
117
- attr_accessor :key_file
118
-
119
- # Set this to customize parameters encoding of array parameter with multi collectionFormat.
120
- # Default to nil.
121
- #
122
- # @see The params_encoding option of Ethon. Related source code:
123
- # https://github.com/typhoeus/ethon/blob/master/lib/ethon/easy/queryable.rb#L96
124
- attr_accessor :params_encoding
125
-
126
- attr_accessor :inject_format
127
-
128
- attr_accessor :force_ending_format
129
-
130
- def initialize
131
- @scheme = 'https'
132
- @host = 'api.cloudmersive.com'
133
- @base_path = ''
134
- @api_key = {}
135
- @api_key_prefix = {}
136
- @timeout = 0
137
- @client_side_validation = true
138
- @verify_ssl = true
139
- @verify_ssl_host = true
140
- @params_encoding = nil
141
- @cert_file = nil
142
- @key_file = nil
143
- @debugging = false
144
- @inject_format = false
145
- @force_ending_format = false
146
- @logger = defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
147
-
148
- yield(self) if block_given?
149
- end
150
-
151
- # The default Configuration object.
152
- def self.default
153
- @@default ||= Configuration.new
154
- end
155
-
156
- def configure
157
- yield(self) if block_given?
158
- end
159
-
160
- def scheme=(scheme)
161
- # remove :// from scheme
162
- @scheme = scheme.sub(/:\/\//, '')
163
- end
164
-
165
- def host=(host)
166
- # remove http(s):// and anything after a slash
167
- @host = host.sub(/https?:\/\//, '').split('/').first
168
- end
169
-
170
- def base_path=(base_path)
171
- # Add leading and trailing slashes to base_path
172
- @base_path = "/#{base_path}".gsub(/\/+/, '/')
173
- @base_path = "" if @base_path == "/"
174
- end
175
-
176
- def base_url
177
- url = "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '')
178
- URI.encode(url)
179
- end
180
-
181
- # Gets API key (with prefix if set).
182
- # @param [String] param_name the parameter name of API key auth
183
- def api_key_with_prefix(param_name)
184
- if @api_key_prefix[param_name]
185
- "#{@api_key_prefix[param_name]} #{@api_key[param_name]}"
186
- else
187
- @api_key[param_name]
188
- end
189
- end
190
-
191
- # Gets Basic Auth token string
192
- def basic_auth_token
193
- 'Basic ' + ["#{username}:#{password}"].pack('m').delete("\r\n")
194
- end
195
-
196
- # Returns Auth Settings hash for api client.
197
- def auth_settings
198
- {
199
- 'Apikey' =>
200
- {
201
- type: 'api_key',
202
- in: 'header',
203
- key: 'Apikey',
204
- value: api_key_with_prefix('Apikey')
205
- },
206
- }
207
- end
208
- end
209
- end
@@ -1,199 +0,0 @@
1
- =begin
2
- #virusapi
3
-
4
- #The Cloudmersive Virus Scan API lets you scan files and content for viruses and identify security issues with content.
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 CloudmersiveVirusScanApiClient
16
- # Virus positively identified
17
- class VirusFound
18
- # Name of the file containing the virus
19
- attr_accessor :file_name
20
-
21
- # Name of the virus that was found
22
- attr_accessor :virus_name
23
-
24
-
25
- # Attribute mapping from ruby-style variable name to JSON key.
26
- def self.attribute_map
27
- {
28
- :'file_name' => :'FileName',
29
- :'virus_name' => :'VirusName'
30
- }
31
- end
32
-
33
- # Attribute type mapping.
34
- def self.swagger_types
35
- {
36
- :'file_name' => :'String',
37
- :'virus_name' => :'String'
38
- }
39
- end
40
-
41
- # Initializes the object
42
- # @param [Hash] attributes Model attributes in the form of hash
43
- def initialize(attributes = {})
44
- return unless attributes.is_a?(Hash)
45
-
46
- # convert string to symbol for hash key
47
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
48
-
49
- if attributes.has_key?(:'FileName')
50
- self.file_name = attributes[:'FileName']
51
- end
52
-
53
- if attributes.has_key?(:'VirusName')
54
- self.virus_name = attributes[:'VirusName']
55
- end
56
-
57
- end
58
-
59
- # Show invalid properties with the reasons. Usually used together with valid?
60
- # @return Array for valid properties with the reasons
61
- def list_invalid_properties
62
- invalid_properties = Array.new
63
- return invalid_properties
64
- end
65
-
66
- # Check to see if the all the properties in the model are valid
67
- # @return true if the model is valid
68
- def valid?
69
- return true
70
- end
71
-
72
- # Checks equality by comparing each attribute.
73
- # @param [Object] Object to be compared
74
- def ==(o)
75
- return true if self.equal?(o)
76
- self.class == o.class &&
77
- file_name == o.file_name &&
78
- virus_name == o.virus_name
79
- end
80
-
81
- # @see the `==` method
82
- # @param [Object] Object to be compared
83
- def eql?(o)
84
- self == o
85
- end
86
-
87
- # Calculates hash code according to all attributes.
88
- # @return [Fixnum] Hash code
89
- def hash
90
- [file_name, virus_name].hash
91
- end
92
-
93
- # Builds the object from hash
94
- # @param [Hash] attributes Model attributes in the form of hash
95
- # @return [Object] Returns the model itself
96
- def build_from_hash(attributes)
97
- return nil unless attributes.is_a?(Hash)
98
- self.class.swagger_types.each_pair do |key, type|
99
- if type =~ /\AArray<(.*)>/i
100
- # check to ensure the input is an array given that the the attribute
101
- # is documented as an array but the input is not
102
- if attributes[self.class.attribute_map[key]].is_a?(Array)
103
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
104
- end
105
- elsif !attributes[self.class.attribute_map[key]].nil?
106
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
107
- end # or else data not found in attributes(hash), not an issue as the data can be optional
108
- end
109
-
110
- self
111
- end
112
-
113
- # Deserializes the data based on type
114
- # @param string type Data type
115
- # @param string value Value to be deserialized
116
- # @return [Object] Deserialized data
117
- def _deserialize(type, value)
118
- case type.to_sym
119
- when :DateTime
120
- DateTime.parse(value)
121
- when :Date
122
- Date.parse(value)
123
- when :String
124
- value.to_s
125
- when :Integer
126
- value.to_i
127
- when :Float
128
- value.to_f
129
- when :BOOLEAN
130
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
131
- true
132
- else
133
- false
134
- end
135
- when :Object
136
- # generic object (usually a Hash), return directly
137
- value
138
- when /\AArray<(?<inner_type>.+)>\z/
139
- inner_type = Regexp.last_match[:inner_type]
140
- value.map { |v| _deserialize(inner_type, v) }
141
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
142
- k_type = Regexp.last_match[:k_type]
143
- v_type = Regexp.last_match[:v_type]
144
- {}.tap do |hash|
145
- value.each do |k, v|
146
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
147
- end
148
- end
149
- else # model
150
- temp_model = CloudmersiveVirusScanApiClient.const_get(type).new
151
- temp_model.build_from_hash(value)
152
- end
153
- end
154
-
155
- # Returns the string representation of the object
156
- # @return [String] String presentation of the object
157
- def to_s
158
- to_hash.to_s
159
- end
160
-
161
- # to_body is an alias to to_hash (backward compatibility)
162
- # @return [Hash] Returns the object in the form of hash
163
- def to_body
164
- to_hash
165
- end
166
-
167
- # Returns the object in the form of hash
168
- # @return [Hash] Returns the object in the form of hash
169
- def to_hash
170
- hash = {}
171
- self.class.attribute_map.each_pair do |attr, param|
172
- value = self.send(attr)
173
- next if value.nil?
174
- hash[param] = _to_hash(value)
175
- end
176
- hash
177
- end
178
-
179
- # Outputs non-array value in the form of hash
180
- # For object, use to_hash. Otherwise, just return the value
181
- # @param [Object] value Any valid value
182
- # @return [Hash] Returns the value in the form of hash
183
- def _to_hash(value)
184
- if value.is_a?(Array)
185
- value.compact.map{ |v| _to_hash(v) }
186
- elsif value.is_a?(Hash)
187
- {}.tap do |hash|
188
- value.each { |k, v| hash[k] = _to_hash(v) }
189
- end
190
- elsif value.respond_to? :to_hash
191
- value.to_hash
192
- else
193
- value
194
- end
195
- end
196
-
197
- end
198
-
199
- end
@@ -1,261 +0,0 @@
1
- =begin
2
- #virusapi
3
-
4
- #The Cloudmersive Virus Scan API lets you scan files and content for viruses and identify security issues with content.
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 CloudmersiveVirusScanApiClient
16
- # Result of running an advanced virus scan
17
- class VirusScanAdvancedResult
18
- # True if the scan contained no viruses, false otherwise
19
- attr_accessor :clean_result
20
-
21
- # True if the scan contained an executable (application code), which can be a significant risk factor
22
- attr_accessor :contains_executable
23
-
24
- # True if the scan contained an invalid file (such as a PDF that is not a valid PDF, Word Document that is not a valid Word Document, etc.), which can be a significant risk factor
25
- attr_accessor :contains_invalid_file
26
-
27
- # True if the scan contained a script (such as a PHP script, Python script, etc.) which can be a significant risk factor
28
- attr_accessor :contains_script
29
-
30
- # True if the scan contained a password protected or encrypted file, which can be a significant risk factor
31
- attr_accessor :contains_password_protected_file
32
-
33
- # True if the uploaded file is of a type that is not allowed based on the optional restrictFileTypes parameter, false otherwise; if restrictFileTypes is not set, this will always be false
34
- attr_accessor :contains_restricted_file_format
35
-
36
- # For file format verification-supported file formats, the contents-verified file format of the file. Null indicates that the file format is not supported for contents verification. If a Virus or Malware is found, this field will always be set to Null.
37
- attr_accessor :verified_file_format
38
-
39
- # Array of viruses found, if any
40
- attr_accessor :found_viruses
41
-
42
-
43
- # Attribute mapping from ruby-style variable name to JSON key.
44
- def self.attribute_map
45
- {
46
- :'clean_result' => :'CleanResult',
47
- :'contains_executable' => :'ContainsExecutable',
48
- :'contains_invalid_file' => :'ContainsInvalidFile',
49
- :'contains_script' => :'ContainsScript',
50
- :'contains_password_protected_file' => :'ContainsPasswordProtectedFile',
51
- :'contains_restricted_file_format' => :'ContainsRestrictedFileFormat',
52
- :'verified_file_format' => :'VerifiedFileFormat',
53
- :'found_viruses' => :'FoundViruses'
54
- }
55
- end
56
-
57
- # Attribute type mapping.
58
- def self.swagger_types
59
- {
60
- :'clean_result' => :'BOOLEAN',
61
- :'contains_executable' => :'BOOLEAN',
62
- :'contains_invalid_file' => :'BOOLEAN',
63
- :'contains_script' => :'BOOLEAN',
64
- :'contains_password_protected_file' => :'BOOLEAN',
65
- :'contains_restricted_file_format' => :'BOOLEAN',
66
- :'verified_file_format' => :'String',
67
- :'found_viruses' => :'Array<VirusFound>'
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?(:'CleanResult')
80
- self.clean_result = attributes[:'CleanResult']
81
- end
82
-
83
- if attributes.has_key?(:'ContainsExecutable')
84
- self.contains_executable = attributes[:'ContainsExecutable']
85
- end
86
-
87
- if attributes.has_key?(:'ContainsInvalidFile')
88
- self.contains_invalid_file = attributes[:'ContainsInvalidFile']
89
- end
90
-
91
- if attributes.has_key?(:'ContainsScript')
92
- self.contains_script = attributes[:'ContainsScript']
93
- end
94
-
95
- if attributes.has_key?(:'ContainsPasswordProtectedFile')
96
- self.contains_password_protected_file = attributes[:'ContainsPasswordProtectedFile']
97
- end
98
-
99
- if attributes.has_key?(:'ContainsRestrictedFileFormat')
100
- self.contains_restricted_file_format = attributes[:'ContainsRestrictedFileFormat']
101
- end
102
-
103
- if attributes.has_key?(:'VerifiedFileFormat')
104
- self.verified_file_format = attributes[:'VerifiedFileFormat']
105
- end
106
-
107
- if attributes.has_key?(:'FoundViruses')
108
- if (value = attributes[:'FoundViruses']).is_a?(Array)
109
- self.found_viruses = value
110
- end
111
- end
112
-
113
- end
114
-
115
- # Show invalid properties with the reasons. Usually used together with valid?
116
- # @return Array for valid properties with the reasons
117
- def list_invalid_properties
118
- invalid_properties = Array.new
119
- return invalid_properties
120
- end
121
-
122
- # Check to see if the all the properties in the model are valid
123
- # @return true if the model is valid
124
- def valid?
125
- return true
126
- end
127
-
128
- # Checks equality by comparing each attribute.
129
- # @param [Object] Object to be compared
130
- def ==(o)
131
- return true if self.equal?(o)
132
- self.class == o.class &&
133
- clean_result == o.clean_result &&
134
- contains_executable == o.contains_executable &&
135
- contains_invalid_file == o.contains_invalid_file &&
136
- contains_script == o.contains_script &&
137
- contains_password_protected_file == o.contains_password_protected_file &&
138
- contains_restricted_file_format == o.contains_restricted_file_format &&
139
- verified_file_format == o.verified_file_format &&
140
- found_viruses == o.found_viruses
141
- end
142
-
143
- # @see the `==` method
144
- # @param [Object] Object to be compared
145
- def eql?(o)
146
- self == o
147
- end
148
-
149
- # Calculates hash code according to all attributes.
150
- # @return [Fixnum] Hash code
151
- def hash
152
- [clean_result, contains_executable, contains_invalid_file, contains_script, contains_password_protected_file, contains_restricted_file_format, verified_file_format, found_viruses].hash
153
- end
154
-
155
- # Builds the object from hash
156
- # @param [Hash] attributes Model attributes in the form of hash
157
- # @return [Object] Returns the model itself
158
- def build_from_hash(attributes)
159
- return nil unless attributes.is_a?(Hash)
160
- self.class.swagger_types.each_pair do |key, type|
161
- if type =~ /\AArray<(.*)>/i
162
- # check to ensure the input is an array given that the the attribute
163
- # is documented as an array but the input is not
164
- if attributes[self.class.attribute_map[key]].is_a?(Array)
165
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
166
- end
167
- elsif !attributes[self.class.attribute_map[key]].nil?
168
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
169
- end # or else data not found in attributes(hash), not an issue as the data can be optional
170
- end
171
-
172
- self
173
- end
174
-
175
- # Deserializes the data based on type
176
- # @param string type Data type
177
- # @param string value Value to be deserialized
178
- # @return [Object] Deserialized data
179
- def _deserialize(type, value)
180
- case type.to_sym
181
- when :DateTime
182
- DateTime.parse(value)
183
- when :Date
184
- Date.parse(value)
185
- when :String
186
- value.to_s
187
- when :Integer
188
- value.to_i
189
- when :Float
190
- value.to_f
191
- when :BOOLEAN
192
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
193
- true
194
- else
195
- false
196
- end
197
- when :Object
198
- # generic object (usually a Hash), return directly
199
- value
200
- when /\AArray<(?<inner_type>.+)>\z/
201
- inner_type = Regexp.last_match[:inner_type]
202
- value.map { |v| _deserialize(inner_type, v) }
203
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
204
- k_type = Regexp.last_match[:k_type]
205
- v_type = Regexp.last_match[:v_type]
206
- {}.tap do |hash|
207
- value.each do |k, v|
208
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
209
- end
210
- end
211
- else # model
212
- temp_model = CloudmersiveVirusScanApiClient.const_get(type).new
213
- temp_model.build_from_hash(value)
214
- end
215
- end
216
-
217
- # Returns the string representation of the object
218
- # @return [String] String presentation of the object
219
- def to_s
220
- to_hash.to_s
221
- end
222
-
223
- # to_body is an alias to to_hash (backward compatibility)
224
- # @return [Hash] Returns the object in the form of hash
225
- def to_body
226
- to_hash
227
- end
228
-
229
- # Returns the object in the form of hash
230
- # @return [Hash] Returns the object in the form of hash
231
- def to_hash
232
- hash = {}
233
- self.class.attribute_map.each_pair do |attr, param|
234
- value = self.send(attr)
235
- next if value.nil?
236
- hash[param] = _to_hash(value)
237
- end
238
- hash
239
- end
240
-
241
- # Outputs non-array value in the form of hash
242
- # For object, use to_hash. Otherwise, just return the value
243
- # @param [Object] value Any valid value
244
- # @return [Hash] Returns the value in the form of hash
245
- def _to_hash(value)
246
- if value.is_a?(Array)
247
- value.compact.map{ |v| _to_hash(v) }
248
- elsif value.is_a?(Hash)
249
- {}.tap do |hash|
250
- value.each { |k, v| hash[k] = _to_hash(v) }
251
- end
252
- elsif value.respond_to? :to_hash
253
- value.to_hash
254
- else
255
- value
256
- end
257
- end
258
-
259
- end
260
-
261
- end