Alphaus Luster API

(ALPHA) Luster API. Base URL: https://api.alphaus.cloud/m/blue/luster

Operations 19

POST /v1/contexts/label (ALPHA) [LABEL] Creates label. #
DELETE /v1/contexts/label/{id} (ALPHA) [LABEL] Deletes label. #
PUT /v1/contexts/label/{id} (ALPHA) [LABEL] Updates label. #
POST /v1/contexts/label:read (ALPHA) [LABEL] Reads labels. #
POST /v1/contexts/{spaceId}/context (ALPHA) [CONTEXT] Creates context. #
POST /v1/contexts/{spaceId}/context/{contextId}/comment (ALPHA) [COMMENT] Creates comment in context. #
DELETE /v1/contexts/{spaceId}/context/{contextId}/comment/{id} (ALPHA) [COMMENT] Deletes comment in context. #
PUT /v1/contexts/{spaceId}/context/{contextId}/comment/{id} (ALPHA) [COMMENT] Updates comment in context. #
GET /v1/contexts/{spaceId}/context/{id} (ALPHA [CONTEXT]) Gets context. #
DELETE /v1/contexts/{spaceId}/context/{id} (ALPHA) [CONTEXT] Deletes context. #
PUT /v1/contexts/{spaceId}/context/{id} (ALPHA) [CONTEXT] Updates context. #
POST /v1/contexts/{spaceId}:read (ALPHA) [CONTEXT] Reads contexts. #
GET /v1/hubs/{hubType} (ALPHA) [HUB] Gets hub. #
POST /v1/hubs:read (ALPHA) [HUB] Reads hubs. #
POST /v1/spaces (ALPHA) [SPACE] Creates space. #
GET /v1/spaces/{id} (ALPHA) [SPACE] Gets space. #
DELETE /v1/spaces/{id} (ALPHA) [SPACE] Deletes space. #
PUT /v1/spaces/{id} (ALPHA) [SPACE] Updates space. #
POST /v1/spaces:read (ALPHA) [SPACE] Reads spaces. #

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/alphaus-luster-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

alphaus-luster-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Blue API reference Admin Luster API
  description: 'Alphaus provides an API for interacting with its services. Blue API is a RESTful API that can be accessed by an HTTP client such as `curl`, or any HTTP library which is part of most modern programming languages. This API reference is autogenerated from [protocol buffers](https://developers.google.com/protocol-buffers) defined in this [repository](https://github.com/alphauslabs/blueapi), together with our supported [client libraries](https://alphauslabs.github.io/docs/blueapi/client-sdks/). See the official [documentation](https://alphauslabs.github.io/docs/blueapi/overview/) for more information.


    You may encounter the following feature maturity indicators:

    - **(WORK-IN-PROGRESS)** - Development is ongoing, don''t use yet;

    - **(BETA)** - New or experimental features, subject to changes; and

    - **(DEPRECATED)** - Outdated or replaced features.


    Some endpoints, especially those that return lists of resources, have streaming responses; newline-separated stream of “chunks”. Each chunk is an envelope that can contain either a response message or an error. Only the last chunk will include an error, if any.'
  version: v1
servers:
- url: https://api.alphaus.cloud/m/blue
  description: Base URL reconciled from apis.yml
tags:
- name: Luster
  description: '(ALPHA) Luster API. Base URL: https://api.alphaus.cloud/m/blue/luster'
  externalDocs:
    description: Luster is a service that manages user contexts.
    url: https://github.com/alphauslabs/blueapi/tree/main/luster/
