aspose_slides_cloud 23.9.0 → 23.10.0

Sign up to get free protection for your applications and to get access to all the features.
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