Instill AI Namespace API

Namespaces (e.g. User, Organization) that structure the resource hierarchy.

Operations 10

GET /v1beta/user Get the authenticated user #
PATCH /v1beta/user Update the authenticated user #
GET /v1beta/users List users #
GET /v1beta/{name} Get a user #
DELETE /v1beta/{name} Delete an API token #
GET /v1beta/tokens List API tokens #
POST /v1beta/tokens Create an API token #
GET /v1beta/{name_1} Get an API token #
POST /v1beta/validate-token Validate an API token #
POST /v1beta/check-namespace Check if a namespace is in use #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/instill-ai:instill-ai-namespace-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

instill-ai-namespace-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Instill Core Namespace API
  description: Interact with Instill Core through API
  version: v0.57.0
  contact:
    name: Instill AI
    url: https://github.com/instill-ai
    email: support@instill-ai.com
  license:
    name: MIT
    url: https://github.com/instill-ai/protobufs/blob/main/LICENSE
servers:
- url: https://api.instill-ai.com
- url: http://api.instill-ai.com
security:
- Bearer: []
tags:
- name: Namespace
  description: Namespaces (e.g. User, Organization) that structure the resource hierarchy.
paths:
  /v1beta/user:
    get:
      summary: Get the authenticated user
      description: Returns the details of the authenticated user.
      operationId: MgmtPublicService_GetAuthenticatedUser
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAuthenticatedUserResponse'
        '401':
          description: Returned when the client credentials are not valid.
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpc.Status'
      tags:
      - Namespace
      x-stage: beta
    patch:
      summary: Update the authenticated user
      description: 'Updates the information of the authenticated user.


        In REST requests, only the supplied user fields will be taken into account

        when updating the resource.'
      operationId: MgmtPublicService_PatchAuthenticatedUser
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PatchAuthenticatedUserResponse'
        '401':
          description: Returned when the client credentials are not valid.
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpc.Status'
      tags:
      - Namespace
      x-stage: beta
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthenticatedUser'
        description: The user fields that will replace the existing ones.
        required: true
  /v1beta/users:
    get:
      summary: List users
      description: Returns a paginated list of users.
      operationId: MgmtPublicService_ListUsers
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListUsersResponse'
        '401':
          description: Returned when the client credentials are not valid.
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpc.Status'
      parameters:
      - name: pageSize
        description: 'The maximum number of users to return. If this parameter is unspecified,

          at most 10 pipelines will be returned. The cap value for this parameter is

          100 (i.e. any value above that will be coerced to 100).'
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: pageToken
        description: Page token.
        in: query
        required: false
        schema:
          type: string
      - name: view
        description: "View allows clients to specify the desired resource view in the response.\n\n - VIEW_BASIC: Default view, only includes basic information.\n - VIEW_FULL: Full representation."
        in: query
        required: false
        schema:
          type: string
          enum:
          - VIEW_BASIC
          - VIEW_FULL
      - name: filter
        description: 'Filter can hold an [AIP-160](https://google.aip.dev/160)-compliant filter

          expression.

          - Example: `create_time>timestamp("2000-06-19T23:31:08.657Z")`.'
        in: query
        required: false
        schema:
          type: string
      tags:
      - Namespace
      x-stage: beta
  /v1beta/{name}:
    get:
      summary: Get a user
      description: Returns the details of a user by their ID.
      operationId: MgmtPublicService_GetUser
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUserResponse'
        '401':
          description: Returned when the client credentials are not valid.
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpc.Status'
      parameters:
      - name: name
        description: 'The resource name of the user.

          Format: `users/{user}`'
        in: path
        required: true
        schema:
          type: string
          pattern: users/[^/]+
      - name: view
        description: "View allows clients to specify the desired resource view in the response.\n\n - VIEW_BASIC: Default view, only includes basic information.\n - VIEW_FULL: Full representation."
        in: query
        required: false
        schema:
          type: string
          enum:
          - VIEW_BASIC
          - VIEW_FULL
      tags:
      - Namespace
      x-stage: beta
    delete:
      summary: Delete an API token
      description: Deletes an API token.
      operationId: MgmtPublicService_DeleteToken
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteTokenResponse'
        '401':
          description: Returned when the client credentials are not valid.
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpc.Status'
      parameters:
      - name: name
        description: 'The resource name of the token to delete.

          Format: `users/{user}/tokens/{token}`'
        in: path
        required: true
        schema:
          type: string
          pattern: tokens/[^/]+
      tags:
      - Namespace
      x-stage: beta
  /v1beta/tokens:
    get:
      summary: List API tokens
      description: Returns a paginated list of the API tokens of the authenticated user.
      operationId: MgmtPublicService_ListTokens
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListTokensResponse'
        '401':
          description: Returned when the client credentials are not valid.
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpc.Status'
      parameters:
      - name: parent
        description: 'The parent resource name.

          Format: `users/{user}`

          If not provided, defaults to the authenticated user.'
        in: query
        required: false
        schema:
          type: string
      - name: pageSize
        description: 'The maximum number of tokens to return. If this parameter is unspecified,

          at most 10 tokens will be returned. The cap value for this parameter is

          100 (i.e. any value above that will be coerced to 100).'
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: pageToken
        description: Page token.
        in: query
        required: false
        schema:
          type: string
      tags:
      - Namespace
      x-stage: beta
    post:
      summary: Create an API token
      description: Creates an API token for the authenticated user.
      operationId: MgmtPublicService_CreateToken
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateTokenResponse'
        '401':
          description: Returned when the client credentials are not valid.
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpc.Status'
      tags:
      - Namespace
      x-stage: beta
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiToken'
        description: The properties of the token to be created.
        required: true
  /v1beta/{name_1}:
    get:
      summary: Get an API token
      description: Returns the details of an API token.
      operationId: MgmtPublicService_GetToken
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTokenResponse'
        '401':
          description: Returned when the client credentials are not valid.
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpc.Status'
      parameters:
      - name: name_1
        description: 'The resource name of the token.

          Format: `users/{user}/tokens/{token}`'
        in: path
        required: true
        schema:
          type: string
          pattern: tokens/[^/]+
      tags:
      - Namespace
      x-stage: beta
  /v1beta/validate-token:
    post:
      summary: Validate an API token
      description: Validates an API token.
      operationId: MgmtPublicService_ValidateToken
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateTokenResponse'
        '401':
          description: Returned when the client credentials are not valid.
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpc.Status'
      tags:
      - Namespace
      x-stage: beta
  /v1beta/check-namespace:
    post:
      summary: Check if a namespace is in use
      description: 'Returns the availability of a namespace or, alternatively, the type of

        resource that is using it.'
      operationId: MgmtPublicService_CheckNamespace
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckNamespaceResponse'
        '401':
          description: Returned when the client credentials are not valid.
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpc.Status'
      tags:
      - Namespace
      x-stage: beta
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckNamespaceRequest'
        description: 'CheckNamespaceRequest represents a request to verify if a namespace is

          available.'
        required: true
