aspose_slides_cloud 19.9.0 → 20.5.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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/README.md +51 -2
  4. data/lib/aspose_slides_cloud.rb +6 -0
  5. data/lib/aspose_slides_cloud/api/slides_api.rb +219 -194
  6. data/lib/aspose_slides_cloud/api/slides_api_requests.rb +178 -105
  7. data/lib/aspose_slides_cloud/api_client.rb +4 -1
  8. data/lib/aspose_slides_cloud/configuration.rb +6 -1
  9. data/lib/aspose_slides_cloud/models/arrow_head_properties.rb +0 -15
  10. data/lib/aspose_slides_cloud/models/axis.rb +0 -160
  11. data/lib/aspose_slides_cloud/models/box_and_whisker_series.rb +490 -0
  12. data/lib/aspose_slides_cloud/models/bubble_series.rb +2 -37
  13. data/lib/aspose_slides_cloud/models/chart.rb +14 -4
  14. data/lib/aspose_slides_cloud/models/chart_category.rb +237 -0
  15. data/lib/aspose_slides_cloud/models/chart_wall.rb +0 -10
  16. data/lib/aspose_slides_cloud/models/common_slide_view_properties.rb +205 -0
  17. data/lib/aspose_slides_cloud/models/document.rb +11 -1
  18. data/lib/aspose_slides_cloud/models/document_replace_result.rb +11 -1
  19. data/lib/aspose_slides_cloud/models/legend.rb +0 -30
  20. data/lib/aspose_slides_cloud/models/line_format.rb +0 -35
  21. data/lib/aspose_slides_cloud/models/normal_view_restored_properties.rb +205 -0
  22. data/lib/aspose_slides_cloud/models/one_value_series.rb +2 -37
  23. data/lib/aspose_slides_cloud/models/plot_area.rb +0 -25
  24. data/lib/aspose_slides_cloud/models/scatter_series.rb +2 -37
  25. data/lib/aspose_slides_cloud/models/series.rb +2 -37
  26. data/lib/aspose_slides_cloud/models/series_marker.rb +0 -10
  27. data/lib/aspose_slides_cloud/models/table.rb +0 -40
  28. data/lib/aspose_slides_cloud/models/table_cell.rb +0 -40
  29. data/lib/aspose_slides_cloud/models/view_properties.rb +367 -0
  30. data/lib/aspose_slides_cloud/models/waterfall_series.rb +438 -0
  31. data/lib/aspose_slides_cloud/version.rb +1 -1
  32. data/spec/api/slides_api_spec.rb +1445 -925
  33. data/spec/extra/extra_spec.rb +20 -2
  34. data/spec/spec_utils.rb +28 -6
  35. data/testRules.json +17 -3
  36. metadata +8 -2
@@ -152,10 +152,10 @@ module AsposeSlidesCloud
152
152
  req.params = opts[:query_params]
153
153
  form_params = opts[:form_params] || {}
154
154
  req.body = build_request_body(req.headers, form_params, opts[:body], opts[:files])
155
+ set_headers(req.headers)
155
156
  if @config.debugging
156
157
  @config.logger.debug "HTTP request\nMethod: #{req.method}\nPath: #{req.path}\nParams: #{req.params}\nHeaders: #{req.headers}\nBody: #{req.body}\n"
157
158
  end
158
- set_headers(req.headers)
159
159
  end
160
160
 
161
161
  def set_headers(headers)
@@ -164,6 +164,9 @@ module AsposeSlidesCloud
164
164
  if @config.timeout > 0
165
165
  headers['x-aspose-timeout'] = @config.timeout
166
166
  end
167
+ @config.custom_headers.each do |key, value|
168
+ headers[key] = value
169
+ end
167
170
  set_auth_header(headers)
168
171
  end
169
172
 
@@ -69,12 +69,16 @@ module AsposeSlidesCloud
69
69
  # The time limit for HTTP request in seconds.
70
70
  # Default to 0 (never times out).
71
71
  attr_accessor :timeout
72
-
72
+
73
73
  # Set this to false to skip client side validation in the operation.
74
74
  # Default to true.
75
75
  # @return [true, false]
76
76
  attr_accessor :client_side_validation
77
77
 
78
+ # Custom HTTP headers for all requests.
79
+ # @return [Hash]
80
+ attr_accessor :custom_headers
81
+
78
82
  ### TLS/SSL setting
79
83
  # Set this to false to skip verifying SSL certificate when calling API from https server.
80
84
  # Default to true.
@@ -126,6 +130,7 @@ module AsposeSlidesCloud
126
130
  @auth_base_url = 'https://api.aspose.cloud'
127
131
  @version = 'v3.0'
128
132
  @timeout = 0
133
+ @custom_headers = Hash.new
129
134
  @client_side_validation = true
130
135
  @verify_ssl = false
131
136
  @verify_ssl_host = false