paths:
  /v1/contexts/label:
    post:
      summary: (ALPHA) [LABEL] Creates label.
      operationId: Luster_CreateLabel
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiLusterLabel'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      tags:
      - Luster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1CreateLabelRequest'
        description: Request message for the Luster.CreateLabel rpc.
        required: true
  /v1/contexts/label/{id}:
    delete:
      summary: (ALPHA) [LABEL] Deletes label.
      operationId: Luster_DeleteLabel
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                type: object
                properties: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: id
        description: Required. the label id.
        in: path
        required: true
        schema:
          type: string
      tags:
      - Luster
    put:
      summary: (ALPHA) [LABEL] Updates label.
      operationId: Luster_UpdateLabel
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiLusterLabel'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: id
        description: Required. the label id.
        in: path
        required: true
        schema:
          type: string
      tags:
      - Luster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LusterUpdateLabelBody'
        required: true
  /v1/contexts/label:read:
    post:
      summary: (ALPHA) [LABEL] Reads labels.
      operationId: Luster_ReadLabels
      responses:
        '200':
          description: A successful response.(streaming responses)
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: '#/components/schemas/apiLusterLabel'
                  error:
                    $ref: '#/components/schemas/rpcStatus'
                title: Stream result of apiLusterLabel
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      tags:
      - Luster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1ReadLabelsRequest'
        description: Request message for the Luster.ReadLabels rpc.
        required: true
  /v1/contexts/{spaceId}/context:
    post:
      summary: (ALPHA) [CONTEXT] Creates context.
      operationId: Luster_CreateContext
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/lusterContext'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: spaceId
        description: Required. The space id.
        in: path
        required: true
        schema:
          type: string
      tags:
      - Luster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LusterCreateContextBody'
        required: true
  /v1/contexts/{spaceId}/context/{contextId}/comment:
    post:
      summary: (ALPHA) [COMMENT] Creates comment in context.
      operationId: Luster_CreateContextComment
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/lusterComment'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: spaceId
        description: Required. the space id.
        in: path
        required: true
        schema:
          type: string
      - name: contextId
        description: Required. the context id.
        in: path
        required: true
        schema:
          type: string
      tags:
      - Luster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LusterCreateContextCommentBody'
        required: true
  /v1/contexts/{spaceId}/context/{contextId}/comment/{id}:
    delete:
      summary: (ALPHA) [COMMENT] Deletes comment in context.
      operationId: Luster_DeleteContextComment
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                type: object
                properties: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: spaceId
        description: Required. the space id.
        in: path
        required: true
        schema:
          type: string
      - name: contextId
        description: Required. the context id.
        in: path
        required: true
        schema:
          type: string
      - name: id
        description: Required. the comment id.
        in: path
        required: true
        schema:
          type: string
      tags:
      - Luster
    put:
      summary: (ALPHA) [COMMENT] Updates comment in context.
      operationId: Luster_UpdateContextComment
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/lusterComment'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: spaceId
        description: Required. the space id.
        in: path
        required: true
        schema:
          type: string
      - name: contextId
        description: Required. the context id.
        in: path
        required: true
        schema:
          type: string
      - name: id
        description: Required. the comment id.
        in: path
        required: true
        schema:
          type: string
      tags:
      - Luster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LusterUpdateContextCommentBody'
        required: true
  /v1/contexts/{spaceId}/context/{id}:
    get:
      summary: (ALPHA [CONTEXT]) Gets context.
      operationId: Luster_GetContext
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetContextResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: spaceId
        description: Required. The space id.
        in: path
        required: true
        schema:
          type: string
      - name: id
        description: the context id.
        in: path
        required: true
        schema:
          type: string
      - name: fieldMask
        description: 'Optional. field_mask

          see more info: https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/field_mask.proto'
        in: query
        required: false
        schema:
          type: string
      tags:
      - Luster
    delete:
      summary: (ALPHA) [CONTEXT] Deletes context.
      operationId: Luster_DeleteContext
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                type: object
                properties: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: spaceId
        description: Required. The space id.
        in: path
        required: true
        schema:
          type: string
      - name: id
        description: Required. the context id.
        in: path
        required: true
        schema:
          type: string
      tags:
      - Luster
    put:
      summary: (ALPHA) [CONTEXT] Updates context.
      operationId: Luster_UpdateContext
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/lusterContext'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: spaceId
        description: Required. The space id.
        in: path
        required: true
        schema:
          type: string
      - name: id
        description: Required. the context id.
        in: path
        required: true
        schema:
          type: string
      tags:
      - Luster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LusterUpdateContextBody'
        required: true
  /v1/contexts/{spaceId}:read:
    post:
      summary: (ALPHA) [CONTEXT] Reads contexts.
      operationId: Luster_ReadContexts
      responses:
        '200':
          description: A successful response.(streaming responses)
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: '#/components/schemas/lusterContext'
                  error:
                    $ref: '#/components/schemas/rpcStatus'
                title: Stream result of lusterContext
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: spaceId
        description: Required. The space id.
        in: path
        required: true
        schema:
          type: string
      tags:
      - Luster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LusterReadContextsBody'
        required: true
  /v1/hubs/{hubType}:
    get:
      summary: (ALPHA) [HUB] Gets hub.
      operationId: Luster_GetHub
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/lusterHub'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: hubType
        description: Required. the hub type.
        in: path
        required: true
        schema:
          type: string
      - name: fieldMask
        description: 'Optional. field_mask

          see more info: https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/field_mask.proto'
        in: query
        required: false
        schema:
          type: string
      tags:
      - Luster
  /v1/hubs:read:
    post:
      summary: (ALPHA) [HUB] Reads hubs.
      operationId: Luster_ReadHubs
      responses:
        '200':
          description: A successful response.(streaming responses)
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: '#/components/schemas/lusterHub'
                  error:
                    $ref: '#/components/schemas/rpcStatus'
                title: Stream result of lusterHub
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      tags:
      - Luster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1ReadHubsRequest'
        description: Request message for the Luster.ReadHubs rpc.
        required: true
  /v1/spaces:
    post:
      summary: (ALPHA) [SPACE] Creates space.
      operationId: Luster_CreateSpace
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/lusterSpace'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      tags:
      - Luster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1CreateSpaceRequest'
        description: Request message for the Luster.CreateSpace rpc.
        required: true
  /v1/spaces/{id}:
    get:
      summary: (ALPHA) [SPACE] Gets space.
      operationId: Luster_GetSpace
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/lusterSpace'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: id
        description: the space id.
        in: path
        required: true
        schema:
          type: string
      - name: fieldMask
        description: 'Optional. field_mask

          see more info: https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/field_mask.proto'
        in: query
        required: false
        schema:
          type: string
      tags:
      - Luster
    delete:
      summary: (ALPHA) [SPACE] Deletes space.
      description: When deleted, contexts created within the space will also be deleted and cannot be viewed.
      operationId: Luster_DeleteSpace
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                type: object
                properties: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: id
        description: the space id.
        in: path
        required: true
        schema:
          type: string
      tags:
      - Luster
    put:
      summary: (ALPHA) [SPACE] Updates space.
      operationId: Luster_UpdateSpace
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/lusterSpace'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: id
        description: Required. the space id.
        in: path
        required: true
        schema:
          type: string
      tags:
      - Luster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LusterUpdateSpaceBody'
        required: true
  /v1/spaces:read:
    post:
      summary: (ALPHA) [SPACE] Reads spaces.
      operationId: Luster_ReadSpaces
      responses:
        '200':
          description: A successful response.(streaming responses)
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: '#/components/schemas/lusterSpace'
                  error:
                    $ref: '#/components/schemas/rpcStatus'
                title: Stream result of lusterSpace
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      tags:
      - Luster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1ReadSpacesRequest'
        description: Request message for the Luster.ReadSpaces rpc.
        required: true