components:
  schemas:
    CreateTokenResponse:
      type: object
      properties:
        token:
          description: The created API token resource.
          readOnly: true
          allOf:
          - $ref: '#/components/schemas/ApiToken'
      description: CreateTokenResponse contains the created token.
    Any:
      type: object
      properties:
        '@type':
          type: string
          description: "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."
      additionalProperties: {}
      description: "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\n Example 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\n Example 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"
    GetTokenResponse:
      type: object
      properties:
        token:
          description: The API token resource.
          readOnly: true
          allOf:
          - $ref: '#/components/schemas/ApiToken'
      description: GetTokenResponse contains the requested token.
    GetAuthenticatedUserResponse:
      type: object
      properties:
        user:
          description: The authenticated user resource.
          readOnly: true
          allOf:
          - $ref: '#/components/schemas/AuthenticatedUser'
      description: GetAuthenticatedUserResponse contains the requested authenticated user.
    ListUsersResponse:
      type: object
      properties:
        users:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/v1beta.User'
          description: A list of user resources.
          readOnly: true
        nextPageToken:
          type: string
          description: Next page token.
          readOnly: true
        totalSize:
          type: integer
          format: int32
          description: Total number of users.
          readOnly: true
      description: ListUsersResponse contains a list of users.
    AuthenticatedUser:
      type: object
      properties:
        name:
          type: string
          description: 'Field 1: Canonical resource name.

            Format: `users/{user}`.'
          readOnly: true
        id:
          type: string
          title: 'Field 2: Resource ID (used in `name` as the last segment). This conforms to

            RFC-1034, which restricts to letters, numbers, and hyphen, with the first

            character a letter, the last a letter or a number, and a 63 character

            maximum.

            Auto-generated by backend: "usr-" prefix + immutable hash (80 bits entropy,

            base62). Example: "usr-8f3A2k9E7c1xYz"'
          readOnly: true
        displayName:
          type: string
          description: 'Field 3: Human-readable display name for UI.'
          readOnly: true
        slug:
          type: string
          description: 'Field 4: URL-friendly slug (NO prefix).'
          readOnly: true
        aliases:
          type: array
          items:
            type: string
          description: 'Field 5: Previous slugs for backward compatibility.'
          readOnly: true
        description:
          type: string
          description: 'Field 6: Optional description / bio.'
          readOnly: true
        createTime:
          type: string
          format: date-time
          description: 'Field 7: Creation time.'
          readOnly: true
        updateTime:
          type: string
          format: date-time
          description: 'Field 8: Update time.'
          readOnly: true
        email:
          type: string
          description: Email.
        role:
          type: string
          description: 'Role.


            It must be one of the following allowed roles:

            - `manager`

            - `ai-researcher`

            - `ai-engineer`

            - `data-engineer`

            - `data-scientist`

            - `analytics-engineer`

            - `hobbyist`'
        newsletterSubscription:
          type: boolean
          description: This defines whether the user is subscribed to Instill AI's newsletter.
        cookieToken:
          type: string
          description: Console cookie token.
        onboardingStatus:
          description: Onboarding Status.
          allOf:
          - $ref: '#/components/schemas/OnboardingStatus'
        profile:
          description: Profile.
          readOnly: true
          allOf:
          - $ref: '#/components/schemas/UserProfile'
        isEligibleForOrganizationTrial:
          type: boolean
          description: Is eligible for organization trial.
          readOnly: true
      description: 'AuthenticatedUser contains the information of an authenticated user, i.e.,

        the public user information plus some fields that should only be accessed by

        the user themselves.


        AIP Standard Field Ordering:

        - name (field 1): Canonical resource name

        - id (field 2): Immutable canonical resource ID

        - display_name (field 3): Human-readable display name

        - slug (field 4): URL-friendly slug

        - aliases (field 5): Previous slugs for backward compatibility

        - description (field 6): Optional description

        - create_time (field 7): Creation timestamp

        - update_time (field 8): Update timestamp'
      required:
      - email
      - newsletterSubscription
    ValidateTokenResponse:
      type: object
      properties:
        user:
          type: string
          title: 'If token is valid, full resource name of the user that owns it.

            Format: `users/{user}`'
          readOnly: true
      description: ValidateTokenResponse contains the validation of a token.
    DeleteTokenResponse:
      type: object
      description: DeleteTokenResponse is an empty response.
    CheckNamespaceRequest:
      type: object
      properties:
        id:
          type: string
          description: The namespace ID to be checked.
      description: 'CheckNamespaceRequest represents a request to verify if a namespace is

        available.'
      required:
      - id
    ListTokensResponse:
      type: object
      properties:
        tokens:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/ApiToken'
          description: A list of API token resources.
        nextPageToken:
          type: string
          description: Next page token.
        totalSize:
          type: integer
          format: int32
          description: Total number of API token resources.
      description: ListTokensResponse contains a list of API tokens.
    rpc.Status:
      type: object
      properties:
        code:
          type: integer
          format: int32
          description: 'The status code, which should be an enum value of

            [google.rpc.Code][google.rpc.Code].'
        message:
          type: string
          description: 'A developer-facing error message, which should be in English. Any

            user-facing error message should be localized and sent in the

            [google.rpc.Status.details][google.rpc.Status.details] field, or localized

            by the client.'
        details:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/Any'
          description: 'A list of messages that carry the error details.  There is a common set of

            message types for APIs to use.'
      description: 'The `Status` type defines a logical error model that is suitable for

        different programming environments, including REST APIs and RPC APIs. It is

        used by [gRPC](https://github.com/grpc). Each `Status` message contains

        three pieces of data: error code, error message, and error details.


        You can find out more about this error model and how to work with it in the

        [API Design Guide](https://cloud.google.com/apis/design/errors).'
    CheckNamespaceResponse.Namespace:
      type: string
      enum:
      - NAMESPACE_AVAILABLE
      - NAMESPACE_USER
      - NAMESPACE_ORGANIZATION
      - NAMESPACE_RESERVED
      description: "Namespace contains information about the availability of a namespace.\n\n - NAMESPACE_AVAILABLE: Available.\n - NAMESPACE_USER: Namespace belongs to a user.\n - NAMESPACE_ORGANIZATION: Namespace belongs to an organization.\n - NAMESPACE_RESERVED: Reserved."
    UserProfile:
      type: object
      properties:
        displayName:
          type: string
          title: 'Display name. Required, human-readable name for UI display.

            Example: "John" for user ID "john-doe-8f3A2k9E"'
        bio:
          type: string
          description: Biography.
        avatar:
          type: string
          description: Avatar in base64 format.
        publicEmail:
          type: string
          description: Public email.
        companyName:
          type: string
          description: Company name.
        socialProfileLinks:
          type: object
          additionalProperties:
            type: string
          description: 'Social profile links list the links to the user''s social profiles.

            The key represents the provider, and the value is the corresponding URL.'
        fullName:
          type: string
          description: 'Full legal name. Used for formal communications.

            Example: "John Doe" - this is also used to auto-generate the user ID.'
        metadata:
          type: object
          title: Flexible metadata
      description: UserProfile describes the public data of a user.
      required:
      - displayName
    GetUserResponse:
      type: object
      properties:
        user:
          description: The user resource.
          readOnly: true
          allOf:
          - $ref: '#/components/schemas/v1beta.User'
      description: GetUserResponse contains the requested user.
    OnboardingStatus:
      type: string
      enum:
      - ONBOARDING_STATUS_IN_PROGRESS
      - ONBOARDING_STATUS_COMPLETED
      description: "OnboardingStatus describes the status of the user onboarding process.\n\n - ONBOARDING_STATUS_IN_PROGRESS: In progress, i.e., the user has initiated the onboarding process\nbut has not yet completed it.\n - ONBOARDING_STATUS_COMPLETED: Completed."
    v1beta.User:
      type: object
      properties:
        name:
          type: string
          title: 'Field 1: Canonical resource name.

            Format: `users/{user}`.

            Example: "users/john-doe"'
          readOnly: true
        id:
          type: string
          title: 'Field 2: Resource ID (used in `name` as the last segment). This conforms to

            RFC-1034, which restricts to letters, numbers, and hyphen, with the first

            character a letter, the last a letter or a number, and a 63 character

            maximum.

            Auto-generated by backend: "usr-" prefix + immutable hash (80 bits entropy,

            base62). Example: "usr-8f3A2k9E7c1xYz"'
          readOnly: true
        displayName:
          type: string
          description: 'Field 3: Human-readable display name for UI.

            This is copied from profile.display_name for convenience.'
          readOnly: true
        slug:
          type: string
          description: 'Field 4: URL-friendly slug (NO prefix).

            Derived from display_name, used for human-friendly URLs.'
          readOnly: true
        aliases:
          type: array
          items:
            type: string
          description: 'Field 5: Previous slugs for backward compatibility.'
          readOnly: true
        description:
          type: string
          description: 'Field 6: Optional description / bio.'
          readOnly: true
        createTime:
          type: string
          format: date-time
          description: 'Field 7: Creation time.'
          readOnly: true
        updateTime:
          type: string
          format: date-time
          description: 'Field 8: Update time.'
          readOnly: true
        profile:
          description: Profile containing additional user information.
          allOf:
          - $ref: '#/components/schemas/UserProfile'
        email:
          type: string
          description: Email.
          readOnly: true
      description: 'User describes an individual that interacts with Instill AI. It doesn''t

        contain any private information about the user.


        AIP Standard Field Ordering:

        - name (field 1): Canonical resource name

        - id (field 2): Immutable canonical resource ID

        - display_name (field 3): Human-readable display name

        - slug (field 4): URL-friendly slug

        - aliases (field 5): Previous slugs for backward compatibility

        - description (field 6): Optional description

        - create_time (field 7): Creation timestamp

        - update_time (field 8): Update timestamp'
    CheckNamespaceResponse:
      type: object
      properties:
        type:
          description: Namespace type.
          allOf:
          - $ref: '#/components/schemas/CheckNamespaceResponse.Namespace'
      description: 'CheckNamespaceResponse contains the availability of a namespace or the type

        of resource that''s using it.'
    ApiToken.State:
      type: string
      enum:
      - STATE_INACTIVE
      - STATE_ACTIVE
      - STATE_EXPIRED
      description: "State describes the state of an API token.\n\n - STATE_INACTIVE: Inactive.\n - STATE_ACTIVE: Active.\n - STATE_EXPIRED: Expired."
    ApiToken:
      type: object
      properties:
        name:
          type: string
          title: 'The resource name of the token.

            Format: users/{user}/tokens/{token}'
          readOnly: true
        id:
          type: string
          description: 'API token resource ID (used in `name` as the last segment). This conforms

            to RFC-1034, which restricts to letters, numbers, and hyphen, with the

            first character a letter, the last a letter or a number, and a 63

            character maximum.


            This field can reflect the client(s) that will use the token.'
        createTime:
          type: string
          format: date-time
          description: Creation time.
          readOnly: true
        updateTime:
          type: string
          format: date-time
          description: Update time.
          readOnly: true
        accessToken:
          type: string
          description: 'An opaque access token representing the API token string.


            To validate the token, the recipient of the token needs to call the server

            that issued the token.'
          readOnly: true
        state:
          description: State.
          readOnly: true
          allOf:
          - $ref: '#/components/schemas/ApiToken.State'
        tokenType:
          type: string
          description: Token type. Value is fixed to "Bearer".
          readOnly: true
        lastUseTime:
          type: string
          format: date-time
          description: 'When users trigger a pipeline which uses an API token, the token is

            updated with the current time. This field is used to track the last time

            the token was used.'
          readOnly: true
        ttl:
          type: integer
          format: int32
          description: The time-to-live in seconds for this resource.
        expireTime:
          type: string
          format: date-time
          description: Expiration time.
      description: API tokens allow users to make requests to the Instill AI API.
    PatchAuthenticatedUserResponse:
      type: object
      properties:
        user:
          description: The updated user resource.
          readOnly: true
          allOf:
          - $ref: '#/components/schemas/AuthenticatedUser'
      title: 'PatchAuthenticatedUserResponse contains the updated user.

        the authenticated user resource'
  securitySchemes:
    Bearer:
      type: apiKey
      description: Enter the token with the `Bearer ` prefix, e.g. `Bearer instill_sk_***`
      name: Authorization
      in: header
      x-default: Bearer instill_sk_***
externalDocs:
  description: More about Instill Core
  url: https://docs.instill-ai.com