@@ -99,31 +99,16 @@ module AsposeSlidesCloud
99
99
  # @return Array for valid properties with the reasons
100
100
  def list_invalid_properties
101
101
  invalid_properties = Array.new
102
- if @length.nil?
103
- invalid_properties.push('invalid value for "length", length cannot be nil.')
104
- end
105
-
106
- if @style.nil?
107
- invalid_properties.push('invalid value for "style", style cannot be nil.')
108
- end
109
-
110
- if @width.nil?
111
- invalid_properties.push('invalid value for "width", width cannot be nil.')
112
- end
113
-
114
102
  invalid_properties
115
103
  end
116
104
 
117
105
  # Check to see if the all the properties in the model are valid
118
106
  # @return true if the model is valid
119
107
  def valid?
120
- return false if @length.nil?
121
108
  length_validator = EnumAttributeValidator.new('String', ['Short', 'Medium', 'Long', 'NotDefined'])
122
109
  return false unless length_validator.valid?(@length)
123
- return false if @style.nil?
124
110
  style_validator = EnumAttributeValidator.new('String', ['None', 'Triangle', 'Stealth', 'Diamond', 'Oval', 'Open', 'NotDefined'])
125
111
  return false unless style_validator.valid?(@style)
126
- return false if @width.nil?
127
112
  width_validator = EnumAttributeValidator.new('String', ['Narrow', 'Medium', 'Wide', 'NotDefined'])
128
113
  return false unless width_validator.valid?(@width)
129
114
  true
@@ -396,192 +396,32 @@ module AsposeSlidesCloud
396
396
  # @return Array for valid properties with the reasons
397
397
  def list_invalid_properties
398
398
  invalid_properties = Array.new
399
- if @is_visible.nil?
400
- invalid_properties.push('invalid value for "is_visible", is_visible cannot be nil.')
401
- end
402
-
403
- if @has_title.nil?
404
- invalid_properties.push('invalid value for "has_title", has_title cannot be nil.')
405
- end
406
-
407
- if @position.nil?
408
- invalid_properties.push('invalid value for "position", position cannot be nil.')
409
- end
410
-
411
- if @display_unit.nil?
412
- invalid_properties.push('invalid value for "display_unit", display_unit cannot be nil.')
413
- end
414
-
415
- if @base_unit_scale.nil?
416
- invalid_properties.push('invalid value for "base_unit_scale", base_unit_scale cannot be nil.')
417
- end
418
-
419
- if @is_automatic_major_unit.nil?
420
- invalid_properties.push('invalid value for "is_automatic_major_unit", is_automatic_major_unit cannot be nil.')
421
- end
422
-
423
- if @major_unit.nil?
424
- invalid_properties.push('invalid value for "major_unit", major_unit cannot be nil.')
425
- end
426
-
427
- if @major_unit_scale.nil?
428
- invalid_properties.push('invalid value for "major_unit_scale", major_unit_scale cannot be nil.')
429
- end
430
-
431
- if @major_tick_mark.nil?
432
- invalid_properties.push('invalid value for "major_tick_mark", major_tick_mark cannot be nil.')
433
- end
434
-
435
- if @is_automatic_minor_unit.nil?
436
- invalid_properties.push('invalid value for "is_automatic_minor_unit", is_automatic_minor_unit cannot be nil.')
437
- end
438
-
439
- if @minor_unit.nil?
440
- invalid_properties.push('invalid value for "minor_unit", minor_unit cannot be nil.')
441
- end
442
-
443
- if @minor_unit_scale.nil?
444
- invalid_properties.push('invalid value for "minor_unit_scale", minor_unit_scale cannot be nil.')
445
- end
446
-
447
- if @minor_tick_mark.nil?
448
- invalid_properties.push('invalid value for "minor_tick_mark", minor_tick_mark cannot be nil.')
449
- end
450
-
451
- if @is_automatic_max_value.nil?
452
- invalid_properties.push('invalid value for "is_automatic_max_value", is_automatic_max_value cannot be nil.')
453
- end
454
-
455
- if @max_value.nil?
456
- invalid_properties.push('invalid value for "max_value", max_value cannot be nil.')
457
- end
458
-
459
- if @is_automatic_min_value.nil?
460
- invalid_properties.push('invalid value for "is_automatic_min_value", is_automatic_min_value cannot be nil.')
461
- end
462
-
463
- if @min_value.nil?
464
- invalid_properties.push('invalid value for "min_value", min_value cannot be nil.')
465
- end
466
-
467
- if @is_logarithmic.nil?
468
- invalid_properties.push('invalid value for "is_logarithmic", is_logarithmic cannot be nil.')
469
- end
470
-
471
- if @log_base.nil?
472
- invalid_properties.push('invalid value for "log_base", log_base cannot be nil.')
473
- end
474
-
475
- if @category_axis_type.nil?
476
- invalid_properties.push('invalid value for "category_axis_type", category_axis_type cannot be nil.')
477
- end
478
-
479
- if @axis_between_categories.nil?
480
- invalid_properties.push('invalid value for "axis_between_categories", axis_between_categories cannot be nil.')
481
- end
482
-
483
- if @label_offset.nil?
484
- invalid_properties.push('invalid value for "label_offset", label_offset cannot be nil.')
485
- end
486
-
487
- if @is_plot_order_reversed.nil?
488
- invalid_properties.push('invalid value for "is_plot_order_reversed", is_plot_order_reversed cannot be nil.')
489
- end
490
-
491
- if @is_number_format_linked_to_source.nil?
492
- invalid_properties.push('invalid value for "is_number_format_linked_to_source", is_number_format_linked_to_source cannot be nil.')
493
- end
494
-
495
- if @cross_type.nil?
496
- invalid_properties.push('invalid value for "cross_type", cross_type cannot be nil.')
497
- end
498
-
499
- if @cross_at.nil?
500
- invalid_properties.push('invalid value for "cross_at", cross_at cannot be nil.')
501
- end
502
-
503
- if @is_automatic_tick_marks_spacing.nil?
504
- invalid_properties.push('invalid value for "is_automatic_tick_marks_spacing", is_automatic_tick_marks_spacing cannot be nil.')
505
- end
506
-
507
- if @tick_marks_spacing.nil?
508
- invalid_properties.push('invalid value for "tick_marks_spacing", tick_marks_spacing cannot be nil.')
509
- end
510
-
511
- if @is_automatic_tick_label_spacing.nil?
512
- invalid_properties.push('invalid value for "is_automatic_tick_label_spacing", is_automatic_tick_label_spacing cannot be nil.')
513
- end
514
-
515
- if @tick_label_spacing.nil?
516
- invalid_properties.push('invalid value for "tick_label_spacing", tick_label_spacing cannot be nil.')
517
- end
518
-
519
- if @tick_label_position.nil?
520
- invalid_properties.push('invalid value for "tick_label_position", tick_label_position cannot be nil.')
521
- end
522
-
523
- if @tick_label_rotation_angle.nil?
524
- invalid_properties.push('invalid value for "tick_label_rotation_angle", tick_label_rotation_angle cannot be nil.')
525
- end
526
-
527
399
  invalid_properties
