aspose_slides_cloud 23.9.0 → 23.10.0

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 (48) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -7
  3. data/README.md +4 -0
  4. data/aspose_slides_cloud.gemspec +0 -1
  5. data/docker-entrypoint.sh +1 -0
  6. data/lib/aspose_slides_cloud/api/slides_async_api.rb +273 -0
  7. data/lib/aspose_slides_cloud/api_client.rb +2 -1
  8. data/lib/aspose_slides_cloud/models/operation.rb +209 -0
  9. data/lib/aspose_slides_cloud/type_registry.rb +1 -0
  10. data/lib/aspose_slides_cloud/version.rb +1 -1
  11. data/lib/aspose_slides_cloud.rb +2 -0
  12. data/spec/api/slides_api_spec.rb +2016 -2016
  13. data/spec/api/slides_async_api_spec.rb +554 -0
  14. data/spec/spec_utils.rb +38 -7
  15. data/spec/use_cases/abstract_class_spec.rb +1 -1
  16. data/spec/use_cases/animation_spec.rb +28 -28
  17. data/spec/use_cases/async_api_spec.rb +82 -0
  18. data/spec/use_cases/chart_spec.rb +51 -51
  19. data/spec/use_cases/comment_spec.rb +17 -17
  20. data/spec/use_cases/create_spec.rb +22 -22
  21. data/spec/use_cases/font_spec.rb +24 -24
  22. data/spec/use_cases/header_footer_spec.rb +9 -9
  23. data/spec/use_cases/hyperlink_spec.rb +10 -10
  24. data/spec/use_cases/image_spec.rb +16 -16
  25. data/spec/use_cases/layout_slide_spec.rb +41 -41
  26. data/spec/use_cases/master_slide_spec.rb +40 -40
  27. data/spec/use_cases/math_spec.rb +15 -15
  28. data/spec/use_cases/merge_spec.rb +15 -15
  29. data/spec/use_cases/notes_slide_spec.rb +39 -39
  30. data/spec/use_cases/nullable_field_spec.rb +7 -7
  31. data/spec/use_cases/paragraph_spec.rb +38 -38
  32. data/spec/use_cases/pipeline_spec.rb +1 -1
  33. data/spec/use_cases/portion_spec.rb +34 -34
  34. data/spec/use_cases/property_spec.rb +38 -38
  35. data/spec/use_cases/section_spec.rb +16 -16
  36. data/spec/use_cases/shape_format_spec.rb +12 -12
  37. data/spec/use_cases/shape_spec.rb +87 -87
  38. data/spec/use_cases/slide_spec.rb +32 -32
  39. data/spec/use_cases/split_spec.rb +12 -12
  40. data/spec/use_cases/table_spec.rb +38 -38
  41. data/spec/use_cases/text_format_spec.rb +4 -4
  42. data/spec/use_cases/text_spec.rb +28 -28
  43. data/spec/use_cases/vba_spec.rb +10 -10
  44. data/spec/use_cases/watermark_spec.rb +36 -36
  45. data/testConfig.json +2 -1
  46. data/testRules.json +7 -0
  47. metadata +8 -24
  48. data/spec/use_cases/convert_spec.rb +0 -199
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a41a0a352d4ed06aacdc85d71e640b75be6c90686c9b4e1f5adda2daa6df22a
4
- data.tar.gz: a9315c7e5dbb2d6984427064200142917aa9251a70bcbb13613fcb58e3a2455e
3
+ metadata.gz: 34682ffe3b102493761aff274ea1d1a4fa66dab39a1580ec5c8cdd2ebdd5f960
4
+ data.tar.gz: f9e5f28e25486125947e76b25f369b3cf431fec9b56bd47a0b88c1db730add11
5
5
  SHA512:
