aspose_imaging_cloud 1.0.0 → 19.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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