aspose_imaging_cloud 1.0.0 → 19.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (161) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +224 -61
  3. data/lib/aspose-imaging-cloud.rb +161 -0
  4. data/lib/aspose-imaging-cloud/api/imaging_api.rb +684 -0
  5. data/lib/aspose-imaging-cloud/api_client.rb +357 -0
  6. data/lib/aspose-imaging-cloud/api_error.rb +42 -0
  7. data/lib/{aspose_imaging_cloud → aspose-imaging-cloud}/configuration.rb +236 -166
  8. data/lib/aspose-imaging-cloud/models/big_rectangular_filter_properties.rb +206 -0
  9. data/lib/aspose-imaging-cloud/models/bilateral_smoothing_filter_properties.rb +281 -0
  10. data/lib/aspose-imaging-cloud/models/bmp_properties.rb +202 -0
  11. data/lib/aspose-imaging-cloud/models/convolution_filter_properties.rb +236 -0
  12. data/lib/aspose-imaging-cloud/models/deconvolution_filter_properties.rb +266 -0
  13. data/lib/aspose-imaging-cloud/models/dicom_properties.rb +584 -0
  14. data/lib/aspose-imaging-cloud/models/disc_usage.rb +222 -0
  15. data/lib/aspose-imaging-cloud/models/djvu_properties.rb +232 -0
  16. data/lib/aspose-imaging-cloud/models/dng_properties.rb +329 -0
  17. data/lib/aspose-imaging-cloud/models/error.rb +232 -0
  18. data/lib/aspose-imaging-cloud/models/error_details.rb +217 -0
  19. data/lib/aspose-imaging-cloud/models/exif_data.rb +1560 -0
  20. data/lib/aspose-imaging-cloud/models/file_version.rb +277 -0
  21. data/lib/aspose-imaging-cloud/models/file_versions.rb +204 -0
  22. data/lib/aspose-imaging-cloud/models/files_list.rb +204 -0
  23. data/lib/aspose-imaging-cloud/models/files_upload_result.rb +216 -0
  24. data/lib/aspose-imaging-cloud/models/filter_properties_base.rb +206 -0
  25. data/lib/aspose-imaging-cloud/models/gauss_wiener_filter_properties.rb +296 -0
  26. data/lib/aspose-imaging-cloud/models/gaussian_blur_filter_properties.rb +266 -0
  27. data/lib/aspose-imaging-cloud/models/gif_properties.rb +247 -0
  28. data/lib/aspose-imaging-cloud/models/image_duplicates.rb +204 -0
  29. data/lib/aspose-imaging-cloud/models/image_duplicates_set.rb +204 -0
  30. data/lib/aspose-imaging-cloud/models/image_features.rb +257 -0
  31. data/lib/aspose-imaging-cloud/models/imaging_response.rb +412 -0
  32. data/lib/aspose-imaging-cloud/models/jfif_data.rb +247 -0
  33. data/lib/aspose-imaging-cloud/models/jpeg2000_properties.rb +214 -0
  34. data/lib/aspose-imaging-cloud/models/jpeg_exif_data.rb +1738 -0
  35. data/lib/aspose-imaging-cloud/models/jpeg_properties.rb +222 -0
  36. data/lib/aspose-imaging-cloud/models/median_filter_properties.rb +221 -0
  37. data/lib/aspose-imaging-cloud/models/motion_wiener_filter_properties.rb +311 -0
  38. data/lib/aspose-imaging-cloud/models/object_exist.rb +222 -0
  39. data/lib/aspose-imaging-cloud/models/odg_metadata.rb +372 -0
  40. data/lib/aspose-imaging-cloud/models/odg_page.rb +222 -0
  41. data/lib/aspose-imaging-cloud/models/odg_properties.rb +229 -0
  42. data/lib/aspose-imaging-cloud/models/png_properties.rb +192 -0
  43. data/lib/aspose-imaging-cloud/models/psd_properties.rb +242 -0
  44. data/lib/aspose-imaging-cloud/models/requests/add_search_image_request.rb +91 -0
  45. data/lib/aspose-imaging-cloud/models/requests/append_tiff_request.rb +88 -0
  46. data/lib/aspose-imaging-cloud/models/requests/compare_images_request.rb +94 -0
  47. data/lib/aspose-imaging-cloud/models/requests/convert_tiff_to_fax_request.rb +80 -0
  48. data/lib/aspose-imaging-cloud/models/requests/copy_file_request.rb +91 -0
  49. data/lib/aspose-imaging-cloud/models/requests/copy_folder_request.rb +88 -0
  50. data/lib/aspose-imaging-cloud/models/requests/create_cropped_image_request.rb +121 -0
  51. data/lib/aspose-imaging-cloud/models/requests/create_folder_request.rb +77 -0
  52. data/lib/aspose-imaging-cloud/models/requests/create_image_features_request.rb +89 -0
  53. data/lib/aspose-imaging-cloud/models/requests/create_image_frame_request.rb +112 -0
  54. data/lib/aspose-imaging-cloud/models/requests/create_image_search_request.rb +79 -0
  55. data/lib/aspose-imaging-cloud/models/requests/create_image_tag_request.rb +96 -0
  56. data/lib/aspose-imaging-cloud/models/requests/create_modified_bmp_request.rb +108 -0
  57. data/lib/aspose-imaging-cloud/models/requests/create_modified_emf_request.rb +127 -0
  58. data/lib/aspose-imaging-cloud/models/requests/create_modified_gif_request.rb +102 -0
  59. data/lib/aspose-imaging-cloud/models/requests/create_modified_jpeg2000_request.rb +95 -0
  60. data/lib/aspose-imaging-cloud/models/requests/create_modified_jpeg_request.rb +90 -0
  61. data/lib/aspose-imaging-cloud/models/requests/create_modified_psd_request.rb +90 -0
  62. data/lib/aspose-imaging-cloud/models/requests/create_modified_svg_request.rb +114 -0
  63. data/lib/aspose-imaging-cloud/models/requests/create_modified_tiff_request.rb +104 -0
  64. data/lib/aspose-imaging-cloud/models/requests/create_modified_web_p_request.rb +116 -0
  65. data/lib/aspose-imaging-cloud/models/requests/create_modified_wmf_request.rb +127 -0
  66. data/lib/aspose-imaging-cloud/models/requests/create_resized_image_request.rb +105 -0
  67. data/lib/aspose-imaging-cloud/models/requests/create_rotate_flipped_image_request.rb +97 -0
  68. data/lib/aspose-imaging-cloud/models/requests/create_saved_image_as_request.rb +89 -0
  69. data/lib/aspose-imaging-cloud/models/requests/create_updated_image_request.rb +145 -0
  70. data/lib/aspose-imaging-cloud/models/requests/create_web_site_image_features_request.rb +88 -0
  71. data/lib/aspose-imaging-cloud/models/requests/crop_image_request.rb +120 -0
  72. data/lib/aspose-imaging-cloud/models/requests/delete_file_request.rb +80 -0
  73. data/lib/aspose-imaging-cloud/models/requests/delete_folder_request.rb +80 -0
  74. data/lib/aspose-imaging-cloud/models/requests/delete_image_features_request.rb +88 -0
  75. data/lib/aspose-imaging-cloud/models/requests/delete_image_search_request.rb +80 -0
  76. data/lib/aspose-imaging-cloud/models/requests/delete_search_image_request.rb +88 -0
  77. data/lib/aspose-imaging-cloud/models/requests/download_file_request.rb +80 -0
  78. data/lib/aspose-imaging-cloud/models/requests/extract_image_features_request.rb +91 -0
  79. data/lib/aspose-imaging-cloud/models/requests/extract_image_frame_properties_request.rb +82 -0
  80. data/lib/aspose-imaging-cloud/models/requests/extract_image_properties_request.rb +75 -0
  81. data/lib/aspose-imaging-cloud/models/requests/filter_effect_image_request.rb +103 -0
  82. data/lib/aspose-imaging-cloud/models/requests/find_image_duplicates_request.rb +88 -0
  83. data/lib/aspose-imaging-cloud/models/requests/find_images_by_tags_request.rb +104 -0
  84. data/lib/aspose-imaging-cloud/models/requests/find_similar_images_request.rb +102 -0
  85. data/lib/aspose-imaging-cloud/models/requests/get_disc_usage_request.rb +70 -0
  86. data/lib/aspose-imaging-cloud/models/requests/get_file_versions_request.rb +77 -0
  87. data/lib/aspose-imaging-cloud/models/requests/get_files_list_request.rb +77 -0
  88. data/lib/aspose-imaging-cloud/models/requests/get_image_features_request.rb +88 -0
  89. data/lib/aspose-imaging-cloud/models/requests/get_image_frame_properties_request.rb +87 -0
  90. data/lib/aspose-imaging-cloud/models/requests/get_image_frame_request.rb +111 -0
  91. data/lib/aspose-imaging-cloud/models/requests/get_image_properties_request.rb +80 -0
  92. data/lib/aspose-imaging-cloud/models/requests/get_image_search_status_request.rb +80 -0
  93. data/lib/aspose-imaging-cloud/models/requests/get_search_image_request.rb +88 -0
  94. data/lib/aspose-imaging-cloud/models/requests/http_request.rb +50 -0
  95. data/lib/aspose-imaging-cloud/models/requests/imaging_request.rb +101 -0
  96. data/lib/aspose-imaging-cloud/models/requests/modify_bmp_request.rb +107 -0
  97. data/lib/aspose-imaging-cloud/models/requests/modify_emf_request.rb +126 -0
  98. data/lib/aspose-imaging-cloud/models/requests/modify_gif_request.rb +101 -0
  99. data/lib/aspose-imaging-cloud/models/requests/modify_jpeg2000_request.rb +94 -0
  100. data/lib/aspose-imaging-cloud/models/requests/modify_jpeg_request.rb +89 -0
  101. data/lib/aspose-imaging-cloud/models/requests/modify_psd_request.rb +89 -0
  102. data/lib/aspose-imaging-cloud/models/requests/modify_svg_request.rb +113 -0
  103. data/lib/aspose-imaging-cloud/models/requests/modify_tiff_request.rb +103 -0
  104. data/lib/aspose-imaging-cloud/models/requests/modify_web_p_request.rb +115 -0
  105. data/lib/aspose-imaging-cloud/models/requests/modify_wmf_request.rb +126 -0
  106. data/lib/aspose-imaging-cloud/models/requests/move_file_request.rb +91 -0
  107. data/lib/aspose-imaging-cloud/models/requests/move_folder_request.rb +88 -0
  108. data/lib/aspose-imaging-cloud/models/requests/object_exists_request.rb +80 -0
  109. data/lib/aspose-imaging-cloud/models/requests/resize_image_request.rb +104 -0
  110. data/lib/aspose-imaging-cloud/models/requests/rotate_flip_image_request.rb +96 -0
  111. data/lib/aspose-imaging-cloud/models/requests/save_image_as_request.rb +88 -0
  112. data/lib/aspose-imaging-cloud/models/requests/storage_exists_request.rb +74 -0
  113. data/lib/aspose-imaging-cloud/models/requests/update_image_features_request.rb +91 -0
  114. data/lib/aspose-imaging-cloud/models/requests/update_image_request.rb +144 -0
  115. data/lib/aspose-imaging-cloud/models/requests/update_search_image_request.rb +91 -0
  116. data/lib/aspose-imaging-cloud/models/requests/upload_file_request.rb +86 -0
  117. data/lib/aspose-imaging-cloud/models/search_context_status.rb +212 -0
  118. data/lib/aspose-imaging-cloud/models/search_result.rb +217 -0
  119. data/lib/aspose-imaging-cloud/models/search_results_set.rb +204 -0
  120. data/lib/aspose-imaging-cloud/models/sharpen_filter_properties.rb +266 -0
  121. data/lib/aspose-imaging-cloud/models/small_rectangular_filter_properties.rb +206 -0
  122. data/lib/aspose-imaging-cloud/models/storage_exist.rb +207 -0
  123. data/lib/aspose-imaging-cloud/models/storage_file.rb +252 -0
  124. data/lib/aspose-imaging-cloud/models/svg_properties.rb +202 -0
  125. data/lib/aspose-imaging-cloud/models/tiff_frame.rb +242 -0
  126. data/lib/aspose-imaging-cloud/models/tiff_options.rb +734 -0
  127. data/lib/aspose-imaging-cloud/models/tiff_properties.rb +224 -0
  128. data/lib/aspose-imaging-cloud/models/web_p_properties.rb +252 -0
  129. data/lib/aspose-imaging-cloud/version.rb +15 -0
  130. metadata +149 -129
  131. data/LICENSE +0 -22
  132. data/aspose_imaging_cloud.gemspec +0 -26
  133. data/lib/aspose_imaging_cloud.rb +0 -43
  134. data/lib/aspose_imaging_cloud/api/imaging_api.rb +0 -1776
  135. data/lib/aspose_imaging_cloud/api_client.rb +0 -335
  136. data/lib/aspose_imaging_cloud/api_error.rb +0 -24
  137. data/lib/aspose_imaging_cloud/models/base_object.rb +0 -86
  138. data/lib/aspose_imaging_cloud/models/base_response.rb +0 -53
  139. data/lib/aspose_imaging_cloud/models/bmp_properties.rb +0 -37
  140. data/lib/aspose_imaging_cloud/models/exif_data.rb +0 -855
  141. data/lib/aspose_imaging_cloud/models/gif_properties.rb +0 -53
  142. data/lib/aspose_imaging_cloud/models/imaging_response.rb +0 -149
  143. data/lib/aspose_imaging_cloud/models/jfif_data.rb +0 -61
  144. data/lib/aspose_imaging_cloud/models/jpeg_exif_data.rb +0 -991
  145. data/lib/aspose_imaging_cloud/models/jpeg_properties.rb +0 -53
  146. data/lib/aspose_imaging_cloud/models/psd_properties.rb +0 -61
  147. data/lib/aspose_imaging_cloud/models/tiff_frame.rb +0 -61
  148. data/lib/aspose_imaging_cloud/models/tiff_options.rb +0 -419
  149. data/lib/aspose_imaging_cloud/models/tiff_properties.rb +0 -55
  150. data/lib/aspose_imaging_cloud/version.rb +0 -3
  151. data/test/data/TestDemo.tif +0 -0
  152. data/test/data/aspose.jpg +0 -0
  153. data/test/data/aspose_imaging_for_cloud.png +0 -0
  154. data/test/data/demo.tif +0 -0
  155. data/test/data/sample-multi.tif +0 -0
  156. data/test/data/sample.bmp +0 -0
  157. data/test/data/sample.gif +0 -0
  158. data/test/data/sample.psd +0 -0
  159. data/test/data/sample.tif +0 -0
  160. data/test/data/test.bmp +0 -0
  161. data/test/imaging_tests.rb +0 -291