6
- metadata.gz: 9bb1a96e9c6dacffdad05685025efbf4f3ccb227c0ccdc5e880420413e9e22816b7b23771066a2e85b9438abb2df482b761fcec5f779cc88b8c8e24d9c5cd088
7
- data.tar.gz: 39bef77e18cd0a00e6e501b763d65f98949406f828e637e8f7e9bca90ea625124fdcc893d7fff92a035e88fc60171a966a49db665d5348be39177547dececa4b
6
+ metadata.gz: 47d210a979348472740898a3eddfffbe932687faefb42e800df63f01e1d39ecbd98386bba50f49843d7d1d40bd7b33d1c0dee1ac37dd1e252149df894b04927c
7
+ data.tar.gz: 49d6e58274292a16342479c98750a729ce0d90c10b3a3a03ed73c3eaf739708ad94d77b6065e08775232d177d9c37ed5a0ec5718423dc51d4af2c96c33242a09
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- aspose_slides_cloud (23.9.0)
4
+ aspose_slides_cloud (23.10.0)
5
5
  faraday (~> 1.0, >= 1.0.0)
6
6
  faraday-httpclient (~> 1.0, >= 1.0.0)
7
7
  httpclient (~> 2.2, >= 2.2.0)
@@ -15,8 +15,6 @@ GEM
15
15
  public_suffix (>= 2.0.2, < 6.0)
16
16
  autotest (4.4.6)
17
17
  ZenTest (>= 4.4.1)
18
- autotest-fsevent (0.2.20)
19
- sys-uname
20
18
  autotest-growl (0.2.16)
21
19
  autotest-rails-pure (4.1.2)
22
20
  crack (0.4.5)
@@ -45,7 +43,6 @@ GEM
45
43
  faraday-patron (1.0.0)
46
44
  faraday-rack (1.0.0)
47
45
  faraday-retry (1.0.3)
48
- ffi (1.16.2)
49
46
  hashdiff (1.0.1)
50
47
  httpclient (2.8.3)
51
48
  json (2.6.3)
@@ -70,8 +67,6 @@ GEM
70
67
  rspec-core (>= 2, < 4, != 2.12.0)
71
68
  ruby2_keywords (0.0.5)
72
69
  rubyzip (2.3.2)
73
- sys-uname (1.2.3)
74
- ffi (~> 1.1)
75
70
  vcr (3.0.3)
76
71
  webmock (1.24.6)
77
72
  addressable (>= 2.3.6)
@@ -84,7 +79,6 @@ PLATFORMS
84
79
  DEPENDENCIES
85
80
  aspose_slides_cloud!
86
81
  autotest (~> 4.4, >= 4.4.6)
87
- autotest-fsevent (~> 0.2, >= 0.2.12)
88
82
  autotest-growl (~> 0.2, >= 0.2.16)
89
83
  autotest-rails-pure (~> 4.1, >= 4.1.2)
90
84
  rake (~> 12.3.3)
