shotstack 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +17 -0
  3. data/lib/shotstack.rb +24 -15
  4. data/lib/shotstack/api/default_api.rb +131 -0
  5. data/lib/shotstack/api_client.rb +120 -51
  6. data/lib/shotstack/api_error.rb +38 -5
  7. data/lib/shotstack/configuration.rb +90 -3
  8. data/lib/shotstack/models/asset.rb +17 -0
  9. data/lib/shotstack/models/clip.rb +308 -0
  10. data/lib/shotstack/models/edit.rb +104 -45
  11. data/lib/shotstack/models/image_asset.rb +221 -0
  12. data/lib/shotstack/models/output.rb +128 -41
  13. data/lib/shotstack/models/queued_response.rb +110 -48
  14. data/lib/shotstack/models/queued_response_data.rb +105 -45
  15. data/lib/shotstack/models/render_response.rb +110 -48
  16. data/lib/shotstack/models/render_response_data.rb +172 -68
  17. data/lib/shotstack/models/soundtrack.rb +106 -45
  18. data/lib/shotstack/models/timeline.rb +101 -46
  19. data/lib/shotstack/models/title_asset.rb +265 -0
  20. data/lib/shotstack/models/track.rb +89 -33
  21. data/lib/shotstack/models/transition.rb +121 -42
  22. data/lib/shotstack/models/video_asset.rb +241 -0
  23. data/lib/shotstack/version.rb +13 -1
  24. data/shotstack.gemspec +26 -13
  25. metadata +38 -40
  26. data/lib/shotstack/api/render_api.rb +0 -137
  27. data/lib/shotstack/models/clips.rb +0 -147
  28. data/lib/shotstack/models/image_clip.rb +0 -216
  29. data/lib/shotstack/models/image_clip_options.rb +0 -175
  30. data/lib/shotstack/models/title_clip.rb +0 -216
  31. data/lib/shotstack/models/title_clip_options.rb +0 -194
  32. data/lib/shotstack/models/video_clip.rb +0 -216
  33. data/lib/shotstack/models/video_clip_options.rb +0 -185
  34. data/tags +0 -306
@@ -1,87 +1,139 @@
1
+ =begin
2
+ #shotstack
3
+
4
+ #The Shotstack API is a video editing service that allows for the programatic creation of videos using JSON.
5
+
6
+ OpenAPI spec version: v1
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.0.0-beta3
10
+
11
+ =end
12
+
1
13
  require 'date'
2
14
 
3
15
  module Shotstack
4
- # Model for Edit
16
+ # An edit defines the content of the video in a timeline and the output format.
5
17
  class Edit
6
- attr_accessor :output
7
-
8
18
  attr_accessor :timeline
9
19
 
20
+ attr_accessor :output
21
+
10
22
  # Attribute mapping from ruby-style variable name to JSON key.
11
23
  def self.attribute_map
12
24
  {
13
-
14
- :'output' => :'output',
15
-
16
- :'timeline' => :'timeline'
17
-
25
+ :'timeline' => :'timeline',
26
+ :'output' => :'output'
18
27
  }
19
28
  end
20
29
 
21
30
  # Attribute type mapping.
22
- def self.swagger_types
31
+ def self.openapi_types
23
32
  {
24
- :'output' => :'Output',
25
- :'timeline' => :'Timeline'
26
-
33
+ :'timeline' => :'Timeline',
34
+ :'output' => :'Output'
27
35
  }
28
36
  end
29
37
 
38
+ # Initializes the object
39
+ # @param [Hash] attributes Model attributes in the form of hash
30
40
  def initialize(attributes = {})
31
- return unless attributes.is_a?(Hash)
41
+ if (!attributes.is_a?(Hash))
42
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Shotstack::Edit` initialize method"
43
+ end
32
44
 
33
- # convert string to symbol for hash key
34
- attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
45
+ # check to see if the attribute exists and convert string to symbol for hash key
46
+ attributes = attributes.each_with_object({}) { |(k, v), h|
47
+ if (!self.class.attribute_map.key?(k.to_sym))
48
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Shotstack::Edit`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
49
+ end
50
+ h[k.to_sym] = v
51
+ }
52
+
53
+ if attributes.key?(:'timeline')
54
+ self.timeline = attributes[:'timeline']
55
+ end
35
56
 
36
-
37
- if attributes[:'output']
57
+ if attributes.key?(:'output')
38
58
  self.output = attributes[:'output']