@@ -0,0 +1,214 @@
1
+ # ----------------------------------------------------------------------------
2
+ # <copyright company="Aspose" file="jpeg2000_properties.rb">
3
+ # Copyright (c) 2018-2019 Aspose Pty Ltd. All rights reserved.
4
+ # </copyright>
5
+ # <summary>
6
+ # Permission is hereby granted, free of charge, to any person obtaining a
7
+ # copy of this software and associated documentation files (the "Software"),
8
+ # to deal in the Software without restriction, including without limitation
9
+ # the rights to use, copy, modify, merge, publish, distribute, sublicense,
10
+ # and/or sell copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in
14
+ # all copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ # DEALINGS IN THE SOFTWARE.
23
+ # </summary>
24
+ # ----------------------------------------------------------------------------
25
+
26
+
27
+ require 'date'
28
+
29
+ module AsposeImagingCloud
30
+ # Represents information about image in JPEG2000 format.
31
+ class Jpeg2000Properties
32
+ # Gets or sets the JPEG comment markers.
33
+ attr_accessor :comments
34
+
35
+ # Gets or sets the JPEG2000 codec
36
+ attr_accessor :codec
37
+
38
+ # Attribute mapping from ruby-style variable name to JSON key.
39
+ def self.attribute_map
40
+ {
41
+ :'comments' => :'Comments',
42
+ :'codec' => :'Codec'
43
+ }
44
+ end
45
+
46
+ # Attribute type mapping.
47
+ def self.swagger_types
48
+ {
49
+ :'comments' => :'Array<String>',
50
+ :'codec' => :'String'
51
+ }
52
+ end
53
+
54
+ # Initializes the object
55
+ # @param [Hash] attributes Model attributes in the form of hash
56
+ def initialize(attributes = {})
57
+ return unless attributes.is_a?(Hash)
58
+
59
+ # convert string to symbol for hash key
60
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
61
+
62
+ if attributes.has_key?(:'Comments')
63
+ if (value = attributes[:'Comments']).is_a?(Array)
64
+ self.comments = value
65
+ end
66
+ end
67
+
68
+ if attributes.has_key?(:'Codec')
69
+ self.codec = attributes[:'Codec']
70
+ end
71
+ end
72
+
73
+ # Show invalid properties with the reasons. Usually used together with valid?
74
+ # @return Array for valid properties with the reasons
75
+ def list_invalid_properties
76
+ invalid_properties = Array.new
77
+ invalid_properties
78
+ end
79
+
80
+ # Check to see if the all the properties in the model are valid
81
+ # @return true if the model is valid
82
+ def valid?
83
+ true
84
+ end
85
+
86
+ # Checks equality by comparing each attribute.
87
+ # @param [Object] Object to be compared
88
+ def ==(o)
89
+ return true if self.equal?(o)
90
+ self.class == o.class &&
91
+ comments == o.comments &&
92
+ codec == o.codec
93
+ end
94
+
95
+ # @see the `==` method
96
+ # @param [Object] Object to be compared
97
+ def eql?(o)
98
+ self == o
99
+ end
100
+
101
+ # Calculates hash code according to all attributes.
102
+ # @return [Fixnum] Hash code
103
+ def hash
104
+ [comments, codec].hash
105
+ end
106
+
107
+ # Builds the object from hash
108
+ # @param [Hash] attributes Model attributes in the form of hash
109
+ # @return [Object] Returns the model itself
110
+ def build_from_hash(attributes)
111
+ return nil unless attributes.is_a?(Hash)
112
+ self.class.swagger_types.each_pair do |key, type|
113
+ attribute_key = self.class.attribute_map[key]
114
+ attribute_key = (attribute_key[0, 1].downcase + attribute_key[1..-1]).to_sym
115
+ if type =~ /\AArray<(.*)>/i
116
+ # check to ensure the input is an array given that the the attribute
117
+ # is documented as an array but the input is not
118
+ if attributes[attribute_key].is_a?(Array)
119
+ self.send("#{key}=", attributes[attribute_key].map { |v| _deserialize($1, v) })
120
+ end
121
+ elsif !attributes[attribute_key].nil?
122
+ self.send("#{key}=", _deserialize(type, attributes[attribute_key]))
123
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
124
+ end
125
+
126
+ self
127
+ end
128
+
129
+ # Deserializes the data based on type
130
+ # @param string type Data type
131
+ # @param string value Value to be deserialized
132
+ # @return [Object] Deserialized data
133
+ def _deserialize(type, value)
134
+ case type.to_sym
135
+ when :DateTime
136
+ DateTime.parse(value)
137
+ when :Date
138
+ Date.parse(value)
139
+ when :String
140
+ value.to_s
141
+ when :Integer
142
+ value.to_i
143
+ when :Float
144
+ value.to_f
145
+ when :BOOLEAN
146
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
147
+ true
148
+ else
149
+ false
150
+ end
151
+ when :Object
152
+ # generic object (usually a Hash), return directly
153
+ value
154
+ when /\AArray<(?<inner_type>.+)>\z/
155
+ inner_type = Regexp.last_match[:inner_type]
156
+ value.map { |v| _deserialize(inner_type, v) }
157
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
158
+ k_type = Regexp.last_match[:k_type]
159
+ v_type = Regexp.last_match[:v_type]
160
+ {}.tap do |hash|
161
+ value.each do |k, v|
162
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
163
+ end
164
+ end
165
+ else # model
166
+ temp_model = AsposeImagingCloud.const_get(type).new
167
+ temp_model.build_from_hash(value)
168
+ end
169
+ end
170
+
171
+ # Returns the string representation of the object
172
+ # @return [String] String presentation of the object
173
+ def to_s
174
+ to_hash.to_s
175
+ end
176
+
177
+ # to_body is an alias to to_hash (backward compatibility)
178
+ # @return [Hash] Returns the object in the form of hash
179
+ def to_body
180
+ to_hash
181
+ end
182
+
183
+ # Returns the object in the form of hash
184
+ # @return [Hash] Returns the object in the form of hash
185
+ def to_hash
186
+ hash = {}
187
+ self.class.attribute_map.each_pair do |attr, param|
188
+ value = self.send(attr)
189
+ next if value.nil?
190
+ hash[param] = _to_hash(value)
191
+ end
192
+ hash
193
+ end
194
+
195
+ # Outputs non-array value in the form of hash
196
+ # For object, use to_hash. Otherwise, just return the value
197
+ # @param [Object] value Any valid value
198
+ # @return [Hash] Returns the value in the form of hash
199
+ def _to_hash(value)
200
+ if value.is_a?(Array)
201
+ value.compact.map { |v| _to_hash(v) }
202
+ elsif value.is_a?(Hash)
203
+ {}.tap do |hash|
204
+ value.each { |k, v| hash[k] = _to_hash(v) }
205
+ end
206
+ elsif value.respond_to? :to_hash
207
+ value.to_hash
208
+ else
209
+ value
210
+ end
211
+ end
212
+
213
+ end
214
+ end
@@ -0,0 +1,1738 @@
1
+ # ----------------------------------------------------------------------------
2
+ # <copyright company="Aspose" file="jpeg_exif_data.rb">
3
+ # Copyright (c) 2018-2019 Aspose Pty Ltd. All rights reserved.
4
+ # </copyright>
5
+ # <summary>
6
+ # Permission is hereby granted, free of charge, to any person obtaining a
7
+ # copy of this software and associated documentation files (the "Software"),
8
+ # to deal in the Software without restriction, including without limitation
9
+ # the rights to use, copy, modify, merge, publish, distribute, sublicense,
10
+ # and/or sell copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in
14
+ # all copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ # DEALINGS IN THE SOFTWARE.
23
+ # </summary>
24
+ # ----------------------------------------------------------------------------
25
+
26
+
27
+ require 'date'
28
+
29
+ module AsposeImagingCloud
30
+ # Represents EXIF data for JPEG
31
+ class JpegExifData
32
+ # Gets or sets the aperture.
33
+ attr_accessor :aperture_value
34
+
35
+ # Gets or sets the body serial number.
36
+ attr_accessor :body_serial_number
37
+
38
+ # Gets or sets the brightness.
39
+ attr_accessor :brightness_value
40
+
41
+ # Gets or sets the CFA pattern.
42
+ attr_accessor :cfa_pattern
43
+
44
+ # Gets or sets the camera owner name.
45
+ attr_accessor :camera_owner_name
46
+
47
+ # Gets or sets the color space.
48
+ attr_accessor :color_space
49
+
50
+ # Gets or sets the components configuration.
51
+ attr_accessor :components_configuration
52
+
53
+ # Gets or sets the compressed bits per pixel.
54
+ attr_accessor :compressed_bits_per_pixel
55
+
56
+ # Gets or sets the contrast.
57
+ attr_accessor :contrast
58
+
59
+ # Gets or sets the value indincating if custom rendering is performed.
60
+ attr_accessor :custom_rendered
61
+
62
+ # Gets or sets date and time when image was digitized.
63
+ attr_accessor :date_time_digitized
64
+
65
+ # Gets or sets date and time of the original image.
66
+ attr_accessor :date_time_original
67
+
68
+ # Gets or sets the device setting description.
69
+ attr_accessor :device_setting_description
70
+
71
+ # Gets or sets the digital zoom ratio.
72
+ attr_accessor :digital_zoom_ratio
73
+
74
+ # Gets or sets EXIF version.
75
+ attr_accessor :exif_version
76
+
77
+ # Gets or sets the exposure bias.
78
+ attr_accessor :exposure_bias_value
79
+
80
+ # Gets or sets the exposure index.
81
+ attr_accessor :exposure_index
82
+
83
+ # Gets or sets the exposure mode.
84
+ attr_accessor :exposure_mode
85
+
86
+ # Gets or sets the exposure program.
87
+ attr_accessor :exposure_program
88
+
89
+ # Gets or sets the exposure time.
90
+ attr_accessor :exposure_time
91
+
92
+ # Gets or sets the focal number.
93
+ attr_accessor :f_number
94
+
95
+ # Gets or sets the file source.
96
+ attr_accessor :file_source
97
+
98
+ # Gets or sets the flash.
99
+ attr_accessor :flash
100
+
101
+ # Gets or sets the flash energy.
102
+ attr_accessor :flash_energy
103
+
104
+ # Gets or sets the Flashpix version.
105
+ attr_accessor :flashpix_version
106
+
107
+ # Gets or sets the focal length.
108
+ attr_accessor :focal_length
109
+
110
+ # Gets or sets the focal length in 35mm film.
111
+ attr_accessor :focal_length_in35_mm_film
112
+
113
+ # Gets or sets the focal plane resolution unit.
114
+ attr_accessor :focal_plane_resolution_unit
115
+
116
+ # Gets or sets the focal plane X resolution.
117
+ attr_accessor :focal_plane_x_resolution
118
+
119
+ # Gets or sets the focal plane Y resolution.
120
+ attr_accessor :focal_plane_y_resolution
121
+
122
+ # Gets or sets the GPS altitude.
123
+ attr_accessor :gps_altitude
124
+
125
+ # Gets or sets the GPS altitude reference (if it's above or below sea level).
126
+ attr_accessor :gps_altitude_ref
127
+
128
+ # Gets or sets the GPS area information.
129
+ attr_accessor :gps_area_information
130
+
131
+ # Gets or sets the GPS DOP (data degree of precision).
132
+ attr_accessor :gpsdop
133
+
134
+ # Gets or sets the GPS bearing of the destination.
135
+ attr_accessor :gps_dest_bearing
136
+
137
+ # Gets or sets the GPS reference unit for bearing of the destination.
138
+ attr_accessor :gps_dest_bearing_ref
139
+
140
+ # Gets or sets the GPS destination distance.
141
+ attr_accessor :gps_dest_distance
142
+
143
+ # Gets or sets the GPS reference unit for destination distance.
144
+ attr_accessor :gps_dest_distance_ref
145
+
146
+ # Gets or sets the GPS destination latitude.
147
+ attr_accessor :gps_dest_latitude
148
+
149
+ # Gets or sets the GPS reference destination latitude (north or south).
150
+ attr_accessor :gps_dest_latitude_ref
151
+
152
+ # Gets or sets the GPS destination longtitude.
153
+ attr_accessor :gps_dest_longitude
154
+
155
+ # Gets or sets the GPS reference destination longtitude (east or west).
156
+ attr_accessor :gps_dest_longitude_ref
157
+
158
+ # Gets or sets the GPS differential.
159
+ attr_accessor :gps_differential
160
+
161
+ # Gets or sets the GPS image direction.
162
+ attr_accessor :gps_img_direction
163
+
164
+ # Gets or sets the GPS reference image direction.
165
+ attr_accessor :gps_img_direction_ref
166
+
167
+ # Gets or sets the GPS date stamp.
168
+ attr_accessor :gps_date_stamp
169
+
170
+ # Gets or sets the GPS latitude.
171
+ attr_accessor :gps_latitude
172
+
173
+ # Gets or sets the GPS latitude reference (north or south).
174
+ attr_accessor :gps_latitude_ref
175
+
176
+ # Gets or sets the GPS longitude.
177
+ attr_accessor :gps_longitude
178
+
179
+ # Gets or sets the GPS longitude reference (east or west).
180
+ attr_accessor :gps_longitude_ref
181
+
182
+ # Gets or sets the geodetic survey data used by the GPS receiver.
183
+ attr_accessor :gps_map_datum
184
+
185
+ # Gets or sets the GPS measure mode.
186
+ attr_accessor :gps_measure_mode
187
+
188
+ # Gets or setsthe GPS processing method.
189
+ attr_accessor :gps_processing_method
190
+
191
+ # Gets or sets the GPS satellites info.
192
+ attr_accessor :gps_satellites
193
+
194
+ # Gets or sets the GPS speed.
195
+ attr_accessor :gps_speed
196
+
197
+ # Gets or sets the GPS speed reference unit.
198
+ attr_accessor :gps_speed_ref
199
+
200
+ # Gets or sets the GPS status.
201
+ attr_accessor :gps_status
202
+
203
+ # Gets or sets the GPS times tamp.
204
+ attr_accessor :gps_timestamp
205
+
206
+ # Gets or sets the GPS track.
207
+ attr_accessor :gps_track
208
+
209
+ # Gets or sets the GPS track reference.
210
+ attr_accessor :gps_track_ref
211
+
212
+ # Gets or sets the GPS version ID.
213
+ attr_accessor :gps_version_id
214
+
215
+ # Gets or sets the gain control.
216
+ attr_accessor :gain_control
217
+
218
+ # Gets or sets the gamma.
219
+ attr_accessor :gamma
220
+
221
+ # Gets or sets the ISO speed.
222
+ attr_accessor :iso_speed
223
+
224
+ # Gets or sets the ISO speed latitude YYY value.
225
+ attr_accessor :iso_speed_latitude_yyy
226
+
227
+ # Gets or sets the ISO speed latitude ZZZ value.
228
+ attr_accessor :iso_speed_latitude_zzz
229
+
230
+ # Gets or sets the photographic sensitivity.
231
+ attr_accessor :photographic_sensitivity
232
+
233
+ # Gets or sets the image unique ID.
234
+ attr_accessor :image_unique_id
235
+
236
+ # Gets or sets the lens manufacturer.
237
+ attr_accessor :lens_make
238
+
239
+ # Gets or sets the lens model.
240
+ attr_accessor :lens_model
241
+
242
+ # Gets or sets the lens serial number.
243
+ attr_accessor :lens_serial_number
244
+
245
+ # Gets or sets the lens specification.
246
+ attr_accessor :lens_specification
247
+
248
+ # Gets or sets the light source.
249
+ attr_accessor :light_source
250
+
251
+ # Gets or sets the maker note raw data.
252
+ attr_accessor :maker_note_raw_data
253
+
254
+ # Gets or sets the max aperture.
255
+ attr_accessor :max_aperture_value
256
+
257
+ # Gets or sets the metering mode.
258
+ attr_accessor :metering_mode
259
+
260
+ # Gets or sets the OECF (Opto-Electric Conversion Function).
261
+ attr_accessor :oecf
262
+
263
+ # Gets or sets the pixel X dimension.
264
+ attr_accessor :pixel_x_dimension
265
+
266
+ # Gets or sets the pixel Y dimension.
267
+ attr_accessor :pixel_y_dimension
268
+
269
+ # Gets or sets the recommended exposure index.
270
+ attr_accessor :recommended_exposure_index
271
+
272
+ # Gets or sets the related sound file.
273
+ attr_accessor :related_sound_file
274
+
275
+ # Gets or sets the saturation.
276
+ attr_accessor :saturation
277
+
278
+ # Gets or sets the scene capture type.
279
+ attr_accessor :scene_capture_type
280
+
281
+ # Gets or sets the scene type.
282
+ attr_accessor :scene_type
283
+
284
+ # Gets or sets the sensing method.
285
+ attr_accessor :sensing_method
286
+
287
+ # Gets or sets the sensitivity type.
288
+ attr_accessor :sensitivity_type
289
+
290
+ # Gets or sets the sharpness.
291
+ attr_accessor :sharpness
292
+
293
+ # Gets or sets the shutter speed.
294
+ attr_accessor :shutter_speed_value
295
+
296
+ # Gets or sets the spatial frequency response.
297
+ attr_accessor :spatial_frequency_response
298
+
299
+ # Gets or sets the spectral sensitivity.
300
+ attr_accessor :spectral_sensitivity
301
+
302
+ # Gets or sets the standard output sensitivity.
303
+ attr_accessor :standard_output_sensitivity
304
+
305
+ # Gets or sets the subject area.
306
+ attr_accessor :subject_area
307
+
308
+ # Gets or sets the subject distance.
309
+ attr_accessor :subject_distance
310
+
311
+ # Gets or sets the subject distance range.
312
+ attr_accessor :subject_distance_range
313
+
314
+ # Gets or sets the subject location.
315
+ attr_accessor :subject_location
316
+
317
+ # Gets or sets the fractions of seconds for the DateTime tag.
318
+ attr_accessor :subsec_time
319
+
320
+ # Gets or sets the fractions of seconds for the DateTimeDigitized tag.
321
+ attr_accessor :subsec_time_digitized
322
+
323
+ # Gets or sets the fractions of seconds for the DateTimeOriginal tag.
324
+ attr_accessor :subsec_time_original
325
+
326
+ # Gets or sets the user comment.
327
+ attr_accessor :user_comment
328
+
329
+ # Gets or sets the white balance.
330
+ attr_accessor :white_balance
331
+
332
+ # Gets or sets the white point.
333
+ attr_accessor :white_point
334
+
335
+ # Gets or sets the artist.
336
+ attr_accessor :artist
337
+
338
+ # Gets or sets the copyright info.
339
+ attr_accessor :copyright
340
+
341
+ # Gets or sets the date and time.
342
+ attr_accessor :date_time
343
+
344
+ # Gets or sets the image description.
345
+ attr_accessor :image_description
346
+
347
+ # Gets or sets the manufacturer.
348
+ attr_accessor :make
349
+
350
+ # Gets or sets the model.
351
+ attr_accessor :model
352
+
353
+ # Gets or sets the orientation.
354
+ attr_accessor :orientation
355
+
356
+ # Gets or sets the primary chromaticities.
357
+ attr_accessor :primary_chromaticities
358
+
359
+ # Gets or sets the reference black and white.
360
+ attr_accessor :reference_black_white
361
+
362
+ # Gets or sets the resolution unit.
363
+ attr_accessor :resolution_unit
364
+
365
+ # Gets or sets the software.
366
+ attr_accessor :software
367
+
368
+ # Gets or sets the transfer function.
369
+ attr_accessor :transfer_function
370
+
371
+ # Gets or sets the X resolution.
372
+ attr_accessor :x_resolution
373
+
374
+ # Gets or sets the YCbCr coefficients.
375
+ attr_accessor :y_cb_cr_coefficients
376
+
377
+ # Gets or sets the YCbCr positioning.
378
+ attr_accessor :y_cb_cr_positioning
379
+
380
+ # Gets or sets the Y resolution.
381
+ attr_accessor :y_resolution
382
+
383
+ # Attribute mapping from ruby-style variable name to JSON key.
384
+ def self.attribute_map
385
+ {
386
+ :'aperture_value' => :'ApertureValue',
387
+ :'body_serial_number' => :'BodySerialNumber',
388
+ :'brightness_value' => :'BrightnessValue',
389
+ :'cfa_pattern' => :'CFAPattern',
390
+ :'camera_owner_name' => :'CameraOwnerName',
391
+ :'color_space' => :'ColorSpace',
392
+ :'components_configuration' => :'ComponentsConfiguration',
393
+ :'compressed_bits_per_pixel' => :'CompressedBitsPerPixel',
394
+ :'contrast' => :'Contrast',
395
+ :'custom_rendered' => :'CustomRendered',
396
+ :'date_time_digitized' => :'DateTimeDigitized',
397
+ :'date_time_original' => :'DateTimeOriginal',
398
+ :'device_setting_description' => :'DeviceSettingDescription',
399
+ :'digital_zoom_ratio' => :'DigitalZoomRatio',
400
+ :'exif_version' => :'ExifVersion',
401
+ :'exposure_bias_value' => :'ExposureBiasValue',
402
+ :'exposure_index' => :'ExposureIndex',
403
+ :'exposure_mode' => :'ExposureMode',
404
+ :'exposure_program' => :'ExposureProgram',
405
+ :'exposure_time' => :'ExposureTime',
406
+ :'f_number' => :'FNumber',
407
+ :'file_source' => :'FileSource',
408
+ :'flash' => :'Flash',
409
+ :'flash_energy' => :'FlashEnergy',
410
+ :'flashpix_version' => :'FlashpixVersion',
411
+ :'focal_length' => :'FocalLength',
412
+ :'focal_length_in35_mm_film' => :'FocalLengthIn35MmFilm',
413
+ :'focal_plane_resolution_unit' => :'FocalPlaneResolutionUnit',
414
+ :'focal_plane_x_resolution' => :'FocalPlaneXResolution',
415
+ :'focal_plane_y_resolution' => :'FocalPlaneYResolution',
416
+ :'gps_altitude' => :'GPSAltitude',
417
+ :'gps_altitude_ref' => :'GPSAltitudeRef',
418
+ :'gps_area_information' => :'GPSAreaInformation',
419
+ :'gpsdop' => :'GPSDOP',
420
+ :'gps_dest_bearing' => :'GPSDestBearing',
421
+ :'gps_dest_bearing_ref' => :'GPSDestBearingRef',
422
+ :'gps_dest_distance' => :'GPSDestDistance',
423
+ :'gps_dest_distance_ref' => :'GPSDestDistanceRef',
424
+ :'gps_dest_latitude' => :'GPSDestLatitude',
425
+ :'gps_dest_latitude_ref' => :'GPSDestLatitudeRef',
426
+ :'gps_dest_longitude' => :'GPSDestLongitude',
427
+ :'gps_dest_longitude_ref' => :'GPSDestLongitudeRef',
428
+ :'gps_differential' => :'GPSDifferential',
429
+ :'gps_img_direction' => :'GPSImgDirection',
430
+ :'gps_img_direction_ref' => :'GPSImgDirectionRef',
431
+ :'gps_date_stamp' => :'GPSDateStamp',
432
+ :'gps_latitude' => :'GPSLatitude',
433
+ :'gps_latitude_ref' => :'GPSLatitudeRef',
434
+ :'gps_longitude' => :'GPSLongitude',
435
+ :'gps_longitude_ref' => :'GPSLongitudeRef',
436
+ :'gps_map_datum' => :'GPSMapDatum',
437
+ :'gps_measure_mode' => :'GPSMeasureMode',
438
+ :'gps_processing_method' => :'GPSProcessingMethod',
439
+ :'gps_satellites' => :'GPSSatellites',
440
+ :'gps_speed' => :'GPSSpeed',
441
+ :'gps_speed_ref' => :'GPSSpeedRef',
442
+ :'gps_status' => :'GPSStatus',
443
+ :'gps_timestamp' => :'GPSTimestamp',
444
+ :'gps_track' => :'GPSTrack',
445
+ :'gps_track_ref' => :'GPSTrackRef',
446
+ :'gps_version_id' => :'GPSVersionID',
447
+ :'gain_control' => :'GainControl',
448
+ :'gamma' => :'Gamma',
449
+ :'iso_speed' => :'ISOSpeed',
450
+ :'iso_speed_latitude_yyy' => :'ISOSpeedLatitudeYYY',
451
+ :'iso_speed_latitude_zzz' => :'ISOSpeedLatitudeZZZ',
452
+ :'photographic_sensitivity' => :'PhotographicSensitivity',
453
+ :'image_unique_id' => :'ImageUniqueID',
454
+ :'lens_make' => :'LensMake',
455
+ :'lens_model' => :'LensModel',
456
+ :'lens_serial_number' => :'LensSerialNumber',
457
+ :'lens_specification' => :'LensSpecification',
458
+ :'light_source' => :'LightSource',
459
+ :'maker_note_raw_data' => :'MakerNoteRawData',
460
+ :'max_aperture_value' => :'MaxApertureValue',
461
+ :'metering_mode' => :'MeteringMode',
462
+ :'oecf' => :'OECF',
463
+ :'pixel_x_dimension' => :'PixelXDimension',
464
+ :'pixel_y_dimension' => :'PixelYDimension',
465
+ :'recommended_exposure_index' => :'RecommendedExposureIndex',
466
+ :'related_sound_file' => :'RelatedSoundFile',
467
+ :'saturation' => :'Saturation',
468
+ :'scene_capture_type' => :'SceneCaptureType',
469
+ :'scene_type' => :'SceneType',
470
+ :'sensing_method' => :'SensingMethod',
471
+ :'sensitivity_type' => :'SensitivityType',
472
+ :'sharpness' => :'Sharpness',
473
+ :'shutter_speed_value' => :'ShutterSpeedValue',
474
+ :'spatial_frequency_response' => :'SpatialFrequencyResponse',
475
+ :'spectral_sensitivity' => :'SpectralSensitivity',
476
+ :'standard_output_sensitivity' => :'StandardOutputSensitivity',
477
+ :'subject_area' => :'SubjectArea',
478
+ :'subject_distance' => :'SubjectDistance',
479
+ :'subject_distance_range' => :'SubjectDistanceRange',
480
+ :'subject_location' => :'SubjectLocation',
481
+ :'subsec_time' => :'SubsecTime',
482
+ :'subsec_time_digitized' => :'SubsecTimeDigitized',
483
+ :'subsec_time_original' => :'SubsecTimeOriginal',
484
+ :'user_comment' => :'UserComment',
485
+ :'white_balance' => :'WhiteBalance',
486
+ :'white_point' => :'WhitePoint',
487
+ :'artist' => :'Artist',
488
+ :'copyright' => :'Copyright',
489
+ :'date_time' => :'DateTime',
490
+ :'image_description' => :'ImageDescription',
491
+ :'make' => :'Make',
492
+ :'model' => :'Model',
493
+ :'orientation' => :'Orientation',
494
+ :'primary_chromaticities' => :'PrimaryChromaticities',
495
+ :'reference_black_white' => :'ReferenceBlackWhite',
496
+ :'resolution_unit' => :'ResolutionUnit',
497
+ :'software' => :'Software',
498
+ :'transfer_function' => :'TransferFunction',
499
+ :'x_resolution' => :'XResolution',
500
+ :'y_cb_cr_coefficients' => :'YCbCrCoefficients',
501
+ :'y_cb_cr_positioning' => :'YCbCrPositioning',
502
+ :'y_resolution' => :'YResolution'
503
+ }
504
+ end
505
+
506
+ # Attribute type mapping.
507
+ def self.swagger_types
508
+ {
509
+ :'aperture_value' => :'Float',
510
+ :'body_serial_number' => :'String',
511
+ :'brightness_value' => :'Float',
512
+ :'cfa_pattern' => :'String',
513
+ :'camera_owner_name' => :'String',
514
+ :'color_space' => :'String',
515
+ :'components_configuration' => :'String',
516
+ :'compressed_bits_per_pixel' => :'Float',
517
+ :'contrast' => :'String',
518
+ :'custom_rendered' => :'String',
519
+ :'date_time_digitized' => :'String',
520
+ :'date_time_original' => :'String',
521
+ :'device_setting_description' => :'String',
522
+ :'digital_zoom_ratio' => :'Float',
523
+ :'exif_version' => :'String',
524
+ :'exposure_bias_value' => :'Float',
525
+ :'exposure_index' => :'Float',
526
+ :'exposure_mode' => :'String',
527
+ :'exposure_program' => :'String',
528
+ :'exposure_time' => :'Float',
529
+ :'f_number' => :'Float',
530
+ :'file_source' => :'String',
531
+ :'flash' => :'String',
532
+ :'flash_energy' => :'Float',
533
+ :'flashpix_version' => :'String',
534
+ :'focal_length' => :'Float',
535
+ :'focal_length_in35_mm_film' => :'Integer',
536
+ :'focal_plane_resolution_unit' => :'String',
537
+ :'focal_plane_x_resolution' => :'Float',
538
+ :'focal_plane_y_resolution' => :'Float',
539
+ :'gps_altitude' => :'Float',
540
+ :'gps_altitude_ref' => :'String',
541
+ :'gps_area_information' => :'String',
542
+ :'gpsdop' => :'Float',
543
+ :'gps_dest_bearing' => :'Float',
544
+ :'gps_dest_bearing_ref' => :'String',
545
+ :'gps_dest_distance' => :'Float',
546
+ :'gps_dest_distance_ref' => :'String',
547
+ :'gps_dest_latitude' => :'Array<Float>',
548
+ :'gps_dest_latitude_ref' => :'String',
549
+ :'gps_dest_longitude' => :'Array<Float>',
550
+ :'gps_dest_longitude_ref' => :'String',
551
+ :'gps_differential' => :'Integer',
552
+ :'gps_img_direction' => :'Float',
553
+ :'gps_img_direction_ref' => :'String',
554
+ :'gps_date_stamp' => :'String',
555
+ :'gps_latitude' => :'Array<Float>',
556
+ :'gps_latitude_ref' => :'String',
557
+ :'gps_longitude' => :'Array<Float>',
558
+ :'gps_longitude_ref' => :'String',
559
+ :'gps_map_datum' => :'String',
560
+ :'gps_measure_mode' => :'String',
561
+ :'gps_processing_method' => :'String',
562
+ :'gps_satellites' => :'String',
563
+ :'gps_speed' => :'Float',
564
+ :'gps_speed_ref' => :'String',
565
+ :'gps_status' => :'String',
566
+ :'gps_timestamp' => :'Array<Float>',
567
+ :'gps_track' => :'String',
568
+ :'gps_track_ref' => :'String',
569
+ :'gps_version_id' => :'String',
570
+ :'gain_control' => :'String',
571
+ :'gamma' => :'Float',
572
+ :'iso_speed' => :'Integer',
573
+ :'iso_speed_latitude_yyy' => :'Integer',
574
+ :'iso_speed_latitude_zzz' => :'Integer',
575
+ :'photographic_sensitivity' => :'Integer',
576
+ :'image_unique_id' => :'String',
577
+ :'lens_make' => :'String',
578
+ :'lens_model' => :'String',
579
+ :'lens_serial_number' => :'String',
580
+ :'lens_specification' => :'Array<Float>',
581
+ :'light_source' => :'String',
582
+ :'maker_note_raw_data' => :'String',
583
+ :'max_aperture_value' => :'Float',
584
+ :'metering_mode' => :'String',
585
+ :'oecf' => :'String',
586
+ :'pixel_x_dimension' => :'Integer',
587
+ :'pixel_y_dimension' => :'Integer',
588
+ :'recommended_exposure_index' => :'Integer',
589
+ :'related_sound_file' => :'String',
590
+ :'saturation' => :'String',
591
+ :'scene_capture_type' => :'String',
592
+ :'scene_type' => :'Integer',
593
+ :'sensing_method' => :'String',
594
+ :'sensitivity_type' => :'Integer',
595
+ :'sharpness' => :'Integer',
596
+ :'shutter_speed_value' => :'Float',
597
+ :'spatial_frequency_response' => :'String',
598
+ :'spectral_sensitivity' => :'String',
599
+ :'standard_output_sensitivity' => :'Integer',
600
+ :'subject_area' => :'Array<Integer>',
601
+ :'subject_distance' => :'Float',
602
+ :'subject_distance_range' => :'String',
603
+ :'subject_location' => :'Array<Integer>',
604
+ :'subsec_time' => :'String',
605
+ :'subsec_time_digitized' => :'String',
606
+ :'subsec_time_original' => :'String',
607
+ :'user_comment' => :'String',
608
+ :'white_balance' => :'String',
609
+ :'white_point' => :'Array<Float>',
610
+ :'artist' => :'String',
611
+ :'copyright' => :'String',
612
+ :'date_time' => :'String',
613
+ :'image_description' => :'String',
614
+ :'make' => :'String',
615
+ :'model' => :'String',
616
+ :'orientation' => :'String',
617
+ :'primary_chromaticities' => :'Array<Float>',
618
+ :'reference_black_white' => :'Array<Float>',
619
+ :'resolution_unit' => :'String',
620
+ :'software' => :'String',
621
+ :'transfer_function' => :'Array<Integer>',
622
+ :'x_resolution' => :'Float',
623
+ :'y_cb_cr_coefficients' => :'Array<Float>',
624
+ :'y_cb_cr_positioning' => :'String',
625
+ :'y_resolution' => :'Float'
626
+ }
627
+ end
628
+
629
+ # Initializes the object
630
+ # @param [Hash] attributes Model attributes in the form of hash
631
+ def initialize(attributes = {})
632
+ return unless attributes.is_a?(Hash)
633
+
634
+ # convert string to symbol for hash key
635
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
636
+
637
+ if attributes.has_key?(:'ApertureValue')
638
+ self.aperture_value = attributes[:'ApertureValue']
639
+ end
640
+
641
+ if attributes.has_key?(:'BodySerialNumber')
642
+ self.body_serial_number = attributes[:'BodySerialNumber']
643
+ end
644
+
645
+ if attributes.has_key?(:'BrightnessValue')
646
+ self.brightness_value = attributes[:'BrightnessValue']
647
+ end
648
+
649
+ if attributes.has_key?(:'CFAPattern')
650
+ self.cfa_pattern = attributes[:'CFAPattern']
651
+ end
652
+
653
+ if attributes.has_key?(:'CameraOwnerName')
654
+ self.camera_owner_name = attributes[:'CameraOwnerName']
655
+ end
656
+
657
+ if attributes.has_key?(:'ColorSpace')
658
+ self.color_space = attributes[:'ColorSpace']
659
+ end
660
+
661
+ if attributes.has_key?(:'ComponentsConfiguration')
662
+ self.components_configuration = attributes[:'ComponentsConfiguration']
663
+ end
664
+
665
+ if attributes.has_key?(:'CompressedBitsPerPixel')
666
+ self.compressed_bits_per_pixel = attributes[:'CompressedBitsPerPixel']
667
+ end
668
+
669
+ if attributes.has_key?(:'Contrast')
670
+ self.contrast = attributes[:'Contrast']
671
+ end
672
+
673
+ if attributes.has_key?(:'CustomRendered')
674
+ self.custom_rendered = attributes[:'CustomRendered']
675
+ end
676
+
677
+ if attributes.has_key?(:'DateTimeDigitized')
678
+ self.date_time_digitized = attributes[:'DateTimeDigitized']
679
+ end
680
+
681
+ if attributes.has_key?(:'DateTimeOriginal')
682
+ self.date_time_original = attributes[:'DateTimeOriginal']
683
+ end
684
+
685
+ if attributes.has_key?(:'DeviceSettingDescription')
686
+ self.device_setting_description = attributes[:'DeviceSettingDescription']
687
+ end
688
+
689
+ if attributes.has_key?(:'DigitalZoomRatio')
690
+ self.digital_zoom_ratio = attributes[:'DigitalZoomRatio']
691
+ end
692
+
693
+ if attributes.has_key?(:'ExifVersion')
694
+ self.exif_version = attributes[:'ExifVersion']
695
+ end
696
+
697
+ if attributes.has_key?(:'ExposureBiasValue')
698
+ self.exposure_bias_value = attributes[:'ExposureBiasValue']
699
+ end
700
+
701
+ if attributes.has_key?(:'ExposureIndex')
702
+ self.exposure_index = attributes[:'ExposureIndex']
703
+ end
704
+
705
+ if attributes.has_key?(:'ExposureMode')
706
+ self.exposure_mode = attributes[:'ExposureMode']
707
+ end
708
+
709
+ if attributes.has_key?(:'ExposureProgram')
710
+ self.exposure_program = attributes[:'ExposureProgram']
711
+ end
712
+
713
+ if attributes.has_key?(:'ExposureTime')
714
+ self.exposure_time = attributes[:'ExposureTime']
715
+ end
716
+
717
+ if attributes.has_key?(:'FNumber')
718
+ self.f_number = attributes[:'FNumber']
719
+ end
720
+
721
+ if attributes.has_key?(:'FileSource')
722
+ self.file_source = attributes[:'FileSource']
723
+ end
724
+
725
+ if attributes.has_key?(:'Flash')
726
+ self.flash = attributes[:'Flash']
727
+ end
728
+
729
+ if attributes.has_key?(:'FlashEnergy')
730
+ self.flash_energy = attributes[:'FlashEnergy']
731
+ end
732
+
733
+ if attributes.has_key?(:'FlashpixVersion')
734
+ self.flashpix_version = attributes[:'FlashpixVersion']
735
+ end
736
+
737
+ if attributes.has_key?(:'FocalLength')
738
+ self.focal_length = attributes[:'FocalLength']
739
+ end
740
+
741
+ if attributes.has_key?(:'FocalLengthIn35MmFilm')
742
+ self.focal_length_in35_mm_film = attributes[:'FocalLengthIn35MmFilm']
743
+ end
744
+
745
+ if attributes.has_key?(:'FocalPlaneResolutionUnit')
746
+ self.focal_plane_resolution_unit = attributes[:'FocalPlaneResolutionUnit']
747
+ end
748
+
749
+ if attributes.has_key?(:'FocalPlaneXResolution')
750
+ self.focal_plane_x_resolution = attributes[:'FocalPlaneXResolution']
751
+ end
752
+
753
+ if attributes.has_key?(:'FocalPlaneYResolution')
754
+ self.focal_plane_y_resolution = attributes[:'FocalPlaneYResolution']
755
+ end
756
+
757
+ if attributes.has_key?(:'GPSAltitude')
758
+ self.gps_altitude = attributes[:'GPSAltitude']
759
+ end
760
+
761
+ if attributes.has_key?(:'GPSAltitudeRef')
762
+ self.gps_altitude_ref = attributes[:'GPSAltitudeRef']
763
+ end
764
+
765
+ if attributes.has_key?(:'GPSAreaInformation')
766
+ self.gps_area_information = attributes[:'GPSAreaInformation']
767
+ end
768
+
769
+ if attributes.has_key?(:'GPSDOP')
770
+ self.gpsdop = attributes[:'GPSDOP']
771
+ end
772
+
773
+ if attributes.has_key?(:'GPSDestBearing')
774
+ self.gps_dest_bearing = attributes[:'GPSDestBearing']
775
+ end
776
+
777
+ if attributes.has_key?(:'GPSDestBearingRef')
778
+ self.gps_dest_bearing_ref = attributes[:'GPSDestBearingRef']
779
+ end
780
+
781
+ if attributes.has_key?(:'GPSDestDistance')
782
+ self.gps_dest_distance = attributes[:'GPSDestDistance']
783
+ end
784
+
785
+ if attributes.has_key?(:'GPSDestDistanceRef')
786
+ self.gps_dest_distance_ref = attributes[:'GPSDestDistanceRef']
787
+ end
788
+
789
+ if attributes.has_key?(:'GPSDestLatitude')
790
+ if (value = attributes[:'GPSDestLatitude']).is_a?(Array)
791
+ self.gps_dest_latitude = value
792
+ end
793
+ end
794
+
795
+ if attributes.has_key?(:'GPSDestLatitudeRef')
796
+ self.gps_dest_latitude_ref = attributes[:'GPSDestLatitudeRef']
797
+ end
798
+
799
+ if attributes.has_key?(:'GPSDestLongitude')
800
+ if (value = attributes[:'GPSDestLongitude']).is_a?(Array)
801
+ self.gps_dest_longitude = value
802
+ end
803
+ end
804
+
805
+ if attributes.has_key?(:'GPSDestLongitudeRef')
806
+ self.gps_dest_longitude_ref = attributes[:'GPSDestLongitudeRef']
807
+ end
808
+
809
+ if attributes.has_key?(:'GPSDifferential')
810
+ self.gps_differential = attributes[:'GPSDifferential']
811
+ end
812
+
813
+ if attributes.has_key?(:'GPSImgDirection')
814
+ self.gps_img_direction = attributes[:'GPSImgDirection']
815
+ end
816
+
817
+ if attributes.has_key?(:'GPSImgDirectionRef')
818
+ self.gps_img_direction_ref = attributes[:'GPSImgDirectionRef']
819
+ end
820
+
821
+ if attributes.has_key?(:'GPSDateStamp')
822
+ self.gps_date_stamp = attributes[:'GPSDateStamp']
823
+ end
824
+
825
+ if attributes.has_key?(:'GPSLatitude')
826
+ if (value = attributes[:'GPSLatitude']).is_a?(Array)
827
+ self.gps_latitude = value
828
+ end
829
+ end
830
+
831
+ if attributes.has_key?(:'GPSLatitudeRef')
832
+ self.gps_latitude_ref = attributes[:'GPSLatitudeRef']
833
+ end
834
+
835
+ if attributes.has_key?(:'GPSLongitude')
836
+ if (value = attributes[:'GPSLongitude']).is_a?(Array)
837
+ self.gps_longitude = value
838
+ end
839
+ end
840
+
841
+ if attributes.has_key?(:'GPSLongitudeRef')
842
+ self.gps_longitude_ref = attributes[:'GPSLongitudeRef']
843
+ end
844
+
845
+ if attributes.has_key?(:'GPSMapDatum')
846
+ self.gps_map_datum = attributes[:'GPSMapDatum']
847
+ end
848
+
849
+ if attributes.has_key?(:'GPSMeasureMode')
850
+ self.gps_measure_mode = attributes[:'GPSMeasureMode']
851
+ end
852
+
853
+ if attributes.has_key?(:'GPSProcessingMethod')
854
+ self.gps_processing_method = attributes[:'GPSProcessingMethod']
855
+ end
856
+
857
+ if attributes.has_key?(:'GPSSatellites')
858
+ self.gps_satellites = attributes[:'GPSSatellites']
859
+ end
860
+
861
+ if attributes.has_key?(:'GPSSpeed')
862
+ self.gps_speed = attributes[:'GPSSpeed']
863
+ end
864
+
865
+ if attributes.has_key?(:'GPSSpeedRef')
866
+ self.gps_speed_ref = attributes[:'GPSSpeedRef']
867
+ end
868
+
869
+ if attributes.has_key?(:'GPSStatus')
870
+ self.gps_status = attributes[:'GPSStatus']
871
+ end
872
+
873
+ if attributes.has_key?(:'GPSTimestamp')
874
+ if (value = attributes[:'GPSTimestamp']).is_a?(Array)
875
+ self.gps_timestamp = value
876
+ end
877
+ end
878
+
879
+ if attributes.has_key?(:'GPSTrack')
880
+ self.gps_track = attributes[:'GPSTrack']
881
+ end
882
+
883
+ if attributes.has_key?(:'GPSTrackRef')
884
+ self.gps_track_ref = attributes[:'GPSTrackRef']
885
+ end
886
+
887
+ if attributes.has_key?(:'GPSVersionID')
888
+ self.gps_version_id = attributes[:'GPSVersionID']
889
+ end
890
+
891
+ if attributes.has_key?(:'GainControl')
892
+ self.gain_control = attributes[:'GainControl']
893
+ end
894
+
895
+ if attributes.has_key?(:'Gamma')
896
+ self.gamma = attributes[:'Gamma']
897
+ end
898
+
899
+ if attributes.has_key?(:'ISOSpeed')
900
+ self.iso_speed = attributes[:'ISOSpeed']
901
+ end
902
+
903
+ if attributes.has_key?(:'ISOSpeedLatitudeYYY')
904
+ self.iso_speed_latitude_yyy = attributes[:'ISOSpeedLatitudeYYY']
905
+ end
906
+
907
+ if attributes.has_key?(:'ISOSpeedLatitudeZZZ')
908
+ self.iso_speed_latitude_zzz = attributes[:'ISOSpeedLatitudeZZZ']
909
+ end
910
+
911
+ if attributes.has_key?(:'PhotographicSensitivity')
912
+ self.photographic_sensitivity = attributes[:'PhotographicSensitivity']
913
+ end
914
+
915
+ if attributes.has_key?(:'ImageUniqueID')
916
+ self.image_unique_id = attributes[:'ImageUniqueID']
917
+ end
918
+
919
+ if attributes.has_key?(:'LensMake')
920
+ self.lens_make = attributes[:'LensMake']
921
+ end
922
+
923
+ if attributes.has_key?(:'LensModel')
924
+ self.lens_model = attributes[:'LensModel']
925
+ end
926
+
927
+ if attributes.has_key?(:'LensSerialNumber')
928
+ self.lens_serial_number = attributes[:'LensSerialNumber']
929
+ end
930
+
931
+ if attributes.has_key?(:'LensSpecification')
932
+ if (value = attributes[:'LensSpecification']).is_a?(Array)
933
+ self.lens_specification = value
934
+ end
935
+ end
936
+
937
+ if attributes.has_key?(:'LightSource')
938
+ self.light_source = attributes[:'LightSource']
939
+ end
940
+
941
+ if attributes.has_key?(:'MakerNoteRawData')
942
+ self.maker_note_raw_data = attributes[:'MakerNoteRawData']
943
+ end
944
+
945
+ if attributes.has_key?(:'MaxApertureValue')
946
+ self.max_aperture_value = attributes[:'MaxApertureValue']
947
+ end
948
+
949
+ if attributes.has_key?(:'MeteringMode')
950
+ self.metering_mode = attributes[:'MeteringMode']
951
+ end
952
+
953
+ if attributes.has_key?(:'OECF')
954
+ self.oecf = attributes[:'OECF']
955
+ end
956
+
957
+ if attributes.has_key?(:'PixelXDimension')
958
+ self.pixel_x_dimension = attributes[:'PixelXDimension']
959
+ end
960
+
961
+ if attributes.has_key?(:'PixelYDimension')
962
+ self.pixel_y_dimension = attributes[:'PixelYDimension']
963
+ end
964
+
965
+ if attributes.has_key?(:'RecommendedExposureIndex')
966
+ self.recommended_exposure_index = attributes[:'RecommendedExposureIndex']
967
+ end
968
+
969
+ if attributes.has_key?(:'RelatedSoundFile')
970
+ self.related_sound_file = attributes[:'RelatedSoundFile']
971
+ end
972
+
973
+ if attributes.has_key?(:'Saturation')
974
+ self.saturation = attributes[:'Saturation']
975
+ end
976
+
977
+ if attributes.has_key?(:'SceneCaptureType')
978
+ self.scene_capture_type = attributes[:'SceneCaptureType']
979
+ end
980
+
981
+ if attributes.has_key?(:'SceneType')
982
+ self.scene_type = attributes[:'SceneType']
983
+ end
984
+
985
+ if attributes.has_key?(:'SensingMethod')
986
+ self.sensing_method = attributes[:'SensingMethod']
987
+ end
988
+
989
+ if attributes.has_key?(:'SensitivityType')
990
+ self.sensitivity_type = attributes[:'SensitivityType']
991
+ end
992
+
993
+ if attributes.has_key?(:'Sharpness')
994
+ self.sharpness = attributes[:'Sharpness']
995
+ end
996
+
997
+ if attributes.has_key?(:'ShutterSpeedValue')
998
+ self.shutter_speed_value = attributes[:'ShutterSpeedValue']
999
+ end
1000
+
1001
+ if attributes.has_key?(:'SpatialFrequencyResponse')
1002
+ self.spatial_frequency_response = attributes[:'SpatialFrequencyResponse']
1003
+ end
1004
+
1005
+ if attributes.has_key?(:'SpectralSensitivity')
1006
+ self.spectral_sensitivity = attributes[:'SpectralSensitivity']
1007
+ end
1008
+
1009
+ if attributes.has_key?(:'StandardOutputSensitivity')
1010
+ self.standard_output_sensitivity = attributes[:'StandardOutputSensitivity']
1011
+ end
1012
+
1013
+ if attributes.has_key?(:'SubjectArea')
1014
+ if (value = attributes[:'SubjectArea']).is_a?(Array)
1015
+ self.subject_area = value
1016
+ end
1017
+ end
1018
+
1019
+ if attributes.has_key?(:'SubjectDistance')
1020
+ self.subject_distance = attributes[:'SubjectDistance']
1021
+ end
1022
+
1023
+ if attributes.has_key?(:'SubjectDistanceRange')
1024
+ self.subject_distance_range = attributes[:'SubjectDistanceRange']
1025
+ end
1026
+
1027
+ if attributes.has_key?(:'SubjectLocation')
1028
+ if (value = attributes[:'SubjectLocation']).is_a?(Array)
1029
+ self.subject_location = value
1030
+ end
1031
+ end
1032
+
1033
+ if attributes.has_key?(:'SubsecTime')
1034
+ self.subsec_time = attributes[:'SubsecTime']
1035
+ end
1036
+
1037
+ if attributes.has_key?(:'SubsecTimeDigitized')
1038
+ self.subsec_time_digitized = attributes[:'SubsecTimeDigitized']
1039
+ end
1040
+
1041
+ if attributes.has_key?(:'SubsecTimeOriginal')
1042
+ self.subsec_time_original = attributes[:'SubsecTimeOriginal']
1043
+ end
1044
+
1045
+ if attributes.has_key?(:'UserComment')
1046
+ self.user_comment = attributes[:'UserComment']
1047
+ end
1048
+
1049
+ if attributes.has_key?(:'WhiteBalance')
1050
+ self.white_balance = attributes[:'WhiteBalance']
1051
+ end
1052
+
1053
+ if attributes.has_key?(:'WhitePoint')
1054
+ if (value = attributes[:'WhitePoint']).is_a?(Array)
1055
+ self.white_point = value
1056
+ end
1057
+ end
1058
+
1059
+ if attributes.has_key?(:'Artist')
1060
+ self.artist = attributes[:'Artist']
1061
+ end
1062
+
1063
+ if attributes.has_key?(:'Copyright')
1064
+ self.copyright = attributes[:'Copyright']
1065
+ end
1066
+
1067
+ if attributes.has_key?(:'DateTime')
1068
+ self.date_time = attributes[:'DateTime']
1069
+ end
1070
+
1071
+ if attributes.has_key?(:'ImageDescription')
1072
+ self.image_description = attributes[:'ImageDescription']
1073
+ end
1074
+
1075
+ if attributes.has_key?(:'Make')
1076
+ self.make = attributes[:'Make']
1077
+ end
1078
+
1079
+ if attributes.has_key?(:'Model')
1080
+ self.model = attributes[:'Model']
1081
+ end
1082
+
1083
+ if attributes.has_key?(:'Orientation')
1084
+ self.orientation = attributes[:'Orientation']
1085
+ end
1086
+
1087
+ if attributes.has_key?(:'PrimaryChromaticities')
1088
+ if (value = attributes[:'PrimaryChromaticities']).is_a?(Array)
1089
+ self.primary_chromaticities = value
1090
+ end
1091
+ end
1092
+
1093
+ if attributes.has_key?(:'ReferenceBlackWhite')
1094
+ if (value = attributes[:'ReferenceBlackWhite']).is_a?(Array)
1095
+ self.reference_black_white = value
1096
+ end
1097
+ end
1098
+
1099
+ if attributes.has_key?(:'ResolutionUnit')
1100
+ self.resolution_unit = attributes[:'ResolutionUnit']
1101
+ end
1102
+
1103
+ if attributes.has_key?(:'Software')
1104
+ self.software = attributes[:'Software']
1105
+ end
1106
+
1107
+ if attributes.has_key?(:'TransferFunction')
1108
+ if (value = attributes[:'TransferFunction']).is_a?(Array)
1109
+ self.transfer_function = value
1110
+ end
1111
+ end
1112
+
1113
+ if attributes.has_key?(:'XResolution')
1114
+ self.x_resolution = attributes[:'XResolution']
1115
+ end
1116
+
1117
+ if attributes.has_key?(:'YCbCrCoefficients')
1118
+ if (value = attributes[:'YCbCrCoefficients']).is_a?(Array)
1119
+ self.y_cb_cr_coefficients = value
1120
+ end
1121
+ end
1122
+
1123
+ if attributes.has_key?(:'YCbCrPositioning')
1124
+ self.y_cb_cr_positioning = attributes[:'YCbCrPositioning']
1125
+ end
1126
+
1127
+ if attributes.has_key?(:'YResolution')
1128
+ self.y_resolution = attributes[:'YResolution']
1129
+ end
1130
+ end
1131
+
1132
+ # Show invalid properties with the reasons. Usually used together with valid?
1133
+ # @return Array for valid properties with the reasons
1134
+ def list_invalid_properties
1135
+ invalid_properties = Array.new
1136
+ if @aperture_value.nil?
1137
+ invalid_properties.push('invalid value for "aperture_value", aperture_value cannot be nil.')
1138
+ end
1139
+
1140
+ if @brightness_value.nil?
1141
+ invalid_properties.push('invalid value for "brightness_value", brightness_value cannot be nil.')
1142
+ end
1143
+
1144
+ if !@cfa_pattern.nil? && @cfa_pattern !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1145
+ invalid_properties.push('invalid value for "cfa_pattern", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.')
1146
+ end
1147
+
1148
+ if !@components_configuration.nil? && @components_configuration !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1149
+ invalid_properties.push('invalid value for "components_configuration", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.')
1150
+ end
1151
+
1152
+ if @compressed_bits_per_pixel.nil?
1153
+ invalid_properties.push('invalid value for "compressed_bits_per_pixel", compressed_bits_per_pixel cannot be nil.')
1154
+ end
1155
+
1156
+ if !@device_setting_description.nil? && @device_setting_description !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1157
+ invalid_properties.push('invalid value for "device_setting_description", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.')
1158
+ end
1159
+
1160
+ if @digital_zoom_ratio.nil?
1161
+ invalid_properties.push('invalid value for "digital_zoom_ratio", digital_zoom_ratio cannot be nil.')
1162
+ end
1163
+
1164
+ if !@exif_version.nil? && @exif_version !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1165
+ invalid_properties.push('invalid value for "exif_version", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.')
1166
+ end
1167
+
1168
+ if @exposure_bias_value.nil?
1169
+ invalid_properties.push('invalid value for "exposure_bias_value", exposure_bias_value cannot be nil.')
1170
+ end
1171
+
1172
+ if @exposure_index.nil?
1173
+ invalid_properties.push('invalid value for "exposure_index", exposure_index cannot be nil.')
1174
+ end
1175
+
1176
+ if @exposure_time.nil?
1177
+ invalid_properties.push('invalid value for "exposure_time", exposure_time cannot be nil.')
1178
+ end
1179
+
1180
+ if @f_number.nil?
1181
+ invalid_properties.push('invalid value for "f_number", f_number cannot be nil.')
1182
+ end
1183
+
1184
+ if @flash_energy.nil?
1185
+ invalid_properties.push('invalid value for "flash_energy", flash_energy cannot be nil.')
1186
+ end
1187
+
1188
+ if !@flashpix_version.nil? && @flashpix_version !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1189
+ invalid_properties.push('invalid value for "flashpix_version", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.')
1190
+ end
1191
+
1192
+ if @focal_length.nil?
1193
+ invalid_properties.push('invalid value for "focal_length", focal_length cannot be nil.')
1194
+ end
1195
+
1196
+ if @focal_length_in35_mm_film.nil?
1197
+ invalid_properties.push('invalid value for "focal_length_in35_mm_film", focal_length_in35_mm_film cannot be nil.')
1198
+ end
1199
+
1200
+ if @focal_plane_x_resolution.nil?
1201
+ invalid_properties.push('invalid value for "focal_plane_x_resolution", focal_plane_x_resolution cannot be nil.')
1202
+ end
1203
+
1204
+ if @focal_plane_y_resolution.nil?
1205
+ invalid_properties.push('invalid value for "focal_plane_y_resolution", focal_plane_y_resolution cannot be nil.')
1206
+ end
1207
+
1208
+ if @gps_altitude.nil?
1209
+ invalid_properties.push('invalid value for "gps_altitude", gps_altitude cannot be nil.')
1210
+ end
1211
+
1212
+ if !@gps_area_information.nil? && @gps_area_information !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1213
+ invalid_properties.push('invalid value for "gps_area_information", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.')
1214
+ end
1215
+
1216
+ if @gpsdop.nil?
1217
+ invalid_properties.push('invalid value for "gpsdop", gpsdop cannot be nil.')
1218
+ end
1219
+
1220
+ if @gps_dest_bearing.nil?
1221
+ invalid_properties.push('invalid value for "gps_dest_bearing", gps_dest_bearing cannot be nil.')
1222
+ end
1223
+
1224
+ if @gps_dest_distance.nil?
1225
+ invalid_properties.push('invalid value for "gps_dest_distance", gps_dest_distance cannot be nil.')
1226
+ end
1227
+
1228
+ if @gps_differential.nil?
1229
+ invalid_properties.push('invalid value for "gps_differential", gps_differential cannot be nil.')
1230
+ end
1231
+
1232
+ if @gps_img_direction.nil?
1233
+ invalid_properties.push('invalid value for "gps_img_direction", gps_img_direction cannot be nil.')
1234
+ end
1235
+
1236
+ if !@gps_processing_method.nil? && @gps_processing_method !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1237
+ invalid_properties.push('invalid value for "gps_processing_method", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.')
1238
+ end
1239
+
1240
+ if @gps_speed.nil?
1241
+ invalid_properties.push('invalid value for "gps_speed", gps_speed cannot be nil.')
1242
+ end
1243
+
1244
+ if !@gps_version_id.nil? && @gps_version_id !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1245
+ invalid_properties.push('invalid value for "gps_version_id", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.')
1246
+ end
1247
+
1248
+ if @gamma.nil?
1249
+ invalid_properties.push('invalid value for "gamma", gamma cannot be nil.')
1250
+ end
1251
+
1252
+ if @iso_speed.nil?
1253
+ invalid_properties.push('invalid value for "iso_speed", iso_speed cannot be nil.')
1254
+ end
1255
+
1256
+ if @iso_speed_latitude_yyy.nil?
1257
+ invalid_properties.push('invalid value for "iso_speed_latitude_yyy", iso_speed_latitude_yyy cannot be nil.')
1258
+ end
1259
+
1260
+ if @iso_speed_latitude_zzz.nil?
1261
+ invalid_properties.push('invalid value for "iso_speed_latitude_zzz", iso_speed_latitude_zzz cannot be nil.')
1262
+ end
1263
+
1264
+ if @photographic_sensitivity.nil?
1265
+ invalid_properties.push('invalid value for "photographic_sensitivity", photographic_sensitivity cannot be nil.')
1266
+ end
1267
+
1268
+ if !@maker_note_raw_data.nil? && @maker_note_raw_data !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1269
+ invalid_properties.push('invalid value for "maker_note_raw_data", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.')
1270
+ end
1271
+
1272
+ if @max_aperture_value.nil?
1273
+ invalid_properties.push('invalid value for "max_aperture_value", max_aperture_value cannot be nil.')
1274
+ end
1275
+
1276
+ if !@oecf.nil? && @oecf !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1277
+ invalid_properties.push('invalid value for "oecf", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.')
1278
+ end
1279
+
1280
+ if @pixel_x_dimension.nil?
1281
+ invalid_properties.push('invalid value for "pixel_x_dimension", pixel_x_dimension cannot be nil.')
1282
+ end
1283
+
1284
+ if @pixel_y_dimension.nil?
1285
+ invalid_properties.push('invalid value for "pixel_y_dimension", pixel_y_dimension cannot be nil.')
1286
+ end
1287
+
1288
+ if @recommended_exposure_index.nil?
1289
+ invalid_properties.push('invalid value for "recommended_exposure_index", recommended_exposure_index cannot be nil.')
1290
+ end
1291
+
1292
+ if @scene_type.nil?
1293
+ invalid_properties.push('invalid value for "scene_type", scene_type cannot be nil.')
1294
+ end
1295
+
1296
+ if @sensitivity_type.nil?
1297
+ invalid_properties.push('invalid value for "sensitivity_type", sensitivity_type cannot be nil.')
1298
+ end
1299
+
1300
+ if @sharpness.nil?
1301
+ invalid_properties.push('invalid value for "sharpness", sharpness cannot be nil.')
1302
+ end
1303
+
1304
+ if @shutter_speed_value.nil?
1305
+ invalid_properties.push('invalid value for "shutter_speed_value", shutter_speed_value cannot be nil.')
1306
+ end
1307
+
1308
+ if !@spatial_frequency_response.nil? && @spatial_frequency_response !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1309
+ invalid_properties.push('invalid value for "spatial_frequency_response", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.')
1310
+ end
1311
+
1312
+ if @standard_output_sensitivity.nil?
1313
+ invalid_properties.push('invalid value for "standard_output_sensitivity", standard_output_sensitivity cannot be nil.')
1314
+ end
1315
+
1316
+ if @subject_distance.nil?
1317
+ invalid_properties.push('invalid value for "subject_distance", subject_distance cannot be nil.')
1318
+ end
1319
+
1320
+ if @x_resolution.nil?
1321
+ invalid_properties.push('invalid value for "x_resolution", x_resolution cannot be nil.')
1322
+ end
1323
+
1324
+ if @y_resolution.nil?
1325
+ invalid_properties.push('invalid value for "y_resolution", y_resolution cannot be nil.')
1326
+ end
1327
+
1328
+ invalid_properties
1329
+ end
1330
+
1331
+ # Check to see if the all the properties in the model are valid
1332
+ # @return true if the model is valid
1333
+ def valid?
1334
+ return false if @aperture_value.nil?
1335
+ return false if @brightness_value.nil?
1336
+ return false if !@cfa_pattern.nil? && @cfa_pattern !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1337
+ return false if !@components_configuration.nil? && @components_configuration !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1338
+ return false if @compressed_bits_per_pixel.nil?
1339
+ return false if !@device_setting_description.nil? && @device_setting_description !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1340
+ return false if @digital_zoom_ratio.nil?
1341
+ return false if !@exif_version.nil? && @exif_version !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1342
+ return false if @exposure_bias_value.nil?
1343
+ return false if @exposure_index.nil?
1344
+ return false if @exposure_time.nil?
1345
+ return false if @f_number.nil?
1346
+ return false if @flash_energy.nil?
1347
+ return false if !@flashpix_version.nil? && @flashpix_version !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1348
+ return false if @focal_length.nil?
1349
+ return false if @focal_length_in35_mm_film.nil?
1350
+ return false if @focal_plane_x_resolution.nil?
1351
+ return false if @focal_plane_y_resolution.nil?
1352
+ return false if @gps_altitude.nil?
1353
+ return false if !@gps_area_information.nil? && @gps_area_information !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1354
+ return false if @gpsdop.nil?
1355
+ return false if @gps_dest_bearing.nil?
1356
+ return false if @gps_dest_distance.nil?
1357
+ return false if @gps_differential.nil?
1358
+ return false if @gps_img_direction.nil?
1359
+ return false if !@gps_processing_method.nil? && @gps_processing_method !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1360
+ return false if @gps_speed.nil?
1361
+ return false if !@gps_version_id.nil? && @gps_version_id !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1362
+ return false if @gamma.nil?
1363
+ return false if @iso_speed.nil?
1364
+ return false if @iso_speed_latitude_yyy.nil?
1365
+ return false if @iso_speed_latitude_zzz.nil?
1366
+ return false if @photographic_sensitivity.nil?
1367
+ return false if !@maker_note_raw_data.nil? && @maker_note_raw_data !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1368
+ return false if @max_aperture_value.nil?
1369
+ return false if !@oecf.nil? && @oecf !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1370
+ return false if @pixel_x_dimension.nil?
1371
+ return false if @pixel_y_dimension.nil?
1372
+ return false if @recommended_exposure_index.nil?
1373
+ return false if @scene_type.nil?
1374
+ return false if @sensitivity_type.nil?
1375
+ return false if @sharpness.nil?
1376
+ return false if @shutter_speed_value.nil?
1377
+ return false if !@spatial_frequency_response.nil? && @spatial_frequency_response !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1378
+ return false if @standard_output_sensitivity.nil?
1379
+ return false if @subject_distance.nil?
1380
+ return false if @x_resolution.nil?
1381
+ return false if @y_resolution.nil?
1382
+ true
1383
+ end
1384
+
1385
+ # Custom attribute writer method with validation
1386
+ # @param [Object] cfa_pattern Value to be assigned
1387
+ def cfa_pattern=(cfa_pattern)
1388
+ if !cfa_pattern.nil? && cfa_pattern !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1389
+ fail ArgumentError, 'invalid value for "cfa_pattern", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.'
1390
+ end
1391
+
1392
+ @cfa_pattern = cfa_pattern
1393
+ end
1394
+
1395
+ # Custom attribute writer method with validation
1396
+ # @param [Object] components_configuration Value to be assigned
1397
+ def components_configuration=(components_configuration)
1398
+ if !components_configuration.nil? && components_configuration !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1399
+ fail ArgumentError, 'invalid value for "components_configuration", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.'
1400
+ end
1401
+
1402
+ @components_configuration = components_configuration
1403
+ end
1404
+
1405
+ # Custom attribute writer method with validation
1406
+ # @param [Object] device_setting_description Value to be assigned
1407
+ def device_setting_description=(device_setting_description)
1408
+ if !device_setting_description.nil? && device_setting_description !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1409
+ fail ArgumentError, 'invalid value for "device_setting_description", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.'
1410
+ end
1411
+
1412
+ @device_setting_description = device_setting_description
1413
+ end
1414
+
1415
+ # Custom attribute writer method with validation
1416
+ # @param [Object] exif_version Value to be assigned
1417
+ def exif_version=(exif_version)
1418
+ if !exif_version.nil? && exif_version !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1419
+ fail ArgumentError, 'invalid value for "exif_version", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.'
1420
+ end
1421
+
1422
+ @exif_version = exif_version
1423
+ end
1424
+
1425
+ # Custom attribute writer method with validation
1426
+ # @param [Object] flashpix_version Value to be assigned
1427
+ def flashpix_version=(flashpix_version)
1428
+ if !flashpix_version.nil? && flashpix_version !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1429
+ fail ArgumentError, 'invalid value for "flashpix_version", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.'
1430
+ end
1431
+
1432
+ @flashpix_version = flashpix_version
1433
+ end
1434
+
1435
+ # Custom attribute writer method with validation
1436
+ # @param [Object] gps_area_information Value to be assigned
1437
+ def gps_area_information=(gps_area_information)
1438
+ if !gps_area_information.nil? && gps_area_information !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1439
+ fail ArgumentError, 'invalid value for "gps_area_information", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.'
1440
+ end
1441
+
1442
+ @gps_area_information = gps_area_information
1443
+ end
1444
+
1445
+ # Custom attribute writer method with validation
1446
+ # @param [Object] gps_processing_method Value to be assigned
1447
+ def gps_processing_method=(gps_processing_method)
1448
+ if !gps_processing_method.nil? && gps_processing_method !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1449
+ fail ArgumentError, 'invalid value for "gps_processing_method", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.'
1450
+ end
1451
+
1452
+ @gps_processing_method = gps_processing_method
1453
+ end
1454
+
1455
+ # Custom attribute writer method with validation
1456
+ # @param [Object] gps_version_id Value to be assigned
1457
+ def gps_version_id=(gps_version_id)
1458
+ if !gps_version_id.nil? && gps_version_id !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1459
+ fail ArgumentError, 'invalid value for "gps_version_id", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.'
1460
+ end
1461
+
1462
+ @gps_version_id = gps_version_id
1463
+ end
1464
+
1465
+ # Custom attribute writer method with validation
1466
+ # @param [Object] maker_note_raw_data Value to be assigned
1467
+ def maker_note_raw_data=(maker_note_raw_data)
1468
+ if !maker_note_raw_data.nil? && maker_note_raw_data !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1469
+ fail ArgumentError, 'invalid value for "maker_note_raw_data", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.'
1470
+ end
1471
+
1472
+ @maker_note_raw_data = maker_note_raw_data
1473
+ end
1474
+
1475
+ # Custom attribute writer method with validation
1476
+ # @param [Object] oecf Value to be assigned
1477
+ def oecf=(oecf)
1478
+ if !oecf.nil? && oecf !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1479
+ fail ArgumentError, 'invalid value for "oecf", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.'
1480
+ end
1481
+
1482
+ @oecf = oecf
1483
+ end
1484
+
1485
+ # Custom attribute writer method with validation
1486
+ # @param [Object] spatial_frequency_response Value to be assigned
1487
+ def spatial_frequency_response=(spatial_frequency_response)
1488
+ if !spatial_frequency_response.nil? && spatial_frequency_response !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
1489
+ fail ArgumentError, 'invalid value for "spatial_frequency_response", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.'
1490
+ end
1491
+
1492
+ @spatial_frequency_response = spatial_frequency_response
1493
+ end
1494
+
1495
+ # Checks equality by comparing each attribute.
1496
+ # @param [Object] Object to be compared
1497
+ def ==(o)
1498
+ return true if self.equal?(o)
1499
+ self.class == o.class &&
1500
+ aperture_value == o.aperture_value &&
1501
+ body_serial_number == o.body_serial_number &&
1502
+ brightness_value == o.brightness_value &&
1503
+ cfa_pattern == o.cfa_pattern &&
1504
+ camera_owner_name == o.camera_owner_name &&
1505
+ color_space == o.color_space &&
1506
+ components_configuration == o.components_configuration &&
1507
+ compressed_bits_per_pixel == o.compressed_bits_per_pixel &&
1508
+ contrast == o.contrast &&
1509
+ custom_rendered == o.custom_rendered &&
1510
+ date_time_digitized == o.date_time_digitized &&
1511
+ date_time_original == o.date_time_original &&
1512
+ device_setting_description == o.device_setting_description &&
1513
+ digital_zoom_ratio == o.digital_zoom_ratio &&
1514
+ exif_version == o.exif_version &&
1515
+ exposure_bias_value == o.exposure_bias_value &&
1516
+ exposure_index == o.exposure_index &&
1517
+ exposure_mode == o.exposure_mode &&
1518
+ exposure_program == o.exposure_program &&
1519
+ exposure_time == o.exposure_time &&
1520
+ f_number == o.f_number &&
1521
+ file_source == o.file_source &&
1522
+ flash == o.flash &&
1523
+ flash_energy == o.flash_energy &&
1524
+ flashpix_version == o.flashpix_version &&
1525
+ focal_length == o.focal_length &&
1526
+ focal_length_in35_mm_film == o.focal_length_in35_mm_film &&
1527
+ focal_plane_resolution_unit == o.focal_plane_resolution_unit &&
1528
+ focal_plane_x_resolution == o.focal_plane_x_resolution &&
1529
+ focal_plane_y_resolution == o.focal_plane_y_resolution &&
1530
+ gps_altitude == o.gps_altitude &&
1531
+ gps_altitude_ref == o.gps_altitude_ref &&
1532
+ gps_area_information == o.gps_area_information &&
1533
+ gpsdop == o.gpsdop &&
1534
+ gps_dest_bearing == o.gps_dest_bearing &&
1535
+ gps_dest_bearing_ref == o.gps_dest_bearing_ref &&
1536
+ gps_dest_distance == o.gps_dest_distance &&
1537
+ gps_dest_distance_ref == o.gps_dest_distance_ref &&
1538
+ gps_dest_latitude == o.gps_dest_latitude &&
1539
+ gps_dest_latitude_ref == o.gps_dest_latitude_ref &&
1540
+ gps_dest_longitude == o.gps_dest_longitude &&
1541
+ gps_dest_longitude_ref == o.gps_dest_longitude_ref &&
1542
+ gps_differential == o.gps_differential &&
1543
+ gps_img_direction == o.gps_img_direction &&
1544
+ gps_img_direction_ref == o.gps_img_direction_ref &&
1545
+ gps_date_stamp == o.gps_date_stamp &&
1546
+ gps_latitude == o.gps_latitude &&
1547
+ gps_latitude_ref == o.gps_latitude_ref &&
1548
+ gps_longitude == o.gps_longitude &&
1549
+ gps_longitude_ref == o.gps_longitude_ref &&
1550
+ gps_map_datum == o.gps_map_datum &&
1551
+ gps_measure_mode == o.gps_measure_mode &&
1552
+ gps_processing_method == o.gps_processing_method &&
1553
+ gps_satellites == o.gps_satellites &&
1554
+ gps_speed == o.gps_speed &&
1555
+ gps_speed_ref == o.gps_speed_ref &&
1556
+ gps_status == o.gps_status &&
1557
+ gps_timestamp == o.gps_timestamp &&
1558
+ gps_track == o.gps_track &&
1559
+ gps_track_ref == o.gps_track_ref &&
1560
+ gps_version_id == o.gps_version_id &&
1561
+ gain_control == o.gain_control &&
1562
+ gamma == o.gamma &&
1563
+ iso_speed == o.iso_speed &&
1564
+ iso_speed_latitude_yyy == o.iso_speed_latitude_yyy &&
1565
+ iso_speed_latitude_zzz == o.iso_speed_latitude_zzz &&
1566
+ photographic_sensitivity == o.photographic_sensitivity &&
1567
+ image_unique_id == o.image_unique_id &&
1568
+ lens_make == o.lens_make &&
1569
+ lens_model == o.lens_model &&
1570
+ lens_serial_number == o.lens_serial_number &&
1571
+ lens_specification == o.lens_specification &&
1572
+ light_source == o.light_source &&
1573
+ maker_note_raw_data == o.maker_note_raw_data &&
1574
+ max_aperture_value == o.max_aperture_value &&
1575
+ metering_mode == o.metering_mode &&
1576
+ oecf == o.oecf &&
1577
+ pixel_x_dimension == o.pixel_x_dimension &&
1578
+ pixel_y_dimension == o.pixel_y_dimension &&
1579
+ recommended_exposure_index == o.recommended_exposure_index &&
1580
+ related_sound_file == o.related_sound_file &&
1581
+ saturation == o.saturation &&
1582
+ scene_capture_type == o.scene_capture_type &&
1583
+ scene_type == o.scene_type &&
1584
+ sensing_method == o.sensing_method &&
1585
+ sensitivity_type == o.sensitivity_type &&
1586
+ sharpness == o.sharpness &&
1587
+ shutter_speed_value == o.shutter_speed_value &&
1588
+ spatial_frequency_response == o.spatial_frequency_response &&
1589
+ spectral_sensitivity == o.spectral_sensitivity &&
1590
+ standard_output_sensitivity == o.standard_output_sensitivity &&
1591
+ subject_area == o.subject_area &&
1592
+ subject_distance == o.subject_distance &&
1593
+ subject_distance_range == o.subject_distance_range &&
1594
+ subject_location == o.subject_location &&
1595
+ subsec_time == o.subsec_time &&
1596
+ subsec_time_digitized == o.subsec_time_digitized &&
1597
+ subsec_time_original == o.subsec_time_original &&
1598
+ user_comment == o.user_comment &&
1599
+ white_balance == o.white_balance &&
1600
+ white_point == o.white_point &&
1601
+ artist == o.artist &&
1602
+ copyright == o.copyright &&
1603
+ date_time == o.date_time &&
1604
+ image_description == o.image_description &&
1605
+ make == o.make &&
1606
+ model == o.model &&
1607
+ orientation == o.orientation &&
1608
+ primary_chromaticities == o.primary_chromaticities &&
1609
+ reference_black_white == o.reference_black_white &&
1610
+ resolution_unit == o.resolution_unit &&
1611
+ software == o.software &&
1612
+ transfer_function == o.transfer_function &&
1613
+ x_resolution == o.x_resolution &&
1614
+ y_cb_cr_coefficients == o.y_cb_cr_coefficients &&
1615
+ y_cb_cr_positioning == o.y_cb_cr_positioning &&
1616
+ y_resolution == o.y_resolution
1617
+ end
1618
+
1619
+ # @see the `==` method
1620
+ # @param [Object] Object to be compared
1621
+ def eql?(o)
1622
+ self == o
1623
+ end
1624
+
1625
+ # Calculates hash code according to all attributes.
1626
+ # @return [Fixnum] Hash code
1627
+ def hash
1628
+ [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, artist, copyright, date_time, image_description, make, model, orientation, primary_chromaticities, reference_black_white, resolution_unit, software, transfer_function, x_resolution, y_cb_cr_coefficients, y_cb_cr_positioning, y_resolution].hash
1629
+ end
1630
+
1631
+ # Builds the object from hash
1632
+ # @param [Hash] attributes Model attributes in the form of hash
1633
+ # @return [Object] Returns the model itself
1634
+ def build_from_hash(attributes)
1635
+ return nil unless attributes.is_a?(Hash)
1636
+ self.class.swagger_types.each_pair do |key, type|
1637
+ attribute_key = self.class.attribute_map[key]
1638
+ attribute_key = (attribute_key[0, 1].downcase + attribute_key[1..-1]).to_sym
1639
+ if type =~ /\AArray<(.*)>/i
1640
+ # check to ensure the input is an array given that the the attribute
1641
+ # is documented as an array but the input is not
1642
+ if attributes[attribute_key].is_a?(Array)
1643
+ self.send("#{key}=", attributes[attribute_key].map { |v| _deserialize($1, v) })
1644
+ end
1645
+ elsif !attributes[attribute_key].nil?
1646
+ self.send("#{key}=", _deserialize(type, attributes[attribute_key]))
1647
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
1648
+ end
1649
+
1650
+ self
1651
+ end
1652
+
1653
+ # Deserializes the data based on type
1654
+ # @param string type Data type
1655
+ # @param string value Value to be deserialized
1656
+ # @return [Object] Deserialized data
1657
+ def _deserialize(type, value)
1658
+ case type.to_sym
1659
+ when :DateTime
1660
+ DateTime.parse(value)
1661
+ when :Date
1662
+ Date.parse(value)
1663
+ when :String
1664
+ value.to_s
1665
+ when :Integer
1666
+ value.to_i
1667
+ when :Float
1668
+ value.to_f
1669
+ when :BOOLEAN
1670
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
1671
+ true
1672
+ else
1673
+ false
1674
+ end
1675
+ when :Object
1676
+ # generic object (usually a Hash), return directly
1677
+ value
1678
+ when /\AArray<(?<inner_type>.+)>\z/
1679
+ inner_type = Regexp.last_match[:inner_type]
1680
+ value.map { |v| _deserialize(inner_type, v) }
1681
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
1682
+ k_type = Regexp.last_match[:k_type]
1683
+ v_type = Regexp.last_match[:v_type]
1684
+ {}.tap do |hash|
1685
+ value.each do |k, v|
1686
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
1687
+ end
1688
+ end
1689
+ else # model
1690
+ temp_model = AsposeImagingCloud.const_get(type).new
1691
+ temp_model.build_from_hash(value)
1692
+ end
1693
+ end
1694
+
1695
+ # Returns the string representation of the object
1696
+ # @return [String] String presentation of the object
1697
+ def to_s
1698
+ to_hash.to_s
1699
+ end
1700
+
1701
+ # to_body is an alias to to_hash (backward compatibility)
1702
+ # @return [Hash] Returns the object in the form of hash
1703
+ def to_body
1704
+ to_hash
1705
+ end
1706
+
1707
+ # Returns the object in the form of hash
1708
+ # @return [Hash] Returns the object in the form of hash
1709
+ def to_hash
1710
+ hash = {}
1711
+ self.class.attribute_map.each_pair do |attr, param|
1712
+ value = self.send(attr)
1713
+ next if value.nil?
1714
+ hash[param] = _to_hash(value)
1715
+ end
1716
+ hash
1717
+ end
1718
+
1719
+ # Outputs non-array value in the form of hash
1720
+ # For object, use to_hash. Otherwise, just return the value
1721
+ # @param [Object] value Any valid value
1722
+ # @return [Hash] Returns the value in the form of hash
1723
+ def _to_hash(value)
1724
+ if value.is_a?(Array)
1725
+ value.compact.map { |v| _to_hash(v) }
1726
+ elsif value.is_a?(Hash)
1727
+ {}.tap do |hash|
1728
+ value.each { |k, v| hash[k] = _to_hash(v) }
1729
+ end
1730
+ elsif value.respond_to? :to_hash
1731
+ value.to_hash
1732
+ else
1733
+ value
1734
+ end
1735
+ end
1736
+
1737
+ end
1738
+ end