vgen-apimatic-sdk 0.0.1

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 (192) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +152 -0
  4. data/bin/console +15 -0
  5. data/lib/videogen/api_helper.rb +10 -0
  6. data/lib/videogen/apis/account_api.rb +31 -0
  7. data/lib/videogen/apis/assistant_api.rb +191 -0
  8. data/lib/videogen/apis/base_api.rb +67 -0
  9. data/lib/videogen/apis/entities_api.rb +230 -0
  10. data/lib/videogen/apis/files_api.rb +263 -0
  11. data/lib/videogen/apis/projects_api.rb +355 -0
  12. data/lib/videogen/apis/resources_api.rb +81 -0
  13. data/lib/videogen/apis/text_api.rb +39 -0
  14. data/lib/videogen/apis/tools_api.rb +494 -0
  15. data/lib/videogen/apis/webhooks_api.rb +94 -0
  16. data/lib/videogen/apis/workflows_api.rb +217 -0
  17. data/lib/videogen/client.rb +127 -0
  18. data/lib/videogen/configuration.rb +166 -0
  19. data/lib/videogen/exceptions/api_exception.rb +21 -0
  20. data/lib/videogen/http/api_response.rb +19 -0
  21. data/lib/videogen/http/auth/oauth_2.rb +53 -0
  22. data/lib/videogen/http/http_call_back.rb +10 -0
  23. data/lib/videogen/http/http_method_enum.rb +10 -0
  24. data/lib/videogen/http/http_request.rb +10 -0
  25. data/lib/videogen/http/http_response.rb +10 -0
  26. data/lib/videogen/http/proxy_settings.rb +22 -0
  27. data/lib/videogen/logging/configuration/api_logging_configuration.rb +186 -0
  28. data/lib/videogen/logging/sdk_logger.rb +17 -0
  29. data/lib/videogen/models/act_on_assistant_action_request.rb +77 -0
  30. data/lib/videogen/models/act_on_assistant_action_request_decision.rb +36 -0
  31. data/lib/videogen/models/act_on_assistant_action_response.rb +77 -0
  32. data/lib/videogen/models/add_entity_reference_request.rb +95 -0
  33. data/lib/videogen/models/api_error.rb +137 -0
  34. data/lib/videogen/models/aspect_ratio.rb +105 -0
  35. data/lib/videogen/models/aspect_ratio1.rb +82 -0
  36. data/lib/videogen/models/aspect_ratio2.rb +82 -0
  37. data/lib/videogen/models/aspect_ratio4.rb +83 -0
  38. data/lib/videogen/models/assistant_action.rb +148 -0
  39. data/lib/videogen/models/assistant_action_detail.rb +108 -0
  40. data/lib/videogen/models/assistant_action_detail1.rb +117 -0
  41. data/lib/videogen/models/assistant_action_kind.rb +52 -0
  42. data/lib/videogen/models/assistant_message.rb +167 -0
  43. data/lib/videogen/models/assistant_message1.rb +259 -0
  44. data/lib/videogen/models/assistant_message_attachment.rb +101 -0
  45. data/lib/videogen/models/assistant_message_status.rb +49 -0
  46. data/lib/videogen/models/assistant_workflow_suggestion.rb +133 -0
  47. data/lib/videogen/models/base_model.rb +110 -0
  48. data/lib/videogen/models/content_policy_config.rb +80 -0
  49. data/lib/videogen/models/create_entity_request.rb +96 -0
  50. data/lib/videogen/models/create_entity_request_entity_type.rb +47 -0
  51. data/lib/videogen/models/create_file_upload_request.rb +125 -0
  52. data/lib/videogen/models/create_timeline_interchange_request.rb +93 -0
  53. data/lib/videogen/models/create_timeline_interchange_response.rb +76 -0
  54. data/lib/videogen/models/create_webhook_endpoint_request.rb +94 -0
  55. data/lib/videogen/models/end_screen_mode.rb +43 -0
  56. data/lib/videogen/models/entity.rb +166 -0
  57. data/lib/videogen/models/entity_actor_config.rb +101 -0
  58. data/lib/videogen/models/entity_archive_response.rb +82 -0
  59. data/lib/videogen/models/entity_entity_type.rb +47 -0
  60. data/lib/videogen/models/entity_reference.rb +93 -0
  61. data/lib/videogen/models/error_requirement.rb +101 -0
  62. data/lib/videogen/models/executed_tool.rb +148 -0
  63. data/lib/videogen/models/export_delivery_destination.rb +110 -0
  64. data/lib/videogen/models/export_delivery_destination_type.rb +36 -0
  65. data/lib/videogen/models/export_project_quality.rb +44 -0
  66. data/lib/videogen/models/export_project_request.rb +124 -0
  67. data/lib/videogen/models/export_project_response.rb +76 -0
  68. data/lib/videogen/models/file_analysis_metadata.rb +112 -0
  69. data/lib/videogen/models/file_analysis_metadata1.rb +112 -0
  70. data/lib/videogen/models/file_analysis_metadata_analysis_loading_state.rb +48 -0
  71. data/lib/videogen/models/file_info.rb +386 -0
  72. data/lib/videogen/models/file_info1.rb +387 -0
  73. data/lib/videogen/models/file_info_scope.rb +54 -0
  74. data/lib/videogen/models/file_source.rb +134 -0
  75. data/lib/videogen/models/file_source_status.rb +46 -0
  76. data/lib/videogen/models/file_type.rb +57 -0
  77. data/lib/videogen/models/file_type1.rb +56 -0
  78. data/lib/videogen/models/file_type2.rb +57 -0
  79. data/lib/videogen/models/file_upload_response.rb +82 -0
  80. data/lib/videogen/models/generate_avatar_request.rb +149 -0
  81. data/lib/videogen/models/generate_image_request.rb +187 -0
  82. data/lib/videogen/models/generate_motion_graphic_request.rb +193 -0
  83. data/lib/videogen/models/generate_music_request.rb +111 -0
  84. data/lib/videogen/models/generate_sound_effect_request.rb +139 -0
  85. data/lib/videogen/models/generate_text_request.rb +120 -0
  86. data/lib/videogen/models/generate_text_response.rb +72 -0
  87. data/lib/videogen/models/generate_video_clip_request.rb +297 -0
  88. data/lib/videogen/models/get_assistant_response.rb +135 -0
  89. data/lib/videogen/models/get_files_response.rb +102 -0
  90. data/lib/videogen/models/image_asset_request.rb +125 -0
  91. data/lib/videogen/models/job_status.rb +51 -0
  92. data/lib/videogen/models/language.rb +83 -0
  93. data/lib/videogen/models/language_list_response.rb +83 -0
  94. data/lib/videogen/models/list_entities_response.rb +103 -0
  95. data/lib/videogen/models/list_project_exports_response.rb +104 -0
  96. data/lib/videogen/models/list_projects_response.rb +105 -0
  97. data/lib/videogen/models/list_remix_actions_response.rb +103 -0
  98. data/lib/videogen/models/me_response.rb +114 -0
  99. data/lib/videogen/models/model_quality.rb +51 -0
  100. data/lib/videogen/models/model_quality1.rb +47 -0
  101. data/lib/videogen/models/model_quality10.rb +46 -0
  102. data/lib/videogen/models/model_quality11.rb +46 -0
  103. data/lib/videogen/models/model_quality12.rb +45 -0
  104. data/lib/videogen/models/model_quality13.rb +46 -0
  105. data/lib/videogen/models/model_quality2.rb +46 -0
  106. data/lib/videogen/models/model_quality3.rb +46 -0
  107. data/lib/videogen/models/model_quality4.rb +48 -0
  108. data/lib/videogen/models/model_quality9.rb +47 -0
  109. data/lib/videogen/models/motion_graphic_sub_tool_mode.rb +44 -0
  110. data/lib/videogen/models/motion_graphic_sub_tool_mode1.rb +40 -0
  111. data/lib/videogen/models/motion_graphic_sub_tool_mode2.rb +41 -0
  112. data/lib/videogen/models/motion_graphic_sub_tool_mode3.rb +40 -0
  113. data/lib/videogen/models/motion_graphic_sub_tool_mode4.rb +40 -0
  114. data/lib/videogen/models/motion_graphic_sub_tool_modes.rb +114 -0
  115. data/lib/videogen/models/motion_graphic_sub_tool_modes1.rb +116 -0
  116. data/lib/videogen/models/project_export.rb +207 -0
  117. data/lib/videogen/models/project_response.rb +151 -0
  118. data/lib/videogen/models/project_response_status.rb +36 -0
  119. data/lib/videogen/models/prompt_to_video_clip_request.rb +155 -0
  120. data/lib/videogen/models/pronunciation_replacement.rb +82 -0
  121. data/lib/videogen/models/remix_action.rb +111 -0
  122. data/lib/videogen/models/remix_action1.rb +123 -0
  123. data/lib/videogen/models/remix_action10.rb +115 -0
  124. data/lib/videogen/models/remix_action11.rb +148 -0
  125. data/lib/videogen/models/remix_action12.rb +89 -0
  126. data/lib/videogen/models/remix_action13.rb +105 -0
  127. data/lib/videogen/models/remix_action14.rb +138 -0
  128. data/lib/videogen/models/remix_action2.rb +101 -0
  129. data/lib/videogen/models/remix_action3.rb +85 -0
  130. data/lib/videogen/models/remix_action4.rb +120 -0
  131. data/lib/videogen/models/remix_action5.rb +88 -0
  132. data/lib/videogen/models/remix_action6.rb +106 -0
  133. data/lib/videogen/models/remix_action7.rb +137 -0
  134. data/lib/videogen/models/remix_action8.rb +131 -0
  135. data/lib/videogen/models/remix_action9.rb +120 -0
  136. data/lib/videogen/models/remix_action_discriminator_mapping_set_logo_position.rb +53 -0
  137. data/lib/videogen/models/remix_action_run.rb +150 -0
  138. data/lib/videogen/models/remix_action_type.rb +88 -0
  139. data/lib/videogen/models/remix_project_request.rb +105 -0
  140. data/lib/videogen/models/remix_project_response.rb +101 -0
  141. data/lib/videogen/models/remix_transition_style.rb +58 -0
  142. data/lib/videogen/models/remove_entity_reference_request.rb +73 -0
  143. data/lib/videogen/models/scene_description_range.rb +121 -0
  144. data/lib/videogen/models/script_to_video_request.rb +309 -0
  145. data/lib/videogen/models/search_files_request.rb +96 -0
  146. data/lib/videogen/models/search_files_response.rb +82 -0
  147. data/lib/videogen/models/search_files_result.rb +85 -0
  148. data/lib/videogen/models/send_assistant_message_request.rb +73 -0
  149. data/lib/videogen/models/send_assistant_message_response.rb +76 -0
  150. data/lib/videogen/models/slideshow_to_video_request.rb +276 -0
  151. data/lib/videogen/models/start_assistant_chat_request.rb +88 -0
  152. data/lib/videogen/models/start_assistant_chat_response.rb +105 -0
  153. data/lib/videogen/models/start_tool_execution_response.rb +76 -0
  154. data/lib/videogen/models/start_workflow_run_response.rb +141 -0
  155. data/lib/videogen/models/text_to_speech_request.rb +191 -0
  156. data/lib/videogen/models/timeline_interchange.rb +210 -0
  157. data/lib/videogen/models/timeline_interchange_format.rb +47 -0
  158. data/lib/videogen/models/timeline_interchange_media_delivery.rb +39 -0
  159. data/lib/videogen/models/tool_execution_list_response.rb +104 -0
  160. data/lib/videogen/models/tool_success_result.rb +152 -0
  161. data/lib/videogen/models/transcript.rb +97 -0
  162. data/lib/videogen/models/transcript_word.rb +93 -0
  163. data/lib/videogen/models/tts_voice.rb +162 -0
  164. data/lib/videogen/models/tts_voice_display_gender.rb +40 -0
  165. data/lib/videogen/models/tts_voice_list_response.rb +103 -0
  166. data/lib/videogen/models/update_entity_request.rb +88 -0
  167. data/lib/videogen/models/v1_entities_get_parameters_entity_type.rb +44 -0
  168. data/lib/videogen/models/video_asset_request.rb +125 -0
  169. data/lib/videogen/models/visual_pacing.rb +41 -0
  170. data/lib/videogen/models/voiceover_to_video_request.rb +297 -0
  171. data/lib/videogen/models/watermark_mode.rb +43 -0
  172. data/lib/videogen/models/webhook_endpoint.rb +137 -0
  173. data/lib/videogen/models/webhook_endpoint_list_response.rb +103 -0
  174. data/lib/videogen/models/webhook_event_name.rb +100 -0
  175. data/lib/videogen/models/workflow_caption_background_style.rb +133 -0
  176. data/lib/videogen/models/workflow_caption_background_style_type.rb +41 -0
  177. data/lib/videogen/models/workflow_caption_style.rb +220 -0
  178. data/lib/videogen/models/workflow_caption_style_font_weight.rb +64 -0
  179. data/lib/videogen/models/workflow_caption_style_text_justification.rb +40 -0
  180. data/lib/videogen/models/workflow_caption_style_vertical_alignment.rb +40 -0
  181. data/lib/videogen/models/workflow_rgb_color.rb +116 -0
  182. data/lib/videogen/models/workflow_run.rb +150 -0
  183. data/lib/videogen/models/workflow_run_list_response.rb +103 -0
  184. data/lib/videogen/models/workflow_type.rb +52 -0
  185. data/lib/videogen/models/workflow_type1.rb +52 -0
  186. data/lib/videogen/models/workflow_visual_style.rb +136 -0
  187. data/lib/videogen/models/workflow_visual_style_type.rb +38 -0
  188. data/lib/videogen/utilities/date_time_helper.rb +11 -0
  189. data/lib/videogen/utilities/file_wrapper.rb +28 -0
  190. data/lib/videogen/utilities/union_type_lookup.rb +188 -0
  191. data/lib/videogen.rb +213 -0
  192. metadata +275 -0
