Vineyard Objects API

Store and retrieve in-memory objects

OpenAPI Specification

vineyard-objects-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Vineyard Python Client Blobs Objects API
  description: The Vineyard Python client API provides programmatic access to the Vineyard in-memory immutable data manager (v6d), a CNCF project. Clients connect via IPC (UNIX domain socket) for zero-copy local access or via RPC (TCP) for remote access. The API supports storing, retrieving, naming, persisting, and deleting distributed in-memory objects.
  version: 0.19.0
  contact:
    name: Vineyard Community
    url: https://v6d.io/
  license:
    name: Apache 2.0
    url: https://github.com/v6d-io/v6d/blob/main/LICENSE
servers:
- url: ipc://{socket}
  description: IPC socket connection (local zero-copy access)
  variables:
    socket:
      default: /var/run/vineyard.sock
- url: tcp://{host}:{port}
  description: RPC TCP connection (remote access)
  variables:
    host:
      default: localhost
    port:
      default: '9600'
tags:
- name: Objects
  description: Store and retrieve in-memory objects
paths:
  /objects:
    post:
      operationId: putObject
      summary: Put Object
      description: Store a Python object in vineyard. Returns the ObjectID for later retrieval. Optionally persist the object for cross-instance visibility or associate a name.
      tags:
      - Objects
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutObjectRequest'
      responses:
        '201':
          description: Object stored successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectIDResponse'
        '400':
          description: Invalid object or unsupported type
  /objects/{objectId}:
    get:
      operationId: getObject
      summary: Get Object
      description: Retrieve a vineyard object by its ObjectID, deserializing it back to a Python value.
      tags:
      - Objects
      parameters:
      - name: objectId
        in: path
        required: true
        description: The 64-bit unsigned integer ObjectID
        schema:
          type: string
      - name: fetch
        in: query
        required: false
        description: Whether to fetch remote objects via RPC if not local
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Object retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectResponse'
        '404':
          description: Object not found
    delete:
      operationId: deleteObject
      summary: Delete Object
      description: Remove a vineyard object from memory by its ObjectID.
      tags:
      - Objects
      parameters:
      - name: objectId
        in: path
        required: true
        description: The ObjectID to delete
        schema:
          type: string
      - name: force
        in: query
        required: false
        description: Force deletion even if the object is referenced
        schema:
          type: boolean
          default: true
      - name: deep
        in: query
        required: false
        description: Recursively delete member objects
        schema:
          type: boolean
          default: true
      responses:
        '204':
          description: Object deleted successfully
        '404':
          description: Object not found
components:
  schemas:
    ObjectIDResponse:
      type: object
      description: Response containing a vineyard ObjectID
      properties:
        object_id:
          type: string
          description: The 64-bit unsigned integer ObjectID as a string
    ObjectResponse:
      type: object
      description: Response containing a retrieved vineyard object
      properties:
        object_id:
          type: string
          description: The ObjectID of the retrieved object
        value:
          description: The deserialized Python object value
        typename:
          type: string
          description: The vineyard type name of the object
    PutObjectRequest:
      type: object
      description: Request to store an object in vineyard
      properties:
        value:
          description: The Python object to store (serialized representation)
        persist:
          type: boolean
          description: Whether to immediately persist the object globally
          default: false
        name:
          type: string
          description: Optional human-readable name to associate
externalDocs:
  description: Vineyard Python API Reference
  url: https://v6d.io/notes/references/python-api.html