=encoding utf8

=head1 NAME

OpenAPI::Client::OpenAI::Path::videos - Documentation for the /videos path.

=head1 OPERATIONS

=head2 GET /videos

=head3 ListVideos

  $client->list_videos({
      body => { ... },
  });

List recently generated videos for the current project.

=head4 Path/query parameters

=over

=item * C<limit> (in query, optional, integer) - Number of items to retrieve

=item * C<order> (in query, optional, string) - Sort order of results by timestamp. Use C<asc> for ascending order or C<desc>
for descending order.

=item * C<after> (in query, optional, string) - Identifier for the last item from the previous pagination request

=back

=head4 Responses

B<200 - Success>

Content-Type: application/json

Example:

    {
       "data" : [
          {
             "completed_at" : 0,
             "created_at" : 0,
             "error" : {
                "code" : "string",
                "message" : "string"
             },
             "expires_at" : 0,
             "id" : "string",
             "model" : "sora-2",
             "object" : "video",
             "progress" : 0,
             "prompt" : "string",
             "remixed_from_video_id" : "string",
             "seconds" : "string",
             "size" : "720x1280",
             "status" : "queued"
          }
       ],
       "first_id" : "string",
       "has_more" : false,
       "last_id" : "string",
       "object" : "list"
    }

=head2 POST /videos

=head3 createVideo

  $client->create_video({
      body => { ... },
  });

Create a new video generation job from a prompt and optional reference assets.

=head4 Responses

B<200 - Success>

Content-Type: application/json

Example:

    {
       "completed_at" : 0,
       "created_at" : 0,
       "error" : {
          "code" : "string",
          "message" : "string"
       },
       "expires_at" : 0,
       "id" : "string",
       "model" : "sora-2",
       "object" : "video",
       "progress" : 0,
       "prompt" : "string",
       "remixed_from_video_id" : "string",
       "seconds" : "string",
       "size" : "720x1280",
       "status" : "queued"
    }

=head1 SCHEMAS

=head2 CreateVideoJsonBody

Properties:

=over

=item * C<input_reference> (ImageRefParam-2) - Optional reference object that guides generation. Provide exactly one of
C<image_url> or C<file_id> .

See L</ImageRefParam-2> below for shape.

=item * C<model> (VideoModel) - The video generation model to use (allowed values: sora-2, sora-2-pro).
Defaults to C<sora-2> .

See L</VideoModel> below for shape.

=item * C<prompt> (string, required) - Text prompt that describes the video to generate.

=item * C<seconds> (VideoSeconds) - Clip duration in seconds (allowed values: 4, 8, 12). Defaults to 4 seconds.

See L</VideoSeconds> below for shape.

=item * C<size> (VideoSize) - Output resolution formatted as width x height (allowed values: 720x1280,
1280x720, 1024x1792, 1792x1024). Defaults to 720x1280.

See L</VideoSize> below for shape.

=back

=head2 CreateVideoMultipartBody

Properties:

=over

=item * C<input_reference> (oneOf)

=item * C<model> (VideoModel) - The video generation model to use (allowed values: sora-2, sora-2-pro).
Defaults to C<sora-2> .

See L</VideoModel> below for shape.

=item * C<prompt> (string, required) - Text prompt that describes the video to generate.

=item * C<seconds> (VideoSeconds) - Clip duration in seconds (allowed values: 4, 8, 12). Defaults to 4 seconds.

See L</VideoSeconds> below for shape.

=item * C<size> (VideoSize) - Output resolution formatted as width x height (allowed values: 720x1280,
1280x720, 1024x1792, 1792x1024). Defaults to 720x1280.

See L</VideoSize> below for shape.

=back

=head2 ImageRefParam-2

Properties:

=over

=item * C<file_id> (string)

=item * C<image_url> (string) - A fully qualified URL or base64-encoded data URL.

=back

=head2 VideoListResource

Properties:

=over

=item * C<data> (array of VideoResource, required) - A list of items

=item * C<first_id> (anyOf, required)

=item * C<has_more> (boolean, required) - Whether there are more items available.

=item * C<last_id> (anyOf, required)

=item * C<object> (string, required) - The type of object returned, must be C<list> .

Allowed values: list

Default: list

=back

=head2 VideoModel

See L<https://platform.openai.com/docs/api-reference> for details.

=head2 VideoResource

Properties:

=over

=item * C<completed_at> (anyOf, required)

=item * C<created_at> (integer, required) - Unix timestamp (seconds) for when the job was created.

=item * C<error> (anyOf, required)

=item * C<expires_at> (anyOf, required)

=item * C<id> (string, required) - Unique identifier for the video job.

=item * C<model> (VideoModel, required) - The video generation model that produced the job.

See L</VideoModel> below for shape.

=item * C<object> (string, required) - The object type, which is always C<video> .

Allowed values: video

Default: video

=item * C<progress> (integer, required) - Approximate completion percentage for the generation task.

=item * C<prompt> (anyOf, required)

=item * C<remixed_from_video_id> (anyOf, required)

=item * C<seconds> (string, required) - Duration of the generated clip in seconds. For extensions, this is the
stitched total duration.

=item * C<size> (VideoSize, required) - The resolution of the generated video.

See L</VideoSize> below for shape.

=item * C<status> (VideoStatus, required) - Current lifecycle status of the video job.

See L</VideoStatus> below for shape.

=back

=head2 VideoSeconds

See L<https://platform.openai.com/docs/api-reference> for details.

=head2 VideoSize

See L<https://platform.openai.com/docs/api-reference> for details.

=head2 VideoStatus

See L<https://platform.openai.com/docs/api-reference> for details.

=head1 SEE ALSO

L<OpenAPI::Client::OpenAI::Path>

=head1 COPYRIGHT AND LICENSE

Copyright (C) 2023-2026 by Nelson Ferraz

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.14.0 or,
at your option, any later version of Perl 5 you may have available.

=cut
