aspose_imaging_cloud 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +22 -0
  3. data/README.md +61 -0
  4. data/aspose_imaging_cloud.gemspec +26 -0
  5. data/lib/aspose_imaging_cloud.rb +43 -0
  6. data/lib/aspose_imaging_cloud/api/imaging_api.rb +1776 -0
  7. data/lib/aspose_imaging_cloud/api_client.rb +335 -0
  8. data/lib/aspose_imaging_cloud/api_error.rb +24 -0
  9. data/lib/aspose_imaging_cloud/configuration.rb +166 -0
  10. data/lib/aspose_imaging_cloud/models/base_object.rb +86 -0
  11. data/lib/aspose_imaging_cloud/models/base_response.rb +53 -0
  12. data/lib/aspose_imaging_cloud/models/bmp_properties.rb +37 -0
  13. data/lib/aspose_imaging_cloud/models/exif_data.rb +855 -0
  14. data/lib/aspose_imaging_cloud/models/gif_properties.rb +53 -0
  15. data/lib/aspose_imaging_cloud/models/imaging_response.rb +149 -0
  16. data/lib/aspose_imaging_cloud/models/jfif_data.rb +61 -0
  17. data/lib/aspose_imaging_cloud/models/jpeg_exif_data.rb +991 -0
  18. data/lib/aspose_imaging_cloud/models/jpeg_properties.rb +53 -0
  19. data/lib/aspose_imaging_cloud/models/psd_properties.rb +61 -0
  20. data/lib/aspose_imaging_cloud/models/tiff_frame.rb +61 -0
  21. data/lib/aspose_imaging_cloud/models/tiff_options.rb +419 -0
  22. data/lib/aspose_imaging_cloud/models/tiff_properties.rb +55 -0
  23. data/lib/aspose_imaging_cloud/version.rb +3 -0
  24. data/test/data/TestDemo.tif +0 -0
  25. data/test/data/aspose.jpg +0 -0
  26. data/test/data/aspose_imaging_for_cloud.png +0 -0
  27. data/test/data/demo.tif +0 -0
  28. data/test/data/sample-multi.tif +0 -0
  29. data/test/data/sample.bmp +0 -0
  30. data/test/data/sample.gif +0 -0
  31. data/test/data/sample.psd +0 -0
  32. data/test/data/sample.tif +0 -0
  33. data/test/data/test.bmp +0 -0
  34. data/test/imaging_tests.rb +291 -0
  35. metadata +160 -0
