{
  "$defs": {
    "ApiKey": {
      "description": "Public API Key metadata which never contains a secret verifier.",
      "properties": {
        "createdAt": {
          "description": "RFC 3339 issuance timestamp.",
          "type": "string"
        },
        "description": {
          "description": "Optional owner-provided context for where or why the key is used.",
          "type": [
            "string",
            "null"
          ]
        },
        "expiresAt": {
          "description": "RFC 3339 expiration timestamp.",
          "type": "string"
        },
        "id": {
          "description": "Public identifier used for key-management operations.",
          "type": "string"
        },
        "lastUsedAt": {
          "description": "RFC 3339 timestamp of the last successful authentication, absent until\nthe key is first used. Recorded coarsely rather than per request.",
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "description": "Owner-provided display name.",
          "type": "string"
        },
        "scope": {
          "$ref": "#/$defs/ApiKeyScope",
          "description": "Current delegated scope."
        },
        "status": {
          "$ref": "#/$defs/ApiKeyStatus",
          "description": "Current time-derived status."
        }
      },
      "required": [
        "id",
        "name",
        "createdAt",
        "expiresAt",
        "status",
        "scope"
      ],
      "type": "object"
    },
    "ApiKeyAction": {
      "description": "A policy action that may be delegated to an API Key.",
      "oneOf": [
        {
          "const": "providers:list",
          "description": "List visible Providers.",
          "type": "string"
        },
        {
          "const": "buckets:list",
          "description": "List visible Buckets.",
          "type": "string"
        },
        {
          "const": "buckets:get",
          "description": "Get Bucket metadata.",
          "type": "string"
        },
        {
          "const": "buckets:create",
          "description": "Create a Bucket.",
          "type": "string"
        },
        {
          "const": "buckets:delete",
          "description": "Delete a Bucket.",
          "type": "string"
        },
        {
          "const": "objects:list",
          "description": "List Objects.",
          "type": "string"
        },
        {
          "const": "objects:get",
          "description": "Get Object content.",
          "type": "string"
        },
        {
          "const": "objects:put",
          "description": "Create or replace Object content.",
          "type": "string"
        },
        {
          "const": "objects:delete",
          "description": "Delete Objects.",
          "type": "string"
        },
        {
          "const": "bucket-policies:get",
          "description": "Get a Bucket policy.",
          "type": "string"
        },
        {
          "const": "bucket-policies:put",
          "description": "Replace a Bucket policy.",
          "type": "string"
        },
        {
          "const": "bucket-policies:delete",
          "description": "Delete a Bucket policy.",
          "type": "string"
        },
        {
          "const": "bucket-policy-status:get",
          "description": "Get Bucket public-access status.",
          "type": "string"
        },
        {
          "const": "object-tags:get",
          "description": "Get Object tags.",
          "type": "string"
        },
        {
          "const": "object-tags:put",
          "description": "Replace Object tags.",
          "type": "string"
        },
        {
          "const": "object-tags:delete",
          "description": "Delete Object tags.",
          "type": "string"
        },
        {
          "const": "object-versions:list",
          "description": "List Object versions.",
          "type": "string"
        },
        {
          "const": "object-versions:get",
          "description": "Get one Object version.",
          "type": "string"
        },
        {
          "const": "object-versions:delete",
          "description": "Delete one Object version.",
          "type": "string"
        },
        {
          "const": "multipart-uploads:list",
          "description": "List multipart uploads.",
          "type": "string"
        },
        {
          "const": "multipart-upload-parts:list",
          "description": "List multipart upload parts.",
          "type": "string"
        },
        {
          "const": "multipart-uploads:abort",
          "description": "Abort a multipart upload.",
          "type": "string"
        }
      ]
    },
    "ApiKeyCreateParams": {
      "additionalProperties": false,
      "description": "Parameters for [`METHOD_API_KEY_CREATE`].",
      "properties": {
        "description": {
          "description": "Optional context for where or why the key is used.",
          "type": [
            "string",
            "null"
          ]
        },
        "expiresAt": {
          "description": "Mandatory RFC 3339 expiration timestamp.",
          "type": "string"
        },
        "name": {
          "description": "Human-readable key name.",
          "type": "string"
        },
        "scope": {
          "$ref": "#/$defs/ApiKeyScope",
          "description": "Allow-only authority delegated to the new key."
        }
      },
      "required": [
        "name",
        "expiresAt",
        "scope"
      ],
      "type": "object"
    },
    "ApiKeyCreateResult": {
      "description": "Result returned by [`METHOD_API_KEY_CREATE`].",
      "properties": {
        "apiKey": {
          "$ref": "#/$defs/ApiKey",
          "description": "Public metadata for the new key."
        },
        "secret": {
          "description": "Secret credential returned exactly once.",
          "type": "string"
        }
      },
      "required": [
        "apiKey",
        "secret"
      ],
      "type": "object"
    },
    "ApiKeyListParams": {
      "description": "Parameters for [`METHOD_API_KEY_LIST`].",
      "type": "object"
    },
    "ApiKeyListResult": {
      "description": "Result returned by [`METHOD_API_KEY_LIST`].",
      "properties": {
        "apiKeys": {
          "description": "Public metadata for keys owned by the Principal.",
          "items": {
            "$ref": "#/$defs/ApiKey"
          },
          "type": "array"
        }
      },
      "required": [
        "apiKeys"
      ],
      "type": "object"
    },
    "ApiKeyResource": {
      "description": "A resource selector restricting an API Key rule.",
      "oneOf": [
        {
          "additionalProperties": false,
          "description": "Every resource compatible with the rule action.",
          "properties": {
            "type": {
              "const": "all",
              "type": "string"
            }
          },
          "required": [
            "type"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "description": "One Provider and its descendants.",
          "properties": {
            "providerId": {
              "description": "Stable Provider identifier.",
              "type": "string"
            },
            "type": {
              "const": "provider",
              "type": "string"
            }
          },
          "required": [
            "type",
            "providerId"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "description": "One Bucket and its descendants.",
          "properties": {
            "bucketName": {
              "description": "Exact Bucket name.",
              "type": "string"
            },
            "providerId": {
              "description": "Stable Provider identifier.",
              "type": "string"
            },
            "type": {
              "const": "bucket",
              "type": "string"
            }
          },
          "required": [
            "type",
            "providerId",
            "bucketName"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "description": "Objects beneath one literal key prefix.",
          "properties": {
            "bucketName": {
              "description": "Exact Bucket name.",
              "type": "string"
            },
            "prefix": {
              "description": "Literal Object-key prefix.",
              "type": "string"
            },
            "providerId": {
              "description": "Stable Provider identifier.",
              "type": "string"
            },
            "type": {
              "const": "object-prefix",
              "type": "string"
            }
          },
          "required": [
            "type",
            "providerId",
            "bucketName",
            "prefix"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "description": "One exact Object key.",
          "properties": {
            "bucketName": {
              "description": "Exact Bucket name.",
              "type": "string"
            },
            "key": {
              "description": "Complete Object key.",
              "type": "string"
            },
            "providerId": {
              "description": "Stable Provider identifier.",
              "type": "string"
            },
            "type": {
              "const": "object",
              "type": "string"
            }
          },
          "required": [
            "type",
            "providerId",
            "bucketName",
            "key"
          ],
          "type": "object"
        }
      ]
    },
    "ApiKeyRevokeAllParams": {
      "description": "Parameters for [`METHOD_API_KEY_REVOKE_ALL`].",
      "type": "object"
    },
    "ApiKeyRevokeAllResult": {
      "description": "Result returned by [`METHOD_API_KEY_REVOKE_ALL`].",
      "properties": {
        "revokedCount": {
          "description": "Number of keys revoked by the operation.",
          "format": "uint32",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "revokedCount"
      ],
      "type": "object"
    },
    "ApiKeyRevokeParams": {
      "additionalProperties": false,
      "description": "Parameters for [`METHOD_API_KEY_REVOKE`].",
      "properties": {
        "id": {
          "description": "Public key identifier returned during creation or listing.",
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    },
    "ApiKeyRevokeResult": {
      "description": "Successful result of [`METHOD_API_KEY_REVOKE`].",
      "type": "object"
    },
    "ApiKeyRotateParams": {
      "additionalProperties": false,
      "description": "Parameters for [`METHOD_API_KEY_ROTATE`].",
      "properties": {
        "id": {
          "description": "Public key identifier returned during creation or listing.",
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    },
    "ApiKeyRotateResult": {
      "description": "Result returned by [`METHOD_API_KEY_ROTATE`].",
      "properties": {
        "secret": {
          "description": "Replacement credential returned exactly once.",
          "type": "string"
        }
      },
      "required": [
        "secret"
      ],
      "type": "object"
    },
    "ApiKeyScope": {
      "additionalProperties": false,
      "description": "The complete allow-only authority delegated to an API Key.",
      "properties": {
        "rules": {
          "description": "Validated allow rules.",
          "items": {
            "$ref": "#/$defs/ApiKeyScopeRule"
          },
          "type": "array"
        }
      },
      "required": [
        "rules"
      ],
      "type": "object"
    },
    "ApiKeyScopeRule": {
      "additionalProperties": false,
      "description": "One allow rule in an API Key scope.",
      "properties": {
        "actions": {
          "description": "Canonical actions delegated by the rule.",
          "items": {
            "$ref": "#/$defs/ApiKeyAction"
          },
          "type": "array"
        },
        "resources": {
          "description": "Resources to which every action applies.",
          "items": {
            "$ref": "#/$defs/ApiKeyResource"
          },
          "type": "array"
        }
      },
      "required": [
        "actions",
        "resources"
      ],
      "type": "object"
    },
    "ApiKeyStatus": {
      "description": "Whether an API Key can currently authenticate.",
      "oneOf": [
        {
          "const": "active",
          "description": "The key has not reached its expiration.",
          "type": "string"
        },
        {
          "const": "expired",
          "description": "The key has reached its expiration and cannot authenticate.",
          "type": "string"
        }
      ]
    },
    "ApiKeyUpdateScopeParams": {
      "additionalProperties": false,
      "description": "Parameters for [`METHOD_API_KEY_UPDATE_SCOPE`].",
      "properties": {
        "id": {
          "description": "Public key identifier returned during creation or listing.",
          "type": "string"
        },
        "scope": {
          "$ref": "#/$defs/ApiKeyScope",
          "description": "Complete replacement allow-only authority for the key."
        }
      },
      "required": [
        "id",
        "scope"
      ],
      "type": "object"
    },
    "ApiKeyUpdateScopeResult": {
      "description": "Successful result of [`METHOD_API_KEY_UPDATE_SCOPE`].",
      "type": "object"
    },
    "Bucket": {
      "description": "A Bucket returned by [`METHOD_BUCKET_LIST`].\n\nThe Bucket name is the Provider-side identifier used by later operations. The\ntimestamp is optional because not every S3-compatible implementation supplies\ncreation metadata.",
      "properties": {
        "createdAt": {
          "description": "RFC 3339 creation timestamp when supplied by the Provider.",
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "description": "S3 bucket name, unique within the selected Provider.",
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "BucketCreateParams": {
      "description": "Parameters for creating one Bucket through a configured Provider.\n\nThe request carries the complete Provider-scoped identity of the prospective\nBucket. Provider-specific placement and connection settings remain server\nconfiguration and do not cross the protocol boundary.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket to create.",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName"
      ],
      "type": "object"
    },
    "BucketCreateResult": {
      "description": "Successful result of [`METHOD_BUCKET_CREATE`].\n\nThe result is empty because the request already identifies the Bucket and no\ncreation metadata is portable across every supported S3-compatible Provider.\nA response containing this value means creation completed successfully;\nfailures are represented by the surrounding JSON-RPC error response.",
      "type": "object"
    },
    "BucketDeleteParams": {
      "description": "Parameters for deleting one Bucket through a configured Provider.\n\nThe protocol does not weaken Provider deletion rules. For example, a Provider\nmay reject deletion of a non-empty Bucket; such failures are returned as\nJSON-RPC errors rather than encoded in [`BucketDeleteResult`].",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket to delete.",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName"
      ],
      "type": "object"
    },
    "BucketDeleteResult": {
      "description": "Successful result of [`METHOD_BUCKET_DELETE`].\n\nThis value contains no fields because a successful response communicates only\nthat deletion completed. Missing Buckets, non-empty Buckets, and other\nProvider failures are represented by the surrounding JSON-RPC error response.",
      "type": "object"
    },
    "BucketGetParams": {
      "description": "Parameters for reading one explicitly named Bucket.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket to read.",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName"
      ],
      "type": "object"
    },
    "BucketGetResult": {
      "description": "Result returned by [`METHOD_BUCKET_GET`].",
      "properties": {
        "bucket": {
          "$ref": "#/$defs/Bucket",
          "description": "Portable metadata for the requested Bucket."
        }
      },
      "required": [
        "bucket"
      ],
      "type": "object"
    },
    "BucketListParams": {
      "description": "Parameters for [`METHOD_BUCKET_LIST`].",
      "properties": {
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        }
      },
      "required": [
        "providerId"
      ],
      "type": "object"
    },
    "BucketListResult": {
      "description": "Result returned by [`METHOD_BUCKET_LIST`].",
      "properties": {
        "buckets": {
          "description": "Buckets belonging to the requested Provider.",
          "items": {
            "$ref": "#/$defs/Bucket"
          },
          "type": "array"
        }
      },
      "required": [
        "buckets"
      ],
      "type": "object"
    },
    "BucketNameCheck": {
      "description": "One provider-owned naming rule used to build a form's string schema.",
      "properties": {
        "message": {
          "description": "Message shown when this check fails.",
          "type": "string"
        },
        "mustMatch": {
          "description": "Whether a match is required or forbidden.",
          "type": "boolean"
        },
        "pattern": {
          "description": "Regular expression in syntax shared by Rust regex and JavaScript Unicode regex.",
          "type": "string"
        }
      },
      "required": [
        "pattern",
        "mustMatch",
        "message"
      ],
      "type": "object"
    },
    "BucketPolicyDeleteParams": {
      "description": "Parameters for deleting one Bucket's native S3 policy.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket.",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName"
      ],
      "type": "object"
    },
    "BucketPolicyDeleteResult": {
      "description": "Successful result of [`METHOD_BUCKET_POLICY_DELETE`].\n\nThe empty result confirms that the Provider accepted the deletion. Any\nProvider-reported failure is returned as a JSON-RPC error.",
      "type": "object"
    },
    "BucketPolicyGetParams": {
      "description": "Parameters for reading one Bucket's native S3 policy.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket.",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName"
      ],
      "type": "object"
    },
    "BucketPolicyGetResult": {
      "description": "Result returned by [`METHOD_BUCKET_POLICY_GET`].\n\n`None` means the Bucket has no policy. When present, `policy` is the complete\nnative S3 policy document returned by the Provider.",
      "properties": {
        "policy": {
          "description": "Native S3 policy document, or `None` when no policy is attached."
        }
      },
      "type": "object"
    },
    "BucketPolicyPutParams": {
      "description": "Parameters for replacing one Bucket's native S3 policy.\n\nThe policy value must be a JSON object representing a complete native S3\npolicy document. Partial updates are not supported.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket.",
          "type": "string"
        },
        "policy": {
          "description": "Complete native S3 policy document to store."
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName",
        "policy"
      ],
      "type": "object"
    },
    "BucketPolicyPutResult": {
      "description": "Successful result of [`METHOD_BUCKET_POLICY_PUT`].\n\nThe empty result confirms that the Provider accepted the complete policy\ndocument. Provider validation failures are returned as JSON-RPC errors.",
      "type": "object"
    },
    "BucketPolicyStatusGetParams": {
      "description": "Parameters for reading one Bucket's policy-derived public-access status.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket.",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName"
      ],
      "type": "object"
    },
    "BucketPolicyStatusGetResult": {
      "description": "Result returned by [`METHOD_BUCKET_POLICY_STATUS_GET`].",
      "properties": {
        "isPublic": {
          "description": "Whether the Provider classifies the Bucket policy as public.",
          "type": "boolean"
        }
      },
      "required": [
        "isPublic"
      ],
      "type": "object"
    },
    "ClientCapabilities": {
      "description": "Protocol capabilities understood by a client.\n\nCapabilities describe optional wire behavior the client can consume. They are\nnot feature requests: callers must use the capabilities returned by the server\nas the authoritative description of what the connection supports.",
      "properties": {
        "batchRequests": {
          "description": "Whether the client can process batch responses.\n\nRevision 1 servers currently advertise batch requests as unsupported, so\nthis value does not enable batching by itself.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "ClientIdentity": {
      "description": "Identity supplied by a client during initialization.\n\nThis identifies the client implementation for diagnostics and future\ncompatibility decisions. It is self-asserted metadata and must not be treated\nas an authenticated user or device identity.",
      "properties": {
        "name": {
          "description": "Stable client implementation name.",
          "type": "string"
        },
        "version": {
          "description": "Human-readable client implementation version.",
          "type": "string"
        }
      },
      "required": [
        "name",
        "version"
      ],
      "type": "object"
    },
    "ClientNotification": {
      "oneOf": [
        {
          "not": {
            "required": [
              "id"
            ]
          },
          "properties": {
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "request/cancel",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/RequestCancelParams"
            }
          },
          "required": [
            "jsonrpc",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "not": {
            "required": [
              "id"
            ]
          },
          "properties": {
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "server/ping",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/PingParams"
            }
          },
          "required": [
            "jsonrpc",
            "method",
            "params"
          ],
          "type": "object"
        }
      ],
      "title": "ClientNotification"
    },
    "ClientRequest": {
      "oneOf": [
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "initialize",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/InitializeParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "server/ping",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/PingParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "api-key/create",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ApiKeyCreateParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "api-key/list",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ApiKeyListParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "api-key/revoke",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ApiKeyRevokeParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "api-key/rotate",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ApiKeyRotateParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "api-key/update-scope",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ApiKeyUpdateScopeParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "api-key/revoke-all",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ApiKeyRevokeAllParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "provider/list",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ProviderListParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "bucket/list",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/BucketListParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "bucket/get",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/BucketGetParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "bucket/create",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/BucketCreateParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "bucket/delete",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/BucketDeleteParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "bucket/policy/get",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/BucketPolicyGetParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "bucket/policy/put",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/BucketPolicyPutParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "bucket/policy/delete",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/BucketPolicyDeleteParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "bucket/policy/status/get",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/BucketPolicyStatusGetParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "object/list",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ObjectListParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "object/search",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ObjectSearchParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "object/get",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ObjectGetParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "object/preview",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ObjectPreviewParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "object/put",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ObjectPutParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "object/move",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ObjectMoveParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "object/copy",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ObjectCopyParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "object/transfer/create",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ObjectTransferCreateParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "object/delete",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ObjectDeleteParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "object/delete-many",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ObjectDeleteManyParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "object/prefix/delete",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ObjectPrefixDeleteParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "object/tags/get",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ObjectTagsGetParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "object/tags/put",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ObjectTagsPutParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "object/tags/delete",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ObjectTagsDeleteParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "object/versions/list",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ObjectVersionsListParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "object/version/get",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ObjectVersionGetParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "object/version/delete",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/ObjectVersionDeleteParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "multipart-upload/list",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/MultipartUploadListParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "multipart-upload/parts/list",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/MultipartUploadPartsListParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "method": {
              "const": "multipart-upload/abort",
              "type": "string"
            },
            "params": {
              "$ref": "#/$defs/MultipartUploadAbortParams"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "type": "object"
        }
      ],
      "title": "ClientRequest"
    },
    "ClientResponse": {
      "oneOf": [
        {
          "$ref": "#/$defs/ClientSuccessResponse"
        },
        {
          "$ref": "#/$defs/ErrorResponse"
        }
      ],
      "title": "ClientResponse"
    },
    "ClientSuccessResponse": {
      "anyOf": [
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/InitializeResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/PingResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ApiKeyCreateResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ApiKeyListResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ApiKeyRevokeResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ApiKeyRotateResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ApiKeyUpdateScopeResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ApiKeyRevokeAllResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ProviderListResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/BucketListResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/BucketGetResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/BucketCreateResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/BucketDeleteResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/BucketPolicyGetResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/BucketPolicyPutResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/BucketPolicyDeleteResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/BucketPolicyStatusGetResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ObjectListResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ObjectSearchResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ObjectGetResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ObjectPreviewResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ObjectPutResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ObjectMoveResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ObjectCopyResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ObjectTransferCreateResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ObjectDeleteResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ObjectDeleteManyResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ObjectPrefixDeleteResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ObjectTagsGetResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ObjectTagsPutResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ObjectTagsDeleteResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ObjectVersionsListResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ObjectVersionGetResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/ObjectVersionDeleteResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/MultipartUploadListResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/MultipartUploadPartsListResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {
              "$ref": "#/$defs/MultipartUploadAbortResult"
            }
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        }
      ],
      "title": "ClientSuccessResponse"
    },
    "ErrorCode": {
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "type": "integer"
    },
    "ErrorObject": {
      "description": "JSON-RPC error details.\n\n`message` is a short category label suitable for diagnostics. Stable,\nmachine-readable context belongs in `data`; server adapters must avoid placing\ncredentials, endpoint internals, or other sensitive operational details there.",
      "properties": {
        "code": {
          "$ref": "#/$defs/ErrorCode",
          "description": "Stable numeric error code."
        },
        "data": {
          "description": "Optional structured error context."
        },
        "message": {
          "description": "Stable short description of the error category.",
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ],
      "type": "object"
    },
    "ErrorResponse": {
      "description": "A JSON-RPC error response.",
      "properties": {
        "error": {
          "$ref": "#/$defs/ErrorObject",
          "description": "Stable machine-readable and human-readable error information."
        },
        "id": {
          "anyOf": [
            {
              "$ref": "#/$defs/RequestId"
            },
            {
              "type": "null"
            }
          ],
          "description": "Request identifier, or `null` when it could not be recovered."
        },
        "jsonrpc": {
          "$ref": "#/$defs/JsonRpcVersion",
          "description": "Strict JSON-RPC 2.0 marker."
        }
      },
      "required": [
        "jsonrpc",
        "error"
      ],
      "type": "object"
    },
    "InitializeParams": {
      "description": "Parameters for [`METHOD_INITIALIZE`].\n\n`protocol_revision` is the highest revision understood by the current client.\nRevision 1 currently requires an exact match rather than negotiating downward.",
      "properties": {
        "capabilities": {
          "$ref": "#/$defs/ClientCapabilities",
          "description": "Optional protocol behaviors understood by the client."
        },
        "clientInfo": {
          "$ref": "#/$defs/ClientIdentity",
          "description": "Information identifying the client implementation."
        },
        "protocolRevision": {
          "description": "Highest application-protocol revision supported by the client.",
          "format": "uint32",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "protocolRevision",
        "clientInfo",
        "capabilities"
      ],
      "type": "object"
    },
    "InitializeResult": {
      "description": "Negotiated result returned by [`METHOD_INITIALIZE`].\n\nClients should retain the Workspace identity for presentation and use the\nreturned server capabilities when choosing optional protocol behavior.",
      "properties": {
        "capabilities": {
          "$ref": "#/$defs/ServerCapabilities",
          "description": "Protocol behaviors provided by the server."
        },
        "protocolRevision": {
          "description": "Application-protocol revision selected by the server.",
          "format": "uint32",
          "minimum": 0,
          "type": "integer"
        },
        "serverInfo": {
          "$ref": "#/$defs/ServerIdentity",
          "description": "Information identifying the server implementation."
        },
        "workspace": {
          "$ref": "#/$defs/WorkspaceIdentity",
          "description": "Stable identity of the single Workspace represented by this server."
        }
      },
      "required": [
        "protocolRevision",
        "serverInfo",
        "workspace",
        "capabilities"
      ],
      "type": "object"
    },
    "InstanceAuthMetadata": {
      "description": "Authentication capability advertised by the instance bootstrap endpoint.",
      "properties": {
        "enabled": {
          "description": "Whether clients must establish an authenticated session.",
          "type": "boolean"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "InstanceMetadata": {
      "description": "Public instance metadata used by the HTTP bootstrap endpoint and bundled UI.\n\nThis contains deployment-facing labels and the public capabilities needed\nbefore a client establishes an application session.",
      "properties": {
        "auth": {
          "$ref": "#/$defs/InstanceAuthMetadata",
          "description": "Public authentication capability."
        },
        "name": {
          "description": "Public name of the S3 Lens deployment.",
          "type": "string"
        },
        "title": {
          "description": "Browser title for the deployment.",
          "type": "string"
        }
      },
      "required": [
        "name",
        "title",
        "auth"
      ],
      "type": "object"
    },
    "JsonRpcResponseEnvelope": {
      "oneOf": [
        {
          "properties": {
            "id": {
              "$ref": "#/$defs/RequestId"
            },
            "jsonrpc": {
              "$ref": "#/$defs/JsonRpcVersion"
            },
            "result": {}
          },
          "required": [
            "jsonrpc",
            "id",
            "result"
          ],
          "type": "object"
        },
        {
          "$ref": "#/$defs/ErrorResponse"
        }
      ],
      "title": "JsonRpcResponseEnvelope"
    },
    "JsonRpcVersion": {
      "const": "2.0",
      "type": "string"
    },
    "LogoutResponse": {
      "description": "JSON returned by POST /v1/auth/logout when provider logout is available.",
      "properties": {
        "endSessionUrl": {
          "description": "Identity provider logout URL.",
          "type": "string"
        }
      },
      "required": [
        "endSessionUrl"
      ],
      "type": "object",
      "x-s3lens-contract-export": true
    },
    "MultipartUpload": {
      "description": "One in-progress multipart upload.",
      "properties": {
        "initiatedAt": {
          "description": "RFC 3339 initiation timestamp when supplied by the Provider.",
          "type": [
            "string",
            "null"
          ]
        },
        "key": {
          "description": "Complete, opaque target Object key.",
          "type": "string"
        },
        "uploadId": {
          "description": "Opaque Provider-side upload identifier.",
          "type": "string"
        }
      },
      "required": [
        "key",
        "uploadId"
      ],
      "type": "object"
    },
    "MultipartUploadAbortParams": {
      "description": "Parameters for aborting one in-progress multipart upload.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket.",
          "type": "string"
        },
        "key": {
          "description": "Complete, opaque target Object key.",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        },
        "uploadId": {
          "description": "Opaque Provider-side upload identifier.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName",
        "key",
        "uploadId"
      ],
      "type": "object"
    },
    "MultipartUploadAbortResult": {
      "description": "Successful result of [`METHOD_MULTIPART_UPLOAD_ABORT`].\n\nThe empty result confirms that the Provider accepted the abort request. Any\nProvider-reported failure is returned as a JSON-RPC error.",
      "type": "object"
    },
    "MultipartUploadListParams": {
      "description": "Parameters for listing in-progress multipart uploads within one Bucket.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket.",
          "type": "string"
        },
        "cursor": {
          "description": "Opaque cursor returned by a previous multipart-upload page.",
          "type": [
            "string",
            "null"
          ]
        },
        "limit": {
          "description": "Optional maximum number of uploads requested for this page.",
          "format": "uint32",
          "minimum": 0,
          "type": [
            "integer",
            "null"
          ]
        },
        "prefix": {
          "description": "Optional key prefix used to restrict the listing.",
          "type": [
            "string",
            "null"
          ]
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName"
      ],
      "type": "object"
    },
    "MultipartUploadListResult": {
      "description": "Result returned by [`METHOD_MULTIPART_UPLOAD_LIST`].",
      "properties": {
        "nextCursor": {
          "description": "Opaque cursor for the next page, omitted when no next page exists.",
          "type": [
            "string",
            "null"
          ]
        },
        "uploads": {
          "description": "In-progress uploads in Provider order.",
          "items": {
            "$ref": "#/$defs/MultipartUpload"
          },
          "type": "array"
        }
      },
      "required": [
        "uploads"
      ],
      "type": "object"
    },
    "MultipartUploadPart": {
      "description": "One uploaded multipart part.",
      "properties": {
        "etag": {
          "description": "Provider-supplied entity tag when available.",
          "type": [
            "string",
            "null"
          ]
        },
        "lastModified": {
          "description": "RFC 3339 modification timestamp when supplied by the Provider.",
          "type": [
            "string",
            "null"
          ]
        },
        "partNumber": {
          "description": "One-based Provider-side part number.",
          "format": "uint32",
          "minimum": 0,
          "type": "integer"
        },
        "sizeBytes": {
          "description": "Part size in bytes.",
          "format": "uint64",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "partNumber",
        "sizeBytes"
      ],
      "type": "object"
    },
    "MultipartUploadPartsListParams": {
      "description": "Parameters for listing uploaded parts of one multipart upload.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket.",
          "type": "string"
        },
        "cursor": {
          "description": "Opaque cursor returned by a previous multipart-part page.",
          "type": [
            "string",
            "null"
          ]
        },
        "key": {
          "description": "Complete, opaque target Object key.",
          "type": "string"
        },
        "limit": {
          "description": "Optional maximum number of parts requested for this page.",
          "format": "uint32",
          "minimum": 0,
          "type": [
            "integer",
            "null"
          ]
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        },
        "uploadId": {
          "description": "Opaque Provider-side upload identifier.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName",
        "key",
        "uploadId"
      ],
      "type": "object"
    },
    "MultipartUploadPartsListResult": {
      "description": "Result returned by [`METHOD_MULTIPART_UPLOAD_PARTS_LIST`].",
      "properties": {
        "nextCursor": {
          "description": "Opaque cursor for the next page, omitted when no next page exists.",
          "type": [
            "string",
            "null"
          ]
        },
        "parts": {
          "description": "Uploaded parts in ascending Provider-side part order.",
          "items": {
            "$ref": "#/$defs/MultipartUploadPart"
          },
          "type": "array"
        }
      },
      "required": [
        "parts"
      ],
      "type": "object"
    },
    "ObjectCopyParams": {
      "description": "Parameters for copying the current Object to another Bucket or Provider.\n\nSource and destination may name different Buckets of one Provider or\ndifferent Providers of the Workspace. Only the current source Object is\ncopied and the source is left in place. Within one Provider the Provider\nperforms the copy and refuses an existing destination key; across Providers\nthe server streams the body from the source to the destination and replaces\nan existing destination, so clients check the destination first, as they do\nbefore an upload.",
      "properties": {
        "destination": {
          "$ref": "#/$defs/ObjectLocation",
          "description": "Location the copy is written to."
        },
        "source": {
          "$ref": "#/$defs/ObjectLocation",
          "description": "Object to copy."
        }
      },
      "required": [
        "source",
        "destination"
      ],
      "type": "object"
    },
    "ObjectCopyResult": {
      "description": "Successful result of [`METHOD_OBJECT_COPY`].\n\nThe empty result confirms that the destination Object exists with the\nsource's complete content. Provider failures are represented by the\nsurrounding JSON-RPC error response.",
      "type": "object"
    },
    "ObjectDeleteFailure": {
      "description": "Failure to delete one requested Object key.",
      "properties": {
        "code": {
          "description": "Stable failure category: `forbidden` or `providerRequestFailed`.",
          "type": "string"
        },
        "key": {
          "description": "Exact requested Object key that was not deleted.",
          "type": "string"
        },
        "message": {
          "description": "Client-safe explanation of the failure.",
          "type": "string"
        }
      },
      "required": [
        "key",
        "code",
        "message"
      ],
      "type": "object"
    },
    "ObjectDeleteManyParams": {
      "description": "Parameters for deleting up to 1,000 exact current Object keys.\n\nEach key is authorized independently, without normalization. Duplicate keys\nare deleted once. This mutation has no notification form.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket containing the Objects.",
          "type": "string"
        },
        "keys": {
          "description": "Complete, opaque Object keys to delete.",
          "items": {
            "type": "string"
          },
          "maxItems": 1000,
          "minItems": 1,
          "type": "array"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName",
        "keys"
      ],
      "type": "object"
    },
    "ObjectDeleteManyResult": {
      "description": "Per-key outcomes of [`METHOD_OBJECT_DELETE_MANY`].",
      "properties": {
        "deletedKeys": {
          "description": "Requested keys the Provider accepted for deletion, including absent keys.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "errors": {
          "description": "Requested keys rejected by authorization or the Provider.",
          "items": {
            "$ref": "#/$defs/ObjectDeleteFailure"
          },
          "type": "array"
        }
      },
      "required": [
        "deletedKeys",
        "errors"
      ],
      "type": "object"
    },
    "ObjectDeleteParams": {
      "description": "Parameters for deleting one exact Object from a Provider Bucket.\n\nThe three fields form the complete Provider-side Object identity. Adapters\nmust use these same values for authorization and for the deletion request.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket containing the Object.",
          "type": "string"
        },
        "key": {
          "description": "Complete, opaque Object key to delete without normalization.",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName",
        "key"
      ],
      "type": "object"
    },
    "ObjectDeleteResult": {
      "description": "Successful result of [`METHOD_OBJECT_DELETE`].\n\nThis value contains no fields because a successful response communicates only\nthat the Provider accepted the deletion. Any Provider-reported failure is\nrepresented by the surrounding JSON-RPC error response.",
      "type": "object"
    },
    "ObjectEntry": {
      "description": "Object metadata returned by [`METHOD_OBJECT_LIST`].\n\nEntries are Provider objects, not synthetic folder rows. Folder-like values\nproduced by a delimiter are returned separately in\n[`ObjectListResult::common_prefixes`].",
      "properties": {
        "etag": {
          "description": "Provider-supplied entity tag when available.\n\nAn entity tag is opaque Provider metadata and is not guaranteed to be an\nMD5 digest, especially for multipart or encrypted objects.",
          "type": [
            "string",
            "null"
          ]
        },
        "key": {
          "description": "Complete object key within the Bucket.",
          "type": "string"
        },
        "lastModified": {
          "description": "RFC 3339 modification timestamp when supplied by the Provider.",
          "type": [
            "string",
            "null"
          ]
        },
        "sizeBytes": {
          "description": "Object size in bytes.",
          "format": "uint64",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "key",
        "sizeBytes"
      ],
      "type": "object"
    },
    "ObjectGetParams": {
      "description": "Parameters for reading one exact Object.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket containing the Object.",
          "type": "string"
        },
        "key": {
          "description": "Complete, opaque Object key to read without normalization.",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName",
        "key"
      ],
      "type": "object"
    },
    "ObjectGetResult": {
      "description": "Result returned by [`METHOD_OBJECT_GET`].\n\nProtocol revision 1 carries complete Object bodies as padded RFC 4648 base64.\nHandlers must apply their configured decoded-size limit before retaining an\nObject body in memory.",
      "properties": {
        "contentBase64": {
          "contentEncoding": "base64",
          "description": "Complete Object body encoded with the standard padded base64 alphabet.",
          "type": "string"
        },
        "contentType": {
          "description": "Provider-supplied media type when available.",
          "type": [
            "string",
            "null"
          ]
        },
        "etag": {
          "description": "Provider-supplied entity tag when available.",
          "type": [
            "string",
            "null"
          ]
        },
        "lastModified": {
          "description": "RFC 3339 modification timestamp when supplied by the Provider.",
          "type": [
            "string",
            "null"
          ]
        },
        "sizeBytes": {
          "description": "Decoded Object size in bytes.",
          "format": "uint64",
          "minimum": 0,
          "type": "integer"
        },
        "versionId": {
          "description": "Provider-side version identifier when versioning produced one.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "contentBase64",
        "sizeBytes"
      ],
      "type": "object"
    },
    "ObjectListParams": {
      "description": "Parameters for [`METHOD_OBJECT_LIST`].",
      "properties": {
        "bucketName": {
          "description": "Name of the Bucket within the selected Provider.",
          "type": "string"
        },
        "cursor": {
          "description": "Opaque cursor returned by a previous page.",
          "type": [
            "string",
            "null"
          ]
        },
        "delimiter": {
          "description": "Optional delimiter used to group keys into common prefixes.",
          "type": [
            "string",
            "null"
          ]
        },
        "limit": {
          "description": "Optional maximum number of object keys requested for this page.\n\nValues above the S3 maximum are capped at 1,000 by the Provider adapter.",
          "format": "uint32",
          "minimum": 0,
          "type": [
            "integer",
            "null"
          ]
        },
        "prefix": {
          "description": "Optional key prefix used to restrict the listing.",
          "type": [
            "string",
            "null"
          ]
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName"
      ],
      "type": "object"
    },
    "ObjectListResult": {
      "description": "Result returned by [`METHOD_OBJECT_LIST`].",
      "properties": {
        "commonPrefixes": {
          "description": "Grouped key prefixes produced when a delimiter was requested.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "nextCursor": {
          "description": "Opaque cursor for the next page, omitted when no next page exists.",
          "type": [
            "string",
            "null"
          ]
        },
        "objects": {
          "description": "Object entries in this page.",
          "items": {
            "$ref": "#/$defs/ObjectEntry"
          },
          "type": "array"
        }
      },
      "required": [
        "objects",
        "commonPrefixes"
      ],
      "type": "object"
    },
    "ObjectLocation": {
      "description": "One Object address, used for both ends of a copy.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket containing the key.",
          "type": "string"
        },
        "key": {
          "description": "Complete, opaque Object key.",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName",
        "key"
      ],
      "type": "object"
    },
    "ObjectMoveParams": {
      "description": "Parameters for moving the current Object within one Provider Bucket.\n\nThe destination key must not already exist. Only the current source Object\nis copied; older source versions remain under the source key when Bucket\nversioning is enabled.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket containing both keys.",
          "type": "string"
        },
        "destinationKey": {
          "description": "Complete, opaque destination Object key.",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        },
        "sourceKey": {
          "description": "Complete, opaque current Object key.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName",
        "sourceKey",
        "destinationKey"
      ],
      "type": "object"
    },
    "ObjectMoveResult": {
      "description": "Successful result of [`METHOD_OBJECT_MOVE`].\n\nThe empty result confirms that the destination copy and source deletion both\ncompleted. Provider failures are represented by the surrounding JSON-RPC\nerror response.",
      "type": "object"
    },
    "ObjectPrefixDeleteParams": {
      "description": "Parameters for deleting all current Objects under one exact prefix.\n\nThe prefix must not be empty and must end in `/`. This keeps the operation\nscoped to a named folder-like region rather than turning it into an implicit\nBucket purge or a broad match on similarly named Objects.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket containing the Objects.",
          "type": "string"
        },
        "prefix": {
          "description": "Complete, non-empty folder prefix ending in `/`, without normalization.",
          "pattern": "[/]$",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName",
        "prefix"
      ],
      "type": "object"
    },
    "ObjectPrefixDeleteResult": {
      "description": "Successful result of [`METHOD_OBJECT_PREFIX_DELETE`].",
      "properties": {
        "deletedObjects": {
          "description": "Number of current Object keys successfully submitted for deletion.",
          "format": "uint64",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "deletedObjects"
      ],
      "type": "object"
    },
    "ObjectPreviewParams": {
      "description": "Parameters for previewing one exact Object.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket containing the Object.",
          "type": "string"
        },
        "key": {
          "description": "Complete, opaque Object key to preview without normalization.",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName",
        "key"
      ],
      "type": "object"
    },
    "ObjectPreviewResult": {
      "description": "Result returned by [`METHOD_OBJECT_PREVIEW`].\n\nUnsupported content is an expected successful result. Provider, authorization,\nand transport failures remain JSON-RPC errors.",
      "oneOf": [
        {
          "description": "Bounded, inert UTF-8 text.",
          "properties": {
            "contentType": {
              "description": "Provider-supplied media type when available.",
              "type": [
                "string",
                "null"
              ]
            },
            "kind": {
              "const": "text",
              "type": "string"
            },
            "sizeBytes": {
              "description": "Provider-reported complete Object size when available.",
              "format": "uint64",
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            },
            "text": {
              "description": "Text content rendered verbatim by clients.",
              "type": "string"
            },
            "truncated": {
              "description": "Whether content after the returned prefix was omitted.",
              "type": "boolean"
            }
          },
          "required": [
            "kind",
            "text",
            "truncated"
          ],
          "type": "object"
        },
        {
          "description": "Complete bytes for a verified, size-bounded raster image.",
          "properties": {
            "contentBase64": {
              "description": "Complete image body encoded with the standard padded base64 alphabet.",
              "type": "string"
            },
            "contentType": {
              "description": "Canonical media type detected from the image bytes.",
              "type": "string"
            },
            "kind": {
              "const": "image",
              "type": "string"
            },
            "sizeBytes": {
              "description": "Complete decoded image size in bytes.",
              "format": "uint64",
              "minimum": 0,
              "type": "integer"
            }
          },
          "required": [
            "kind",
            "contentBase64",
            "contentType",
            "sizeBytes"
          ],
          "type": "object"
        },
        {
          "description": "Expected result for content that preview deliberately will not render.",
          "properties": {
            "contentType": {
              "description": "Provider-supplied media type when available.",
              "type": [
                "string",
                "null"
              ]
            },
            "kind": {
              "const": "unavailable",
              "type": "string"
            },
            "reason": {
              "$ref": "#/$defs/ObjectPreviewUnavailableReason",
              "description": "Stable reason callers can translate into explanatory UI."
            },
            "sizeBytes": {
              "description": "Provider-reported complete Object size when available.",
              "format": "uint64",
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          },
          "required": [
            "kind",
            "reason"
          ],
          "type": "object"
        }
      ]
    },
    "ObjectPreviewUnavailableReason": {
      "description": "Why an Object cannot be represented by the bounded preview operation.",
      "oneOf": [
        {
          "const": "binary",
          "description": "The inspected bytes are not inert UTF-8 text or a supported raster image.",
          "type": "string"
        },
        {
          "const": "unsupportedMediaType",
          "description": "The media type is intentionally excluded from preview rendering.",
          "type": "string"
        },
        {
          "const": "imageTooLarge",
          "description": "A supported raster image exceeds the preview byte ceiling.",
          "type": "string"
        },
        {
          "const": "imageDimensionsTooLarge",
          "description": "A supported raster image exceeds the preview pixel ceiling.",
          "type": "string"
        },
        {
          "const": "invalidImage",
          "description": "Raster bytes identify a supported format but do not contain valid dimensions.",
          "type": "string"
        }
      ]
    },
    "ObjectPutParams": {
      "description": "Parameters for creating or replacing one exact Object.\n\nProtocol revision 1 carries complete Object bodies as padded RFC 4648 base64.\nHandlers must reject invalid base64 and enforce their configured decoded-size\nlimit before forwarding the body to a Provider.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the target Bucket.",
          "type": "string"
        },
        "contentBase64": {
          "contentEncoding": "base64",
          "description": "Complete Object body encoded with the standard padded base64 alphabet.",
          "type": "string"
        },
        "contentType": {
          "description": "Media type to store with the Object when supplied.",
          "type": [
            "string",
            "null"
          ]
        },
        "key": {
          "description": "Complete, opaque Object key to create or replace.",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName",
        "key",
        "contentBase64"
      ],
      "type": "object"
    },
    "ObjectPutResult": {
      "description": "Result returned by [`METHOD_OBJECT_PUT`].",
      "properties": {
        "etag": {
          "description": "Provider-supplied entity tag for the stored Object when available.",
          "type": [
            "string",
            "null"
          ]
        },
        "versionId": {
          "description": "Provider-side version identifier when versioning produced one.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "ObjectSearchFilters": {
      "additionalProperties": false,
      "description": "ANDed predicates for a bounded native S3 scan. Unknown predicates fail closed.",
      "properties": {
        "prefix": {
          "description": "Native key-prefix restriction, without delimiter grouping.",
          "type": [
            "string",
            "null"
          ]
        },
        "tags": {
          "default": [],
          "description": "Exact case-sensitive tag predicates. All must match.",
          "items": {
            "$ref": "#/$defs/ObjectSearchTagPredicate"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ObjectSearchParams": {
      "description": "Parameters for scanning one Bucket page for matching Object keys.\n\nMatching is a case-sensitive substring search over each complete Object key.\nThe optional limit bounds keys examined in this call rather than matches\nreturned, so sparse pages can contain fewer results than requested.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side Bucket name to search.",
          "type": "string"
        },
        "cursor": {
          "description": "Opaque cursor returned by a previous search page.",
          "type": [
            "string",
            "null"
          ]
        },
        "filters": {
          "anyOf": [
            {
              "$ref": "#/$defs/ObjectSearchFilters"
            },
            {
              "type": "null"
            }
          ],
          "description": "Optional predicates, accepted only when `objectSearchFilters` is advertised."
        },
        "limit": {
          "description": "Optional maximum number of Object keys examined in this call.\n\nValues above the S3 maximum are capped at 1,000 by the Provider adapter.",
          "format": "uint32",
          "minimum": 0,
          "type": [
            "integer",
            "null"
          ]
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        },
        "query": {
          "description": "Case-sensitive key substring; may be empty when structured filters restrict the scan.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName",
        "query"
      ],
      "type": "object"
    },
    "ObjectSearchResult": {
      "description": "One page of complete Object keys matching [`ObjectSearchParams::query`].",
      "properties": {
        "nextCursor": {
          "description": "Opaque cursor for the next scan page, omitted when the Bucket is exhausted.",
          "type": [
            "string",
            "null"
          ]
        },
        "objects": {
          "description": "Matching Object entries from the scanned Provider page.",
          "items": {
            "$ref": "#/$defs/ObjectEntry"
          },
          "type": "array"
        },
        "scan": {
          "anyOf": [
            {
              "$ref": "#/$defs/ObjectSearchScan"
            },
            {
              "type": "null"
            }
          ],
          "description": "Progress for a bounded filtered page. Absent for legacy literal searches."
        },
        "tagSets": {
          "additionalProperties": {
            "$ref": "#/$defs/ObjectSearchTagSet"
          },
          "description": "Complete native tag sets read for matching objects, never partial predicates.",
          "type": [
            "object",
            "null"
          ]
        }
      },
      "required": [
        "objects"
      ],
      "type": "object"
    },
    "ObjectSearchScan": {
      "description": "Counts never include objects hidden by listing authorization.",
      "properties": {
        "examinedVisible": {
          "description": "Listing-visible keys examined before cheap predicates.",
          "format": "uint32",
          "minimum": 0,
          "type": "integer"
        },
        "tagReadsAttempted": {
          "description": "Actual tag calls after per-object authorization.",
          "format": "uint32",
          "minimum": 0,
          "type": "integer"
        },
        "unreadable": {
          "description": "Visible candidates whose tags could not be evaluated.",
          "format": "uint32",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "examinedVisible",
        "tagReadsAttempted",
        "unreadable"
      ],
      "type": "object"
    },
    "ObjectSearchTagPredicate": {
      "additionalProperties": false,
      "description": "An absent value matches the existence of the key, including an empty value.",
      "properties": {
        "key": {
          "description": "Exact tag key.",
          "type": "string"
        },
        "value": {
          "description": "Exact tag value, or absent for key existence.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "key"
      ],
      "type": "object"
    },
    "ObjectSearchTagSet": {
      "description": "A complete tag observation suitable for the canonical per-object cache.",
      "properties": {
        "observedAt": {
          "description": "RFC 3339 time at which the read completed.",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Full native tag set.",
          "type": "object"
        }
      },
      "required": [
        "tags",
        "observedAt"
      ],
      "type": "object"
    },
    "ObjectTagsDeleteParams": {
      "description": "Parameters for deleting the complete tag set of one Object.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket containing the Object.",
          "type": "string"
        },
        "key": {
          "description": "Complete, opaque Object key.",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        },
        "versionId": {
          "description": "Exact Object version to update, or the current Object when absent.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "providerId",
        "bucketName",
        "key"
      ],
      "type": "object"
    },
    "ObjectTagsDeleteResult": {
      "description": "Successful result of [`METHOD_OBJECT_TAGS_DELETE`].\n\nThe empty result confirms that the Provider accepted the deletion. Any\nProvider-reported failure is returned as a JSON-RPC error.",
      "type": "object"
    },
    "ObjectTagsGetParams": {
      "description": "Parameters for reading the complete tag set of one Object.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket containing the Object.",
          "type": "string"
        },
        "key": {
          "description": "Complete, opaque Object key.",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        },
        "versionId": {
          "description": "Exact Object version to inspect, or the current Object when absent.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "providerId",
        "bucketName",
        "key"
      ],
      "type": "object"
    },
    "ObjectTagsGetResult": {
      "description": "Result returned by [`METHOD_OBJECT_TAGS_GET`].",
      "properties": {
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Complete tag set in deterministic key order.",
          "type": "object"
        }
      },
      "required": [
        "tags"
      ],
      "type": "object"
    },
    "ObjectTagsPutParams": {
      "description": "Parameters for replacing the complete tag set of one Object.\n\nS3 tag updates replace the existing set rather than merging individual keys.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket containing the Object.",
          "type": "string"
        },
        "key": {
          "description": "Complete, opaque Object key.",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Complete replacement tag set.",
          "type": "object"
        },
        "versionId": {
          "description": "Exact Object version to update, or the current Object when absent.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "providerId",
        "bucketName",
        "key",
        "tags"
      ],
      "type": "object"
    },
    "ObjectTagsPutResult": {
      "description": "Successful result of [`METHOD_OBJECT_TAGS_PUT`].\n\nThe empty result confirms that the Provider accepted the complete replacement\ntag set. Provider validation failures are returned as JSON-RPC errors.",
      "type": "object"
    },
    "ObjectTransferCreateParams": {
      "description": "Parameters for creating one single-use streaming transfer ticket.\n\nDownload tickets may select `version_id` and reject all upload metadata.\nUpload tickets require `content_length`, may include `content_type`, and\nalways address the current Object key.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket containing the Object.",
          "type": "string"
        },
        "contentLength": {
          "description": "Exact upload size in bytes, required only for uploads.",
          "format": "uint64",
          "minimum": 0,
          "type": [
            "integer",
            "null"
          ]
        },
        "contentType": {
          "description": "Media type to store with an upload when supplied.",
          "type": [
            "string",
            "null"
          ]
        },
        "direction": {
          "$ref": "#/$defs/TransferDirection",
          "description": "Whether the ticket authorizes a download or upload."
        },
        "key": {
          "description": "Complete, opaque Object key transferred without normalization.",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        },
        "versionId": {
          "description": "Exact Object version to download, or the current Object when absent.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "providerId",
        "bucketName",
        "key",
        "direction"
      ],
      "type": "object"
    },
    "ObjectTransferCreateResult": {
      "description": "Result returned by [`METHOD_OBJECT_TRANSFER_CREATE`].",
      "properties": {
        "expiresInSeconds": {
          "description": "Number of seconds after issuance when an unused ticket expires.",
          "format": "uint64",
          "minimum": 0,
          "type": "integer"
        },
        "url": {
          "description": "Relative same-origin HTTP route containing the opaque transfer ticket.",
          "type": "string"
        }
      },
      "required": [
        "url",
        "expiresInSeconds"
      ],
      "type": "object"
    },
    "ObjectVersionDeleteParams": {
      "description": "Parameters for deleting one exact Object version.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket containing the Object.",
          "type": "string"
        },
        "key": {
          "description": "Complete, opaque Object key.",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        },
        "versionId": {
          "description": "Exact Provider-side version identifier to delete.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName",
        "key",
        "versionId"
      ],
      "type": "object"
    },
    "ObjectVersionDeleteResult": {
      "description": "Successful result of [`METHOD_OBJECT_VERSION_DELETE`].\n\nThe empty result confirms that the Provider accepted deletion of the exact\nversion. Any Provider-reported failure is returned as a JSON-RPC error.",
      "type": "object"
    },
    "ObjectVersionEntry": {
      "description": "One Object version or delete marker returned by\n[`METHOD_OBJECT_VERSIONS_LIST`].",
      "properties": {
        "etag": {
          "description": "Provider-supplied entity tag when available.",
          "type": [
            "string",
            "null"
          ]
        },
        "isDeleteMarker": {
          "description": "Whether this entry represents a delete marker rather than Object content.",
          "type": "boolean"
        },
        "isLatest": {
          "description": "Whether this entry is the current version for its key.",
          "type": "boolean"
        },
        "key": {
          "description": "Complete, opaque Object key.",
          "type": "string"
        },
        "lastModified": {
          "description": "RFC 3339 modification timestamp when supplied by the Provider.",
          "type": [
            "string",
            "null"
          ]
        },
        "sizeBytes": {
          "description": "Object size in bytes, omitted for delete markers.",
          "format": "uint64",
          "minimum": 0,
          "type": [
            "integer",
            "null"
          ]
        },
        "versionId": {
          "description": "Provider-side version identifier.",
          "type": "string"
        }
      },
      "required": [
        "key",
        "versionId",
        "isLatest",
        "isDeleteMarker"
      ],
      "type": "object"
    },
    "ObjectVersionGetParams": {
      "description": "Parameters for reading one exact Object version.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket containing the Object.",
          "type": "string"
        },
        "key": {
          "description": "Complete, opaque Object key.",
          "type": "string"
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        },
        "versionId": {
          "description": "Exact Provider-side version identifier to read.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName",
        "key",
        "versionId"
      ],
      "type": "object"
    },
    "ObjectVersionGetResult": {
      "description": "Result returned by [`METHOD_OBJECT_VERSION_GET`].\n\nThe complete version body uses padded RFC 4648 base64, matching\n[`ObjectGetResult`].",
      "properties": {
        "contentBase64": {
          "contentEncoding": "base64",
          "description": "Complete Object-version body encoded with the standard padded base64\nalphabet.",
          "type": "string"
        },
        "contentType": {
          "description": "Provider-supplied media type when available.",
          "type": [
            "string",
            "null"
          ]
        },
        "etag": {
          "description": "Provider-supplied entity tag when available.",
          "type": [
            "string",
            "null"
          ]
        },
        "lastModified": {
          "description": "RFC 3339 modification timestamp when supplied by the Provider.",
          "type": [
            "string",
            "null"
          ]
        },
        "sizeBytes": {
          "description": "Decoded Object-version size in bytes.",
          "format": "uint64",
          "minimum": 0,
          "type": "integer"
        },
        "versionId": {
          "description": "Exact Provider-side version identifier that was read.",
          "type": "string"
        }
      },
      "required": [
        "contentBase64",
        "sizeBytes",
        "versionId"
      ],
      "type": "object"
    },
    "ObjectVersionsListParams": {
      "description": "Parameters for listing Object versions within one Bucket.",
      "properties": {
        "bucketName": {
          "description": "Exact Provider-side name of the Bucket.",
          "type": "string"
        },
        "cursor": {
          "description": "Opaque cursor returned by a previous version-listing page.",
          "type": [
            "string",
            "null"
          ]
        },
        "limit": {
          "description": "Optional maximum number of versions and delete markers requested.",
          "format": "uint32",
          "minimum": 0,
          "type": [
            "integer",
            "null"
          ]
        },
        "prefix": {
          "description": "Optional key prefix used to restrict the listing.",
          "type": [
            "string",
            "null"
          ]
        },
        "providerId": {
          "description": "Stable identifier returned by `provider/list`.",
          "type": "string"
        }
      },
      "required": [
        "providerId",
        "bucketName"
      ],
      "type": "object"
    },
    "ObjectVersionsListResult": {
      "description": "Result returned by [`METHOD_OBJECT_VERSIONS_LIST`].",
      "properties": {
        "nextCursor": {
          "description": "Opaque cursor for the next page, omitted when no next page exists.",
          "type": [
            "string",
            "null"
          ]
        },
        "versions": {
          "description": "Object versions and delete markers in Provider order.",
          "items": {
            "$ref": "#/$defs/ObjectVersionEntry"
          },
          "type": "array"
        }
      },
      "required": [
        "versions"
      ],
      "type": "object"
    },
    "PingParams": {
      "description": "Parameters for [`METHOD_SERVER_PING`].",
      "type": "object"
    },
    "PingResult": {
      "description": "Result returned by [`METHOD_SERVER_PING`].\n\nEchoing the implemented revision lets diagnostics detect a connection to an\nunexpected server without repeating full initialization.",
      "properties": {
        "protocolRevision": {
          "description": "Protocol revision implemented by the responding server.",
          "format": "uint32",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "protocolRevision"
      ],
      "type": "object"
    },
    "Provider": {
      "description": "Stable, displayable identity of a Provider in the current Workspace.\n\nThis is deliberately a projection rather than the server's complete Provider\nconfiguration. Regions, endpoints, addressing mode, and credentials never\ncross the protocol boundary.",
      "properties": {
        "bucketNameChecks": {
          "description": "Active creation-name checks in validation order. Empty disables local checks.\nAbsent on older servers that do not advertise naming rules.",
          "items": {
            "$ref": "#/$defs/BucketNameCheck"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "displayName": {
          "description": "Human-readable name shown to users.",
          "type": "string"
        },
        "iconDataUrl": {
          "description": "Embedded custom image, taking precedence over the backend icon.",
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "description": "Opaque identifier stable within the containing Workspace.",
          "type": "string"
        },
        "providerType": {
          "$ref": "#/$defs/ProviderType",
          "description": "Configured backend family used for presentation."
        }
      },
      "required": [
        "id",
        "displayName",
        "providerType"
      ],
      "type": "object"
    },
    "ProviderListParams": {
      "description": "Parameters for [`METHOD_PROVIDER_LIST`].",
      "type": "object"
    },
    "ProviderListResult": {
      "description": "Result returned by [`METHOD_PROVIDER_LIST`].\n\nProviders are returned in stable identifier order so clients receive\ndeterministic navigation without reordering the result themselves.",
      "properties": {
        "providers": {
          "description": "Providers visible in the current Workspace.",
          "items": {
            "$ref": "#/$defs/Provider"
          },
          "type": "array"
        }
      },
      "required": [
        "providers"
      ],
      "type": "object"
    },
    "ProviderType": {
      "description": "Public backend family of a configured Provider.",
      "oneOf": [
        {
          "const": "generic",
          "description": "Standard S3-compatible storage, including Garage.",
          "type": "string"
        },
        {
          "const": "aws",
          "description": "Amazon S3.",
          "type": "string"
        },
        {
          "const": "minio",
          "description": "MinIO.",
          "type": "string"
        },
        {
          "const": "azure",
          "description": "Azure Blob Storage.",
          "type": "string"
        }
      ]
    },
    "RequestCancelParams": {
      "description": "Parameters for [`METHOD_REQUEST_CANCEL`].\n\nCancellation is best effort and produces no response. Unknown, ambiguous,\ncompleted, or mutation request identifiers are ignored. HTTP has no retained\nconnection request state and ignores this notification.",
      "properties": {
        "requestId": {
          "$ref": "#/$defs/RequestId",
          "description": "Identifier of the read request to cancel."
        }
      },
      "required": [
        "requestId"
      ],
      "type": "object"
    },
    "RequestId": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "maximum": 9223372036854775807,
          "minimum": -9223372036854775808,
          "type": "integer"
        }
      ]
    },
    "ServerCapabilities": {
      "description": "Protocol capabilities provided by the server.\n\nClients should branch on these values instead of inferring behavior from the\nserver name or version.",
      "properties": {
        "apiKeys": {
          "default": false,
          "description": "Whether the authenticated server supports delegated API Keys.",
          "type": "boolean"
        },
        "batchRequests": {
          "description": "Whether the server accepts JSON-RPC batches.",
          "type": "boolean"
        },
        "objectCopy": {
          "default": false,
          "description": "Whether the server supports `object/copy` across Buckets and Providers.",
          "type": "boolean"
        },
        "objectSearchFilters": {
          "description": "Whether `object/search` accepts structured filters and returns bounded scan progress.",
          "type": "boolean"
        },
        "readCancellation": {
          "default": false,
          "description": "Whether `request/cancel` can cancel reads on this WebSocket connection.",
          "type": "boolean"
        },
        "streamingTransfers": {
          "default": false,
          "description": "Whether the server supports single-use HTTP streaming transfer tickets.",
          "type": "boolean"
        }
      },
      "required": [
        "batchRequests"
      ],
      "type": "object"
    },
    "ServerIdentity": {
      "description": "Identity returned by the S3 Lens server.\n\nClients may display this metadata or include it in diagnostics. Neither field\nidentifies the configured Workspace; that identity is returned separately by\n`initialize`.",
      "properties": {
        "name": {
          "description": "Stable server implementation name.",
          "type": "string"
        },
        "version": {
          "description": "Human-readable server implementation version.",
          "type": "string"
        }
      },
      "required": [
        "name",
        "version"
      ],
      "type": "object"
    },
    "SessionResponse": {
      "description": "JSON returned by GET /v1/auth/session.",
      "properties": {
        "groups": {
          "description": "Normalized group memberships.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "issuer": {
          "description": "Identity provider issuer.",
          "type": "string"
        },
        "name": {
          "description": "Optional display name, omitted when unavailable.",
          "type": "string"
        },
        "subject": {
          "description": "Subject identifier within the issuer.",
          "type": "string"
        }
      },
      "required": [
        "issuer",
        "subject",
        "groups"
      ],
      "type": "object",
      "x-s3lens-contract-export": true
    },
    "TokenResponse": {
      "description": "OAuth bearer token issued to the built-in desktop client.",
      "properties": {
        "access_token": {
          "description": "Opaque S3 Lens session credential; never an identity-provider token.",
          "minLength": 1,
          "type": "string"
        },
        "expires_in": {
          "description": "Remaining session lifetime in seconds.",
          "format": "uint64",
          "minimum": 1,
          "type": "integer"
        },
        "token_type": {
          "$ref": "#/$defs/TokenType",
          "description": "Authorization header scheme."
        }
      },
      "required": [
        "access_token",
        "token_type",
        "expires_in"
      ],
      "type": "object",
      "x-s3lens-contract-export": true
    },
    "TokenType": {
      "description": "Supported OAuth access-token presentation method.",
      "oneOf": [
        {
          "const": "Bearer",
          "description": "Present the token through an Authorization: Bearer header.",
          "type": "string"
        }
      ]
    },
    "TransferDirection": {
      "description": "Direction of bytes authorized by a streaming transfer ticket.",
      "oneOf": [
        {
          "const": "download",
          "description": "Stream Object bytes from the Provider to the client.",
          "type": "string"
        },
        {
          "const": "upload",
          "description": "Stream client bytes into a Provider Object.",
          "type": "string"
        }
      ]
    },
    "WorkspaceIdentity": {
      "description": "Stable, displayable identity of the Workspace represented by a server.\n\nOne server process represents exactly one Workspace. The identifier scopes\nconfigured Provider identities and lets a client distinguish two otherwise\nsimilar server connections; it is not an authorization boundary.",
      "properties": {
        "displayName": {
          "description": "Human-readable name shown to users.",
          "type": "string"
        },
        "id": {
          "description": "Opaque identifier stable for the lifetime of the Workspace configuration.",
          "type": "string"
        }
      },
      "required": [
        "id",
        "displayName"
      ],
      "type": "object"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "anyOf": [
    {
      "$ref": "#/$defs/ClientRequest"
    },
    {
      "$ref": "#/$defs/ClientNotification"
    },
    {
      "$ref": "#/$defs/ClientResponse"
    }
  ],
  "title": "S3LensProtocolV1",
  "x-s3lens-protocol": {
    "notifications": {
      "request/cancel": {
        "params": "RequestCancelParams",
        "summary": "Cancels an outstanding read on the same WebSocket connection."
      },
      "server/ping": {
        "params": "PingParams",
        "summary": "Invokes the liveness operation without requesting its result."
      }
    },
    "requests": {
      "api-key/create": {
        "params": "ApiKeyCreateParams",
        "result": "ApiKeyCreateResult",
        "summary": "Creates one delegated API Key for the interactive Principal."
      },
      "api-key/list": {
        "params": "ApiKeyListParams",
        "result": "ApiKeyListResult",
        "summary": "Lists API Keys owned by the interactive Principal."
      },
      "api-key/revoke": {
        "params": "ApiKeyRevokeParams",
        "result": "ApiKeyRevokeResult",
        "summary": "Revokes one API Key owned by the interactive Principal."
      },
      "api-key/revoke-all": {
        "params": "ApiKeyRevokeAllParams",
        "result": "ApiKeyRevokeAllResult",
        "summary": "Revokes every API Key owned by the interactive Principal."
      },
      "api-key/rotate": {
        "params": "ApiKeyRotateParams",
        "result": "ApiKeyRotateResult",
        "summary": "Replaces the secret for one live API Key owned by the interactive Principal."
      },
      "api-key/update-scope": {
        "params": "ApiKeyUpdateScopeParams",
        "result": "ApiKeyUpdateScopeResult",
        "summary": "Replaces the delegated scope for one live API Key owned by the interactive Principal."
      },
      "bucket/create": {
        "params": "BucketCreateParams",
        "result": "BucketCreateResult",
        "summary": "Creates one explicitly named Bucket through a Provider."
      },
      "bucket/delete": {
        "params": "BucketDeleteParams",
        "result": "BucketDeleteResult",
        "summary": "Deletes one explicitly named Bucket through a Provider."
      },
      "bucket/get": {
        "params": "BucketGetParams",
        "result": "BucketGetResult",
        "summary": "Gets one explicitly named Bucket from a Provider."
      },
      "bucket/list": {
        "params": "BucketListParams",
        "result": "BucketListResult",
        "summary": "Lists Buckets belonging to one Provider."
      },
      "bucket/policy/delete": {
        "params": "BucketPolicyDeleteParams",
        "result": "BucketPolicyDeleteResult",
        "summary": "Deletes the native S3 policy attached to one Bucket."
      },
      "bucket/policy/get": {
        "params": "BucketPolicyGetParams",
        "result": "BucketPolicyGetResult",
        "summary": "Gets the native S3 policy attached to one Bucket."
      },
      "bucket/policy/put": {
        "params": "BucketPolicyPutParams",
        "result": "BucketPolicyPutResult",
        "summary": "Replaces the native S3 policy attached to one Bucket."
      },
      "bucket/policy/status/get": {
        "params": "BucketPolicyStatusGetParams",
        "result": "BucketPolicyStatusGetResult",
        "summary": "Gets the policy-derived public-access status of one Bucket."
      },
      "initialize": {
        "params": "InitializeParams",
        "result": "InitializeResult",
        "summary": "Negotiates the protocol revision and connection capabilities."
      },
      "multipart-upload/abort": {
        "params": "MultipartUploadAbortParams",
        "result": "MultipartUploadAbortResult",
        "summary": "Aborts one in-progress multipart upload."
      },
      "multipart-upload/list": {
        "params": "MultipartUploadListParams",
        "result": "MultipartUploadListResult",
        "summary": "Lists in-progress multipart uploads in one Bucket."
      },
      "multipart-upload/parts/list": {
        "params": "MultipartUploadPartsListParams",
        "result": "MultipartUploadPartsListResult",
        "summary": "Lists uploaded parts belonging to one multipart upload."
      },
      "object/copy": {
        "params": "ObjectCopyParams",
        "result": "ObjectCopyResult",
        "summary": "Copies the current Object to a key in any Bucket of any Provider."
      },
      "object/delete": {
        "params": "ObjectDeleteParams",
        "result": "ObjectDeleteResult",
        "summary": "Deletes one exact Object key from a Provider Bucket."
      },
      "object/delete-many": {
        "params": "ObjectDeleteManyParams",
        "result": "ObjectDeleteManyResult",
        "summary": "Deletes up to 1,000 exact Object keys from one Provider Bucket."
      },
      "object/get": {
        "params": "ObjectGetParams",
        "result": "ObjectGetResult",
        "summary": "Gets one exact Object and its complete content."
      },
      "object/list": {
        "params": "ObjectListParams",
        "result": "ObjectListResult",
        "summary": "Lists Objects in one Provider Bucket."
      },
      "object/move": {
        "params": "ObjectMoveParams",
        "result": "ObjectMoveResult",
        "summary": "Moves the current Object to another key in the same Provider Bucket."
      },
      "object/prefix/delete": {
        "params": "ObjectPrefixDeleteParams",
        "result": "ObjectPrefixDeleteResult",
        "summary": "Deletes every current Object under one non-empty prefix."
      },
      "object/preview": {
        "params": "ObjectPreviewParams",
        "result": "ObjectPreviewResult",
        "summary": "Gets a bounded, inert preview of one exact Object."
      },
      "object/put": {
        "params": "ObjectPutParams",
        "result": "ObjectPutResult",
        "summary": "Creates or replaces one exact Object."
      },
      "object/search": {
        "params": "ObjectSearchParams",
        "result": "ObjectSearchResult",
        "summary": "Searches complete Object keys across one Provider Bucket."
      },
      "object/tags/delete": {
        "params": "ObjectTagsDeleteParams",
        "result": "ObjectTagsDeleteResult",
        "summary": "Deletes the complete tag set attached to one Object."
      },
      "object/tags/get": {
        "params": "ObjectTagsGetParams",
        "result": "ObjectTagsGetResult",
        "summary": "Gets the complete tag set attached to one Object."
      },
      "object/tags/put": {
        "params": "ObjectTagsPutParams",
        "result": "ObjectTagsPutResult",
        "summary": "Replaces the complete tag set attached to one Object."
      },
      "object/transfer/create": {
        "params": "ObjectTransferCreateParams",
        "result": "ObjectTransferCreateResult",
        "summary": "Creates a single-use HTTP streaming transfer ticket for one exact Object."
      },
      "object/version/delete": {
        "params": "ObjectVersionDeleteParams",
        "result": "ObjectVersionDeleteResult",
        "summary": "Deletes one exact Object version."
      },
      "object/version/get": {
        "params": "ObjectVersionGetParams",
        "result": "ObjectVersionGetResult",
        "summary": "Gets one exact Object version and its complete content."
      },
      "object/versions/list": {
        "params": "ObjectVersionsListParams",
        "result": "ObjectVersionsListResult",
        "summary": "Lists Object versions and delete markers in one Bucket."
      },
      "provider/list": {
        "params": "ProviderListParams",
        "result": "ProviderListResult",
        "summary": "Lists Providers configured in the current Workspace."
      },
      "server/ping": {
        "params": "PingParams",
        "result": "PingResult",
        "summary": "Checks that the initialized server can process a request."
      }
    },
    "revision": 1
  }
}
