> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agentsfleet.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Curate, publish or withdraw native platform setup



## OpenAPI

````yaml https://raw.githubusercontent.com/agentsfleet/agentsfleet/main/public/openapi.json patch /v1/admin/fleet-libraries/{id}
openapi: 3.1.0
info:
  title: agentsfleet Control Plane API
  description: API for managing workspaces, fleets, triggers, and runs.
  contact:
    name: agentsfleet
    url: https://agentsfleet.net
  license:
    name: MIT
    identifier: MIT
  version: 1.0.0
servers:
  - url: https://api.agentsfleet.net
    description: Production
security: []
paths:
  /v1/admin/fleet-libraries/{id}:
    patch:
      tags:
        - Fleet library
      summary: Curate, publish or withdraw native platform setup
      operationId: update_platform_fleet_library
      parameters:
        - name: id
          in: path
          description: >-
            Stable platform slug. The bound is the one `afd_authoring` enforces
            on

            it with garde, published so a client learns it before the 400.
          required: true
          schema:
            type: string
            maxLength: 128
            minLength: 1
        - name: If-Match
          in: header
          description: >-
            Current strong tag from the resource's GET. A stale tag returns 412
            with

            the current `etag`; an absent one returns 428.
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformLibraryPatch'
        required: true
      responses:
        '200':
          description: Current platform metadata
          headers:
            ETag:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Item'
        '400':
          description: Invalid patch
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '401':
          description: No credential, or one this route does not accept
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '403':
          description: Platform scope required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '404':
          description: Platform entry unavailable
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '412':
          description: The precondition the caller supplied does not hold
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '413':
          description: The payload is over this route's ceiling
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '428':
          description: The route requires a precondition the caller did not send
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '429':
          description: The instance is at its ceiling
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '500':
          description: The daemon failed to answer
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '503':
          description: A dependency this route needs is unreachable
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
      security:
        - BearerAuth: []
components:
  schemas:
    PlatformLibraryPatch:
      type: object
      description: Conditional platform-owned metadata edit.
      properties:
        description:
          type:
            - string
            - 'null'
          description: Curated description.
        name:
          type:
            - string
            - 'null'
          description: Display label.
        published:
          type:
            - boolean
            - 'null'
          description: Explicitly publish or withdraw the staged entry.
        required_credentials_reasons:
          type:
            - object
            - 'null'
          description: Credential-name explanations, never credential values.
          additionalProperties:
            type: string
          propertyNames:
            type: string
      additionalProperties: false
    Item:
      type: object
      description: Platform metadata without instructions or private authoring content.
      required:
        - card
        - published
        - updated_at
      properties:
        card:
          $ref: '#/components/schemas/Card_Value'
          description: Immutable head metadata with the current resource tag.
        published:
          type: boolean
          description: Whether new tenant discovery and installation are allowed.
        updated_at:
          type: integer
          format: int64
          description: Last metadata mutation, in Unix milliseconds.
    ProblemBody:
      type: object
      description: The body every refusal carries, under `application/problem+json`.
      required:
        - docs_uri
        - title
        - detail
        - error_code
        - request_id
      properties:
        action_id:
          type:
            - string
            - 'null'
          description: 'On that 409 only: the action the gate held.'
        current_state:
          type:
            - string
            - 'null'
          description: 'On a 409 only: the state that forbade the transition.'
        detail:
          type: string
          description: One sentence on what was refused and why.
        docs_uri:
          type: string
          description: Where the error code is documented.
        error_code:
          type: string
          description: The registry code, stable across releases.
        etag:
          type:
            - string
            - 'null'
          description: >-
            On a 412 only: the resource's current entity tag, to refetch and
            retry.
        gate_id:
          type:
            - string
            - 'null'
          description: 'On an answered approval gate''s 409 only: the gate that was answered.'
        outcome:
          type:
            - string
            - 'null'
          description: 'On that 409 only: the answer that stands.'
        request_id:
          type: string
          description: The request this refusal answers, for support.
        resolved_at:
          type:
            - integer
            - 'null'
          format: int64
          description: 'On that 409 only: when the standing answer was given.'
        resolved_by:
          type:
            - string
            - 'null'
          description: 'On that 409 only: who gave it.'
        title:
          type: string
          description: A short name for the refusal, safe to show a person.
        user_message:
          type:
            - string
            - 'null'
          description: A curated sentence for end users, where the code has one.
    Card_Value:
      type: object
      description: Reusable setup summary, excluding instructions and private chat text.
      required:
        - id
        - name
        - description
        - visibility
        - created_at
        - requirements
        - required_credentials_reasons
        - head_revision_id
        - etag
      properties:
        created_at:
          type: integer
          format: int64
          description: UTC milliseconds.
        description:
          type: string
          description: Authored description.
        etag:
          type: string
          description: Strong Library version.
        head_revision_id:
          type: string
          description: Immutable current head `UUIDv7`.
        id:
          type: string
          description: Entry `UUIDv7`.
        name:
          type: string
          description: Human label.
        required_credentials_reasons:
          description: Authored explanation keyed by credential name.
        requirements:
          type: object
          description: Declarative needs of the head revision.
        visibility:
          type: string
          description: platform or tenant.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Obtain a token via the CLI auth flow (POST /v1/auth/sessions) or GitHub
        OAuth

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.