Alphaus Luster API

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

OpenAPI Specification

alphaus-luster-api-openapi.yml Raw ↑
swagger: '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
host: api.alphaus.cloud
basePath: /m/blue
schemes:
- https
consumes:
- application/json
produces:
- application/json
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.
          schema:
            $ref: '#/definitions/apiLusterLabel'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
      - name: body
        description: Request message for the Luster.CreateLabel rpc.
        in: body
        required: true
        schema:
          $ref: '#/definitions/v1CreateLabelRequest'
      tags:
      - Luster
  /v1/contexts/label/{id}:
    delete:
      summary: (ALPHA) [LABEL] Deletes label.
      operationId: Luster_DeleteLabel
      responses:
        '200':
          description: A successful response.
          schema:
            type: object
            properties: {}
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
      - name: id
        description: Required. the label id.
        in: path
        required: true
        type: string
      tags:
      - Luster
    put:
      summary: (ALPHA) [LABEL] Updates label.
      operationId: Luster_UpdateLabel
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/apiLusterLabel'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
      - name: id
        description: Required. the label id.
        in: path
        required: true
        type: string
      - name: body
        in: body
        required: true
        schema:
          $ref: '#/definitions/LusterUpdateLabelBody'
      tags:
      - Luster
  /v1/contexts/label:read:
    post:
      summary: (ALPHA) [LABEL] Reads labels.
      operationId: Luster_ReadLabels
      responses:
        '200':
          description: A successful response.(streaming responses)
          schema:
            type: object
            properties:
              result:
                $ref: '#/definitions/apiLusterLabel'
              error:
                $ref: '#/definitions/rpcStatus'
            title: Stream result of apiLusterLabel
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
      - name: body
        description: Request message for the Luster.ReadLabels rpc.
        in: body
        required: true
        schema:
          $ref: '#/definitions/v1ReadLabelsRequest'
      tags:
      - Luster
  /v1/contexts/{spaceId}/context:
    post:
      summary: (ALPHA) [CONTEXT] Creates context.
      operationId: Luster_CreateContext
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/lusterContext'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
      - name: spaceId
        description: Required. The space id.
        in: path
        required: true
        type: string
      - name: body
        in: body
        required: true
        schema:
          $ref: '#/definitions/LusterCreateContextBody'
      tags:
      - Luster
  /v1/contexts/{spaceId}/context/{contextId}/comment:
    post:
      summary: (ALPHA) [COMMENT] Creates comment in context.
      operationId: Luster_CreateContextComment
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/lusterComment'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
      - name: spaceId
        description: Required. the space id.
        in: path
        required: true
        type: string
      - name: contextId
        description: Required. the context id.
        in: path
        required: true
        type: string
      - name: body
        in: body
        required: true
        schema:
          $ref: '#/definitions/LusterCreateContextCommentBody'
      tags:
      - Luster
  /v1/contexts/{spaceId}/context/{contextId}/comment/{id}:
    delete:
      summary: (ALPHA) [COMMENT] Deletes comment in context.
      operationId: Luster_DeleteContextComment
      responses:
        '200':
          description: A successful response.
          schema:
            type: object
            properties: {}
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
      - name: spaceId
        description: Required. the space id.
        in: path
        required: true
        type: string
      - name: contextId
        description: Required. the context id.
        in: path
        required: true
        type: string
      - name: id
        description: Required. the comment id.
        in: path
        required: true
        type: string
      tags:
      - Luster
    put:
      summary: (ALPHA) [COMMENT] Updates comment in context.
      operationId: Luster_UpdateContextComment
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/lusterComment'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
      - name: spaceId
        description: Required. the space id.
        in: path
        required: true
        type: string
      - name: contextId
        description: Required. the context id.
        in: path
        required: true
        type: string
      - name: id
        description: Required. the comment id.
        in: path
        required: true
        type: string
      - name: body
        in: body
        required: true
        schema:
          $ref: '#/definitions/LusterUpdateContextCommentBody'
      tags:
      - Luster
  /v1/contexts/{spaceId}/context/{id}:
    get:
      summary: (ALPHA [CONTEXT]) Gets context.
      operationId: Luster_GetContext
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/v1GetContextResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
      - name: spaceId
        description: Required. The space id.
        in: path
        required: true
        type: string
      - name: id
        description: the context id.
        in: path
        required: true
        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
        type: string
      tags:
      - Luster
    delete:
      summary: (ALPHA) [CONTEXT] Deletes context.
      operationId: Luster_DeleteContext
      responses:
        '200':
          description: A successful response.
          schema:
            type: object
            properties: {}
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
      - name: spaceId
        description: Required. The space id.
        in: path
        required: true
        type: string
      - name: id
        description: Required. the context id.
        in: path
        required: true
        type: string
      tags:
      - Luster
    put:
      summary: (ALPHA) [CONTEXT] Updates context.
      operationId: Luster_UpdateContext
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/lusterContext'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
      - name: spaceId
        description: Required. The space id.
        in: path
        required: true
        type: string
      - name: id
        description: Required. the context id.
        in: path
        required: true
        type: string
      - name: body
        in: body
        required: true
        schema:
          $ref: '#/definitions/LusterUpdateContextBody'
      tags:
      - Luster
  /v1/contexts/{spaceId}:read:
    post:
      summary: (ALPHA) [CONTEXT] Reads contexts.
      operationId: Luster_ReadContexts
      responses:
        '200':
          description: A successful response.(streaming responses)
          schema:
            type: object
            properties:
              result:
                $ref: '#/definitions/lusterContext'
              error:
                $ref: '#/definitions/rpcStatus'
            title: Stream result of lusterContext
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
      - name: spaceId
        description: Required. The space id.
        in: path
        required: true
        type: string
      - name: body
        in: body
        required: true
        schema:
          $ref: '#/definitions/LusterReadContextsBody'
      tags:
      - Luster
  /v1/hubs/{hubType}:
    get:
      summary: (ALPHA) [HUB] Gets hub.
      operationId: Luster_GetHub
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/lusterHub'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
      - name: hubType
        description: Required. the hub type.
        in: path
        required: true
        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
        type: string
      tags:
      - Luster
  /v1/hubs:read:
    post:
      summary: (ALPHA) [HUB] Reads hubs.
      operationId: Luster_ReadHubs
      responses:
        '200':
          description: A successful response.(streaming responses)
          schema:
            type: object
            properties:
              result:
                $ref: '#/definitions/lusterHub'
              error:
                $ref: '#/definitions/rpcStatus'
            title: Stream result of lusterHub
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
      - name: body
        description: Request message for the Luster.ReadHubs rpc.
        in: body
        required: true
        schema:
          $ref: '#/definitions/v1ReadHubsRequest'
      tags:
      - Luster
  /v1/spaces:
    post:
      summary: (ALPHA) [SPACE] Creates space.
      operationId: Luster_CreateSpace
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/lusterSpace'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
      - name: body
        description: Request message for the Luster.CreateSpace rpc.
        in: body
        required: true
        schema:
          $ref: '#/definitions/v1CreateSpaceRequest'
      tags:
      - Luster
  /v1/spaces/{id}:
    get:
      summary: (ALPHA) [SPACE] Gets space.
      operationId: Luster_GetSpace
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/lusterSpace'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
      - name: id
        description: the space id.
        in: path
        required: true
        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
        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.
          schema:
            type: object
            properties: {}
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
      - name: id
        description: the space id.
        in: path
        required: true
        type: string
      tags:
      - Luster
    put:
      summary: (ALPHA) [SPACE] Updates space.
      operationId: Luster_UpdateSpace
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/lusterSpace'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
      - name: id
        description: Required. the space id.
        in: path
        required: true
        type: string
      - name: body
        in: body
        required: true
        schema:
          $ref: '#/definitions/LusterUpdateSpaceBody'
      tags:
      - Luster
  /v1/spaces:read:
    post:
      summary: (ALPHA) [SPACE] Reads spaces.
      operationId: Luster_ReadSpaces
      responses:
        '200':
          description: A successful response.(streaming responses)
          schema:
            type: object
            properties:
              result:
                $ref: '#/definitions/lusterSpace'
              error:
                $ref: '#/definitions/rpcStatus'
            title: Stream result of lusterSpace
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
      - name: body
        description: Request message for the Luster.ReadSpaces rpc.
        in: body
        required: true
        schema:
          $ref: '#/definitions/v1ReadSpacesRequest'
      tags:
      - Luster