39
59
  end
40
-
41
- if attributes[:'timeline']
42
- self.timeline = attributes[:'timeline']
60
+ end
61
+
62
+ # Show invalid properties with the reasons. Usually used together with valid?
63
+ # @return Array for valid properties with the reasons
64
+ def list_invalid_properties
65
+ invalid_properties = Array.new
66
+ if @timeline.nil?
67
+ invalid_properties.push('invalid value for "timeline", timeline cannot be nil.')
43
68
  end
44
-
69
+
70
+ if @output.nil?
71
+ invalid_properties.push('invalid value for "output", output cannot be nil.')
72
+ end
73
+
74
+ invalid_properties
75
+ end
76
+
77
+ # Check to see if the all the properties in the model are valid
78
+ # @return true if the model is valid
79
+ def valid?
80
+ return false if @timeline.nil?
81
+ return false if @output.nil?
82
+ true
45
83
  end
46
84
 
47
- # Check equality by comparing each attribute.
85
+ # Checks equality by comparing each attribute.
86
+ # @param [Object] Object to be compared
48
87
  def ==(o)
49
88
  return true if self.equal?(o)
50
89
  self.class == o.class &&
51
- output == o.output &&
52
- timeline == o.timeline
90
+ timeline == o.timeline &&
91
+ output == o.output
53
92
  end
54
93
 
55
94
  # @see the `==` method
95
+ # @param [Object] Object to be compared
56
96
  def eql?(o)
57
97
  self == o
58
98
  end
59
99
 
60
- # Calculate hash code according to all attributes.
100
+ # Calculates hash code according to all attributes.
101
+ # @return [Integer] Hash code
61
102
  def hash
62
- [output, timeline].hash
103
+ [timeline, output].hash
104
+ end
105
+
106
+ # Builds the object from hash
107
+ # @param [Hash] attributes Model attributes in the form of hash
108
+ # @return [Object] Returns the model itself
109
+ def self.build_from_hash(attributes)
110
+ new.build_from_hash(attributes)
63
111
  end
64
112
 
65
- # build the object from hash
113
+ # Builds the object from hash
114
+ # @param [Hash] attributes Model attributes in the form of hash
115
+ # @return [Object] Returns the model itself
66
116
  def build_from_hash(attributes)
67
117
  return nil unless attributes.is_a?(Hash)
68
- self.class.swagger_types.each_pair do |key, type|
69
- if type =~ /^Array<(.*)>/i
118
+ self.class.openapi_types.each_pair do |key, type|
119
+ if type =~ /\AArray<(.*)>/i
120
+ # check to ensure the input is an array given that the attribute
121
+ # is documented as an array but the input is not
70
122
  if attributes[self.class.attribute_map[key]].is_a?(Array)
71
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
72
- else
73
- #TODO show warning in debug mode
123
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
74
124
  end
75
125
  elsif !attributes[self.class.attribute_map[key]].nil?
76
126
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
77
- else
78
- # data not found in attributes(hash), not an issue as the data can be optional
79
- end
127
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
80
128
  end
81
129
 
82
130
  self
83
131
  end
84
132
 
133
+ # Deserializes the data based on type
134
+ # @param string type Data type
135
+ # @param string value Value to be deserialized
136
+ # @return [Object] Deserialized data
85
137
  def _deserialize(type, value)
86
138
  case type.to_sym
87
139
  when :DateTime
@@ -94,16 +146,19 @@ module Shotstack
94
146
  value.to_i
95
147
  when :Float
96
148
  value.to_f
97
- when :BOOLEAN
98
- if value =~ /^(true|t|yes|y|1)$/i
149
+ when :Boolean
150
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
99
151
  true
100
152
  else
101
153
  false
102
154
  end
155
+ when :Object
156
+ # generic object (usually a Hash), return directly
157
+ value
103
158
  when /\AArray<(?<inner_type>.+)>\z/
104
159
  inner_type = Regexp.last_match[:inner_type]
105
160
  value.map { |v| _deserialize(inner_type, v) }
106
- when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
161
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
107
162
  k_type = Regexp.last_match[:k_type]
108
163
  v_type = Regexp.last_match[:v_type]
109
164
  {}.tap do |hash|
@@ -112,21 +167,24 @@ module Shotstack
112
167
  end
113
168
  end
114
169
  else # model