data/README.md CHANGED
@@ -27,6 +27,10 @@ You may want to check out Aspose free [Powerpoint to PDF](https://products.aspos
27
27
  **Web:** HTML/HTML5
28
28
  **Other:** MPEG4, SWF (export whole presentations)
29
29
 
30
+ ## Enhancements in Version 23.10
31
+
32
+ * Added asynchronous API - **SlidesAsyncApi** class with **StartConvert**, **StartDownloadPresentation**, **GetOperationStatus**, **GetOperationResult** methods that allow tracking progress of conversion operations.
33
+
30
34
  ## Enhancements in Version 23.9
31
35
 
32
36
  * Added **ReplaceImage** and **ReplaceImageOnline** methods that enable replacing images in a presentation.
@@ -49,7 +49,6 @@ Gem::Specification.new do |s|
49
49
  s.add_development_dependency 'autotest', '~> 4.4', '>= 4.4.6'
50
50
  s.add_development_dependency 'autotest-rails-pure', '~> 4.1', '>= 4.1.2'
51
51
  s.add_development_dependency 'autotest-growl', '~> 0.2', '>= 0.2.16'
52
- s.add_development_dependency 'autotest-fsevent', '~> 0.2', '>= 0.2.12'
53
52
  s.add_development_dependency 'rubyzip', '~> 2.3', '>= 2.3.0'
54
53
  s.files = `find *`.split("\n").uniq.sort.select { |f| !f.empty? }
55
54
  s.test_files = `find spec/*`.split("\n").uniq.sort.select { |f| !f.empty? && f.start_with?("spec") }
data/docker-entrypoint.sh CHANGED
@@ -3,6 +3,7 @@
3
3
  sed -i 's~@your_client_id@~'"${CLIENT_ID}"'~g' testConfig.json
4
4
  sed -i 's~@your_client_secret@~'"${CLIENT_SECRET}"'~g' testConfig.json
5
5
  sed -i 's~@base_url@~'"${BASE_URL}"'~g' testConfig.json
6
+ sed -i 's~@async_base_url@~'"${BASE_ASYNC_URL}"'~g' testConfig.json
6
7
  sed -i 's~@base_auth_url@~'"${BASE_AUTH_URL}"'~g' testConfig.json
7
8
 
8
9
  mkdir testResults
@@ -0,0 +1,273 @@
1
+ =begin
2
+ Copyright (c) 2019 Aspose Pty Ltd
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is
9
+ furnished to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all
12
+ copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ SOFTWARE.
21
+ =end
22
+
23
+ require 'uri'
24
+
25
+ module AsposeSlidesCloud
26
+ class SlidesAsyncApi
27
+ attr_accessor :api_client
28
+
29
+ def initialize(configuration = Configuration.default)
30
+ @api_client = AsposeSlidesCloud::ApiClient.new(configuration)
31
+ end
32
+
33
+ # @param id
34
+ def get_operation_result(id)
35
+ data, _status_code, _headers = get_operation_result_with_http_info(id)
36
+ data
37
+ end
38
+
39
+ # @param id
40
+ def get_operation_result_with_http_info(id)
41
+ if @api_client.config.debugging
42
+ @api_client.config.logger.debug 'Calling API: SlidesAsyncApi.get_operation_result ...'
43
+ end
44
+
45
+ # verify the required parameter 'id' is set
46
+ if @api_client.config.client_side_validation && id.nil?
47
+ fail ArgumentError, "Missing the required parameter 'id' when calling SlidesAsyncApi.get_operation_result"
48
+ end
49
+ # resource path
50
+ local_var_path = '/slides/async/{id}/result'
51
+ local_var_path = @api_client.replace_path_parameter(local_var_path, 'id', id)
52
+
53
+ # query parameters
54
+ query_params = {}
55
+
56
+ # header parameters
57
+ header_params = {}
58
+ # HTTP header 'Accept' (if needed)
59
+ header_params['Accept'] = @api_client.select_header_accept(['multipart/form-data'])
60
+ # HTTP header 'Content-Type'
61
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
62
+
63
+ # http body (model)
64
+ post_body = nil
65
+
66
+ # form parameters
67
+ post_files = []
68
+
69
+ auth_names = ['JWT']
70
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
71
+ :header_params => header_params,
72
+ :query_params => query_params,
73
+ :body => post_body,
74
+ :files => post_files,
75
+ :auth_names => auth_names,
76
+ :return_type => 'File')
77
+ return data, status_code, headers
78
+ end
79
+ # @param id
80
+ def get_operation_status(id)
81
+ data, _status_code, _headers = get_operation_status_with_http_info(id)
82
+ data
83
+ end
84
+
85
+ # @param id
86
+ def get_operation_status_with_http_info(id)
87
+ if @api_client.config.debugging
88
+ @api_client.config.logger.debug 'Calling API: SlidesAsyncApi.get_operation_status ...'
89
+ end
90
+
91
+ # verify the required parameter 'id' is set
92
+ if @api_client.config.client_side_validation && id.nil?
93
+ fail ArgumentError, "Missing the required parameter 'id' when calling SlidesAsyncApi.get_operation_status"
94
+ end
95
+ # resource path
96
+ local_var_path = '/slides/async/{id}'
97
+ local_var_path = @api_client.replace_path_parameter(local_var_path, 'id', id)
98
+
99
+ # query parameters
100
+ query_params = {}
101
+
102
+ # header parameters
103
+ header_params = {}
104
+ # HTTP header 'Accept' (if needed)
105
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
106
+ # HTTP header 'Content-Type'
107
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
108
+
109
+ # http body (model)
110
+ post_body = nil
111
+
112
+ # form parameters
113
+ post_files = []
114
+
115
+ auth_names = ['JWT']
116
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
117
+ :header_params => header_params,
118
+ :query_params => query_params,
119
+ :body => post_body,
120
+ :files => post_files,
121
+ :auth_names => auth_names,
122
+ :return_type => 'Operation')
123
+ return data, status_code, headers
124
+ end
125
+ # @param document Document data.
126
+ # @param format
127
+ # @param password
128
+ # @param storage
129
+ # @param fonts_folder
130
+ # @param slides
131
+ # @param options
132
+ def start_convert(document, format, password = nil, storage = nil, fonts_folder = nil, slides = nil, options = nil)
133
+ data, _status_code, _headers = start_convert_with_http_info(document, format, password, storage, fonts_folder, slides, options)
134
+ data
135
+ end
136
+
137
+ # @param document Document data.
138
+ # @param format
139
+ # @param password
140
+ # @param storage
141
+ # @param fonts_folder
142
+ # @param slides
143
+ # @param options
144
+ def start_convert_with_http_info(document, format, password = nil, storage = nil, fonts_folder = nil, slides = nil, options = nil)
145
+ if @api_client.config.debugging
146
+ @api_client.config.logger.debug 'Calling API: SlidesAsyncApi.start_convert ...'
147
+ end
148
+
149
+ # verify the required parameter 'document' is set
150
+ if @api_client.config.client_side_validation && document.nil?
151
+ fail ArgumentError, "Missing the required parameter 'document' when calling SlidesAsyncApi.start_convert"
152
+ end
153
+ # verify the required parameter 'format' is set
154
+ if @api_client.config.client_side_validation && format.nil?
155
+ fail ArgumentError, "Missing the required parameter 'format' when calling SlidesAsyncApi.start_convert"
156
+ end
157
+ # verify enum value
158
+ if @api_client.config.client_side_validation && !['Pdf', 'Xps', 'Tiff', 'Pptx', 'Odp', 'Otp', 'Ppt', 'Pps', 'Ppsx', 'Pptm', 'Ppsm', 'Pot', 'Potx', 'Potm', 'Html', 'Html5', 'Swf', 'Svg', 'Jpeg', 'Png', 'Gif', 'Bmp', 'Fodp', 'Xaml', 'Mpeg4'].any?{ |s| s.casecmp(format)==0 }
159
+ fail ArgumentError, "Invalid value for parameter format: " + format + ". Must be one of Pdf, Xps, Tiff, Pptx, Odp, Otp, Ppt, Pps, Ppsx, Pptm, Ppsm, Pot, Potx, Potm, Html, Html5, Swf, Svg, Jpeg, Png, Gif, Bmp, Fodp, Xaml, Mpeg4"
160
+ end
161
+ # resource path
162
+ local_var_path = '/slides/async/convert/{format}'
163
+ local_var_path = @api_client.replace_path_parameter(local_var_path, 'format', format)
164
+
165
+ # query parameters
166
+ query_params = {}
167
+ query_params[:'storage'] = @api_client.prepare_for_query(storage) unless storage.nil?
168
+ query_params[:'fontsFolder'] = @api_client.prepare_for_query(fonts_folder) unless fonts_folder.nil?
169
+ query_params[:'slides'] = @api_client.prepare_for_query(slides) unless slides.nil?
170
+
171
+ # header parameters
172
+ header_params = {}
173
+ # HTTP header 'Accept' (if needed)
174
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
175
+ # HTTP header 'Content-Type'
176
+ header_params['Content-Type'] = @api_client.select_header_content_type(['multipart/form-data'])
177
+ header_params[:'password'] = password unless password.nil?
178
+
179
+ # http body (model)
180
+ post_body = @api_client.object_to_http_body(options)
181
+
182
+ # form parameters
183
+ post_files = []
184
+ if document
185
+ post_files = post_files.push(document)
186
+ end
187
+
188
+ auth_names = ['JWT']
189
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path,
190
+ :header_params => header_params,
191
+ :query_params => query_params,
192
+ :body => post_body,
193
+ :files => post_files,
194
+ :auth_names => auth_names,
195
+ :return_type => 'String')
196
+ return data, status_code, headers
197
+ end
198
+ # @param name
199
+ # @param format
200
+ # @param options
201
+ # @param password
202
+ # @param folder
203
+ # @param storage
204
+ # @param fonts_folder
205
+ # @param slides
206
+ def start_download_presentation(name, format, options = nil, password = nil, folder = nil, storage = nil, fonts_folder = nil, slides = nil)
207
+ data, _status_code, _headers = start_download_presentation_with_http_info(name, format, options, password, folder, storage, fonts_folder, slides)
208
+ data
209
+ end
210
+
211
+ # @param name
212
+ # @param format
213
+ # @param options
214
+ # @param password
215
+ # @param folder
216
+ # @param storage
217
+ # @param fonts_folder
218
+ # @param slides
219
+ def start_download_presentation_with_http_info(name, format, options = nil, password = nil, folder = nil, storage = nil, fonts_folder = nil, slides = nil)
220
+ if @api_client.config.debugging
221
+ @api_client.config.logger.debug 'Calling API: SlidesAsyncApi.start_download_presentation ...'
222
+ end
223
+
224
+ # verify the required parameter 'name' is set
225
+ if @api_client.config.client_side_validation && name.nil?
226
+ fail ArgumentError, "Missing the required parameter 'name' when calling SlidesAsyncApi.start_download_presentation"
227
+ end
228
+ # verify the required parameter 'format' is set
229
+ if @api_client.config.client_side_validation && format.nil?
230
+ fail ArgumentError, "Missing the required parameter 'format' when calling SlidesAsyncApi.start_download_presentation"
231
+ end
232
+ # verify enum value
233
+ if @api_client.config.client_side_validation && !['Pdf', 'Xps', 'Tiff', 'Pptx', 'Odp', 'Otp', 'Ppt', 'Pps', 'Ppsx', 'Pptm', 'Ppsm', 'Pot', 'Potx', 'Potm', 'Html', 'Html5', 'Swf', 'Svg', 'Jpeg', 'Png', 'Gif', 'Bmp', 'Fodp', 'Xaml', 'Mpeg4'].any?{ |s| s.casecmp(format)==0 }
234
+ fail ArgumentError, "Invalid value for parameter format: " + format + ". Must be one of Pdf, Xps, Tiff, Pptx, Odp, Otp, Ppt, Pps, Ppsx, Pptm, Ppsm, Pot, Potx, Potm, Html, Html5, Swf, Svg, Jpeg, Png, Gif, Bmp, Fodp, Xaml, Mpeg4"
235
+ end
236
+ # resource path
237
+ local_var_path = '/slides/async/{name}/{format}'
238
+ local_var_path = @api_client.replace_path_parameter(local_var_path, 'name', name)
239
+ local_var_path = @api_client.replace_path_parameter(local_var_path, 'format', format)
240
+
241
+ # query parameters
242
+ query_params = {}
243
+ query_params[:'folder'] = @api_client.prepare_for_query(folder) unless folder.nil?
244
+ query_params[:'storage'] = @api_client.prepare_for_query(storage) unless storage.nil?
245
+ query_params[:'fontsFolder'] = @api_client.prepare_for_query(fonts_folder) unless fonts_folder.nil?
246
+ query_params[:'slides'] = @api_client.prepare_for_query(slides) unless slides.nil?
247
+
248
+ # header parameters
249
+ header_params = {}
250
+ # HTTP header 'Accept' (if needed)
251
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
252
+ # HTTP header 'Content-Type'
253
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
254
+ header_params[:'password'] = password unless password.nil?
255
+
256
+ # http body (model)
257
+ post_body = @api_client.object_to_http_body(options)
258
+
259
+ # form parameters
260
+ post_files = []
261
+
262
+ auth_names = ['JWT']
263
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path,
264
+ :header_params => header_params,
265
+ :query_params => query_params,
266
+ :body => post_body,
267
+ :files => post_files,
268
+ :auth_names => auth_names,
269
+ :return_type => 'String')
270
+ return data, status_code, headers
271
+ end
272
+ end
273
+ end
@@ -221,7 +221,8 @@ module AsposeSlidesCloud
221
221
  return nil if body.nil? || body.empty?
