=encoding utf8

=head1 NAME

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

=head1 OPERATIONS

=head2 GET /vector_stores

=head3 listVectorStores

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

Returns a list of vector stores.

=head4 Path/query parameters

=over

=item * C<limit> (in query, optional, integer) - A limit on the number of objects to be returned. Limit can range between 1 and
100, and the default is 20.

Default: 20

=item * C<order> (in query, optional, string) - Sort order by the C<created_at> timestamp of the objects. C<asc> for ascending
order and C<desc> for descending order.

Allowed values: asc, desc

Default: desc

=item * C<after> (in query, optional, string) - A cursor for use in pagination. C<after> is an object ID that defines your
place in the list. For instance, if you make a list request and receive 100
objects, ending with obj_foo, your subsequent call can include after=obj_foo
in order to fetch the next page of the list.

=item * C<before> (in query, optional, string) - A cursor for use in pagination. C<before> is an object ID that defines your
place in the list. For instance, if you make a list request and receive 100
objects, starting with obj_foo, your subsequent call can include
before=obj_foo in order to fetch the previous page of the list.

=back

=head4 Responses

B<200 - OK>

Content-Type: application/json

Example:

    {
       "data" : [
          "{\n  \"id\": \"vs_123\",\n  \"object\": \"vector_store\",\n  \"created_at\": 1698107661,\n  \"usage_bytes\": 123456,\n  \"last_active_at\": 1698107661,\n  \"name\": \"my_vector_store\",\n  \"status\": \"completed\",\n  \"file_counts\": {\n    \"in_progress\": 0,\n    \"completed\": 100,\n    \"cancelled\": 0,\n    \"failed\": 0,\n    \"total\": 100\n  },\n  \"last_used_at\": 1698107661\n}\n"
       ],
       "first_id" : "vs_abc123",
       "has_more" : false,
       "last_id" : "vs_abc456",
       "object" : "list"
    }

=head2 POST /vector_stores

=head3 createVectorStore

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

Create a vector store.

=head4 Responses

B<200 - OK>

Content-Type: application/json

Example:

    {
       "created_at" : 1698107661,
       "file_counts" : {
          "cancelled" : 0,
          "completed" : 100,
          "failed" : 0,
          "in_progress" : 0,
          "total" : 100
       },
       "id" : "vs_123",
       "last_active_at" : 1698107661,
       "last_used_at" : 1698107661,
       "name" : "my_vector_store",
       "object" : "vector_store",
       "status" : "completed",
       "usage_bytes" : 123456
    }

=head1 SCHEMAS

=head2 CreateVectorStoreRequest

Properties:

=over

=item * C<chunking_strategy> (object) - The chunking strategy used to chunk the file(s). If not set, will use the
C<auto> strategy. Only applicable if C<file_ids> is non-empty.

=item * C<description> (string) - A description for the vector store. Can be used to describe the vector store's
purpose.

=item * C<expires_after> (VectorStoreExpirationAfter)

See L</VectorStoreExpirationAfter> below for shape.

=item * C<file_ids> (array of string) - A list of L<File|https://platform.openai.com/docs/api-reference/files> IDs
that the vector store should use. Useful for tools like C<file_search> that
can access files.

=item * C<metadata> (Metadata)

See L</Metadata> below for shape.

=item * C<name> (string) - The name of the vector store.

=back

=head2 ListVectorStoresResponse

Properties:

=over

=item * C<data> (array of VectorStoreObject, required)

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

=item * C<has_more> (boolean, required)

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

=item * C<object> (string, required)

=back

=head2 Metadata

Set of 16 key-value pairs that can be attached to an object. This can be
useful for storing additional information about the object in a structured
format, and querying for objects via API or the dashboard.

Keys are strings with a maximum length of 64 characters. Values are strings
with a maximum length of 512 characters.

=head2 VectorStoreExpirationAfter

Properties:

=over

=item * C<anchor> (string, required) - Anchor timestamp after which the expiration policy applies. Supported anchors:
C<last_active_at> .

Allowed values: last_active_at

=item * C<days> (integer, required) - The number of days after the anchor time that the vector store will expire.

=back

=head2 VectorStoreObject

Properties:

=over

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

=item * C<expires_after> (VectorStoreExpirationAfter)

See L</VectorStoreExpirationAfter> below for shape.

=item * C<expires_at> (anyOf)

=item * C<file_counts> (object, required)

=item * C<id> (string, required) - The identifier, which can be referenced in API endpoints.

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

=item * C<metadata> (Metadata, required)

See L</Metadata> below for shape.

=item * C<name> (string, required) - The name of the vector store.

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

Allowed values: vector_store

=item * C<status> (string, required) - The status of the vector store, which can be either C<expired> ,
C<in_progress> , or C<completed> . A status of C<completed> indicates that the
vector store is ready for use.

Allowed values: expired, in_progress, completed

=item * C<usage_bytes> (integer, required) - The total number of bytes used by the files in the vector store.

=back

=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