115
- _model = Shotstack.const_get(type).new
116
- _model.build_from_hash(value)
170
+ Shotstack.const_get(type).build_from_hash(value)
117
171
  end
118
172
  end
119
173
 
174
+ # Returns the string representation of the object
175
+ # @return [String] String presentation of the object
120
176
  def to_s
121
177
  to_hash.to_s
122
178
  end
123
179
 
124
- # to_body is an alias to to_body (backward compatibility))
180
+ # to_body is an alias to to_hash (backward compatibility)
181
+ # @return [Hash] Returns the object in the form of hash
125
182
  def to_body
126
183
  to_hash
127
184
  end
128
185
 
129
- # return the object in the form of hash
186
+ # Returns the object in the form of hash
187
+ # @return [Hash] Returns the object in the form of hash
130
188
  def to_hash
131
189
  hash = {}
132
190
  self.class.attribute_map.each_pair do |attr, param|
@@ -137,11 +195,13 @@ module Shotstack
137
195
  hash
138
196
  end
139
197
 
140
- # Method to output non-array value in the form of hash
198
+ # Outputs non-array value in the form of hash
141
199
  # For object, use to_hash. Otherwise, just return the value
200
+ # @param [Object] value Any valid value
201
+ # @return [Hash] Returns the value in the form of hash
142
202
  def _to_hash(value)
143
203
  if value.is_a?(Array)
144
- value.compact.map{ |v| _to_hash(v) }
204
+ value.compact.map { |v| _to_hash(v) }
145
205
  elsif value.is_a?(Hash)
146
206
  {}.tap do |hash|
147
207
  value.each { |k, v| hash[k] = _to_hash(v) }
@@ -152,6 +212,5 @@ module Shotstack
152
212
  value
153
213
  end
154
214
  end
155
-
156
215
  end
157
216
  end