528
400
  end
529
401
 
530
402
  # Check to see if the all the properties in the model are valid
531
403
  # @return true if the model is valid
532
404
  def valid?
533
- return false if @is_visible.nil?
534
- return false if @has_title.nil?
535
- return false if @position.nil?
536
405
  position_validator = EnumAttributeValidator.new('String', ['Bottom', 'Left', 'Right', 'Top'])
537
406
  return false unless position_validator.valid?(@position)
538
- return false if @display_unit.nil?
539
407
  display_unit_validator = EnumAttributeValidator.new('String', ['None', 'Hundreds', 'Thousands', 'TenThousands', 'HundredThousands', 'Millions', 'TenMillions', 'HundredMillions', 'Billions', 'Trillions', 'CustomValue'])
540
408
  return false unless display_unit_validator.valid?(@display_unit)
541
- return false if @base_unit_scale.nil?
542
409
  base_unit_scale_validator = EnumAttributeValidator.new('String', ['Days', 'Months', 'Years'])
543
410
  return false unless base_unit_scale_validator.valid?(@base_unit_scale)
544
- return false if @is_automatic_major_unit.nil?
545
- return false if @major_unit.nil?
546
- return false if @major_unit_scale.nil?
547
411
  major_unit_scale_validator = EnumAttributeValidator.new('String', ['Days', 'Months', 'Years'])
548
412
  return false unless major_unit_scale_validator.valid?(@major_unit_scale)
549
- return false if @major_tick_mark.nil?
550
413
  major_tick_mark_validator = EnumAttributeValidator.new('String', ['Cross', 'Inside', 'None', 'Outside'])
551
414
  return false unless major_tick_mark_validator.valid?(@major_tick_mark)
552
- return false if @is_automatic_minor_unit.nil?
553
- return false if @minor_unit.nil?
554
- return false if @minor_unit_scale.nil?
555
415
  minor_unit_scale_validator = EnumAttributeValidator.new('String', ['Days', 'Months', 'Years'])
556
416
  return false unless minor_unit_scale_validator.valid?(@minor_unit_scale)
557
- return false if @minor_tick_mark.nil?
558
417
  minor_tick_mark_validator = EnumAttributeValidator.new('String', ['Cross', 'Inside', 'None', 'Outside'])
559
418
  return false unless minor_tick_mark_validator.valid?(@minor_tick_mark)
560
- return false if @is_automatic_max_value.nil?
561
- return false if @max_value.nil?
562
- return false if @is_automatic_min_value.nil?
563
- return false if @min_value.nil?
564
- return false if @is_logarithmic.nil?
565
- return false if @log_base.nil?
566
- return false if @category_axis_type.nil?
567
419
  category_axis_type_validator = EnumAttributeValidator.new('String', ['Text', 'Date'])
