=encoding utf8

=head1 NAME

OpenAPI::Client::OpenAI::Path::organization-projects-project_id-service_accounts - Documentation for the /organization/projects/{project_id}/service_accounts path.

=head1 OPERATIONS

=head2 GET /organization/projects/{project_id}/service_accounts

=head3 list-project-service-accounts

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

Returns a list of service accounts in the project.

=head4 Path/query parameters

=over

=item * C<project_id> (in path, required, string) - The ID of the project.

=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<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.

=back

=head4 Responses

B<200 - Project service accounts listed successfully.>

Content-Type: application/json

Example:

    {
       "data" : [
          "{\n    \"object\": \"organization.project.service_account\",\n    \"id\": \"svc_acct_abc\",\n    \"name\": \"Service Account\",\n    \"role\": \"owner\",\n    \"created_at\": 1711471533\n}\n"
       ],
       "first_id" : "string",
       "has_more" : false,
       "last_id" : "string",
       "object" : "list"
    }

B<400 - Error response when project is archived.>

Content-Type: application/json

Example:

    {
       "error" : {
          "code" : "string",
          "message" : "string",
          "param" : "string",
          "type" : "string"
       }
    }

=head2 POST /organization/projects/{project_id}/service_accounts

=head3 create-project-service-account

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

Creates a new service account in the project. This also returns an unredacted
API key for the service account.

=head4 Path/query parameters

=over

=item * C<project_id> (in path, required, string) - The ID of the project.

=back

=head4 Responses

B<200 - Project service account created successfully.>

Content-Type: application/json

Example:

    {
       "api_key" : {
          "created_at" : 0,
          "id" : "string",
          "name" : "string",
          "object" : "organization.project.service_account.api_key",
          "value" : "string"
       },
       "created_at" : 0,
       "id" : "string",
       "name" : "string",
       "object" : "organization.project.service_account",
       "role" : "member"
    }

B<400 - Error response when project is archived.>

Content-Type: application/json

Example:

    {
       "error" : {
          "code" : "string",
          "message" : "string",
          "param" : "string",
          "type" : "string"
       }
    }

=head1 SCHEMAS

=head2 Error

Properties:

=over

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

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

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

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

=back

=head2 ErrorResponse

Properties:

=over

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

See L</Error> below for shape.

=back

=head2 ProjectServiceAccount

Properties:

=over

=item * C<created_at> (integer, required) - The Unix timestamp (in seconds) of when the service account was created

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

=item * C<name> (string, required) - The name of the service account

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

Allowed values: organization.project.service_account

=item * C<role> (string, required) - C<owner> or C<member>

Allowed values: owner, member

=back

=head2 ProjectServiceAccountCreateRequest

Properties:

=over

=item * C<name> (string, required) - The name of the service account being created.

=back

=head2 ProjectServiceAccountCreateResponse

Properties:

=over

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

=item * C<created_at> (integer, required)

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

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

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

Allowed values: organization.project.service_account

=item * C<role> (string, required) - Service accounts can only have one role of type C<member>

Allowed values: member

=back

=head2 ProjectServiceAccountListResponse

Properties:

=over

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

=item * C<first_id> (anyOf)

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

=item * C<last_id> (anyOf)

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

Allowed values: list

=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