@@ -0,0 +1,86 @@
1
+ require 'date'
2
+
3
+ module AsposeImagingCloud
4
+ # base class containing fundamental method such as to_hash, build_from_hash and more
5
+ class BaseObject
6
+
7
+ # build the object from hash
8
+ def build_from_hash(attributes)
9
+ return nil unless attributes.is_a?(Hash)
10
+ self.class.swagger_types.each_pair do |key, type|
11
+ if type =~ /^Array<(.*)>/i
12
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
13
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
14
+ else
15
+ #TODO show warning in debug mode
16
+ end
17
+ elsif !attributes[self.class.attribute_map[key]].nil?
18
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
19
+ else
20
+ # data not found in attributes(hash), not an issue as the data can be optional
21
+ end
22
+ end
23
+
24
+ self
25
+ end
26
+
27
+ def _deserialize(type, value)
28
+ case type.to_sym
29
+ when :DateTime
30
+ DateTime.parse(value)
31
+ when :Date
32
+ Date.parse(value)
33
+ when :String
34
+ value.to_s
35
+ when :Integer
36
+ value.to_i
37
+ when :Float
38
+ value.to_f
39
+ when :BOOLEAN
40
+ if value =~ /^(true|t|yes|y|1)$/i
41
+ true
42
+ else
43
+ false
44
+ end
45
+ else # model
46
+ _model = AsposeImagingCloud.const_get(type).new
47
+ _model.build_from_hash(value)
48
+ end
49
+ end
50
+
51
+ def to_s
52
+ to_hash.to_s
53
+ end
54
+
55
+ # to_body is an alias to to_body (backward compatibility))
56
+ def to_body
57
+ to_hash
58
+ end
59
+
60
+ # return the object in the form of hash
61
+ def to_hash
62
+ hash = {}
63
+ self.class.attribute_map.each_pair do |attr, param|
64
+ value = self.send(attr)
65
+ next if value.nil?
66
+ if value.is_a?(Array)
67
+ hash[param] = value.compact.map{ |v| _to_hash(v) }
68
+ else
69
+ hash[param] = _to_hash(value)
70
+ end
71
+ end
72
+ hash
73
+ end
74
+
75
+ # Method to output non-array value in the form of hash
76
+ # For object, use to_hash. Otherwise, just return the value
77
+ def _to_hash(value)
78
+ if value.respond_to? :to_hash
79
+ value.to_hash
80
+ else
81
+ value
82
+ end
83
+ end
84
+
85
+ end
86
+ end
@@ -0,0 +1,53 @@
1
+ module AsposeImagingCloud
2
+ #
3
+ class BaseResponse < BaseObject
4
+ attr_accessor :status, :code
5
+ # attribute mapping from ruby-style variable name to JSON key
6
+ def self.attribute_map
7
+ {
8
+
9
+ #
10
+ :'status' => :'Status',
11
+
12
+ #
13
+ :'code' => :'Code'
14
+
15
+ }
16
+ end
17
+
18
+ # attribute type
19
+ def self.swagger_types
20
+ {
21
+ :'status' => :'String',
22
+ :'code' => :'String'
23
+
24
+ }
25
+ end
26
+
27
+ def initialize(attributes = {})
28
+ return if !attributes.is_a?(Hash) || attributes.empty?
29
+
30
+ # convert string to symbol for hash key
31
+ attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
32
+
33
+
34
+ if attributes[:'Status']
35
+ self.status = attributes[:'Status']
36
+ end
37
+
38
+ if attributes[:'Code']
39
+ self.code = attributes[:'Code']
40
+ end
41
+
42
+ end
43
+
44
+ def status=(status)
45
+ allowed_values = ["Continue", "SwitchingProtocols", "OK", "Created", "Accepted", "NonAuthoritativeInformation", "NoContent", "ResetContent", "PartialContent", "MultipleChoices", "Ambiguous", "MovedPermanently", "Moved", "Found", "Redirect", "SeeOther", "RedirectMethod", "NotModified", "UseProxy", "Unused", "TemporaryRedirect", "RedirectKeepVerb", "BadRequest", "Unauthorized", "PaymentRequired", "Forbidden", "NotFound", "MethodNotAllowed", "NotAcceptable", "ProxyAuthenticationRequired", "RequestTimeout", "Conflict", "Gone", "LengthRequired", "PreconditionFailed", "RequestEntityTooLarge", "RequestUriTooLong", "UnsupportedMediaType", "RequestedRangeNotSatisfiable", "ExpectationFailed", "UpgradeRequired", "InternalServerError", "NotImplemented", "BadGateway", "ServiceUnavailable", "GatewayTimeout", "HttpVersionNotSupported"]
46
+ if status && !allowed_values.include?(status)
47
+ fail "invalid value for 'status', must be one of #{allowed_values}"
48
+ end
49
+ @status = status
50
+ end
51
+
52
+ end
53
+ end
@@ -0,0 +1,37 @@
1
+ module AsposeImagingCloud
2
+ #
3
+ class BmpProperties < BaseObject
4
+ attr_accessor :compression
5
+ # attribute mapping from ruby-style variable name to JSON key
6
+ def self.attribute_map
7
+ {
8
+
9
+ #
10
+ :'compression' => :'Compression'
11
+
12
+ }
13
+ end
14
+
15
+ # attribute type
16
+ def self.swagger_types
17
+ {
18
+ :'compression' => :'String'
19
+
20
+ }
21
+ end
22
+
23
+ def initialize(attributes = {})
24
+ return if !attributes.is_a?(Hash) || attributes.empty?
25
+
26
+ # convert string to symbol for hash key
27
+ attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
28
+
29
+
30
+ if attributes[:'Compression']
31
+ self.compression = attributes[:'Compression']
32
+ end
33
+
34
+ end
35
+
36
+ end
37
+ end
@@ -0,0 +1,855 @@
1
+ module AsposeImagingCloud
2
+ #
3
+ class ExifData < BaseObject
4
+ attr_accessor :aperture_value, :body_serial_number, :brightness_value, :cfa_pattern, :camera_owner_name, :color_space, :components_configuration, :compressed_bits_per_pixel, :contrast, :custom_rendered, :date_time_digitized, :date_time_original, :device_setting_description, :digital_zoom_ratio, :exif_version, :exposure_bias_value, :exposure_index, :exposure_mode, :exposure_program, :exposure_time, :f_number, :file_source, :flash, :flash_energy, :flashpix_version, :focal_length, :focal_length_in35_mm_film, :focal_plane_resolution_unit, :focal_plane_x_resolution, :focal_plane_y_resolution, :gps_altitude, :gps_altitude_ref, :gps_area_information, :gpsdop, :gps_dest_bearing, :gps_dest_bearing_ref, :gps_dest_distance, :gps_dest_distance_ref, :gps_dest_latitude, :gps_dest_latitude_ref, :gps_dest_longitude, :gps_dest_longitude_ref, :gps_differential, :gps_img_direction, :gps_img_direction_ref, :gps_date_stamp, :gps_latitude, :gps_latitude_ref, :gps_longitude, :gps_longitude_ref, :gps_map_datum, :gps_measure_mode, :gps_processing_method, :gps_satellites, :gps_speed, :gps_speed_ref, :gps_status, :gps_timestamp, :gps_track, :gps_track_ref, :gps_version_id, :gain_control, :gamma, :iso_speed, :iso_speed_latitude_yyy, :iso_speed_latitude_zzz, :photographic_sensitivity, :image_unique_id, :lens_make, :lens_model, :lens_serial_number, :lens_specification, :light_source, :maker_note_raw_data, :max_aperture_value, :metering_mode, :oecf, :pixel_x_dimension, :pixel_y_dimension, :recommended_exposure_index, :related_sound_file, :saturation, :scene_capture_type, :scene_type, :sensing_method, :sensitivity_type, :sharpness, :shutter_speed_value, :spatial_frequency_response, :spectral_sensitivity, :standard_output_sensitivity, :subject_area, :subject_distance, :subject_distance_range, :subject_location, :subsec_time, :subsec_time_digitized, :subsec_time_original, :user_comment, :white_balance, :white_point
5
+ # attribute mapping from ruby-style variable name to JSON key
6
+ def self.attribute_map
7
+ {
8
+
9
+ #
10
+ :'aperture_value' => :'ApertureValue',
11
+
12
+ #
13
+ :'body_serial_number' => :'BodySerialNumber',
14
+
15
+ #
16
+ :'brightness_value' => :'BrightnessValue',
17
+
18
+ #
19
+ :'cfa_pattern' => :'CFAPattern',
20
+
21
+ #
22
+ :'camera_owner_name' => :'CameraOwnerName',
23
+
24
+ #
25
+ :'color_space' => :'ColorSpace',
26
+
27
+ #
28
+ :'components_configuration' => :'ComponentsConfiguration',
29
+
30
+ #
31
+ :'compressed_bits_per_pixel' => :'CompressedBitsPerPixel',
32
+
33
+ #
34
+ :'contrast' => :'Contrast',
35
+
36
+ #
37
+ :'custom_rendered' => :'CustomRendered',
38
+
39
+ #
40
+ :'date_time_digitized' => :'DateTimeDigitized',
41
+
42
+ #
43
+ :'date_time_original' => :'DateTimeOriginal',
44
+
45
+ #
46
+ :'device_setting_description' => :'DeviceSettingDescription',
47
+
48
+ #
49
+ :'digital_zoom_ratio' => :'DigitalZoomRatio',
50
+
51
+ #
52
+ :'exif_version' => :'ExifVersion',
53
+
54
+ #
55
+ :'exposure_bias_value' => :'ExposureBiasValue',
56
+
57
+ #
58
+ :'exposure_index' => :'ExposureIndex',
59
+
60
+ #
61
+ :'exposure_mode' => :'ExposureMode',
62
+
63
+ #
64
+ :'exposure_program' => :'ExposureProgram',
65
+
66
+ #
67
+ :'exposure_time' => :'ExposureTime',
68
+
69
+ #
70
+ :'f_number' => :'FNumber',
71
+
72
+ #
73
+ :'file_source' => :'FileSource',
74
+
75
+ #
76
+ :'flash' => :'Flash',
77
+
78
+ #
79
+ :'flash_energy' => :'FlashEnergy',
80
+
81
+ #
82
+ :'flashpix_version' => :'FlashpixVersion',
83
+
84
+ #
85
+ :'focal_length' => :'FocalLength',
86
+
87
+ #
88
+ :'focal_length_in35_mm_film' => :'FocalLengthIn35MmFilm',
89
+
90
+ #
91
+ :'focal_plane_resolution_unit' => :'FocalPlaneResolutionUnit',
92
+
93
+ #
94
+ :'focal_plane_x_resolution' => :'FocalPlaneXResolution',
95
+
96
+ #
97
+ :'focal_plane_y_resolution' => :'FocalPlaneYResolution',
98
+
99
+ #
100
+ :'gps_altitude' => :'GPSAltitude',
101
+
102
+ #
103
+ :'gps_altitude_ref' => :'GPSAltitudeRef',
104
+
105
+ #
106
+ :'gps_area_information' => :'GPSAreaInformation',
107
+
108
+ #
109
+ :'gpsdop' => :'GPSDOP',
110
+
111
+ #
112
+ :'gps_dest_bearing' => :'GPSDestBearing',
113
+
114
+ #
115
+ :'gps_dest_bearing_ref' => :'GPSDestBearingRef',
116
+
117
+ #
118
+ :'gps_dest_distance' => :'GPSDestDistance',
119
+
120
+ #
121
+ :'gps_dest_distance_ref' => :'GPSDestDistanceRef',
122
+
123
+ #
124
+ :'gps_dest_latitude' => :'GPSDestLatitude',
125
+
126
+ #
127
+ :'gps_dest_latitude_ref' => :'GPSDestLatitudeRef',
128
+
129
+ #
130
+ :'gps_dest_longitude' => :'GPSDestLongitude',
131
+
132
+ #
133
+ :'gps_dest_longitude_ref' => :'GPSDestLongitudeRef',
134
+
135
+ #
136
+ :'gps_differential' => :'GPSDifferential',
137
+
138
+ #
139
+ :'gps_img_direction' => :'GPSImgDirection',
140
+
141
+ #
142
+ :'gps_img_direction_ref' => :'GPSImgDirectionRef',
143
+
144
+ #
145
+ :'gps_date_stamp' => :'GPSDateStamp',
146
+
147
+ #
148
+ :'gps_latitude' => :'GPSLatitude',
149
+
150
+ #
151
+ :'gps_latitude_ref' => :'GPSLatitudeRef',
152
+
153
+ #
154
+ :'gps_longitude' => :'GPSLongitude',
155
+
156
+ #
157
+ :'gps_longitude_ref' => :'GPSLongitudeRef',
158
+
159
+ #
160
+ :'gps_map_datum' => :'GPSMapDatum',
161
+
162
+ #
163
+ :'gps_measure_mode' => :'GPSMeasureMode',
164
+
165
+ #
166
+ :'gps_processing_method' => :'GPSProcessingMethod',
167
+
168
+ #
169
+ :'gps_satellites' => :'GPSSatellites',
170
+
171
+ #
172
+ :'gps_speed' => :'GPSSpeed',
173
+
174
+ #
175
+ :'gps_speed_ref' => :'GPSSpeedRef',
176
+
177
+ #
178
+ :'gps_status' => :'GPSStatus',
179
+
180
+ #
181
+ :'gps_timestamp' => :'GPSTimestamp',
182
+
183
+ #
184
+ :'gps_track' => :'GPSTrack',
185
+
186
+ #
187
+ :'gps_track_ref' => :'GPSTrackRef',
188
+
189
+ #
190
+ :'gps_version_id' => :'GPSVersionID',
191
+
192
+ #
193
+ :'gain_control' => :'GainControl',
194
+
195
+ #
196
+ :'gamma' => :'Gamma',
197
+
198
+ #
199
+ :'iso_speed' => :'ISOSpeed',
200
+
201
+ #
202
+ :'iso_speed_latitude_yyy' => :'ISOSpeedLatitudeYYY',
203
+
204
+ #
205
+ :'iso_speed_latitude_zzz' => :'ISOSpeedLatitudeZZZ',
206
+
207
+ #
208
+ :'photographic_sensitivity' => :'PhotographicSensitivity',
209
+
210
+ #
211
+ :'image_unique_id' => :'ImageUniqueID',
212
+
213
+ #
214
+ :'lens_make' => :'LensMake',
215
+
216
+ #
217
+ :'lens_model' => :'LensModel',
218
+
219
+ #
220
+ :'lens_serial_number' => :'LensSerialNumber',
221
+
222
+ #
223
+ :'lens_specification' => :'LensSpecification',
224
+
225
+ #
226
+ :'light_source' => :'LightSource',
227
+
228
+ #
229
+ :'maker_note_raw_data' => :'MakerNoteRawData',
230
+
231
+ #
232
+ :'max_aperture_value' => :'MaxApertureValue',
233
+
234
+ #
235
+ :'metering_mode' => :'MeteringMode',
236
+
237
+ #
238
+ :'oecf' => :'OECF',
239
+
240
+ #
241
+ :'pixel_x_dimension' => :'PixelXDimension',
242
+
243
+ #
244
+ :'pixel_y_dimension' => :'PixelYDimension',
245
+
246
+ #
247
+ :'recommended_exposure_index' => :'RecommendedExposureIndex',
248
+
249
+ #
250
+ :'related_sound_file' => :'RelatedSoundFile',
251
+
252
+ #
253
+ :'saturation' => :'Saturation',
254
+
255
+ #
256
+ :'scene_capture_type' => :'SceneCaptureType',
257
+
258
+ #
259
+ :'scene_type' => :'SceneType',
260
+
261
+ #
262
+ :'sensing_method' => :'SensingMethod',
263
+
264
+ #
265
+ :'sensitivity_type' => :'SensitivityType',
266
+
267
+ #
268
+ :'sharpness' => :'Sharpness',
269
+
270
+ #
271
+ :'shutter_speed_value' => :'ShutterSpeedValue',
272
+
273
+ #
274
+ :'spatial_frequency_response' => :'SpatialFrequencyResponse',
275
+
276
+ #
277
+ :'spectral_sensitivity' => :'SpectralSensitivity',
278
+
279
+ #
280
+ :'standard_output_sensitivity' => :'StandardOutputSensitivity',
281
+
282
+ #
283
+ :'subject_area' => :'SubjectArea',
284
+
285
+ #
286
+ :'subject_distance' => :'SubjectDistance',
287
+
288
+ #
289
+ :'subject_distance_range' => :'SubjectDistanceRange',
290
+
291
+ #
292
+ :'subject_location' => :'SubjectLocation',
293
+
294
+ #
295
+ :'subsec_time' => :'SubsecTime',
296
+
297
+ #
298
+ :'subsec_time_digitized' => :'SubsecTimeDigitized',
299
+
300
+ #
301
+ :'subsec_time_original' => :'SubsecTimeOriginal',
302
+
303
+ #
304
+ :'user_comment' => :'UserComment',
305
+
306
+ #
307
+ :'white_balance' => :'WhiteBalance',
308
+
309
+ #
310
+ :'white_point' => :'WhitePoint'
311
+
312
+ }
313
+ end
314
+
315
+ # attribute type
316
+ def self.swagger_types
317
+ {
318
+ :'aperture_value' => :'Float',
319
+ :'body_serial_number' => :'String',
320
+ :'brightness_value' => :'Float',
321
+ :'cfa_pattern' => :'String',
322
+ :'camera_owner_name' => :'String',
323
+ :'color_space' => :'String',
324
+ :'components_configuration' => :'String',
325
+ :'compressed_bits_per_pixel' => :'Float',
326
+ :'contrast' => :'String',
327
+ :'custom_rendered' => :'String',
328
+ :'date_time_digitized' => :'String',
329
+ :'date_time_original' => :'String',
330
+ :'device_setting_description' => :'String',
331
+ :'digital_zoom_ratio' => :'Float',
332
+ :'exif_version' => :'String',
333
+ :'exposure_bias_value' => :'Float',
334
+ :'exposure_index' => :'Float',
335
+ :'exposure_mode' => :'String',
336
+ :'exposure_program' => :'String',
337
+ :'exposure_time' => :'Float',
338
+ :'f_number' => :'Float',
339
+ :'file_source' => :'String',
340
+ :'flash' => :'String',
341
+ :'flash_energy' => :'Float',
342
+ :'flashpix_version' => :'String',
343
+ :'focal_length' => :'Float',
344
+ :'focal_length_in35_mm_film' => :'Integer',
345
+ :'focal_plane_resolution_unit' => :'String',
346
+ :'focal_plane_x_resolution' => :'Float',
347
+ :'focal_plane_y_resolution' => :'Float',
348
+ :'gps_altitude' => :'Float',
349
+ :'gps_altitude_ref' => :'String',
350
+ :'gps_area_information' => :'String',
351
+ :'gpsdop' => :'Float',
352
+ :'gps_dest_bearing' => :'Float',
353
+ :'gps_dest_bearing_ref' => :'String',
354
+ :'gps_dest_distance' => :'Float',
355
+ :'gps_dest_distance_ref' => :'String',
356
+ :'gps_dest_latitude' => :'Array<Float>',
357
+ :'gps_dest_latitude_ref' => :'String',
358
+ :'gps_dest_longitude' => :'Array<Float>',
359
+ :'gps_dest_longitude_ref' => :'String',
360
+ :'gps_differential' => :'Integer',
361
+ :'gps_img_direction' => :'Float',
362
+ :'gps_img_direction_ref' => :'String',
363
+ :'gps_date_stamp' => :'String',
364
+ :'gps_latitude' => :'Array<Float>',
365
+ :'gps_latitude_ref' => :'String',
366
+ :'gps_longitude' => :'Array<Float>',
367
+ :'gps_longitude_ref' => :'String',
368
+ :'gps_map_datum' => :'String',
369
+ :'gps_measure_mode' => :'String',
370
+ :'gps_processing_method' => :'String',
371
+ :'gps_satellites' => :'String',
372
+ :'gps_speed' => :'Float',
373
+ :'gps_speed_ref' => :'String',
374
+ :'gps_status' => :'String',
375
+ :'gps_timestamp' => :'Array<Float>',
376
+ :'gps_track' => :'String',
377
+ :'gps_track_ref' => :'String',
378
+ :'gps_version_id' => :'String',
379
+ :'gain_control' => :'String',
380
+ :'gamma' => :'Float',
381
+ :'iso_speed' => :'Integer',
382
+ :'iso_speed_latitude_yyy' => :'Integer',
383
+ :'iso_speed_latitude_zzz' => :'Integer',
384
+ :'photographic_sensitivity' => :'Integer',
385
+ :'image_unique_id' => :'String',
386
+ :'lens_make' => :'String',
387
+ :'lens_model' => :'String',
388
+ :'lens_serial_number' => :'String',
389
+ :'lens_specification' => :'Array<Float>',
390
+ :'light_source' => :'String',
391
+ :'maker_note_raw_data' => :'String',
392
+ :'max_aperture_value' => :'Float',
393
+ :'metering_mode' => :'String',
394
+ :'oecf' => :'String',
395
+ :'pixel_x_dimension' => :'Integer',
396
+ :'pixel_y_dimension' => :'Integer',
397
+ :'recommended_exposure_index' => :'Integer',
398
+ :'related_sound_file' => :'String',
399
+ :'saturation' => :'String',
400
+ :'scene_capture_type' => :'String',
401
+ :'scene_type' => :'String',
402
+ :'sensing_method' => :'String',
403
+ :'sensitivity_type' => :'Integer',
404
+ :'sharpness' => :'Integer',
405
+ :'shutter_speed_value' => :'Float',
406
+ :'spatial_frequency_response' => :'String',
407
+ :'spectral_sensitivity' => :'String',
408
+ :'standard_output_sensitivity' => :'Integer',
409
+ :'subject_area' => :'Array<Integer>',
410
+ :'subject_distance' => :'Float',
411
+ :'subject_distance_range' => :'String',
412
+ :'subject_location' => :'Array<Integer>',
413
+ :'subsec_time' => :'String',
414
+ :'subsec_time_digitized' => :'String',
415
+ :'subsec_time_original' => :'String',
416
+ :'user_comment' => :'String',
417
+ :'white_balance' => :'String',
418
+ :'white_point' => :'Array<Float>'
419
+
420
+ }
421
+ end
422
+
423
+ def initialize(attributes = {})
424
+ return if !attributes.is_a?(Hash) || attributes.empty?
425
+
426
+ # convert string to symbol for hash key
427
+ attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
428
+
429
+
430
+ if attributes[:'ApertureValue']
431
+ self.aperture_value = attributes[:'ApertureValue']
432
+ end
433
+
434
+ if attributes[:'BodySerialNumber']
435
+ self.body_serial_number = attributes[:'BodySerialNumber']
436
+ end
437
+
438
+ if attributes[:'BrightnessValue']
439
+ self.brightness_value = attributes[:'BrightnessValue']
440
+ end
441
+
442
+ if attributes[:'CFAPattern']
443
+ self.cfa_pattern = attributes[:'CFAPattern']
444
+ end
445
+
446
+ if attributes[:'CameraOwnerName']
447
+ self.camera_owner_name = attributes[:'CameraOwnerName']
448
+ end
449
+
450
+ if attributes[:'ColorSpace']
451
+ self.color_space = attributes[:'ColorSpace']
452
+ end
453
+
454
+ if attributes[:'ComponentsConfiguration']
455
+ self.components_configuration = attributes[:'ComponentsConfiguration']
456
+ end
457
+
458
+ if attributes[:'CompressedBitsPerPixel']
459
+ self.compressed_bits_per_pixel = attributes[:'CompressedBitsPerPixel']
460
+ end
461
+
462
+ if attributes[:'Contrast']
463
+ self.contrast = attributes[:'Contrast']
464
+ end
465
+
466
+ if attributes[:'CustomRendered']
467
+ self.custom_rendered = attributes[:'CustomRendered']
468
+ end
469
+
470
+ if attributes[:'DateTimeDigitized']
471
+ self.date_time_digitized = attributes[:'DateTimeDigitized']
472
+ end
473
+
474
+ if attributes[:'DateTimeOriginal']
475
+ self.date_time_original = attributes[:'DateTimeOriginal']
476
+ end
477
+
478
+ if attributes[:'DeviceSettingDescription']
479
+ self.device_setting_description = attributes[:'DeviceSettingDescription']
480
+ end
481
+
482
+ if attributes[:'DigitalZoomRatio']
483
+ self.digital_zoom_ratio = attributes[:'DigitalZoomRatio']
484
+ end
485
+
486
+ if attributes[:'ExifVersion']
487
+ self.exif_version = attributes[:'ExifVersion']
488
+ end
489
+
490
+ if attributes[:'ExposureBiasValue']
491
+ self.exposure_bias_value = attributes[:'ExposureBiasValue']
492
+ end
493
+
494
+ if attributes[:'ExposureIndex']
495
+ self.exposure_index = attributes[:'ExposureIndex']
496
+ end
497
+
498
+ if attributes[:'ExposureMode']
499
+ self.exposure_mode = attributes[:'ExposureMode']
500
+ end
501
+
502
+ if attributes[:'ExposureProgram']
503
+ self.exposure_program = attributes[:'ExposureProgram']
504
+ end
505
+
506
+ if attributes[:'ExposureTime']
507
+ self.exposure_time = attributes[:'ExposureTime']
508
+ end
509
+
510
+ if attributes[:'FNumber']
511
+ self.f_number = attributes[:'FNumber']
512
+ end
513
+
514
+ if attributes[:'FileSource']
515
+ self.file_source = attributes[:'FileSource']
516
+ end
517
+
518
+ if attributes[:'Flash']
519
+ self.flash = attributes[:'Flash']
520
+ end
521
+
522
+ if attributes[:'FlashEnergy']
523
+ self.flash_energy = attributes[:'FlashEnergy']
524
+ end
525
+
526
+ if attributes[:'FlashpixVersion']
527
+ self.flashpix_version = attributes[:'FlashpixVersion']
528
+ end
529
+
530
+ if attributes[:'FocalLength']
531
+ self.focal_length = attributes[:'FocalLength']
532
+ end
533
+
534
+ if attributes[:'FocalLengthIn35MmFilm']
535
+ self.focal_length_in35_mm_film = attributes[:'FocalLengthIn35MmFilm']
536
+ end
537
+
538
+ if attributes[:'FocalPlaneResolutionUnit']
539
+ self.focal_plane_resolution_unit = attributes[:'FocalPlaneResolutionUnit']
540
+ end
541
+
542
+ if attributes[:'FocalPlaneXResolution']
543
+ self.focal_plane_x_resolution = attributes[:'FocalPlaneXResolution']
544
+ end
545
+
546
+ if attributes[:'FocalPlaneYResolution']
547
+ self.focal_plane_y_resolution = attributes[:'FocalPlaneYResolution']
548
+ end
549
+
550
+ if attributes[:'GPSAltitude']
551
+ self.gps_altitude = attributes[:'GPSAltitude']
552
+ end
553
+
554
+ if attributes[:'GPSAltitudeRef']
555
+ self.gps_altitude_ref = attributes[:'GPSAltitudeRef']
556
+ end
557
+
558
+ if attributes[:'GPSAreaInformation']
559
+ self.gps_area_information = attributes[:'GPSAreaInformation']
560
+ end
561
+
562
+ if attributes[:'GPSDOP']
563
+ self.gpsdop = attributes[:'GPSDOP']
564
+ end
565
+
566
+ if attributes[:'GPSDestBearing']
567
+ self.gps_dest_bearing = attributes[:'GPSDestBearing']
568
+ end
569
+
570
+ if attributes[:'GPSDestBearingRef']
571
+ self.gps_dest_bearing_ref = attributes[:'GPSDestBearingRef']
572
+ end
573
+
574
+ if attributes[:'GPSDestDistance']
575
+ self.gps_dest_distance = attributes[:'GPSDestDistance']
576
+ end
577
+
578
+ if attributes[:'GPSDestDistanceRef']
579
+ self.gps_dest_distance_ref = attributes[:'GPSDestDistanceRef']
580
+ end
581
+
582
+ if attributes[:'GPSDestLatitude']
583
+ if (value = attributes[:'GPSDestLatitude']).is_a?(Array)
584
+ self.gps_dest_latitude = value
585
+ end
586
+ end
587
+
588
+ if attributes[:'GPSDestLatitudeRef']
589
+ self.gps_dest_latitude_ref = attributes[:'GPSDestLatitudeRef']
590
+ end
591
+
592
+ if attributes[:'GPSDestLongitude']
593
+ if (value = attributes[:'GPSDestLongitude']).is_a?(Array)
594
+ self.gps_dest_longitude = value
595
+ end
596
+ end
597
+
598
+ if attributes[:'GPSDestLongitudeRef']
599
+ self.gps_dest_longitude_ref = attributes[:'GPSDestLongitudeRef']
600
+ end
601
+
602
+ if attributes[:'GPSDifferential']
603
+ self.gps_differential = attributes[:'GPSDifferential']
604
+ end
605
+
606
+ if attributes[:'GPSImgDirection']
607
+ self.gps_img_direction = attributes[:'GPSImgDirection']
608
+ end
609
+
610
+ if attributes[:'GPSImgDirectionRef']
611
+ self.gps_img_direction_ref = attributes[:'GPSImgDirectionRef']
612
+ end
613
+
614
+ if attributes[:'GPSDateStamp']
615
+ self.gps_date_stamp = attributes[:'GPSDateStamp']
616
+ end
617
+
618
+ if attributes[:'GPSLatitude']
619
+ if (value = attributes[:'GPSLatitude']).is_a?(Array)
620
+ self.gps_latitude = value
621
+ end
622
+ end
623
+
624
+ if attributes[:'GPSLatitudeRef']
625
+ self.gps_latitude_ref = attributes[:'GPSLatitudeRef']
626
+ end
627
+
628
+ if attributes[:'GPSLongitude']
629
+ if (value = attributes[:'GPSLongitude']).is_a?(Array)
630
+ self.gps_longitude = value
631
+ end
632
+ end
633
+
634
+ if attributes[:'GPSLongitudeRef']
635
+ self.gps_longitude_ref = attributes[:'GPSLongitudeRef']
636
+ end
637
+
638
+ if attributes[:'GPSMapDatum']
639
+ self.gps_map_datum = attributes[:'GPSMapDatum']
640
+ end
641
+
642
+ if attributes[:'GPSMeasureMode']
643
+ self.gps_measure_mode = attributes[:'GPSMeasureMode']
644
+ end
645
+
646
+ if attributes[:'GPSProcessingMethod']
647
+ self.gps_processing_method = attributes[:'GPSProcessingMethod']
648
+ end
649
+
650
+ if attributes[:'GPSSatellites']
651
+ self.gps_satellites = attributes[:'GPSSatellites']
652
+ end
653
+
654
+ if attributes[:'GPSSpeed']
655
+ self.gps_speed = attributes[:'GPSSpeed']
656
+ end
657
+
658
+ if attributes[:'GPSSpeedRef']
659
+ self.gps_speed_ref = attributes[:'GPSSpeedRef']
660
+ end
661
+
662
+ if attributes[:'GPSStatus']
663
+ self.gps_status = attributes[:'GPSStatus']
664
+ end
665
+
666
+ if attributes[:'GPSTimestamp']
667
+ if (value = attributes[:'GPSTimestamp']).is_a?(Array)
668
+ self.gps_timestamp = value
669
+ end
670
+ end
671
+
672
+ if attributes[:'GPSTrack']
673
+ self.gps_track = attributes[:'GPSTrack']
674
+ end
675
+
676
+ if attributes[:'GPSTrackRef']
677
+ self.gps_track_ref = attributes[:'GPSTrackRef']
678
+ end
679
+
680
+ if attributes[:'GPSVersionID']
681
+ self.gps_version_id = attributes[:'GPSVersionID']
682
+ end
683
+
684
+ if attributes[:'GainControl']
685
+ self.gain_control = attributes[:'GainControl']
686
+ end
687
+
688
+ if attributes[:'Gamma']
689
+ self.gamma = attributes[:'Gamma']
690
+ end
691
+
692
+ if attributes[:'ISOSpeed']
693
+ self.iso_speed = attributes[:'ISOSpeed']
694
+ end
695
+
696
+ if attributes[:'ISOSpeedLatitudeYYY']
697
+ self.iso_speed_latitude_yyy = attributes[:'ISOSpeedLatitudeYYY']
698
+ end
699
+
700
+ if attributes[:'ISOSpeedLatitudeZZZ']
701
+ self.iso_speed_latitude_zzz = attributes[:'ISOSpeedLatitudeZZZ']
702
+ end
703
+
704
+ if attributes[:'PhotographicSensitivity']
705
+ self.photographic_sensitivity = attributes[:'PhotographicSensitivity']
706
+ end
707
+
708
+ if attributes[:'ImageUniqueID']
709
+ self.image_unique_id = attributes[:'ImageUniqueID']
710
+ end
711
+
712
+ if attributes[:'LensMake']
713
+ self.lens_make = attributes[:'LensMake']
714
+ end
715
+
716
+ if attributes[:'LensModel']
717
+ self.lens_model = attributes[:'LensModel']
718
+ end
719
+
720
+ if attributes[:'LensSerialNumber']
721
+ self.lens_serial_number = attributes[:'LensSerialNumber']
722
+ end
723
+
724
+ if attributes[:'LensSpecification']
725
+ if (value = attributes[:'LensSpecification']).is_a?(Array)
726
+ self.lens_specification = value
727
+ end
728
+ end
729
+
730
+ if attributes[:'LightSource']
731
+ self.light_source = attributes[:'LightSource']
732
+ end
733
+
734
+ if attributes[:'MakerNoteRawData']
735
+ self.maker_note_raw_data = attributes[:'MakerNoteRawData']
736
+ end
737
+
738
+ if attributes[:'MaxApertureValue']
739
+ self.max_aperture_value = attributes[:'MaxApertureValue']
740
+ end
741
+
742
+ if attributes[:'MeteringMode']
743
+ self.metering_mode = attributes[:'MeteringMode']
744
+ end
745
+
746
+ if attributes[:'OECF']
747
+ self.oecf = attributes[:'OECF']
748
+ end
749
+
750
+ if attributes[:'PixelXDimension']
751
+ self.pixel_x_dimension = attributes[:'PixelXDimension']
752
+ end
753
+
754
+ if attributes[:'PixelYDimension']
755
+ self.pixel_y_dimension = attributes[:'PixelYDimension']
756
+ end
757
+
758
+ if attributes[:'RecommendedExposureIndex']
759
+ self.recommended_exposure_index = attributes[:'RecommendedExposureIndex']
760
+ end
761
+
762
+ if attributes[:'RelatedSoundFile']
763
+ self.related_sound_file = attributes[:'RelatedSoundFile']
764
+ end
765
+
766
+ if attributes[:'Saturation']
767
+ self.saturation = attributes[:'Saturation']
768
+ end
769
+
770
+ if attributes[:'SceneCaptureType']
771
+ self.scene_capture_type = attributes[:'SceneCaptureType']
772
+ end
773
+
774
+ if attributes[:'SceneType']
775
+ self.scene_type = attributes[:'SceneType']
776
+ end
777
+
778
+ if attributes[:'SensingMethod']
779
+ self.sensing_method = attributes[:'SensingMethod']
780
+ end
781
+
782
+ if attributes[:'SensitivityType']
783
+ self.sensitivity_type = attributes[:'SensitivityType']
784
+ end
785
+
786
+ if attributes[:'Sharpness']
787
+ self.sharpness = attributes[:'Sharpness']
788
+ end
789
+
790
+ if attributes[:'ShutterSpeedValue']
791
+ self.shutter_speed_value = attributes[:'ShutterSpeedValue']
792
+ end
793
+
794
+ if attributes[:'SpatialFrequencyResponse']
795
+ self.spatial_frequency_response = attributes[:'SpatialFrequencyResponse']
796
+ end
797
+
798
+ if attributes[:'SpectralSensitivity']
799
+ self.spectral_sensitivity = attributes[:'SpectralSensitivity']
800
+ end
801
+
802
+ if attributes[:'StandardOutputSensitivity']
803
+ self.standard_output_sensitivity = attributes[:'StandardOutputSensitivity']
804
+ end
805
+
806
+ if attributes[:'SubjectArea']
807
+ if (value = attributes[:'SubjectArea']).is_a?(Array)
808
+ self.subject_area = value
809
+ end
810
+ end
811
+
812
+ if attributes[:'SubjectDistance']
813
+ self.subject_distance = attributes[:'SubjectDistance']
814
+ end
815
+
816
+ if attributes[:'SubjectDistanceRange']
817
+ self.subject_distance_range = attributes[:'SubjectDistanceRange']
818
+ end
819
+
820
+ if attributes[:'SubjectLocation']
821
+ if (value = attributes[:'SubjectLocation']).is_a?(Array)
822
+ self.subject_location = value
823
+ end
824
+ end
825
+
826
+ if attributes[:'SubsecTime']
827
+ self.subsec_time = attributes[:'SubsecTime']
828
+ end
829
+
830
+ if attributes[:'SubsecTimeDigitized']
831
+ self.subsec_time_digitized = attributes[:'SubsecTimeDigitized']
832
+ end
833
+
834
+ if attributes[:'SubsecTimeOriginal']
835
+ self.subsec_time_original = attributes[:'SubsecTimeOriginal']
836
+ end
837
+
838
+ if attributes[:'UserComment']
839
+ self.user_comment = attributes[:'UserComment']
840
+ end
841
+
842
+ if attributes[:'WhiteBalance']
843
+ self.white_balance = attributes[:'WhiteBalance']
844
+ end
845
+
846
+ if attributes[:'WhitePoint']
847
+ if (value = attributes[:'WhitePoint']).is_a?(Array)
848
+ self.white_point = value
849
+ end
850
+ end
851
+
852
+ end
853
+
854
+ end
855
+ end