568
420
  return false unless category_axis_type_validator.valid?(@category_axis_type)
569
- return false if @axis_between_categories.nil?
570
- return false if @label_offset.nil?
571
- return false if @is_plot_order_reversed.nil?
572
- return false if @is_number_format_linked_to_source.nil?
573
- return false if @cross_type.nil?
574
421
  cross_type_validator = EnumAttributeValidator.new('String', ['AxisCrossesAtZero', 'Maximum', 'Custom'])
575
422
  return false unless cross_type_validator.valid?(@cross_type)
576
- return false if @cross_at.nil?
577
- return false if @is_automatic_tick_marks_spacing.nil?
578
- return false if @tick_marks_spacing.nil?
579
- return false if @is_automatic_tick_label_spacing.nil?
580
- return false if @tick_label_spacing.nil?
581
- return false if @tick_label_position.nil?
582
423
  tick_label_position_validator = EnumAttributeValidator.new('String', ['High', 'Low', 'NextTo', 'None'])
583
424
  return false unless tick_label_position_validator.valid?(@tick_label_position)
584
- return false if @tick_label_rotation_angle.nil?
585
425
  true
586
426
  end
587
427
 
@@ -0,0 +1,490 @@
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
+ # One value series.
27
+ class BoxAndWhiskerSeries
28
+ # Series type.
29
+ attr_accessor :type
30
+
31
+ # Series name.
32
+ attr_accessor :name
33
+
34
+ # True if each data marker in the series has a different color.
35
+ attr_accessor :is_color_varied
36
+
37
+ # Invert solid color for the series.
38
+ attr_accessor :inverted_solid_fill_color
39
+
40
+ # True if curve smoothing is turned on. Applies only to line and scatter connected by lines charts.
41
+ attr_accessor :smooth
42
+
43
+ # True if the series is plotted on second value axis.
44
+ attr_accessor :plot_on_second_axis
45
+
46
+ # Series order.
47
+ attr_accessor :order
48
+
49
+ # The number format for the series y values.
50
+ attr_accessor :number_format_of_y_values
51
+
52
+ # The number format for the series x values.
53
+ attr_accessor :number_format_of_x_values
54
+
55
+ # The number format for the series values.
56
+ attr_accessor :number_format_of_values
57
+
58
+ # The number format for the series bubble sizes.
59
+ attr_accessor :number_format_of_bubble_sizes
60
+
61
+ # True if the series shall invert its colors if the value is negative. Applies to bar, column and bubble series.
62
+ attr_accessor :invert_if_negative
63
+
64
+ # The distance of an open pie slice from the center of the pie chart is expressed as a percentage of the pie diameter.
65
+ attr_accessor :explosion
66
+
67
+ # Series marker.
68
+ attr_accessor :marker
69
+
70
+ # Fill properties set for the series.
71
+ attr_accessor :fill_format
72
+
73
+ # Effect properties set for the series.
74
+ attr_accessor :effect_format
75
+
76
+ # Line properties set for the series.
77
+ attr_accessor :line_format
78
+
79
+ # Data point type.
80
+ attr_accessor :data_point_type
81
+
82
+ # Gets or sets the values.
83
+ attr_accessor :data_points
84
+
85
+ # Quartile method.
86
+ attr_accessor :quartile_method
87
+
88
+ # True if inner points are shown.
89
+ attr_accessor :show_inner_points
90
+
91
+ # True if mean line is shown.
92
+ attr_accessor :show_mean_line
93
+
94
+ # True if mean markers are shown.
95
+ attr_accessor :show_mean_markers
96
+
97
+ # True if outlier points are shown.
98
+ attr_accessor :show_outlier_points
99
+
100
+ class EnumAttributeValidator
101
+ attr_reader :datatype
102
+ attr_reader :allowable_values
103
+
104
+ def initialize(datatype, allowable_values)
105
+ @allowable_values = allowable_values.map do |value|
106
+ case datatype.to_s
107
+ when /Integer/i
108
+ value.to_i
109
+ when /Float/i
110
+ value.to_f
111
+ else
112
+ value
113
+ end
114
+ end
115
+ end
116
+
117
+ def valid?(value)
118
+ !value || allowable_values.any?{ |s| s.casecmp(value) == 0 }
119
+ end
120
+ end
121
+
122
+ # Attribute mapping from ruby-style variable name to JSON key.
123
+ def self.attribute_map
124
+ {
125
+ :'type' => :'Type',
126
+ :'name' => :'Name',
127
+ :'is_color_varied' => :'IsColorVaried',
128
+ :'inverted_solid_fill_color' => :'InvertedSolidFillColor',
129
+ :'smooth' => :'Smooth',
130
+ :'plot_on_second_axis' => :'PlotOnSecondAxis',
131
+ :'order' => :'Order',
132
+ :'number_format_of_y_values' => :'NumberFormatOfYValues',
133
+ :'number_format_of_x_values' => :'NumberFormatOfXValues',
134
+ :'number_format_of_values' => :'NumberFormatOfValues',
135
+ :'number_format_of_bubble_sizes' => :'NumberFormatOfBubbleSizes',
136
+ :'invert_if_negative' => :'InvertIfNegative',
137
+ :'explosion' => :'Explosion',
138
+ :'marker' => :'Marker',
139
+ :'fill_format' => :'FillFormat',
140
+ :'effect_format' => :'EffectFormat',
141
+ :'line_format' => :'LineFormat',
142
+ :'data_point_type' => :'DataPointType',
143
+ :'data_points' => :'DataPoints',
144
+ :'quartile_method' => :'QuartileMethod',
145
+ :'show_inner_points' => :'ShowInnerPoints',
146
+ :'show_mean_line' => :'ShowMeanLine',
147
+ :'show_mean_markers' => :'ShowMeanMarkers',
148
+ :'show_outlier_points' => :'ShowOutlierPoints'
149
+ }
150
+ end
151
+
152
+ # Attribute type mapping.
153
+ def self.swagger_types
154
+ {
155
+ :'type' => :'String',
156
+ :'name' => :'String',
157
+ :'is_color_varied' => :'BOOLEAN',
158
+ :'inverted_solid_fill_color' => :'String',
159
+ :'smooth' => :'BOOLEAN',
160
+ :'plot_on_second_axis' => :'BOOLEAN',
161
+ :'order' => :'Integer',
162
+ :'number_format_of_y_values' => :'String',
163
+ :'number_format_of_x_values' => :'String',
164
+ :'number_format_of_values' => :'String',
165
+ :'number_format_of_bubble_sizes' => :'String',
166
+ :'invert_if_negative' => :'BOOLEAN',
167
+ :'explosion' => :'Integer',
168
+ :'marker' => :'SeriesMarker',
169
+ :'fill_format' => :'FillFormat',
170
+ :'effect_format' => :'EffectFormat',
171
+ :'line_format' => :'LineFormat',
172
+ :'data_point_type' => :'String',
173
+ :'data_points' => :'Array<OneValueChartDataPoint>',
174
+ :'quartile_method' => :'String',
175
+ :'show_inner_points' => :'BOOLEAN',
176
+ :'show_mean_line' => :'BOOLEAN',
177
+ :'show_mean_markers' => :'BOOLEAN',
178
+ :'show_outlier_points' => :'BOOLEAN'
179
+ }
180
+ end
181
+
182
+ # Initializes the object
183
+ # @param [Hash] attributes Model attributes in the form of hash
184
+ def initialize(attributes = {})
185
+ return unless attributes.is_a?(Hash)
186
+
187
+ # convert string to symbol for hash key
188
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
189
+
190
+ if attributes.has_key?(:'Type')
191
+ self.type = attributes[:'Type']
192
+ end
193
+
194
+ if attributes.has_key?(:'Name')
195
+ self.name = attributes[:'Name']
196
+ end
197
+
198
+ if attributes.has_key?(:'IsColorVaried')
199
+ self.is_color_varied = attributes[:'IsColorVaried']
200
+ end
201
+
202
+ if attributes.has_key?(:'InvertedSolidFillColor')
203
+ self.inverted_solid_fill_color = attributes[:'InvertedSolidFillColor']
204
+ end
205
+
206
+ if attributes.has_key?(:'Smooth')
207
+ self.smooth = attributes[:'Smooth']
208
+ end
209
+
210
+ if attributes.has_key?(:'PlotOnSecondAxis')
211
+ self.plot_on_second_axis = attributes[:'PlotOnSecondAxis']
212
+ end
213
+
214
+ if attributes.has_key?(:'Order')
215
+ self.order = attributes[:'Order']
216
+ end
217
+
218
+ if attributes.has_key?(:'NumberFormatOfYValues')
219
+ self.number_format_of_y_values = attributes[:'NumberFormatOfYValues']
220
+ end
221
+
222
+ if attributes.has_key?(:'NumberFormatOfXValues')
223
+ self.number_format_of_x_values = attributes[:'NumberFormatOfXValues']
224
+ end
225
+
226
+ if attributes.has_key?(:'NumberFormatOfValues')
227
+ self.number_format_of_values = attributes[:'NumberFormatOfValues']
228
+ end
229
+
230
+ if attributes.has_key?(:'NumberFormatOfBubbleSizes')
231
+ self.number_format_of_bubble_sizes = attributes[:'NumberFormatOfBubbleSizes']
232
+ end
233
+
234
+ if attributes.has_key?(:'InvertIfNegative')
235
+ self.invert_if_negative = attributes[:'InvertIfNegative']
236
+ end
237
+
238
+ if attributes.has_key?(:'Explosion')
239
+ self.explosion = attributes[:'Explosion']
240
+ end
241
+
242
+ if attributes.has_key?(:'Marker')
243
+ self.marker = attributes[:'Marker']
244
+ end
245
+
246
+ if attributes.has_key?(:'FillFormat')
247
+ self.fill_format = attributes[:'FillFormat']
248
+ end
249
+
250
+ if attributes.has_key?(:'EffectFormat')
251
+ self.effect_format = attributes[:'EffectFormat']
252
+ end
253
+
254
+ if attributes.has_key?(:'LineFormat')
255
+ self.line_format = attributes[:'LineFormat']
256
+ end
257
+
258
+ if attributes.has_key?(:'DataPointType')
259
+ self.data_point_type = attributes[:'DataPointType']
260
+ end
261
+
262
+ if attributes.has_key?(:'DataPoints')
263
+ if (value = attributes[:'DataPoints']).is_a?(Array)
264
+ self.data_points = value
265
+ end
266
+ end
267
+
268
+ if attributes.has_key?(:'QuartileMethod')
269
+ self.quartile_method = attributes[:'QuartileMethod']
270
+ end
271
+
272
+ if attributes.has_key?(:'ShowInnerPoints')
273
+ self.show_inner_points = attributes[:'ShowInnerPoints']
274
+ end
275
+
276
+ if attributes.has_key?(:'ShowMeanLine')
277
+ self.show_mean_line = attributes[:'ShowMeanLine']
278
+ end
279
+
280
+ if attributes.has_key?(:'ShowMeanMarkers')
281
+ self.show_mean_markers = attributes[:'ShowMeanMarkers']
282
+ end
283
+
284
+ if attributes.has_key?(:'ShowOutlierPoints')
285
+ self.show_outlier_points = attributes[:'ShowOutlierPoints']
286
+ end
287
+ end
288
+
289
+ # Show invalid properties with the reasons. Usually used together with valid?
290
+ # @return Array for valid properties with the reasons
291
+ def list_invalid_properties
292
+ invalid_properties = Array.new
293
+ if @data_point_type.nil?
294
+ invalid_properties.push('invalid value for "data_point_type", data_point_type cannot be nil.')
295
+ end
296
+
297
+ invalid_properties
298
+ end
299
+
300
+ # Check to see if the all the properties in the model are valid
301
+ # @return true if the model is valid
302
+ def valid?
303
+ type_validator = EnumAttributeValidator.new('String', ['ClusteredColumn', 'StackedColumn', 'PercentsStackedColumn', 'ClusteredColumn3D', 'StackedColumn3D', 'PercentsStackedColumn3D', 'Column3D', 'ClusteredCylinder', 'StackedCylinder', 'PercentsStackedCylinder', 'Cylinder3D', 'ClusteredCone', 'StackedCone', 'PercentsStackedCone', 'Cone3D', 'ClusteredPyramid', 'StackedPyramid', 'PercentsStackedPyramid', 'Pyramid3D', 'Line', 'StackedLine', 'PercentsStackedLine', 'LineWithMarkers', 'StackedLineWithMarkers', 'PercentsStackedLineWithMarkers', 'Line3D', 'Pie', 'Pie3D', 'PieOfPie', 'ExplodedPie', 'ExplodedPie3D', 'BarOfPie', 'PercentsStackedBar', 'ClusteredBar3D', 'ClusteredBar', 'StackedBar', 'StackedBar3D', 'PercentsStackedBar3D', 'ClusteredHorizontalCylinder', 'StackedHorizontalCylinder', 'PercentsStackedHorizontalCylinder', 'ClusteredHorizontalCone', 'StackedHorizontalCone', 'PercentsStackedHorizontalCone', 'ClusteredHorizontalPyramid', 'StackedHorizontalPyramid', 'PercentsStackedHorizontalPyramid', 'Area', 'StackedArea', 'PercentsStackedArea', 'Area3D', 'StackedArea3D', 'PercentsStackedArea3D', 'ScatterWithMarkers', 'ScatterWithSmoothLinesAndMarkers', 'ScatterWithSmoothLines', 'ScatterWithStraightLinesAndMarkers', 'ScatterWithStraightLines', 'HighLowClose', 'OpenHighLowClose', 'VolumeHighLowClose', 'VolumeOpenHighLowClose', 'Surface3D', 'WireframeSurface3D', 'Contour', 'WireframeContour', 'Doughnut', 'ExplodedDoughnut', 'Bubble', 'BubbleWith3D', 'Radar', 'RadarWithMarkers', 'FilledRadar', 'SeriesOfMixedTypes', 'Treemap', 'Sunburst', 'Histogram', 'ParetoLine', 'BoxAndWhisker', 'Waterfall', 'Funnel'])
304
+ return false unless type_validator.valid?(@type)
305
+ return false if @data_point_type.nil?
306
+ data_point_type_validator = EnumAttributeValidator.new('String', ['OneValue', 'Scatter', 'Bubble'])
307
+ return false unless data_point_type_validator.valid?(@data_point_type)
308
+ quartile_method_validator = EnumAttributeValidator.new('String', ['Exclusive', 'Inclusive'])
309
+ return false unless quartile_method_validator.valid?(@quartile_method)
310
+ true
311
+ end
312
+
313
+ # Custom attribute writer method checking allowed values (enum).
314
+ # @param [Object] type Object to be assigned
315
+ def type=(type)
316
+ validator = EnumAttributeValidator.new('String', ['ClusteredColumn', 'StackedColumn', 'PercentsStackedColumn', 'ClusteredColumn3D', 'StackedColumn3D', 'PercentsStackedColumn3D', 'Column3D', 'ClusteredCylinder', 'StackedCylinder', 'PercentsStackedCylinder', 'Cylinder3D', 'ClusteredCone', 'StackedCone', 'PercentsStackedCone', 'Cone3D', 'ClusteredPyramid', 'StackedPyramid', 'PercentsStackedPyramid', 'Pyramid3D', 'Line', 'StackedLine', 'PercentsStackedLine', 'LineWithMarkers', 'StackedLineWithMarkers', 'PercentsStackedLineWithMarkers', 'Line3D', 'Pie', 'Pie3D', 'PieOfPie', 'ExplodedPie', 'ExplodedPie3D', 'BarOfPie', 'PercentsStackedBar', 'ClusteredBar3D', 'ClusteredBar', 'StackedBar', 'StackedBar3D', 'PercentsStackedBar3D', 'ClusteredHorizontalCylinder', 'StackedHorizontalCylinder', 'PercentsStackedHorizontalCylinder', 'ClusteredHorizontalCone', 'StackedHorizontalCone', 'PercentsStackedHorizontalCone', 'ClusteredHorizontalPyramid', 'StackedHorizontalPyramid', 'PercentsStackedHorizontalPyramid', 'Area', 'StackedArea', 'PercentsStackedArea', 'Area3D', 'StackedArea3D', 'PercentsStackedArea3D', 'ScatterWithMarkers', 'ScatterWithSmoothLinesAndMarkers', 'ScatterWithSmoothLines', 'ScatterWithStraightLinesAndMarkers', 'ScatterWithStraightLines', 'HighLowClose', 'OpenHighLowClose', 'VolumeHighLowClose', 'VolumeOpenHighLowClose', 'Surface3D', 'WireframeSurface3D', 'Contour', 'WireframeContour', 'Doughnut', 'ExplodedDoughnut', 'Bubble', 'BubbleWith3D', 'Radar', 'RadarWithMarkers', 'FilledRadar', 'SeriesOfMixedTypes', 'Treemap', 'Sunburst', 'Histogram', 'ParetoLine', 'BoxAndWhisker', 'Waterfall', 'Funnel'])
317
+ unless validator.valid?(type)
318
+ fail ArgumentError, 'invalid value for "type", must be one of #{validator.allowable_values}.'
319
+ end
320
+ @type = type
321
+ end
322
+
323
+ # Custom attribute writer method checking allowed values (enum).
324
+ # @param [Object] data_point_type Object to be assigned
325
+ def data_point_type=(data_point_type)
326
+ validator = EnumAttributeValidator.new('String', ['OneValue', 'Scatter', 'Bubble'])
327
+ unless validator.valid?(data_point_type)
328
+ fail ArgumentError, 'invalid value for "data_point_type", must be one of #{validator.allowable_values}.'
329
+ end
330
+ @data_point_type = data_point_type
331
+ end
332
+
333
+ # Custom attribute writer method checking allowed values (enum).
334
+ # @param [Object] quartile_method Object to be assigned
335
+ def quartile_method=(quartile_method)
336
+ validator = EnumAttributeValidator.new('String', ['Exclusive', 'Inclusive'])
337
+ unless validator.valid?(quartile_method)
338
+ fail ArgumentError, 'invalid value for "quartile_method", must be one of #{validator.allowable_values}.'
339
+ end
340
+ @quartile_method = quartile_method
341
+ end
342
+
343
+ # Checks equality by comparing each attribute.
344
+ # @param [Object] Object to be compared
345
+ def ==(o)
346
+ return true if self.equal?(o)
347
+ self.class == o.class &&
348
+ type == o.type &&
349
+ name == o.name &&
350
+ is_color_varied == o.is_color_varied &&
351
+ inverted_solid_fill_color == o.inverted_solid_fill_color &&
352
+ smooth == o.smooth &&
353
+ plot_on_second_axis == o.plot_on_second_axis &&
354
+ order == o.order &&
355
+ number_format_of_y_values == o.number_format_of_y_values &&
356
+ number_format_of_x_values == o.number_format_of_x_values &&
357
+ number_format_of_values == o.number_format_of_values &&
358
+ number_format_of_bubble_sizes == o.number_format_of_bubble_sizes &&
359
+ invert_if_negative == o.invert_if_negative &&
360
+ explosion == o.explosion &&
361
+ marker == o.marker &&
362
+ fill_format == o.fill_format &&
363
+ effect_format == o.effect_format &&
364
+ line_format == o.line_format &&
365
+ data_point_type == o.data_point_type &&
366
+ data_points == o.data_points &&
367
+ quartile_method == o.quartile_method &&
368
+ show_inner_points == o.show_inner_points &&
369
+ show_mean_line == o.show_mean_line &&
370
+ show_mean_markers == o.show_mean_markers &&
371
+ show_outlier_points == o.show_outlier_points
372
+ end
373
+
374
+ # @see the `==` method
375
+ # @param [Object] Object to be compared
376
+ def eql?(o)
377
+ self == o
378
+ end
379
+
380
+ # Calculates hash code according to all attributes.
381
+ # @return [Fixnum] Hash code
382
+ def hash
383
+ [type, name, is_color_varied, inverted_solid_fill_color, smooth, plot_on_second_axis, order, number_format_of_y_values, number_format_of_x_values, number_format_of_values, number_format_of_bubble_sizes, invert_if_negative, explosion, marker, fill_format, effect_format, line_format, data_point_type, data_points, quartile_method, show_inner_points, show_mean_line, show_mean_markers, show_outlier_points].hash
384
+ end
385
+
386
+ # Builds the object from hash
387
+ # @param [Hash] attributes Model attributes in the form of hash
388
+ # @return [Object] Returns the model itself
389
+ def build_from_hash(attributes)
390
+ return nil unless attributes.is_a?(Hash)
391
+ self.class.swagger_types.each_pair do |key, type|
392
+ if type =~ /\AArray<(.*)>/i
393
+ # check to ensure the input is an array given that the the attribute
394
+ # is documented as an array but the input is not
395
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
396
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
397
+ end
398
+ elsif !attributes[self.class.attribute_map[key]].nil?
399
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
400
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
401
+ end
402
+
403
+ self
404
+ end
405
+
406
+ # Deserializes the data based on type
407
+ # @param string type Data type
408
+ # @param string value Value to be deserialized
409
+ # @return [Object] Deserialized data
410
+ def _deserialize(type, value)
411
+ case type.to_sym
412
+ when :DateTime
413
+ DateTime.parse(value)
414
+ when :Date
415
+ Date.parse(value)
416
+ when :String
417
+ value.to_s
418
+ when :Integer
419
+ value.to_i
420
+ when :Float
421
+ value.to_f
422
+ when :BOOLEAN
423
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
424
+ true
425
+ else
426
+ false
427
+ end
428
+ when :Object
429
+ # generic object (usually a Hash), return directly
430
+ value
431
+ when /\AArray<(?<inner_type>.+)>\z/
432
+ inner_type = Regexp.last_match[:inner_type]
433
+ value.map { |v| _deserialize(inner_type, v) }
434
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
435
+ k_type = Regexp.last_match[:k_type]
436
+ v_type = Regexp.last_match[:v_type]
437
+ {}.tap do |hash|
438
+ value.each do |k, v|
439
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
440
+ end
441
+ end
442
+ else # model
443
+ temp_model = AsposeSlidesCloud.const_get(type).new
444
+ temp_model.build_from_hash(value)
445
+ end
446
+ end
447
+
448
+ # Returns the string representation of the object
449
+ # @return [String] String presentation of the object
450
+ def to_s
451
+ to_hash.to_s
452
+ end
453
+
454
+ # to_body is an alias to to_hash (backward compatibility)
455
+ # @return [Hash] Returns the object in the form of hash
456
+ def to_body
457
+ to_hash
458
+ end
459
+
460
+ # Returns the object in the form of hash
461
+ # @return [Hash] Returns the object in the form of hash
462
+ def to_hash
463
+ hash = {}
464
+ self.class.attribute_map.each_pair do |attr, param|
465
+ value = self.send(attr)
466
+ next if value.nil?
467
+ hash[param] = _to_hash(value)
468
+ end
469
+ hash
470
+ end
471
+
472
+ # Outputs non-array value in the form of hash
473
+ # For object, use to_hash. Otherwise, just return the value
474
+ # @param [Object] value Any valid value
475
+ # @return [Hash] Returns the value in the form of hash
476
+ def _to_hash(value)
477
+ if value.is_a?(Array)
478
+ value.compact.map { |v| _to_hash(v) }
479
+ elsif value.is_a?(Hash)
480
+ {}.tap do |hash|
481
+ value.each { |k, v| hash[k] = _to_hash(v) }
482
+ end
483
+ elsif value.respond_to? :to_hash
484
+ value.to_hash
485
+ else
486
+ value
487
+ end
488
+ end
489
+ end
490
+ end