@@ -0,0 +1,221 @@
1
+ =begin
2
+ #shotstack
3
+
4
+ #The Shotstack API is a video editing service that allows for the programatic creation of videos using JSON.
5
+
6
+ OpenAPI spec version: v1
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.0.0-beta3
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require_relative 'asset'
15
+
16
+ module Shotstack
17
+ # The ImageAsset is used to create video from images. The src must be a publicly accesible URL to an image resource such as a jpg or png file.
18
+ class ImageAsset < Asset
19
+ # The type of asset - set to <b>image</b> for images.
20
+ attr_accessor :type
21
+
22
+ # The image source URL. The URL must be publicly accessible or include credentials.
23
+ attr_accessor :src
24
+
25
+ # Attribute mapping from ruby-style variable name to JSON key.
26
+ def self.attribute_map
27
+ {
28
+ :'type' => :'type',
29
+ :'src' => :'src'
30
+ }
31
+ end
32
+
33
+ # Attribute type mapping.
34
+ def self.openapi_types
35
+ {
36
+ :'type' => :'String',
37
+ :'src' => :'String'
38
+ }
39
+ end
40
+
41
+ # Initializes the object
42
+ # @param [Hash] attributes Model attributes in the form of hash
43
+ def initialize(attributes = {})
44
+ if (!attributes.is_a?(Hash))
45
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Shotstack::ImageAsset` initialize method"
46
+ end
47
+
48
+ # check to see if the attribute exists and convert string to symbol for hash key
49
+ attributes = attributes.each_with_object({}) { |(k, v), h|
50
+ if (!self.class.attribute_map.key?(k.to_sym))
51
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Shotstack::ImageAsset`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
52
+ end
53
+ h[k.to_sym] = v
54
+ }
55
+
56
+ if attributes.key?(:'type')
57
+ self.type = attributes[:'type']
58
+ else
59
+ self.type = 'image'
60
+ end
61
+
62
+ if attributes.key?(:'src')
63
+ self.src = attributes[:'src']
64
+ end
65
+ end
66
+
67
+ # Show invalid properties with the reasons. Usually used together with valid?
68
+ # @return Array for valid properties with the reasons
69
+ def list_invalid_properties
70
+ invalid_properties = Array.new
71
+ if @type.nil?
72
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
73
+ end
74
+
75
+ if @src.nil?
76
+ invalid_properties.push('invalid value for "src", src cannot be nil.')
77
+ end
78
+
79
+ invalid_properties
80
+ end
81
+
82
+ # Check to see if the all the properties in the model are valid
83
+ # @return true if the model is valid
84
+ def valid?
85
+ return false if @type.nil?
86
+ return false if @src.nil?
87
+ true
88
+ end
89
+
90
+ # Checks equality by comparing each attribute.
91
+ # @param [Object] Object to be compared
92
+ def ==(o)
93
+ return true if self.equal?(o)
94
+ self.class == o.class &&
95
+ type == o.type &&
96
+ src == o.src
97
+ end
98
+
99
+ # @see the `==` method
100
+ # @param [Object] Object to be compared
101
+ def eql?(o)
102
+ self == o
103
+ end
104
+
105
+ # Calculates hash code according to all attributes.
106
+ # @return [Integer] Hash code
107
+ def hash
108
+ [type, src].hash
109
+ end
110
+
111
+ # Builds the object from hash
112
+ # @param [Hash] attributes Model attributes in the form of hash
113
+ # @return [Object] Returns the model itself
114
+ def self.build_from_hash(attributes)
115
+ new.build_from_hash(attributes)
116
+ end
117
+
118
+ # Builds the object from hash
119
+ # @param [Hash] attributes Model attributes in the form of hash
120
+ # @return [Object] Returns the model itself
121
+ def build_from_hash(attributes)
122
+ return nil unless attributes.is_a?(Hash)
123
+ self.class.openapi_types.each_pair do |key, type|
124
+ if type =~ /\AArray<(.*)>/i
125
+ # check to ensure the input is an array given that the attribute
126
+ # is documented as an array but the input is not
127
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
128
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
129
+ end
130
+ elsif !attributes[self.class.attribute_map[key]].nil?
131
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
132
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
133
+ end
134
+
135
+ self
136
+ end
137
+
138
+ # Deserializes the data based on type
139
+ # @param string type Data type
140
+ # @param string value Value to be deserialized
141
+ # @return [Object] Deserialized data
142
+ def _deserialize(type, value)
143
+ case type.to_sym
144
+ when :DateTime
145
+ DateTime.parse(value)
146
+ when :Date
147
+ Date.parse(value)
148
+ when :String
149
+ value.to_s
150
+ when :Integer
151
+ value.to_i
152
+ when :Float
153
+ value.to_f
154
+ when :Boolean
155
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
156
+ true
157
+ else
158
+ false
159
+ end
160
+ when :Object
161
+ # generic object (usually a Hash), return directly
162
+ value
163
+ when /\AArray<(?<inner_type>.+)>\z/
164
+ inner_type = Regexp.last_match[:inner_type]
165
+ value.map { |v| _deserialize(inner_type, v) }
166
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
167
+ k_type = Regexp.last_match[:k_type]
168
+ v_type = Regexp.last_match[:v_type]
169
+ {}.tap do |hash|
170
+ value.each do |k, v|
171
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
172
+ end
173
+ end
174
+ else # model
175
+ Shotstack.const_get(type).build_from_hash(value)
176
+ end
177
+ end
178
+
179
+ # Returns the string representation of the object
180
+ # @return [String] String presentation of the object
181
+ def to_s
182
+ to_hash.to_s
183
+ end
184
+
185
+ # to_body is an alias to to_hash (backward compatibility)
186
+ # @return [Hash] Returns the object in the form of hash
187
+ def to_body
188
+ to_hash
189
+ end
190
+
191
+ # Returns the object in the form of hash
192
+ # @return [Hash] Returns the object in the form of hash
193
+ def to_hash
194
+ hash = {}
195
+ self.class.attribute_map.each_pair do |attr, param|
196
+ value = self.send(attr)
197
+ next if value.nil?
198
+ hash[param] = _to_hash(value)
199
+ end
200
+ hash
201
+ end
202
+
203
+ # Outputs non-array value in the form of hash
204
+ # For object, use to_hash. Otherwise, just return the value
205
+ # @param [Object] value Any valid value
206
+ # @return [Hash] Returns the value in the form of hash
207
+ def _to_hash(value)
208
+ if value.is_a?(Array)
209
+ value.compact.map { |v| _to_hash(v) }
210
+ elsif value.is_a?(Hash)
211
+ {}.tap do |hash|
212
+ value.each { |k, v| hash[k] = _to_hash(v) }
213
+ end
214
+ elsif value.respond_to? :to_hash
215
+ value.to_hash
216
+ else
217
+ value
218
+ end
219
+ end
220
+ end
221
+ end