222
222
 
223
223
  # return response body directly for String return type
224
- return body if return_type == 'String' or return_type == 'File'
224
+ return body.delete_prefix('"').delete_suffix('"') if return_type == 'String'
225
+ return body if return_type == 'File'
225
226
 
226
227
  # ensuring a default content type
227
228
  content_type = response.headers['Content-Type'] || 'application/json'
@@ -0,0 +1,209 @@
1
+ =begin
2
+ Copyright (c) 2019 Aspose Pty Ltd
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is
9
+ furnished to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all
12
+ copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ SOFTWARE.
21
+ =end
22
+
23
+ require 'date'
24
+
25
+ module AsposeSlidesCloud
26
+ class Operation < BaseObject
27
+ attr_accessor :id
28
+
29
+ attr_accessor :method
30
+
31
+ attr_accessor :status
32
+
33
+ attr_accessor :created
34
+
35
+ attr_accessor :enqueued
36
+
37
+ attr_accessor :started
38
+
39
+ attr_accessor :failed
40
+
41
+ attr_accessor :canceled
42
+
43
+ attr_accessor :finished
44
+
45
+ attr_accessor :error
46
+
47
+ # Attribute mapping from ruby-style variable name to JSON key.
48
+ def self.attribute_map
49
+ {
50
+ :'id' => :'Id',
51
+ :'method' => :'Method',
52
+ :'status' => :'Status',
53
+ :'created' => :'Created',
54
+ :'enqueued' => :'Enqueued',
55
+ :'started' => :'Started',
56
+ :'failed' => :'Failed',
57
+ :'canceled' => :'Canceled',
58
+ :'finished' => :'Finished',
59
+ :'error' => :'Error',
60
+ }
61
+ end
62
+
63
+ # Attribute type mapping.
64
+ def self.swagger_types
65
+ {
66
+ :'id' => :'String',
67
+ :'method' => :'String',
68
+ :'status' => :'String',
69
+ :'created' => :'DateTime',
70
+ :'enqueued' => :'DateTime',
71
+ :'started' => :'DateTime',
72
+ :'failed' => :'DateTime',
73
+ :'canceled' => :'DateTime',
74
+ :'finished' => :'DateTime',
75
+ :'error' => :'String',
76
+ }
77
+ end
78
+
79
+ # Initializes the object
80
+ # @param [Hash] attributes Model attributes in the form of hash
81
+ def initialize(attributes = {})
82
+ return unless attributes.is_a?(Hash)
83
+
84
+ # convert string to symbol for hash key
85
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
86
+
87
+ if attributes.has_key?(:'Id')
88
+ self.id = attributes[:'Id']
89
+ end
90
+
91
+ if attributes.has_key?(:'Method')
92
+ self.method = attributes[:'Method']
93
+ end
94
+
95
+ if attributes.has_key?(:'Status')
96
+ self.status = attributes[:'Status']
97
+ end
98
+
99
+ if attributes.has_key?(:'Created')
100
+ self.created = attributes[:'Created']
101
+ end
102
+
103
+ if attributes.has_key?(:'Enqueued')
104
+ self.enqueued = attributes[:'Enqueued']
105
+ end
106
+
107
+ if attributes.has_key?(:'Started')
108
+ self.started = attributes[:'Started']
109
+ end
110
+
111
+ if attributes.has_key?(:'Failed')
112
+ self.failed = attributes[:'Failed']
113
+ end
114
+
115
+ if attributes.has_key?(:'Canceled')
116
+ self.canceled = attributes[:'Canceled']
117
+ end
118
+
119
+ if attributes.has_key?(:'Finished')
120
+ self.finished = attributes[:'Finished']
121
+ end
122
+
123
+ if attributes.has_key?(:'Error')
124
+ self.error = attributes[:'Error']
125
+ end
126
+ end
127
+
128
+ # Show invalid properties with the reasons. Usually used together with valid?
129
+ # @return Array for valid properties with the reasons
130
+ def list_invalid_properties
131
+ invalid_properties = Array.new
132
+ if @id.nil?
133
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
134
+ end
135
+
136
+ if @method.nil?
137
+ invalid_properties.push('invalid value for "method", method cannot be nil.')
138
+ end
139
+
140
+ if @status.nil?
141
+ invalid_properties.push('invalid value for "status", status cannot be nil.')
142
+ end
143
+
144
+ invalid_properties
145
+ end
146
+
147
+ # Check to see if the all the properties in the model are valid
148
+ # @return true if the model is valid
149
+ def valid?
150
+ return false if @id.nil?
151
+ return false if @method.nil?
152
+ method_validator = EnumAttributeValidator.new('String', ['Convert', 'DownloadPresentation'])
153
+ return false unless method_validator.valid?(@method)
154
+ return false if @status.nil?
155
+ status_validator = EnumAttributeValidator.new('String', ['Created', 'Enqueued', 'Started', 'Failed', 'Canceled', 'Finished'])
156
+ return false unless status_validator.valid?(@status)
157
+ true
158
+ end
159
+
160
+ # Custom attribute writer method checking allowed values (enum).
161
+ # @param [Object] method Object to be assigned
162
+ def method=(method)
163
+ validator = EnumAttributeValidator.new('String', ['Convert', 'DownloadPresentation'])
164
+ unless validator.valid?(method)
165
+ fail ArgumentError, 'invalid value for "method", must be one of #{validator.allowable_values}.'
166
+ end
167
+ @method = method
168
+ end
169
+
170
+ # Custom attribute writer method checking allowed values (enum).
171
+ # @param [Object] status Object to be assigned
172
+ def status=(status)
173
+ validator = EnumAttributeValidator.new('String', ['Created', 'Enqueued', 'Started', 'Failed', 'Canceled', 'Finished'])
174
+ unless validator.valid?(status)
175
+ fail ArgumentError, 'invalid value for "status", must be one of #{validator.allowable_values}.'
176
+ end
177
+ @status = status
178
+ end
179
+
180
+ # Checks equality by comparing each attribute.
181
+ # @param [Object] Object to be compared
182
+ def ==(o)
183
+ return true if self.equal?(o)
184
+ self.class == o.class &&
185
+ id == o.id &&
186
+ method == o.method &&
187
+ status == o.status &&
188
+ created == o.created &&
189
+ enqueued == o.enqueued &&
190
+ started == o.started &&
191
+ failed == o.failed &&
192
+ canceled == o.canceled &&
193
+ finished == o.finished &&
194
+ error == o.error
195
+ end
196
+
197
+ # @see the `==` method
198
+ # @param [Object] Object to be compared
199
+ def eql?(o)
200
+ self == o
201
+ end
202
+
203
+ # Calculates hash code according to all attributes.
204
+ # @return [Fixnum] Hash code
205
+ def hash
206
+ [id, method, status, created, enqueued, started, failed, canceled, finished, error].hash
207
+ end
208
+ end
209
+ end
@@ -372,6 +372,7 @@ module AsposeSlidesCloud
372
372
  :'OleObjectFrame' => { :'Type' => 'OleObjectFrame', },