@@ -0,0 +1,47 @@
1
+ # videogen
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Videogen
7
+ # ACTOR features a consistent character; PRODUCT features a consistent product
8
+ # or object; VISUAL_STYLE guides the look of generated images; SLIDESHOW_THEME
9
+ # is a shared slide design system (fonts, colors, layout) applied to every
10
+ # slide of a slideshow-to-video deck.
11
+ class EntityEntityType
12
+ ENTITY_ENTITY_TYPE = [
13
+ # TODO: Write general description for ACTOR
14
+ ACTOR = 'ACTOR'.freeze,
15
+
16
+ # TODO: Write general description for PRODUCT
17
+ PRODUCT = 'PRODUCT'.freeze,
18
+
19
+ # TODO: Write general description for VISUAL_STYLE
20
+ VISUAL_STYLE = 'VISUAL_STYLE'.freeze,
21
+
22
+ # TODO: Write general description for SLIDESHOW_THEME
23
+ SLIDESHOW_THEME = 'SLIDESHOW_THEME'.freeze
24
+ ].freeze
25
+
26
+ def self.validate(value)
27
+ return false if value.nil?
28
+
29
+ ENTITY_ENTITY_TYPE.include?(value)
30
+ end
31
+
32
+ def self.from_value(value, default_value = ACTOR)
33
+ return default_value if value.nil?
34
+
35
+ str = value.to_s.strip
36
+
37
+ case str.downcase
38
+ when 'actor' then ACTOR
39
+ when 'product' then PRODUCT
40
+ when 'visual_style' then VISUAL_STYLE
41
+ when 'slideshow_theme' then SLIDESHOW_THEME
42
+ else
43
+ default_value
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,93 @@
1
+ # videogen
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Videogen
7
+ # A file attached to an entity as a reference image.
8
+ class EntityReference < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The reference image file id (e.g. `vg_file_...`). Hydrate it via `GET
13
+ # /v1/files/{fileId}` to fetch a viewable URL.
14
+ # @return [String]
15
+ attr_accessor :file_id
16
+
17
+ # Optional description of the reference. Empty string when not set.
18
+ # @return [String]
19
+ attr_accessor :description
20
+
21
+ # When true, this is the entity's primary reference (used for its
22
+ # thumbnail).
23
+ # @return [TrueClass | FalseClass]
24
+ attr_accessor :is_default
25
+
26
+ # A mapping from model property names to API property names.
27
+ def self.names
28
+ @_hash = {} if @_hash.nil?
29
+ @_hash['file_id'] = 'fileId'
30
+ @_hash['description'] = 'description'
31
+ @_hash['is_default'] = 'isDefault'
32
+ @_hash
33
+ end
34
+
35
+ # An array for optional fields
36
+ def self.optionals
37
+ []
38
+ end
39
+
40
+ # An array for nullable fields
41
+ def self.nullables
42
+ []
43
+ end
44
+
45
+ def initialize(file_id:, description:, is_default:,
46
+ additional_properties: nil)
47
+ # Add additional model properties to the instance
48
+ additional_properties = {} if additional_properties.nil?
49
+
50
+ @file_id = file_id
51
+ @description = description
52
+ @is_default = is_default
53
+ @additional_properties = additional_properties
54
+ end
55
+
56
+ # Creates an instance of the object from a hash.
57
+ def self.from_hash(hash)
58
+ return nil unless hash
59
+
60
+ # Extract variables from the hash.
61
+ file_id = hash.key?('fileId') ? hash['fileId'] : nil
62
+ description = hash.key?('description') ? hash['description'] : nil
63
+ is_default = hash.key?('isDefault') ? hash['isDefault'] : nil
64
+
65
+ # Create a new hash for additional properties, removing known properties.
66
+ new_hash = hash.reject { |k, _| names.value?(k) }
67
+
68
+ additional_properties = APIHelper.get_additional_properties(
69
+ new_hash, proc { |value| value }
70
+ )
71
+
72
+ # Create object from extracted values.
73
+ EntityReference.new(file_id: file_id,
74
+ description: description,
75
+ is_default: is_default,
76
+ additional_properties: additional_properties)
77
+ end
78
+
79
+ # Provides a human-readable string representation of the object.
80
+ def to_s
81
+ class_name = self.class.name.split('::').last
82
+ "<#{class_name} file_id: #{@file_id}, description: #{@description}, is_default:"\
83
+ " #{@is_default}, additional_properties: #{@additional_properties}>"
84
+ end
85
+
86
+ # Provides a debugging-friendly string with detailed object information.
87
+ def inspect
88
+ class_name = self.class.name.split('::').last
89
+ "<#{class_name} file_id: #{@file_id.inspect}, description: #{@description.inspect},"\
90
+ " is_default: #{@is_default.inspect}, additional_properties: #{@additional_properties}>"
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,101 @@
1
+ # videogen
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Videogen
7
+ # What is needed to resolve an error, when it can be fixed by fulfilling a
8
+ # specific requirement (e.g. purchasing an add-on or upgrading the plan).
9
+ class ErrorRequirement < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # Machine-readable requirement type in snake_case (e.g. `purchase_add_on`,
14
+ # `upgrade_plan`).
15
+ # @return [String]
16
+ attr_accessor :type
17
+
18
+ # Key-value pairs with requirement-specific context (e.g. the add-on id to
19
+ # purchase).
20
+ # @return [Hash[String, String]]
21
+ attr_accessor :details
22
+
23
+ # A mapping from model property names to API property names.
24
+ def self.names
25
+ @_hash = {} if @_hash.nil?
26
+ @_hash['type'] = 'type'
27
+ @_hash['details'] = 'details'
28
+ @_hash
29
+ end
30
+
31
+ # An array for optional fields
32
+ def self.optionals
33
+ %w[
34
+ details
35
+ ]
36
+ end
37
+
38
+ # An array for nullable fields
39
+ def self.nullables
40
+ []
41
+ end
42
+
43
+ def initialize(type:, details: SKIP, additional_properties: nil)
44
+ # Add additional model properties to the instance
45
+ additional_properties = {} if additional_properties.nil?
46
+
47
+ @type = type
48
+ @details = details unless details == SKIP
49
+ @additional_properties = additional_properties
50
+ end
51
+
52
+ # Creates an instance of the object from a hash.
53
+ def self.from_hash(hash)
54
+ return nil unless hash
55
+
56
+ # Extract variables from the hash.
57
+ type = hash.key?('type') ? hash['type'] : nil
58
+ details = hash.key?('details') ? hash['details'] : SKIP
59
+
60
+ # Create a new hash for additional properties, removing known properties.
61
+ new_hash = hash.reject { |k, _| names.value?(k) }
62
+
63
+ additional_properties = APIHelper.get_additional_properties(
64
+ new_hash, proc { |value| value }
65
+ )
66
+
67
+ # Create object from extracted values.
68
+ ErrorRequirement.new(type: type,
69
+ details: details,
70
+ additional_properties: additional_properties)
71
+ end
72
+
73
+ # Validates an instance of the object from a given value.
74
+ # @param [ErrorRequirement | Hash] The value against the validation is performed.
75
+ def self.validate(value)
76
+ if value.instance_of? self
77
+ return APIHelper.valid_type?(value.type,
78
+ ->(val) { val.instance_of? String })
79
+ end
80
+
81
+ return false unless value.instance_of? Hash
82
+
83
+ APIHelper.valid_type?(value['type'],
84
+ ->(val) { val.instance_of? String })
85
+ end
86
+
87
+ # Provides a human-readable string representation of the object.
88
+ def to_s
89
+ class_name = self.class.name.split('::').last
90
+ "<#{class_name} type: #{@type}, details: #{@details}, additional_properties:"\
91
+ " #{@additional_properties}>"
92
+ end
93
+
94
+ # Provides a debugging-friendly string with detailed object information.
95
+ def inspect
96
+ class_name = self.class.name.split('::').last
97
+ "<#{class_name} type: #{@type.inspect}, details: #{@details.inspect},"\
98
+ " additional_properties: #{@additional_properties}>"
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,148 @@
1
+ # videogen
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Videogen
7
+ # ExecutedTool Model.
8
+ class ExecutedTool < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Execution id matching the original request.
13
+ # @return [String]
14
+ attr_accessor :tool_execution_id
15
+
16
+ # Lifecycle status shared by every asynchronous job (tool executions,
17
+ # workflow runs, remix actions, project exports, and timeline interchange
18
+ # jobs). `pending` and `running` are in-progress; `succeeded`, `failed`, and
19
+ # `cancelled` are terminal.
20
+ # @return [JobStatus]
21
+ attr_accessor :status
22
+
23
+ # Tool name (e.g. `GENERATE_IMAGE`, `TEXT_TO_SPEECH`).
24
+ # @return [String]
25
+ attr_accessor :tool_type
26
+
27
+ # Completion progress for the current attempt (0-100). Always `100` when
28
+ # `status` is `succeeded`.
29
+ # @return [Float]
30
+ attr_accessor :progress_percentage
31
+
32
+ # Zero-based index of the current or most recent execution attempt.
33
+ # @return [Integer]
34
+ attr_accessor :attempt_index
35
+
36
+ # One entry per generated result. Always present; empty until `status` is
37
+ # `succeeded`, then one entry per generated file (each with signed URLs and
38
+ # a hydrated `file`).
39
+ # @return [Array[ToolSuccessResult]]
40
+ attr_accessor :results
41
+
42
+ # Error details. Always present; `null` unless `status` is `failed`.
43
+ # @return [ApiError]
44
+ attr_accessor :error
45
+
46
+ # A mapping from model property names to API property names.
47
+ def self.names
48
+ @_hash = {} if @_hash.nil?
49
+ @_hash['tool_execution_id'] = 'toolExecutionId'
50
+ @_hash['status'] = 'status'
51
+ @_hash['tool_type'] = 'toolType'
52
+ @_hash['progress_percentage'] = 'progressPercentage'
53
+ @_hash['attempt_index'] = 'attemptIndex'
54
+ @_hash['results'] = 'results'
55
+ @_hash['error'] = 'error'
56
+ @_hash
57
+ end
58
+
59
+ # An array for optional fields
60
+ def self.optionals
61
+ []
62
+ end
63
+
64
+ # An array for nullable fields
65
+ def self.nullables
66
+ %w[
67
+ error
68
+ ]
69
+ end
70
+
71
+ def initialize(tool_execution_id:, status:, tool_type:,
72
+ progress_percentage:, attempt_index:, results:, error:,
73
+ additional_properties: nil)
74
+ # Add additional model properties to the instance
75
+ additional_properties = {} if additional_properties.nil?
76
+
77
+ @tool_execution_id = tool_execution_id
78
+ @status = status
79
+ @tool_type = tool_type
80
+ @progress_percentage = progress_percentage
81
+ @attempt_index = attempt_index
82
+ @results = results
83
+ @error = error
84
+ @additional_properties = additional_properties
85
+ end
86
+
87
+ # Creates an instance of the object from a hash.
88
+ def self.from_hash(hash)
89
+ return nil unless hash
90
+
91
+ # Extract variables from the hash.
92
+ tool_execution_id =
93
+ hash.key?('toolExecutionId') ? hash['toolExecutionId'] : nil
94
+ status = hash.key?('status') ? hash['status'] : nil
95
+ tool_type = hash.key?('toolType') ? hash['toolType'] : nil
96
+ progress_percentage =
97
+ hash.key?('progressPercentage') ? hash['progressPercentage'] : nil
98
+ attempt_index = hash.key?('attemptIndex') ? hash['attemptIndex'] : nil
99
+ # Parameter is an array, so we need to iterate through it
100
+ results = nil
101
+ unless hash['results'].nil?
102
+ results = []
103
+ hash['results'].each do |structure|
104
+ results << (ToolSuccessResult.from_hash(structure) if structure)
105
+ end
106
+ end
107
+
108
+ results = nil unless hash.key?('results')
109
+ error = ApiError.from_hash(hash['error']) if hash['error']
110
+
111
+ # Create a new hash for additional properties, removing known properties.
112
+ new_hash = hash.reject { |k, _| names.value?(k) }
113
+
114
+ additional_properties = APIHelper.get_additional_properties(
115
+ new_hash, proc { |value| value }
116
+ )
117
+
118
+ # Create object from extracted values.
119
+ ExecutedTool.new(tool_execution_id: tool_execution_id,
120
+ status: status,
121
+ tool_type: tool_type,
122
+ progress_percentage: progress_percentage,
123
+ attempt_index: attempt_index,
124
+ results: results,
125
+ error: error,
126
+ additional_properties: additional_properties)
127
+ end
128
+
129
+ # Provides a human-readable string representation of the object.
130
+ def to_s
131
+ class_name = self.class.name.split('::').last
132
+ "<#{class_name} tool_execution_id: #{@tool_execution_id}, status: #{@status}, tool_type:"\
133
+ " #{@tool_type}, progress_percentage: #{@progress_percentage}, attempt_index:"\
134
+ " #{@attempt_index}, results: #{@results}, error: #{@error}, additional_properties:"\
135
+ " #{@additional_properties}>"
136
+ end
137
+
138
+ # Provides a debugging-friendly string with detailed object information.
139
+ def inspect
140
+ class_name = self.class.name.split('::').last
141
+ "<#{class_name} tool_execution_id: #{@tool_execution_id.inspect}, status:"\
142
+ " #{@status.inspect}, tool_type: #{@tool_type.inspect}, progress_percentage:"\
143
+ " #{@progress_percentage.inspect}, attempt_index: #{@attempt_index.inspect}, results:"\
144
+ " #{@results.inspect}, error: #{@error.inspect}, additional_properties:"\
145
+ " #{@additional_properties}>"
146
+ end
147
+ end
148
+ end
@@ -0,0 +1,110 @@
1
+ # videogen
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Videogen
7
+ # ExportDeliveryDestination Model.
8
+ class ExportDeliveryDestination < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Id of the connected integration that will receive this export.
13
+ # @return [String]
14
+ attr_accessor :integration_connection_id
15
+
16
+ # Where to deliver the export within the connected integration.
17
+ # @return [ExportDeliveryDestinationType]
18
+ attr_accessor :type
19
+
20
+ # Target channel id. Required when `type` is `SLACK_CHANNEL`.
21
+ # @return [String]
22
+ attr_accessor :slack_channel_id
23
+
24
+ # Target folder id. Required when `type` is `GOOGLE_DRIVE_FOLDER`.
25
+ # @return [String]
26
+ attr_accessor :google_drive_folder_id
27
+
28
+ # A mapping from model property names to API property names.
29
+ def self.names
30
+ @_hash = {} if @_hash.nil?
31
+ @_hash['integration_connection_id'] = 'integrationConnectionId'
32
+ @_hash['type'] = 'type'
33
+ @_hash['slack_channel_id'] = 'slackChannelId'
34
+ @_hash['google_drive_folder_id'] = 'googleDriveFolderId'
35
+ @_hash
36
+ end
37
+
38
+ # An array for optional fields
39
+ def self.optionals
40
+ %w[
41
+ slack_channel_id
42
+ google_drive_folder_id
43
+ ]
44
+ end
45
+
46
+ # An array for nullable fields
47
+ def self.nullables
48
+ %w[
49
+ slack_channel_id
50
+ google_drive_folder_id
51
+ ]
52
+ end
53
+
54
+ def initialize(integration_connection_id:, type:, slack_channel_id: SKIP,
55
+ google_drive_folder_id: SKIP, additional_properties: nil)
56
+ # Add additional model properties to the instance
57
+ additional_properties = {} if additional_properties.nil?
58
+
59
+ @integration_connection_id = integration_connection_id
60
+ @type = type
61
+ @slack_channel_id = slack_channel_id unless slack_channel_id == SKIP
62
+ @google_drive_folder_id = google_drive_folder_id unless google_drive_folder_id == SKIP
63
+ @additional_properties = additional_properties
64
+ end
65
+
66
+ # Creates an instance of the object from a hash.
67
+ def self.from_hash(hash)
68
+ return nil unless hash
69
+
70
+ # Extract variables from the hash.
71
+ integration_connection_id =
72
+ hash.key?('integrationConnectionId') ? hash['integrationConnectionId'] : nil
73
+ type = hash.key?('type') ? hash['type'] : nil
74
+ slack_channel_id =
75
+ hash.key?('slackChannelId') ? hash['slackChannelId'] : SKIP
76
+ google_drive_folder_id =
77
+ hash.key?('googleDriveFolderId') ? hash['googleDriveFolderId'] : SKIP
78
+
79
+ # Create a new hash for additional properties, removing known properties.
80
+ new_hash = hash.reject { |k, _| names.value?(k) }
81
+
82
+ additional_properties = APIHelper.get_additional_properties(
83
+ new_hash, proc { |value| value }
84
+ )
85
+
86
+ # Create object from extracted values.
87
+ ExportDeliveryDestination.new(integration_connection_id: integration_connection_id,
88
+ type: type,
89
+ slack_channel_id: slack_channel_id,
90
+ google_drive_folder_id: google_drive_folder_id,
91
+ additional_properties: additional_properties)
92
+ end
93
+
94
+ # Provides a human-readable string representation of the object.
95
+ def to_s
96
+ class_name = self.class.name.split('::').last
97
+ "<#{class_name} integration_connection_id: #{@integration_connection_id}, type: #{@type},"\
98
+ " slack_channel_id: #{@slack_channel_id}, google_drive_folder_id:"\
99
+ " #{@google_drive_folder_id}, additional_properties: #{@additional_properties}>"
100
+ end
101
+
102
+ # Provides a debugging-friendly string with detailed object information.
103
+ def inspect
104
+ class_name = self.class.name.split('::').last
105
+ "<#{class_name} integration_connection_id: #{@integration_connection_id.inspect}, type:"\
106
+ " #{@type.inspect}, slack_channel_id: #{@slack_channel_id.inspect}, google_drive_folder_id:"\
107
+ " #{@google_drive_folder_id.inspect}, additional_properties: #{@additional_properties}>"
108
+ end
109
+ end
110
+ end
@@ -0,0 +1,36 @@
1
+ # videogen
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Videogen
7
+ # Where to deliver the export within the connected integration.
8
+ class ExportDeliveryDestinationType
9
+ EXPORT_DELIVERY_DESTINATION_TYPE = [
10
+ # TODO: Write general description for SLACK_CHANNEL
11
+ SLACK_CHANNEL = 'SLACK_CHANNEL'.freeze,
12
+
13
+ # TODO: Write general description for GOOGLE_DRIVE_FOLDER
14
+ GOOGLE_DRIVE_FOLDER = 'GOOGLE_DRIVE_FOLDER'.freeze
15
+ ].freeze
16
+
17
+ def self.validate(value)
18
+ return false if value.nil?
19
+
20
+ EXPORT_DELIVERY_DESTINATION_TYPE.include?(value)
21
+ end
22
+
23
+ def self.from_value(value, default_value = SLACK_CHANNEL)
24
+ return default_value if value.nil?
25
+
26
+ str = value.to_s.strip
27
+
28
+ case str.downcase
29
+ when 'slack_channel' then SLACK_CHANNEL
30
+ when 'google_drive_folder' then GOOGLE_DRIVE_FOLDER
31
+ else
32
+ default_value
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,44 @@
1
+ # videogen
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Videogen
7
+ # Vertical resolution tier for the rendered MP4.
8
+ class ExportProjectQuality
9
+ EXPORT_PROJECT_QUALITY = [
10
+ # TODO: Write general description for STANDARD
11
+ STANDARD = 'STANDARD'.freeze,
12
+
13
+ # TODO: Write general description for HIGH
14
+ HIGH = 'HIGH'.freeze,
15
+
16
+ # TODO: Write general description for FULL_HIGH
17
+ FULL_HIGH = 'FULL_HIGH'.freeze,
18
+
19
+ # TODO: Write general description for ULTRA_HIGH
20
+ ULTRA_HIGH = 'ULTRA_HIGH'.freeze
21
+ ].freeze
22
+
23
+ def self.validate(value)
24
+ return false if value.nil?
25
+
26
+ EXPORT_PROJECT_QUALITY.include?(value)
27
+ end
28
+
29
+ def self.from_value(value, default_value = STANDARD)
30
+ return default_value if value.nil?
31
+
32
+ str = value.to_s.strip
33
+
34
+ case str.downcase
35
+ when 'standard' then STANDARD
36
+ when 'high' then HIGH
37
+ when 'full_high' then FULL_HIGH
38
+ when 'ultra_high' then ULTRA_HIGH
39
+ else
40
+ default_value
41
+ end
42
+ end
43
+ end
44
+ end