{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/stormmcp/json-schema/stormmcp-update-admin-toolkit-request-schema.json",
  "title": "UpdateAdminToolkitRequest",
  "description": "Request to replace an admin toolkit's name, description, and entries (MCPG-1671).",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/stormmcp-admintoolkits-api-openapi.yml#/components/schemas/UpdateAdminToolkitRequest",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Gets or sets the toolkit name."
    },
    "description": {
      "type": [
        "null",
        "string"
      ],
      "description": "Gets or sets the optional description."
    },
    "assignmentMode": {
      "oneOf": [
        {
          "type": "null"
        },
        {
          "description": "Gets or sets the assignment mode. Null keeps the persisted value (stacked\nclients that have not yet sent the field). A provided value replaces it.\nNumeric tokens and unknown names are 400 (MCPG-1699).",
          "$ref": "#/$defs/AdminToolkitAssignmentMode"
        }
      ]
    },
    "entries": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "$ref": "#/$defs/AdminToolkitEntryRequest"
      },
      "description": "Gets or sets the replacement entry set. An empty list is allowed. Explicit JSON\n`null` is treated as empty (STJ invokes the setter with `null`)."
    }
  },
  "$defs": {
    "AdminToolkitAssignmentMode": {
      "description": "How assignees may change an admin-assigned toolkit (MCPG-1699).\nExisting rows default to AdminToolkitAssignmentMode.Editable."
    },
    "AdminToolkitEntryRequest": {
      "type": "object",
      "properties": {
        "libraryId": {
          "type": "string",
          "description": "Gets or sets the library identifier.",
          "format": "uuid"
        },
        "selectedToolNames": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "string"
          },
          "description": "Gets or sets the selected original upstream tool names. Null means all tools."
        }
      },
      "description": "One library's membership in an admin toolkit."
    }
  }
}