components:
  schemas:
    v1CreateLabelRequest:
      type: object
      properties:
        name:
          type: string
          title: 'The label name.

            String length 1-100 characters'
        color:
          type: string
          title: 'The label color.

            Required format: HEX color code (#RRGGBB).

            Example: #FF5733 (valid), #FFF (invalid - must be 6 digits), rgb(255, 87, 51) (invalid format)'
        description:
          type: string
          title: 'The label description.

            String length 0-500 characters'
      description: Request message for the Luster.CreateLabel rpc.
    protobufAny:
      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    }"
    lusterHub:
      type: object
      properties:
        id:
          type: string
          description: The hub id.
        name:
          type: string
          description: The hub name.
        cost:
          type: array
          items:
            type: string
          description: The cost in hub.
        recommendation:
          type: array
          items:
            type: string
          description: The recommendation in hub.
      title: The message defines the hub
    LusterUpdateContextCommentBody:
      type: object
      properties:
        content:
          type: string
          title: 'Required. The comment content.

            String length 1-10000 characters'
        updateMask:
          type: string
          title: 'Required.

            see more info: https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/field_mask.proto'
      description: Request message for the Luster.UpdateContextComment rpc.
      required:
      - updateMask
    LusterUpdateSpaceBody:
      type: object
      properties:
        name:
          type: string
          title: 'Optional. the space name.

            String length 1-60 characters'
        description:
          type: string
          title: 'Optional. the space description.

            String length 0-1000 characters'
        members:
          type: array
          items:
            type: string
          description: Optional. the member ids.
        updateMask:
          type: string
          title: 'Required.

            see more info: https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/field_mask.proto'
      description: Request message for the Luster.UpdateSpace rpc.
      required:
      - updateMask
    LusterReadContextsBody:
      type: object
      properties:
        fieldMask:
          type: string
          title: Optional. field_mask
      description: Request message for the Luster.ReadContexts rpc.
    v1ReadSpacesRequest:
      type: object
      properties:
        fieldMask:
          type: string
          title: 'Optional. field_mask

            see more info: https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/field_mask.proto

            Available fields: id,name,description,members,created_at,updated_at'
      description: Request message for the Luster.ReadSpaces rpc.
    lusterComment:
      type: object
      properties:
        id:
          type: string
          description: The comment id.
        name:
          type: string
          description: The comment name.
        content:
          type: string
          description: The comment content.
        userId:
          type: string
          description: The comment user_id.
          readOnly: true
        createdAt:
          type: string
          title: 'The comment created_at.

            "created_at": "2023-10-27T10:00:00Z"'
          readOnly: true
        updatedAt:
          type: string
          title: 'The comment updated_at.

            "updated_at": "2023-10-27T10:00:00Z"'
          readOnly: true
      title: The message defines the comment
    lusterContextState:
      type: string
      enum:
      - OPEN
      - IN_PROGRESS
      - CLOSED
      default: OPEN
      description: "The context state.\n\n - OPEN: open\nInitial state when context is created.\n - IN_PROGRESS: in progress\nIndicates work is in progress.\n - CLOSED: closed\nFinal state indicating work is completed."
    v1ReadHubsRequest:
      type: object
      properties:
        fieldMask:
          type: string
          title: 'Optional. field_mask

            see more info: https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/field_mask.proto'
      description: Request message for the Luster.ReadHubs rpc.
    v1ReadLabelsRequest:
      type: object
      properties:
        fieldMask:
          type: string
          title: Optional. field_mask
      description: Request message for the Luster.ReadLabels rpc.
    lusterContextType:
      type: string
      enum:
      - ANY
      - SPACE
      - ACCOUNT
      - COST
      default: ANY
      description: "The context type.\n\n - ANY: Any type of context.\n - SPACE: Space-related context.\n - ACCOUNT: Account-related context.\n - COST: Cost-related context."
    apiLusterLabel:
      type: object
      properties:
        id:
          type: string
          description: The label id.
        name:
          type: string
          description: The label name.
        color:
          type: string
          description: 'The label color.

            format: HEX color code ( #FF0000 ).'
        description:
          type: string
          description: The label description.
        createdAt:
          type: string
          title: 'The label createdAt.

            "created_at": "2023-10-27T10:00:00Z"'
          readOnly: true
        updatedAt:
          type: string
          title: 'The label updatedAt.

            "updated_at": "2023-10-27T10:00:00Z"'
          readOnly: true
      title: The message defines the label
    LusterCreateContextBody:
      type: object
      properties:
        title:
          type: string
          title: 'Required. The context title.

            String length 1-500 characters'
        content:
          type: string
          title: 'Required. The context content.

            String length 0-10000 characters'
        labels:
          type: array
          items:
            type: string
          title: 'Optional. The context labels.

            "labels": ["bug" "documentation"]'
        assignees:
          type: array
          items:
            type: string
          title: 'Optional. The context assignees.

            "assignees": ["username1" "username2"]'
        contextType:
          $ref: '#/components/schemas/lusterContextType'
          title: 'Optional. The context type.

            if not set, default: `any`'
      description: Request message for the Luster.CreateContext rpc.
    rpcStatus:
      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/protobufAny'
          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).'
    lusterSpace:
      type: object
      properties:
        id:
          type: string
          description: The space id.
        name:
          type: string
          description: The space name.
        description:
          type: string
          description: The space description.
        members:
          type: array
          items:
            type: string
          description: The members in space.
        createdAt:
          type: string
          title: 'The space created_at.

            "created_at": "2023-10-27T10:00:00Z"'
          readOnly: true
        updatedAt:
          type: string
          title: 'The space updated_at.

            "updated_at": "2023-10-27T10:00:00Z"'
          readOnly: true
      title: The message defines the space
    LusterUpdateContextBody:
      type: object
      properties:
        title:
          type: string
          title: 'Optional. The context title.

            String length 1-500 characters'
        content:
          type: string
          title: 'Optional. The context content.

            String length 0-10000 characters'
 

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/alphaus/refs/heads/main/openapi/alphaus-luster-api-openapi.yml