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,85 @@
1
+ # videogen
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Videogen
7
+ # SearchFilesResult Model.
8
+ class SearchFilesResult < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Cosine similarity between the query embedding and the file description
13
+ # embedding. Ranges from 0 (no match) to 1 (identical). Values above 0.7
14
+ # typically indicate strong relevance.
15
+ # @return [Float]
16
+ attr_accessor :similarity
17
+
18
+ # Metadata for a generated file. Obtain ids from tool results or `GET
19
+ # /v1/files`.
20
+ # @return [FileInfo]
21
+ attr_accessor :file
22
+
23
+ # A mapping from model property names to API property names.
24
+ def self.names
25
+ @_hash = {} if @_hash.nil?
26
+ @_hash['similarity'] = 'similarity'
27
+ @_hash['file'] = 'file'
28
+ @_hash
29
+ end
30
+
31
+ # An array for optional fields
32
+ def self.optionals
33
+ []
34
+ end
35
+
36
+ # An array for nullable fields
37
+ def self.nullables
38
+ []
39
+ end
40
+
41
+ def initialize(similarity:, file:, additional_properties: nil)
42
+ # Add additional model properties to the instance
43
+ additional_properties = {} if additional_properties.nil?
44
+
45
+ @similarity = similarity
46
+ @file = file
47
+ @additional_properties = additional_properties
48
+ end
49
+
50
+ # Creates an instance of the object from a hash.
51
+ def self.from_hash(hash)
52
+ return nil unless hash
53
+
54
+ # Extract variables from the hash.
55
+ similarity = hash.key?('similarity') ? hash['similarity'] : nil
56
+ file = FileInfo.from_hash(hash['file']) if hash['file']
57
+
58
+ # Create a new hash for additional properties, removing known properties.
59
+ new_hash = hash.reject { |k, _| names.value?(k) }
60
+
61
+ additional_properties = APIHelper.get_additional_properties(
62
+ new_hash, proc { |value| value }
63
+ )
64
+
65
+ # Create object from extracted values.
66
+ SearchFilesResult.new(similarity: similarity,
67
+ file: file,
68
+ additional_properties: additional_properties)
69
+ end
70
+
71
+ # Provides a human-readable string representation of the object.
72
+ def to_s
73
+ class_name = self.class.name.split('::').last
74
+ "<#{class_name} similarity: #{@similarity}, file: #{@file}, additional_properties:"\
75
+ " #{@additional_properties}>"
76
+ end
77
+
78
+ # Provides a debugging-friendly string with detailed object information.
79
+ def inspect
80
+ class_name = self.class.name.split('::').last
81
+ "<#{class_name} similarity: #{@similarity.inspect}, file: #{@file.inspect},"\
82
+ " additional_properties: #{@additional_properties}>"
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,73 @@
1
+ # videogen
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Videogen
7
+ # SendAssistantMessageRequest Model.
8
+ class SendAssistantMessageRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The message to send to the assistant in this project chat.
13
+ # @return [String]
14
+ attr_accessor :message
15
+
16
+ # A mapping from model property names to API property names.
17
+ def self.names
18
+ @_hash = {} if @_hash.nil?
19
+ @_hash['message'] = 'message'
20
+ @_hash
21
+ end
22
+
23
+ # An array for optional fields
24
+ def self.optionals
25
+ []
26
+ end
27
+
28
+ # An array for nullable fields
29
+ def self.nullables
30
+ []
31
+ end
32
+
33
+ def initialize(message:, additional_properties: nil)
34
+ # Add additional model properties to the instance
35
+ additional_properties = {} if additional_properties.nil?
36
+
37
+ @message = message
38
+ @additional_properties = additional_properties
39
+ end
40
+
41
+ # Creates an instance of the object from a hash.
42
+ def self.from_hash(hash)
43
+ return nil unless hash
44
+
45
+ # Extract variables from the hash.
46
+ message = hash.key?('message') ? hash['message'] : nil
47
+
48
+ # Create a new hash for additional properties, removing known properties.
49
+ new_hash = hash.reject { |k, _| names.value?(k) }
50
+
51
+ additional_properties = APIHelper.get_additional_properties(
52
+ new_hash, proc { |value| value }
53
+ )
54
+
55
+ # Create object from extracted values.
56
+ SendAssistantMessageRequest.new(message: message,
57
+ additional_properties: additional_properties)
58
+ end
59
+
60
+ # Provides a human-readable string representation of the object.
61
+ def to_s
62
+ class_name = self.class.name.split('::').last
63
+ "<#{class_name} message: #{@message}, additional_properties: #{@additional_properties}>"
64
+ end
65
+
66
+ # Provides a debugging-friendly string with detailed object information.
67
+ def inspect
68
+ class_name = self.class.name.split('::').last
69
+ "<#{class_name} message: #{@message.inspect}, additional_properties:"\
70
+ " #{@additional_properties}>"
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,76 @@
1
+ # videogen
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Videogen
7
+ # Returned when a `POST /v1/assistants/{assistantId}/messages` call is
8
+ # accepted. Use `messageId` to poll the pending assistant reply.
9
+ class SendAssistantMessageResponse < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # Opaque assistant message id for the pending assistant reply (e.g.
14
+ # `vg_mesg_...`). Poll `GET /v1/assistant-messages/{messageId}`.
15
+ # @return [String]
16
+ attr_accessor :message_id
17
+
18
+ # A mapping from model property names to API property names.
19
+ def self.names
20
+ @_hash = {} if @_hash.nil?
21
+ @_hash['message_id'] = 'messageId'
22
+ @_hash
23
+ end
24
+
25
+ # An array for optional fields
26
+ def self.optionals
27
+ []
28
+ end
29
+
30
+ # An array for nullable fields
31
+ def self.nullables
32
+ []
33
+ end
34
+
35
+ def initialize(message_id:, additional_properties: nil)
36
+ # Add additional model properties to the instance
37
+ additional_properties = {} if additional_properties.nil?
38
+
39
+ @message_id = message_id
40
+ @additional_properties = additional_properties
41
+ end
42
+
43
+ # Creates an instance of the object from a hash.
44
+ def self.from_hash(hash)
45
+ return nil unless hash
46
+
47
+ # Extract variables from the hash.
48
+ message_id = hash.key?('messageId') ? hash['messageId'] : nil
49
+
50
+ # Create a new hash for additional properties, removing known properties.
51
+ new_hash = hash.reject { |k, _| names.value?(k) }
52
+
53
+ additional_properties = APIHelper.get_additional_properties(
54
+ new_hash, proc { |value| value }
55
+ )
56
+
57
+ # Create object from extracted values.
58
+ SendAssistantMessageResponse.new(message_id: message_id,
59
+ additional_properties: additional_properties)
60
+ end
61
+
62
+ # Provides a human-readable string representation of the object.
63
+ def to_s
64
+ class_name = self.class.name.split('::').last
65
+ "<#{class_name} message_id: #{@message_id}, additional_properties:"\
66
+ " #{@additional_properties}>"
67
+ end
68
+
69
+ # Provides a debugging-friendly string with detailed object information.
70
+ def inspect
71
+ class_name = self.class.name.split('::').last
72
+ "<#{class_name} message_id: #{@message_id.inspect}, additional_properties:"\
73
+ " #{@additional_properties}>"
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,276 @@
1
+ # videogen
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Videogen
7
+ # SlideshowToVideoRequest Model.
8
+ class SlideshowToVideoRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Opaque file id of an uploaded PDF or PowerPoint file (e.g. `vg_file_...`).
13
+ # Upload the file first via `POST /v1/files/upload`.
14
+ # @return [String]
15
+ attr_accessor :file_id
16
+
17
+ # Optional per-slide narration, in slide order, applied by index: each slide
18
+ # uses its matching entry, and an empty string makes that slide silent. If
19
+ # you provide fewer entries than slides, the remaining slides are silent;
20
+ # extra entries are ignored. Omit this field entirely to narrate each slide
21
+ # from its speaker notes in the uploaded file. To guarantee no narration on
22
+ # any slide, pass an empty array.
23
+ # @return [Array[String]]
24
+ attr_accessor :slide_scripts
25
+
26
+ # Aspect ratio as a width:height pair (e.g. 16 and 9 for 16:9). Not pixel
27
+ # dimensions.
28
+ # @return [AspectRatio]
29
+ attr_accessor :aspect_ratio
30
+
31
+ # Output language as a BCP-47 code (e.g. `en`, `es`, `fr`). Defaults to
32
+ # English.
33
+ # @return [String]
34
+ attr_accessor :language
35
+
36
+ # Catalog `displayName` (e.g. `Matilda`) or voice id from `GET
37
+ # /v1/resources/tts-voices` (e.g. `vg_voic_...`). A default voice is used
38
+ # when omitted. Any voice may be used here, including voices where
39
+ # `supportsDirectToolExecution` is false.
40
+ # @return [String]
41
+ attr_accessor :voice_id
42
+
43
+ # Speech rate multiplier, between 0.5 (half speed) and 2 (double speed).
44
+ # Defaults to the voice's default speed.
45
+ # @return [Float]
46
+ attr_accessor :voice_speed
47
+
48
+ # Recommended. Optional id of a built-in stock actor or an ACTOR entity
49
+ # (e.g. `vg_enti_...`) with an image reference. When set, narration is
50
+ # delivered by that actor avatar. Omit or pass `null` for voiceover without
51
+ # an avatar.
52
+ # @return [String]
53
+ attr_accessor :actor_entity_id
54
+
55
+ # Avatar generation quality tier. Applies when `actorEntityId` is provided.
56
+ # Optional; when omitted, your account's Default AI quality for avatars is
57
+ # used.
58
+ # @return [ModelQuality3]
59
+ attr_accessor :avatar_quality
60
+
61
+ # Optional id of a SLIDESHOW_THEME entity (e.g. `vg_enti_...`) whose
62
+ # reference board defines the shared slide design system (fonts, colors,
63
+ # layout) applied to generated or edited slides. Create one via `POST
64
+ # /v1/entities` with `entityType` SLIDESHOW_THEME and attach a reference
65
+ # image or a PDF / PowerPoint. Omit when converting an uploaded deck's
66
+ # original pages into a video; VideoGen derives a theme from those pages in
67
+ # the background so later edits can match the original slides.
68
+ # @return [String]
69
+ attr_accessor :slideshow_theme_entity_id
70
+
71
+ # Caption styling. Omit to use the default style with captions shown. Pass
72
+ # an object to override individual style fields (any omitted field uses the
73
+ # default). Pass `null` to hide captions entirely.
74
+ # @return [WorkflowCaptionStyle]
75
+ attr_accessor :caption_style
76
+
77
+ # Optional file id of an uploaded logo image to overlay on the video (e.g.
78
+ # `vg_file_...`). Upload the image first via `POST /v1/files/upload`. Only
79
+ # image files are accepted.
80
+ # @return [String]
81
+ attr_accessor :logo_file_id
82
+
83
+ # Optional edits applied to the project after the video is built, in order.
84
+ # Each action runs asynchronously; the response returns one remix action id
85
+ # per action. Captions and a logo are set with the `captionStyle` and
86
+ # `logoFileId` request fields above; recommended remix actions here are
87
+ # `CONVERT_IMAGES_TO_VIDEOS` to animate still images into clips, and
88
+ # `ADD_TRANSITIONS` to stamp transitions between sections and assets. See
89
+ # the [Remix actions](/remix-actions) guide.
90
+ # @return [Array[Object]]
91
+ attr_accessor :remix_actions
92
+
93
+ # When true, the video's generated OUTPUT files (AI images, video clips,
94
+ # voiceover audio, avatars) are created as temporary: guaranteed available
95
+ # for 24 hours, after which they may be archived and later deleted. This
96
+ # also covers files produced by post-build remix actions (e.g. generated
97
+ # background music, image-to-video conversions). Use this when your
98
+ # integration downloads or re-hosts the results itself and does not need
99
+ # VideoGen to retain them. The project and its metadata are unaffected.
100
+ # Defaults to false.
101
+ # @return [TrueClass | FalseClass]
102
+ attr_accessor :is_output_temporary
103
+
104
+ # When true, generated files are hidden from the VideoGen Media page by
105
+ # default. They remain accessible through the API. Defaults to false.
106
+ # @return [TrueClass | FalseClass]
107
+ attr_accessor :hide_from_ui
108
+
109
+ # A mapping from model property names to API property names.
110
+ def self.names
111
+ @_hash = {} if @_hash.nil?
112
+ @_hash['file_id'] = 'fileId'
113
+ @_hash['slide_scripts'] = 'slideScripts'
114
+ @_hash['aspect_ratio'] = 'aspectRatio'
115
+ @_hash['language'] = 'language'
116
+ @_hash['voice_id'] = 'voiceId'
117
+ @_hash['voice_speed'] = 'voiceSpeed'
118
+ @_hash['actor_entity_id'] = 'actorEntityId'
119
+ @_hash['avatar_quality'] = 'avatarQuality'
120
+ @_hash['slideshow_theme_entity_id'] = 'slideshowThemeEntityId'
121
+ @_hash['caption_style'] = 'captionStyle'
122
+ @_hash['logo_file_id'] = 'logoFileId'
123
+ @_hash['remix_actions'] = 'remixActions'
124
+ @_hash['is_output_temporary'] = 'isOutputTemporary'
125
+ @_hash['hide_from_ui'] = 'hideFromUi'
126
+ @_hash
127
+ end
128
+
129
+ # An array for optional fields
130
+ def self.optionals
131
+ %w[
132
+ slide_scripts
133
+ aspect_ratio
134
+ language
135
+ voice_id
136
+ voice_speed
137
+ actor_entity_id
138
+ avatar_quality
139
+ slideshow_theme_entity_id
140
+ caption_style
141
+ logo_file_id
142
+ remix_actions
143
+ is_output_temporary
144
+ hide_from_ui
145
+ ]
146
+ end
147
+
148
+ # An array for nullable fields
149
+ def self.nullables
150
+ %w[
151
+ voice_id
152
+ actor_entity_id
153
+ caption_style
154
+ logo_file_id
155
+ ]
156
+ end
157
+
158
+ def initialize(file_id:, slide_scripts: SKIP, aspect_ratio: SKIP,
159
+ language: SKIP, voice_id: SKIP, voice_speed: SKIP,
160
+ actor_entity_id: SKIP, avatar_quality: SKIP,
161
+ slideshow_theme_entity_id: SKIP, caption_style: SKIP,
162
+ logo_file_id: SKIP, remix_actions: SKIP,
163
+ is_output_temporary: false, hide_from_ui: false,
164
+ additional_properties: nil)
165
+ # Add additional model properties to the instance
166
+ additional_properties = {} if additional_properties.nil?
167
+
168
+ @file_id = file_id
169
+ @slide_scripts = slide_scripts unless slide_scripts == SKIP
170
+ @aspect_ratio = aspect_ratio unless aspect_ratio == SKIP
171
+ @language = language unless language == SKIP
172
+ @voice_id = voice_id unless voice_id == SKIP
173
+ @voice_speed = voice_speed unless voice_speed == SKIP
174
+ @actor_entity_id = actor_entity_id unless actor_entity_id == SKIP
175
+ @avatar_quality = avatar_quality unless avatar_quality == SKIP
176
+ unless slideshow_theme_entity_id == SKIP
177
+ @slideshow_theme_entity_id =
178
+ slideshow_theme_entity_id
179
+ end
180
+ @caption_style = caption_style unless caption_style == SKIP
181
+ @logo_file_id = logo_file_id unless logo_file_id == SKIP
182
+ @remix_actions = remix_actions unless remix_actions == SKIP
183
+ @is_output_temporary = is_output_temporary unless is_output_temporary == SKIP
184
+ @hide_from_ui = hide_from_ui unless hide_from_ui == SKIP
185
+ @additional_properties = additional_properties
186
+ end
187
+
188
+ # Creates an instance of the object from a hash.
189
+ def self.from_hash(hash)
190
+ return nil unless hash
191
+
192
+ # Extract variables from the hash.
193
+ file_id = hash.key?('fileId') ? hash['fileId'] : nil
194
+ slide_scripts = hash.key?('slideScripts') ? hash['slideScripts'] : SKIP
195
+ aspect_ratio = AspectRatio.from_hash(hash['aspectRatio']) if hash['aspectRatio']
196
+ language = hash.key?('language') ? hash['language'] : SKIP
197
+ voice_id = hash.key?('voiceId') ? hash['voiceId'] : SKIP
198
+ voice_speed = hash.key?('voiceSpeed') ? hash['voiceSpeed'] : SKIP
199
+ actor_entity_id =
200
+ hash.key?('actorEntityId') ? hash['actorEntityId'] : SKIP
201
+ avatar_quality = hash.key?('avatarQuality') ? hash['avatarQuality'] : SKIP
202
+ slideshow_theme_entity_id =
203
+ hash.key?('slideshowThemeEntityId') ? hash['slideshowThemeEntityId'] : SKIP
204
+ caption_style = WorkflowCaptionStyle.from_hash(hash['captionStyle']) if hash['captionStyle']
205
+ logo_file_id = hash.key?('logoFileId') ? hash['logoFileId'] : SKIP
206
+ remix_actions = hash.key?('remixActions') ? APIHelper.deserialize_union_type(
207
+ UnionTypeLookUp.get(:RemixAction15), hash['remixActions']
208
+ ) : SKIP
209
+ is_output_temporary = hash['isOutputTemporary'] ||= false
210
+ hide_from_ui = hash['hideFromUi'] ||= false
211
+
212
+ # Create a new hash for additional properties, removing known properties.
213
+ new_hash = hash.reject { |k, _| names.value?(k) }
214
+
215
+ additional_properties = APIHelper.get_additional_properties(
216
+ new_hash, proc { |value| value }
217
+ )
218
+
219
+ # Create object from extracted values.
220
+ SlideshowToVideoRequest.new(file_id: file_id,
221
+ slide_scripts: slide_scripts,
222
+ aspect_ratio: aspect_ratio,
223
+ language: language,
224
+ voice_id: voice_id,
225
+ voice_speed: voice_speed,
226
+ actor_entity_id: actor_entity_id,
227
+ avatar_quality: avatar_quality,
228
+ slideshow_theme_entity_id: slideshow_theme_entity_id,
229
+ caption_style: caption_style,
230
+ logo_file_id: logo_file_id,
231
+ remix_actions: remix_actions,
232
+ is_output_temporary: is_output_temporary,
233
+ hide_from_ui: hide_from_ui,
234
+ additional_properties: additional_properties)
235
+ end
236
+
237
+ # Validates an instance of the object from a given value.
238
+ # @param [SlideshowToVideoRequest | Hash] The value against the validation is performed.
239
+ def self.validate(value)
240
+ if value.instance_of? self
241
+ return APIHelper.valid_type?(value.file_id,
242
+ ->(val) { val.instance_of? String })
243
+ end
244
+
245
+ return false unless value.instance_of? Hash
246
+
247
+ APIHelper.valid_type?(value['fileId'],
248
+ ->(val) { val.instance_of? String })
249
+ end
250
+
251
+ # Provides a human-readable string representation of the object.
252
+ def to_s
253
+ class_name = self.class.name.split('::').last
254
+ "<#{class_name} file_id: #{@file_id}, slide_scripts: #{@slide_scripts}, aspect_ratio:"\
255
+ " #{@aspect_ratio}, language: #{@language}, voice_id: #{@voice_id}, voice_speed:"\
256
+ " #{@voice_speed}, actor_entity_id: #{@actor_entity_id}, avatar_quality: #{@avatar_quality},"\
257
+ " slideshow_theme_entity_id: #{@slideshow_theme_entity_id}, caption_style:"\
258
+ " #{@caption_style}, logo_file_id: #{@logo_file_id}, remix_actions: #{@remix_actions},"\
259
+ " is_output_temporary: #{@is_output_temporary}, hide_from_ui: #{@hide_from_ui},"\
260
+ " additional_properties: #{@additional_properties}>"
261
+ end
262
+
263
+ # Provides a debugging-friendly string with detailed object information.
264
+ def inspect
265
+ class_name = self.class.name.split('::').last
266
+ "<#{class_name} file_id: #{@file_id.inspect}, slide_scripts: #{@slide_scripts.inspect},"\
267
+ " aspect_ratio: #{@aspect_ratio.inspect}, language: #{@language.inspect}, voice_id:"\
268
+ " #{@voice_id.inspect}, voice_speed: #{@voice_speed.inspect}, actor_entity_id:"\
269
+ " #{@actor_entity_id.inspect}, avatar_quality: #{@avatar_quality.inspect},"\
270
+ " slideshow_theme_entity_id: #{@slideshow_theme_entity_id.inspect}, caption_style:"\
271
+ " #{@caption_style.inspect}, logo_file_id: #{@logo_file_id.inspect}, remix_actions:"\
272
+ " #{@remix_actions.inspect}, is_output_temporary: #{@is_output_temporary.inspect},"\
273
+ " hide_from_ui: #{@hide_from_ui.inspect}, additional_properties: #{@additional_properties}>"
274
+ end
275
+ end
276
+ end
@@ -0,0 +1,88 @@
1
+ # videogen
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Videogen
7
+ # StartAssistantChatRequest Model.
8
+ class StartAssistantChatRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The first message to send to the assistant, exactly as a person would type
13
+ # it into the assistant on a new project.
14
+ # @return [String]
15
+ attr_accessor :message
16
+
17
+ # When true, the assistant picks the best workflow for the message and
18
+ # immediately starts generating, skipping the suggestion step. When the
19
+ # assistant message reaches `succeeded`, its `generation` carries the
20
+ # workflow run to poll.
21
+ # @return [TrueClass | FalseClass]
22
+ attr_accessor :auto_generate
23
+
24
+ # A mapping from model property names to API property names.
25
+ def self.names
26
+ @_hash = {} if @_hash.nil?
27
+ @_hash['message'] = 'message'
28
+ @_hash['auto_generate'] = 'autoGenerate'
29
+ @_hash
30
+ end
31
+
32
+ # An array for optional fields
33
+ def self.optionals
34
+ %w[
35
+ auto_generate
36
+ ]
37
+ end
38
+
39
+ # An array for nullable fields
40
+ def self.nullables
41
+ []
42
+ end
43
+
44
+ def initialize(message:, auto_generate: false, additional_properties: nil)
45
+ # Add additional model properties to the instance
46
+ additional_properties = {} if additional_properties.nil?
47
+
48
+ @message = message
49
+ @auto_generate = auto_generate unless auto_generate == SKIP
50
+ @additional_properties = additional_properties
51
+ end
52
+
53
+ # Creates an instance of the object from a hash.
54
+ def self.from_hash(hash)
55
+ return nil unless hash
56
+
57
+ # Extract variables from the hash.
58
+ message = hash.key?('message') ? hash['message'] : nil
59
+ auto_generate = hash['autoGenerate'] ||= false
60
+
61
+ # Create a new hash for additional properties, removing known properties.
62
+ new_hash = hash.reject { |k, _| names.value?(k) }
63
+
64
+ additional_properties = APIHelper.get_additional_properties(
65
+ new_hash, proc { |value| value }
66
+ )
67
+
68
+ # Create object from extracted values.
69
+ StartAssistantChatRequest.new(message: message,
70
+ auto_generate: auto_generate,
71
+ additional_properties: additional_properties)
72
+ end
73
+
74
+ # Provides a human-readable string representation of the object.
75
+ def to_s
76
+ class_name = self.class.name.split('::').last
77
+ "<#{class_name} message: #{@message}, auto_generate: #{@auto_generate},"\
78
+ " additional_properties: #{@additional_properties}>"
79
+ end
80
+
81
+ # Provides a debugging-friendly string with detailed object information.
82
+ def inspect
83
+ class_name = self.class.name.split('::').last
84
+ "<#{class_name} message: #{@message.inspect}, auto_generate: #{@auto_generate.inspect},"\
85
+ " additional_properties: #{@additional_properties}>"
86
+ end
87
+ end
88
+ end