373
373
  :'OneValueChartDataPoint' => { :'Type' => 'OneValue', },
374
374
  :'OneValueSeries' => { :'DataPointType' => 'OneValue', },
375
+ :'Operation' => { },
375
376
  :'OrderedMergeRequest' => { },
376
377
  :'OuterShadowEffect' => { },
377
378
  :'OutputFile' => { },
@@ -21,5 +21,5 @@ SOFTWARE.
21
21
  =end
22
22
 
23
23
  module AsposeSlidesCloud
24
- VERSION = '23.9.0'
24
+ VERSION = '23.10.0'
25
25
  end
@@ -171,6 +171,7 @@ require 'aspose_slides_cloud/models/object_exist'
171
171
  require 'aspose_slides_cloud/models/ole_object_frame'
172
172
  require 'aspose_slides_cloud/models/one_value_chart_data_point'
173
173
  require 'aspose_slides_cloud/models/one_value_series'
174
+ require 'aspose_slides_cloud/models/operation'
174
175
  require 'aspose_slides_cloud/models/ordered_merge_request'
175
176
  require 'aspose_slides_cloud/models/outer_shadow_effect'
176
177
  require 'aspose_slides_cloud/models/output_file'
@@ -280,6 +281,7 @@ require 'aspose_slides_cloud/models/zoom_frame'
280
281
 
281
282
  # APIs
282
283
  require 'aspose_slides_cloud/api/slides_api'
284
+ require 'aspose_slides_cloud/api/slides_async_api'
283
285
 
284
286
  module AsposeSlidesCloud
285
287
  class << self