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,49 @@
1
+ # videogen
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Videogen
7
+ # Lifecycle status of an assistant chat message. `pending` and `running` are
8
+ # in-progress; `succeeded`, `failed`, and `cancelled` are terminal.
9
+ class AssistantMessageStatus
10
+ ASSISTANT_MESSAGE_STATUS = [
11
+ # TODO: Write general description for PENDING
12
+ PENDING = 'pending'.freeze,
13
+
14
+ # TODO: Write general description for RUNNING
15
+ RUNNING = 'running'.freeze,
16
+
17
+ # TODO: Write general description for SUCCEEDED
18
+ SUCCEEDED = 'succeeded'.freeze,
19
+
20
+ # TODO: Write general description for FAILED
21
+ FAILED = 'failed'.freeze,
22
+
23
+ # TODO: Write general description for CANCELLED
24
+ CANCELLED = 'cancelled'.freeze
25
+ ].freeze
26
+
27
+ def self.validate(value)
28
+ return false if value.nil?
29
+
30
+ ASSISTANT_MESSAGE_STATUS.include?(value)
31
+ end
32
+
33
+ def self.from_value(value, default_value = PENDING)
34
+ return default_value if value.nil?
35
+
36
+ str = value.to_s.strip
37
+
38
+ case str.downcase
39
+ when 'pending' then PENDING
40
+ when 'running' then RUNNING
41
+ when 'succeeded' then SUCCEEDED
42
+ when 'failed' then FAILED
43
+ when 'cancelled' then CANCELLED
44
+ else
45
+ default_value
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,133 @@
1
+ # videogen
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Videogen
7
+ # A starting-point workflow the assistant suggests for the conversation. Act
8
+ # on it with `POST /v1/assistants/{assistantId}/actions/{actionId}` to select
9
+ # the workflow and continue.
10
+ class AssistantWorkflowSuggestion < BaseModel
11
+ SKIP = Object.new
12
+ private_constant :SKIP
13
+
14
+ # Opaque id to pass to the act-on-action endpoint to select this workflow.
15
+ # @return [String]
16
+ attr_accessor :action_id
17
+
18
+ # Identifier of the suggested workflow.
19
+ # @return [WorkflowType1]
20
+ attr_accessor :workflow_type
21
+
22
+ # Short human-readable name of the suggested workflow.
23
+ # @return [String]
24
+ attr_accessor :title
25
+
26
+ # One-line explanation of what this workflow will do.
27
+ # @return [String]
28
+ attr_accessor :description
29
+
30
+ # A mapping from model property names to API property names.
31
+ def self.names
32
+ @_hash = {} if @_hash.nil?
33
+ @_hash['action_id'] = 'actionId'
34
+ @_hash['workflow_type'] = 'workflowType'
35
+ @_hash['title'] = 'title'
36
+ @_hash['description'] = 'description'
37
+ @_hash
38
+ end
39
+
40
+ # An array for optional fields
41
+ def self.optionals
42
+ []
43
+ end
44
+
45
+ # An array for nullable fields
46
+ def self.nullables
47
+ []
48
+ end
49
+
50
+ def initialize(action_id:, workflow_type:, title:, description:,
51
+ additional_properties: nil)
52
+ # Add additional model properties to the instance
53
+ additional_properties = {} if additional_properties.nil?
54
+
55
+ @action_id = action_id
56
+ @workflow_type = workflow_type
57
+ @title = title
58
+ @description = description
59
+ @additional_properties = additional_properties
60
+ end
61
+
62
+ # Creates an instance of the object from a hash.
63
+ def self.from_hash(hash)
64
+ return nil unless hash
65
+
66
+ # Extract variables from the hash.
67
+ action_id = hash.key?('actionId') ? hash['actionId'] : nil
68
+ workflow_type = hash.key?('workflowType') ? hash['workflowType'] : nil
69
+ title = hash.key?('title') ? hash['title'] : nil
70
+ description = hash.key?('description') ? hash['description'] : nil
71
+
72
+ # Create a new hash for additional properties, removing known properties.
73
+ new_hash = hash.reject { |k, _| names.value?(k) }
74
+
75
+ additional_properties = APIHelper.get_additional_properties(
76
+ new_hash, proc { |value| value }
77
+ )
78
+
79
+ # Create object from extracted values.
80
+ AssistantWorkflowSuggestion.new(action_id: action_id,
81
+ workflow_type: workflow_type,
82
+ title: title,
83
+ description: description,
84
+ additional_properties: additional_properties)
85
+ end
86
+
87
+ # Validates an instance of the object from a given value.
88
+ # @param [AssistantWorkflowSuggestion | Hash] The value against the validation is performed.
89
+ def self.validate(value)
90
+ if value.instance_of? self
91
+ return (
92
+ APIHelper.valid_type?(value.action_id,
93
+ ->(val) { val.instance_of? String }) and
94
+ APIHelper.valid_type?(value.workflow_type,
95
+ ->(val) { WorkflowType1.validate(val) }) and
96
+ APIHelper.valid_type?(value.title,
97
+ ->(val) { val.instance_of? String }) and
98
+ APIHelper.valid_type?(value.description,
99
+ ->(val) { val.instance_of? String })
100
+ )
101
+ end
102
+
103
+ return false unless value.instance_of? Hash
104
+
105
+ (
106
+ APIHelper.valid_type?(value['actionId'],
107
+ ->(val) { val.instance_of? String }) and
108
+ APIHelper.valid_type?(value['workflowType'],
109
+ ->(val) { WorkflowType1.validate(val) }) and
110
+ APIHelper.valid_type?(value['title'],
111
+ ->(val) { val.instance_of? String }) and
112
+ APIHelper.valid_type?(value['description'],
113
+ ->(val) { val.instance_of? String })
114
+ )
115
+ end
116
+
117
+ # Provides a human-readable string representation of the object.
118
+ def to_s
119
+ class_name = self.class.name.split('::').last
120
+ "<#{class_name} action_id: #{@action_id}, workflow_type: #{@workflow_type}, title:"\
121
+ " #{@title}, description: #{@description}, additional_properties:"\
122
+ " #{@additional_properties}>"
123
+ end
124
+
125
+ # Provides a debugging-friendly string with detailed object information.
126
+ def inspect
127
+ class_name = self.class.name.split('::').last
128
+ "<#{class_name} action_id: #{@action_id.inspect}, workflow_type: #{@workflow_type.inspect},"\
129
+ " title: #{@title.inspect}, description: #{@description.inspect}, additional_properties:"\
130
+ " #{@additional_properties}>"
131
+ end
132
+ end
133
+ 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
+ # Base model.
8
+ # rubocop:disable all
9
+ class BaseModel < CoreLibrary::BaseModel
10
+ # Returns a Hash representation of the current object.
11
+ def to_hash
12
+ # validating the model being serialized
13
+ self.class.validate(self) if self.class.respond_to?(:validate)
14
+
15
+ hash = {}
16
+ instance_variables.each do |name|
17
+ value = instance_variable_get(name)
18
+ name = name[1..]
19
+ if name == 'additional_properties'
20
+ additional_properties = process_additional_properties(value, self.class.names)
21
+ hash.merge!(additional_properties)
22
+ else
23
+ key = self.class.names.key?(name) ? self.class.names[name] : name
24
+ optional_fields = self.class.optionals
25
+ nullable_fields = self.class.nullables
26
+ if value.nil?
27
+ next unless nullable_fields.include?(name)
28
+
29
+ if !optional_fields.include?(name) && !nullable_fields.include?(name)
30
+ raise ArgumentError,
31
+ "`#{name}` cannot be nil in `#{self.class}`. Please specify a valid value."
32
+ end
33
+ end
34
+
35
+ hash[key] = nil
36
+ unless value.nil?
37
+ if respond_to?("to_custom_#{name}")
38
+ if (value.instance_of? Array) || (value.instance_of? Hash)
39
+ params = [hash, key]
40
+ hash[key] = send("to_custom_#{name}", *params)
41
+ else
42
+ hash[key] = send("to_custom_#{name}")
43
+ end
44
+ elsif respond_to?("to_union_type_#{name}")
45
+ hash[key] = send("to_union_type_#{name}")
46
+ elsif value.instance_of? Array
47
+ hash[key] = value.map { |v| v.is_a?(BaseModel) ? v.to_hash : v }
48
+ elsif value.instance_of? Hash
49
+ hash[key] = {}
50
+ value.each do |k, v|
51
+ hash[key][k] = v.is_a?(BaseModel) ? v.to_hash : v
52
+ end
53
+ else
54
+ hash[key] = value.is_a?(BaseModel) ? value.to_hash : value
55
+ end
56
+ end
57
+ end
58
+ end
59
+ hash
60
+ end
61
+
62
+ # Processes additional properties, ensuring no conflicts with existing properties.
63
+ def process_additional_properties(additional_properties, existing_prop_names)
64
+ hash = {}
65
+ additional_properties.each do |name, value|
66
+ check_for_conflict(name, existing_prop_names)
67
+
68
+ hash[name] = if value.is_a?(Array)
69
+ process_array(value)
70
+ elsif value.is_a?(Hash)
71
+ process_hash(value)
72
+ else
73
+ process_basic_value(value)
74
+ end
75
+ end
76
+ hash
77
+ end
78
+
79
+ # Checks if an additional property conflicts with a model's existing property.
80
+ def check_for_conflict(name, existing_prop_names)
81
+ return unless existing_prop_names.key?(name)
82
+
83
+ raise ArgumentError, "An additional property key, '#{name}' conflicts with one of the model's properties"
84
+ end
85
+
86
+ # Processes an array of values, recursively calling `to_hash` on BaseModel objects.
87
+ def process_array(value)
88
+ value.map { |v| v.is_a?(BaseModel) ? v.to_hash : v }
89
+ end
90
+
91
+ # Processes a hash of values, recursively calling `to_hash` on BaseModel objects.
92
+ def process_hash(value)
93
+ value.transform_values do |v|
94
+ v.is_a?(BaseModel) ? v.to_hash : v
95
+ end
96
+ end
97
+
98
+ # Processes a basic value (non-array, non-hash).
99
+ def process_basic_value(value)
100
+ value.is_a?(BaseModel) ? value.to_hash : value
101
+ end
102
+
103
+ # Returns a JSON representation of the curent object.
104
+ def to_json(options = {})
105
+ hash = to_hash
106
+ hash.to_json(options)
107
+ end
108
+ end
109
+ # rubocop:enable all
110
+ end
@@ -0,0 +1,80 @@
1
+ # videogen
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Videogen
7
+ # Controls how content-policy rejections are handled during generation.
8
+ class ContentPolicyConfig < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Maximum number of automatic prompt rewrites to attempt after a
13
+ # content-policy rejection before failing. Must be an integer between 0 and
14
+ # 4. 0 (the default) fails on the first rejection and returns the moderation
15
+ # error so you can revise the prompt yourself. Higher values let the request
16
+ # automatically rephrase and retry the prompt.
17
+ # @return [Integer]
18
+ attr_accessor :max_prompt_rewrites
19
+
20
+ # A mapping from model property names to API property names.
21
+ def self.names
22
+ @_hash = {} if @_hash.nil?
23
+ @_hash['max_prompt_rewrites'] = 'maxPromptRewrites'
24
+ @_hash
25
+ end
26
+
27
+ # An array for optional fields
28
+ def self.optionals
29
+ %w[
30
+ max_prompt_rewrites
31
+ ]
32
+ end
33
+
34
+ # An array for nullable fields
35
+ def self.nullables
36
+ []
37
+ end
38
+
39
+ def initialize(max_prompt_rewrites: 0, additional_properties: nil)
40
+ # Add additional model properties to the instance
41
+ additional_properties = {} if additional_properties.nil?
42
+
43
+ @max_prompt_rewrites = max_prompt_rewrites unless max_prompt_rewrites == SKIP
44
+ @additional_properties = additional_properties
45
+ end
46
+
47
+ # Creates an instance of the object from a hash.
48
+ def self.from_hash(hash)
49
+ return nil unless hash
50
+
51
+ # Extract variables from the hash.
52
+ max_prompt_rewrites = hash['maxPromptRewrites'] ||= 0
53
+
54
+ # Create a new hash for additional properties, removing known properties.
55
+ new_hash = hash.reject { |k, _| names.value?(k) }
56
+
57
+ additional_properties = APIHelper.get_additional_properties(
58
+ new_hash, proc { |value| value }
59
+ )
60
+
61
+ # Create object from extracted values.
62
+ ContentPolicyConfig.new(max_prompt_rewrites: max_prompt_rewrites,
63
+ additional_properties: additional_properties)
64
+ end
65
+
66
+ # Provides a human-readable string representation of the object.
67
+ def to_s
68
+ class_name = self.class.name.split('::').last
69
+ "<#{class_name} max_prompt_rewrites: #{@max_prompt_rewrites}, additional_properties:"\
70
+ " #{@additional_properties}>"
71
+ end
72
+
73
+ # Provides a debugging-friendly string with detailed object information.
74
+ def inspect
75
+ class_name = self.class.name.split('::').last
76
+ "<#{class_name} max_prompt_rewrites: #{@max_prompt_rewrites.inspect},"\
77
+ " additional_properties: #{@additional_properties}>"
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,96 @@
1
+ # videogen
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Videogen
7
+ # CreateEntityRequest Model.
8
+ class CreateEntityRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # ACTOR features a consistent character; PRODUCT features a consistent
13
+ # product or object; VISUAL_STYLE guides the look of generated images;
14
+ # SLIDESHOW_THEME is a shared slide design system (fonts, colors, layout)
15
+ # applied to every slide of a slideshow-to-video deck.
16
+ # @return [EntityEntityType]
17
+ attr_accessor :entity_type
18
+
19
+ # Display name.
20
+ # @return [String]
21
+ attr_accessor :name
22
+
23
+ # Optional description.
24
+ # @return [String]
25
+ attr_accessor :description
26
+
27
+ # A mapping from model property names to API property names.
28
+ def self.names
29
+ @_hash = {} if @_hash.nil?
30
+ @_hash['entity_type'] = 'entityType'
31
+ @_hash['name'] = 'name'
32
+ @_hash['description'] = 'description'
33
+ @_hash
34
+ end
35
+
36
+ # An array for optional fields
37
+ def self.optionals
38
+ %w[
39
+ description
40
+ ]
41
+ end
42
+
43
+ # An array for nullable fields
44
+ def self.nullables
45
+ []
46
+ end
47
+
48
+ def initialize(entity_type:, name:, description: SKIP,
49
+ additional_properties: nil)
50
+ # Add additional model properties to the instance
51
+ additional_properties = {} if additional_properties.nil?
52
+
53
+ @entity_type = entity_type
54
+ @name = name
55
+ @description = description unless description == SKIP
56
+ @additional_properties = additional_properties
57
+ end
58
+
59
+ # Creates an instance of the object from a hash.
60
+ def self.from_hash(hash)
61
+ return nil unless hash
62
+
63
+ # Extract variables from the hash.
64
+ entity_type = hash.key?('entityType') ? hash['entityType'] : nil
65
+ name = hash.key?('name') ? hash['name'] : nil
66
+ description = hash.key?('description') ? hash['description'] : SKIP
67
+
68
+ # Create a new hash for additional properties, removing known properties.
69
+ new_hash = hash.reject { |k, _| names.value?(k) }
70
+
71
+ additional_properties = APIHelper.get_additional_properties(
72
+ new_hash, proc { |value| value }
73
+ )
74
+
75
+ # Create object from extracted values.
76
+ CreateEntityRequest.new(entity_type: entity_type,
77
+ name: name,
78
+ description: description,
79
+ additional_properties: additional_properties)
80
+ end
81
+
82
+ # Provides a human-readable string representation of the object.
83
+ def to_s
84
+ class_name = self.class.name.split('::').last
85
+ "<#{class_name} entity_type: #{@entity_type}, name: #{@name}, description: #{@description},"\
86
+ " additional_properties: #{@additional_properties}>"
87
+ end
88
+
89
+ # Provides a debugging-friendly string with detailed object information.
90
+ def inspect
91
+ class_name = self.class.name.split('::').last
92
+ "<#{class_name} entity_type: #{@entity_type.inspect}, name: #{@name.inspect}, description:"\
93
+ " #{@description.inspect}, additional_properties: #{@additional_properties}>"
94
+ end
95
+ end
96
+ end
@@ -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 CreateEntityRequestEntityType
12
+ CREATE_ENTITY_REQUEST_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
+ CREATE_ENTITY_REQUEST_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,125 @@
1
+ # videogen
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Videogen
7
+ # CreateFileUploadRequest Model.
8
+ class CreateFileUploadRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The type of file to upload. Optional; when omitted, the type is inferred
13
+ # after upload processing completes.
14
+ # @return [FileType2]
15
+ attr_accessor :type
16
+
17
+ # Display name for the uploaded file.
18
+ # @return [String]
19
+ attr_accessor :display_name
20
+
21
+ # When true, the file is temporary. Temporary files are guaranteed to be
22
+ # available for 24 hours, after which they may be archived at any time.
23
+ # Temporary files are not analyzed (no description, transcript, or embedding
24
+ # will be generated), so they will not appear in search results. Defaults to
25
+ # false.
26
+ # @return [TrueClass | FalseClass]
27
+ attr_accessor :is_temporary
28
+
29
+ # When true, the file is hidden from the VideoGen Media page by default. It
30
+ # remains accessible through the API. Defaults to false.
31
+ # @return [TrueClass | FalseClass]
32
+ attr_accessor :hide_from_ui
33
+
34
+ # Optional pre-computed transcript for an audio or video upload, as timed
35
+ # `words`. When provided, transcription is skipped and caption timing
36
+ # matches your transcript. Ignored for non-audio/video files.
37
+ # @return [Transcript]
38
+ attr_accessor :transcript
39
+
40
+ # A mapping from model property names to API property names.
41
+ def self.names
42
+ @_hash = {} if @_hash.nil?
43
+ @_hash['type'] = 'type'
44
+ @_hash['display_name'] = 'displayName'
45
+ @_hash['is_temporary'] = 'isTemporary'
46
+ @_hash['hide_from_ui'] = 'hideFromUi'
47
+ @_hash['transcript'] = 'transcript'
48
+ @_hash
49
+ end
50
+
51
+ # An array for optional fields
52
+ def self.optionals
53
+ %w[
54
+ type
55
+ is_temporary
56
+ hide_from_ui
57
+ transcript
58
+ ]
59
+ end
60
+
61
+ # An array for nullable fields
62
+ def self.nullables
63
+ %w[
64
+ transcript
65
+ ]
66
+ end
67
+
68
+ def initialize(display_name:, type: SKIP, is_temporary: false,
69
+ hide_from_ui: false, transcript: SKIP,
70
+ additional_properties: nil)
71
+ # Add additional model properties to the instance
72
+ additional_properties = {} if additional_properties.nil?
73
+
74
+ @type = type unless type == SKIP
75
+ @display_name = display_name
76
+ @is_temporary = is_temporary unless is_temporary == SKIP
77
+ @hide_from_ui = hide_from_ui unless hide_from_ui == SKIP
78
+ @transcript = transcript unless transcript == SKIP
79
+ @additional_properties = additional_properties
80
+ end
81
+
82
+ # Creates an instance of the object from a hash.
83
+ def self.from_hash(hash)
84
+ return nil unless hash
85
+
86
+ # Extract variables from the hash.
87
+ display_name = hash.key?('displayName') ? hash['displayName'] : nil
88
+ type = hash.key?('type') ? hash['type'] : SKIP
89
+ is_temporary = hash['isTemporary'] ||= false
90
+ hide_from_ui = hash['hideFromUi'] ||= false
91
+ transcript = Transcript.from_hash(hash['transcript']) if hash['transcript']
92
+
93
+ # Create a new hash for additional properties, removing known properties.
94
+ new_hash = hash.reject { |k, _| names.value?(k) }
95
+
96
+ additional_properties = APIHelper.get_additional_properties(
97
+ new_hash, proc { |value| value }
98
+ )
99
+
100
+ # Create object from extracted values.
101
+ CreateFileUploadRequest.new(display_name: display_name,
102
+ type: type,
103
+ is_temporary: is_temporary,
104
+ hide_from_ui: hide_from_ui,
105
+ transcript: transcript,
106
+ additional_properties: additional_properties)
107
+ end
108
+
109
+ # Provides a human-readable string representation of the object.
110
+ def to_s
111
+ class_name = self.class.name.split('::').last
112
+ "<#{class_name} type: #{@type}, display_name: #{@display_name}, is_temporary:"\
113
+ " #{@is_temporary}, hide_from_ui: #{@hide_from_ui}, transcript: #{@transcript},"\
114
+ " additional_properties: #{@additional_properties}>"
115
+ end
116
+
117
+ # Provides a debugging-friendly string with detailed object information.
118
+ def inspect
119
+ class_name = self.class.name.split('::').last
120
+ "<#{class_name} type: #{@type.inspect}, display_name: #{@display_name.inspect},"\
121
+ " is_temporary: #{@is_temporary.inspect}, hide_from_ui: #{@hide_from_ui.inspect},"\
122
+ " transcript: #{@transcript.inspect}, additional_properties: #{@additional_properties}>"
123
+ end
124
+ end
125
+ end