definitions:
  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."
  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'
      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: '#/definitions/lusterContextType'
        title: 'Optional. The context type.

          if not set, default: `any`'
      state:
        $ref: '#/definitions/lusterContextState'
        description: Optional. The context state.
      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.UpdateContext rpc.
    required:
    - updateMask
  LusterUpdateLabelBody:
    type: object
    properties:
      name:
        type: string
        description: Optional. the label name.
      color:
        type: string
        title: 'The label color.

          Optional. format: HEX color code (#RRGGBB).

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

          String length 0-500 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.UpdateLabel rpc.
    required:
    - updateMask
  LusterCreateContextCommentBody:
    type: object
    properties:
      content:
        type: string
        title: 'Required. The comment content.

          String length 1-10000 characters'
    description: Request message for the Luster.CreateContextComment rpc.
  v1ReadLabelsRequest:
    type: object
    properties:
      fieldMask:
        type: string
        title: Optional. field_mask
    description: Request message for the Luster.ReadLabels rpc.
  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
  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
  v1GetContextResponse:
    type: object
    properties:
      space:
        $ref: '#/definitions/lusterSpace'
      context:
        $ref: '#/definitions/lusterContext'
      comment:
        type: array
        items:
          type: object
          $ref: '#/definitions/lusterComment'
    description: Response message for the Luster.GetContextResponse 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: '#/definitions/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).'
  v1CreateSpaceRequest:
    type: object
    properties:
      name:
        type: string
        title: 'Required. 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.
    description: Request message for the Luster.CreateSpace rpc.
  LusterReadContextsBody:
    type: object
    properties:
      fieldMask:
        type: string
        title: Optional. field_mask
    description: Request message for the Luster.ReadContexts rpc.
  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
  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.
  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    }"
  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.
  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.
  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
  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: '#/definitions/lusterContextType'
        title: 'Optional. The context type.

          if not set, default: `any`'
    description: Request message for the Luster.CreateContext rpc.
  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
  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."
  lusterContext:
    type: object
    properties:
      id:
        type: string
        description: The context id.
      name:
        type: string
        description: The context name.
      number:
        type: string
        description: 'The context number.

          Sequential number assigned to the context.'
      title:
        type: string
        description: The context title.
      content:
        type: string
        description: 'The context content.

          Detailed content or description of the context.'
      contextType:
        $ref: '#/definitions/lusterContextType'
        description: The context type.
      state:
        $ref: '#/definitions/lusterContextState'
        description: The context state.
      labels:
        type: array
        items:
          type: string
        title: 'The context labels.

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

          "assignees": ["username1" "username2"]'
      commentsCount:
        type: string
        format: int64
        title: 'The context comments_count.

          "comments_count": 0'
        readOnly: true
      createdAt:
        type: string
        title: 'The context created_at.

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

          "updated_at": "2023-10-27T10:00:00Z"'
        readOnly: true
      closedAt:
        type: string
        title: 'The context closed_at.

          "closed_at": "2023-10-27T10:00:00Z"'
        readOnly: true
      userId:
        type: string
        description: The context user_id.
        readOnly: true
    title: The message defines the context
  apiLusterLabel:
    type: object
    properties:
      id:
        type: string
        description: The label

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