diff --git a/.github/workflows/_sdk-acceptance.yml b/.github/workflows/_sdk-acceptance.yml
new file mode 100644
index 0000000..dad5faa
--- /dev/null
+++ b/.github/workflows/_sdk-acceptance.yml
@@ -0,0 +1,96 @@
+name: SDK acceptance
+
+on:
+ workflow_call:
+
+permissions:
+ contents: read
+
+jobs:
+ contract:
+ runs-on: ubuntu-latest
+ timeout-minutes: 20
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - name: Test contract workflow helpers
+ run: python3 -m unittest discover -s tests -v
+
+ - name: Verify contract provenance and generator pin
+ run: python3 -m scripts.check_contract_provenance
+
+ - name: Check OpenAPI backward compatibility
+ env:
+ PR_BASE_SHA: ${{ github.event.pull_request.base.sha }}
+ PUSH_BASE_SHA: ${{ github.event.before }}
+ run: |
+ set -euo pipefail
+ BASE_SHA="${PR_BASE_SHA:-${PUSH_BASE_SHA:-}}"
+ if [ -z "$BASE_SHA" ] || [ "$BASE_SHA" = "0000000000000000000000000000000000000000" ]; then
+ BASE_SHA="$(git rev-parse HEAD^)"
+ fi
+ python3 scripts/check_openapi_compatibility.py \
+ --base "${BASE_SHA}:sdk/openapi.json"
+
+ - name: Regenerate with pinned OpenAPI Generator
+ run: bash scripts/generate-sdks.sh sdk/openapi.json
+
+ - name: Check generated-code freshness
+ run: bash scripts/check-generated-freshness.sh
+
+ - name: Check generated operation coverage
+ run: python3 scripts/check_operation_coverage.py
+
+ - name: Check exact generated Python contract shape
+ run: |
+ python3 scripts/check_python_generated_contract.py
+ python3 scripts/postprocess_python_models.py --check
+ python3 scripts/generate_python_contract_manifest.py --check
+
+ - name: Check generated Python API reference
+ run: python3 scripts/generate_python_api_reference.py --check
+
+ python:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ python-version: ["3.10", "3.12", "3.14"]
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-python@v5
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install Python SDK and test dependencies
+ run: python -m pip install -e 'sdk/python[dev]'
+ - name: Test generated-client conformance and model policy
+ run: python -m pytest sdk/python/tests quality/python -q
+ - name: Build Python distributions
+ run: python -m build sdk/python
+
+ typescript:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
+ with:
+ node-version: "20"
+ cache: npm
+ cache-dependency-path: sdk/typescript/package-lock.json
+ - run: npm ci
+ working-directory: sdk/typescript
+ - run: npm run build
+ working-directory: sdk/typescript
+
+ go:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-go@v5
+ with:
+ go-version-file: sdk/go/go.mod
+ cache-dependency-path: sdk/go/go.sum
+ - run: go test ./...
+ working-directory: sdk/go
diff --git a/.github/workflows/generate-sdks.yml b/.github/workflows/generate-sdks.yml
index a4d6504..7f37162 100644
--- a/.github/workflows/generate-sdks.yml
+++ b/.github/workflows/generate-sdks.yml
@@ -14,58 +14,5 @@ concurrency:
cancel-in-progress: true
jobs:
- contract:
- runs-on: ubuntu-latest
- timeout-minutes: 20
- steps:
- - uses: actions/checkout@v4
-
- - name: Test contract workflow helpers
- run: python3 -m unittest discover -s tests -v
-
- - name: Verify contract provenance and generator pin
- run: python3 -m scripts.check_contract_provenance
-
- - name: Regenerate with pinned OpenAPI Generator
- run: bash scripts/generate-sdks.sh sdk/openapi.json
-
- - name: Check generated-code freshness
- run: bash scripts/check-generated-freshness.sh
-
- - name: Check generated operation coverage
- run: python3 scripts/check_operation_coverage.py
-
- python:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-python@v5
- with:
- python-version: "3.12"
- - run: python -m pip install -r sdk/python/requirements.txt -r sdk/python/test-requirements.txt
- - run: python -m pytest sdk/python/test -q
-
- typescript:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-node@v4
- with:
- node-version: "20"
- cache: npm
- cache-dependency-path: sdk/typescript/package-lock.json
- - run: npm ci
- working-directory: sdk/typescript
- - run: npm run build
- working-directory: sdk/typescript
-
- go:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-go@v5
- with:
- go-version-file: sdk/go/go.mod
- cache-dependency-path: sdk/go/go.sum
- - run: go test ./...
- working-directory: sdk/go
+ acceptance:
+ uses: ./.github/workflows/_sdk-acceptance.yml
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 7b72783..6b1644d 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -2,11 +2,11 @@ name: Publish SDKs
# Publishes the generated SDKs:
# - Python -> PyPI (agentdrive-sdk) via OIDC trusted publishing (no token)
-# - TS -> npm (@mnexa-ai/agentdrive-sdk) via NPM_TOKEN secret
+# - TS -> npm (@mnexa-ai/agentdrive-sdk) via OIDC trusted publishing
# - Go -> git tag go/vX.Y.Z (consumed with `go get .../go@vX.Y.Z`)
#
-# Publishes the version currently baked into the generated package metadata.
-# Bump by re-running "Generate SDKs" with SDK_VERSION set, then release.
+# Every publish is gated on the release/dispatch version matching sdk/SDK_VERSION
+# and every language's package metadata. Existing versions are hard failures.
on:
release:
@@ -14,15 +14,72 @@ on:
workflow_dispatch:
inputs:
version:
- description: "Version being published (e.g. 0.0.1), used for the Go tag."
+ description: "Exact SDK version being published (e.g. 0.1.0)."
required: true
- default: "0.0.1"
+ default: "0.1.0"
jobs:
+ release-policy:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - name: Require an approved main-branch commit
+ env:
+ EVENT_NAME: ${{ github.event_name }}
+ RELEASE_REF: ${{ github.ref }}
+ RELEASE_SHA: ${{ github.sha }}
+ run: |
+ set -euo pipefail
+ if [ "$EVENT_NAME" = "workflow_dispatch" ] && [ "$RELEASE_REF" != "refs/heads/main" ]; then
+ echo "Manual SDK publishing is allowed only from refs/heads/main; got $RELEASE_REF." >&2
+ exit 1
+ fi
+ if [ "$EVENT_NAME" = "release" ]; then
+ git fetch --no-tags origin \
+ '+refs/heads/main:refs/remotes/origin/main'
+ if ! git merge-base --is-ancestor "$RELEASE_SHA" refs/remotes/origin/main; then
+ echo "Release commit $RELEASE_SHA is not contained in origin/main." >&2
+ exit 1
+ fi
+ fi
+
+ acceptance:
+ needs: release-policy
+ uses: ./.github/workflows/_sdk-acceptance.yml
+
+ release-integrity:
+ needs: acceptance
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ outputs:
+ version: ${{ steps.version.outputs.version }}
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-python@v5
+ with:
+ python-version: "3.12"
+ - name: Match publish input to every package version
+ id: version
+ env:
+ REQUESTED_VERSION: ${{ github.event.release.tag_name || github.event.inputs.version }}
+ run: |
+ set -euo pipefail
+ VERSION="$(python3 scripts/check_release_version.py \
+ --requested "$REQUESTED_VERSION" \
+ --event "${{ github.event_name }}")"
+ echo "version=$VERSION" >> "$GITHUB_OUTPUT"
+
pypi:
+ needs: [acceptance, release-integrity]
runs-on: ubuntu-latest
environment: pypi
permissions:
+ contents: read
id-token: write # OIDC trusted publishing
steps:
- uses: actions/checkout@v4
@@ -38,9 +95,9 @@ jobs:
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: sdk/python/dist
- skip-existing: true
npm:
+ needs: [acceptance, release-integrity]
runs-on: ubuntu-latest
permissions:
id-token: write # OIDC trusted publishing (no NPM token)
@@ -57,25 +114,12 @@ jobs:
- name: Build & publish (OIDC, no token)
working-directory: sdk/typescript
run: |
- npm install
+ npm ci
npm run build
- VERSION="$(node -p "require('./package.json').version")"
- if npm view "@mnexa-ai/agentdrive-sdk@${VERSION}" version >/dev/null 2>&1; then
- echo "npm: @mnexa-ai/agentdrive-sdk@${VERSION} already published — skipping."
- exit 0
- fi
- # `npm view` reads a replica that lags the authoritative write path,
- # so a freshly/concurrently published version can still 403 here.
- # Treat "cannot publish over previously published" as success.
- set +e
- OUT="$(npm publish --access public 2>&1)"; CODE=$?
- set -e
- printf '%s\n' "$OUT"
- if [ "$CODE" -ne 0 ] && ! printf '%s' "$OUT" | grep -q "cannot publish over the previously published versions"; then
- exit "$CODE"
- fi
+ npm publish --access public
go-tag:
+ needs: [acceptance, release-integrity]
runs-on: ubuntu-latest
permissions:
contents: write
@@ -84,16 +128,16 @@ jobs:
with:
fetch-depth: 0
- name: Create Go submodule version tag
+ env:
+ VERSION: ${{ needs.release-integrity.outputs.version }}
run: |
set -euo pipefail
- RAW="${{ github.event.inputs.version || github.event.release.tag_name }}"
- VERSION="${RAW#v}"
TAG="sdk/go/v${VERSION}"
git config user.name "agentdrive-bot"
git config user.email "support@agentdrive.run"
if git rev-parse "$TAG" >/dev/null 2>&1; then
- echo "Tag $TAG already exists."
- else
- git tag "$TAG"
- git push origin "$TAG"
+ echo "Refusing to reuse immutable tag $TAG." >&2
+ exit 1
fi
+ git tag "$TAG"
+ git push origin "$TAG"
diff --git a/README.md b/README.md
index cb20945..c6e0cb7 100644
--- a/README.md
+++ b/README.md
@@ -58,7 +58,9 @@ Full paste-ready blocks: [`docs/add-to-your-agent.md`](docs/add-to-your-agent.md
Generated reproducibly from the reviewed AgentDrive contract via pinned
[OpenAPI Generator](https://openapi-generator.tech/). See
-[`sdk/README.md`](sdk/README.md).
+[`sdk/README.md`](sdk/README.md). The Phase 1 Python package includes complete
+sync and async generated clients; its exact callable and wire reference is
+[`docs/python-sdk-api-reference.md`](docs/python-sdk-api-reference.md).
```bash
# Python (once published)
@@ -71,7 +73,9 @@ npm install @mnexa-ai/agentdrive-sdk
go get github.com/Mnexa-AI/agentdrive-sdk/sdk/go
```
-> The bare `agentdrive` package on PyPI is the [stdio MCP companion](https://pypi.org/project/agentdrive/); the REST SDK ships as `agentdrive-sdk`.
+> The bare `agentdrive` name on PyPI is a parked `0.0.1` placeholder. The old
+> stdio MCP companion is retired; local-file transfers use the hosted MCP upload
+> session tools or this REST SDK. The REST SDK ships as `agentdrive-sdk`.
## Links
diff --git a/docs/python-sdk-api-reference.md b/docs/python-sdk-api-reference.md
new file mode 100644
index 0000000..7db0a38
--- /dev/null
+++ b/docs/python-sdk-api-reference.md
@@ -0,0 +1,4384 @@
+
+# AgentDrive Python generated-core API reference
+
+This reference describes the exact OpenAPI wire surface wrapped by both the
+synchronous and asynchronous generated Python cores. The ergonomic SDK facade
+is documented separately. Callable signatures and docstrings below are parsed
+from the committed generated source; the reference check fails if either client
+is absent or drifts from the contract.
+
+- Contract SHA-256: `dd8145c12035f5827e9056d40c0ae9e56f1892c98580f81d5f005007ef7a0f6a`
+- Operations: **42** (39 bearer-authenticated, 3 anonymous)
+- AgentDrive source commit: `31cd35c8e12aef1cbee228e965289107cb51092c`
+- Generator image: `openapitools/openapi-generator-cli:v7.24.0@sha256:5bf3dc75f764c584da8e3344c51b2f3f1e74703461d46a035b5ac1d31515cc88`
+
+## Operations
+
+### artifacts
+
+#### `artifacts_list`
+
+`GET /v0/drives/{drive_id}/artifacts` — List Artifacts
+
+Authentication: **bearer token**.
+
+List the drive's artifacts, newest-first (keyset paginated). ``lifecycle`` (active|deleted|all) exposes soft-deleted artifacts. ``parent_id`` / ``name`` / ``content_type`` / ``label`` are exact-match filters; ``updated_after`` / ``updated_before`` are inclusive bounds. Unknown query parameters are rejected.
+
+Generated API class: `ArtifactsApi`
+
+Synchronous callables:
+
+```python
+def artifacts_list(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, parent_id: Optional[StrictStr] = None, name: Optional[StrictStr] = None, content_type: Optional[StrictStr] = None, label: Optional[StrictStr] = None, updated_after: Optional[datetime] = None, updated_before: Optional[datetime] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ArtifactListOut
+def artifacts_list_with_http_info(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, parent_id: Optional[StrictStr] = None, name: Optional[StrictStr] = None, content_type: Optional[StrictStr] = None, label: Optional[StrictStr] = None, updated_after: Optional[datetime] = None, updated_before: Optional[datetime] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ArtifactListOut]
+def artifacts_list_without_preload_content(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, parent_id: Optional[StrictStr] = None, name: Optional[StrictStr] = None, content_type: Optional[StrictStr] = None, label: Optional[StrictStr] = None, updated_after: Optional[datetime] = None, updated_before: Optional[datetime] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def artifacts_list(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, parent_id: Optional[StrictStr] = None, name: Optional[StrictStr] = None, content_type: Optional[StrictStr] = None, label: Optional[StrictStr] = None, updated_after: Optional[datetime] = None, updated_before: Optional[datetime] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ArtifactListOut
+async def artifacts_list_with_http_info(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, parent_id: Optional[StrictStr] = None, name: Optional[StrictStr] = None, content_type: Optional[StrictStr] = None, label: Optional[StrictStr] = None, updated_after: Optional[datetime] = None, updated_before: Optional[datetime] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ArtifactListOut]
+async def artifacts_list_without_preload_content(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, parent_id: Optional[StrictStr] = None, name: Optional[StrictStr] = None, content_type: Optional[StrictStr] = None, label: Optional[StrictStr] = None, updated_after: Optional[datetime] = None, updated_before: Optional[datetime] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+List Artifacts
+
+List the drive's artifacts, newest-first (keyset paginated). ``lifecycle`` (active|deleted|all) exposes soft-deleted artifacts. ``parent_id`` / ``name`` / ``content_type`` / ``label`` are exact-match filters; ``updated_after`` / ``updated_before`` are inclusive bounds. Unknown query parameters are rejected.
+
+:param drive_id: (required)
+:type drive_id: str
+:param lifecycle:
+:type lifecycle: str
+:param limit:
+:type limit: int
+:param cursor:
+:type cursor: str
+:param parent_id:
+:type parent_id: str
+:param name:
+:type name: str
+:param content_type:
+:type content_type: str
+:param label:
+:type label: str
+:param updated_after:
+:type updated_after: datetime
+:param updated_before:
+:type updated_before: datetime
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `lifecycle` | `query` | no | `string` | — |
+| `limit` | `query` | no | `integer` or `null` | — |
+| `cursor` | `query` | no | `string` or `null` | — |
+| `parent_id` | `query` | no | `string` or `null` | — |
+| `name` | `query` | no | `string` or `null` | — |
+| `content_type` | `query` | no | `string` or `null` | — |
+| `label` | `query` | no | `string` or `null` | — |
+| `updated_after` | `query` | no | `string(date-time)` or `null` | — |
+| `updated_before` | `query` | no | `string(date-time)` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`ArtifactListOut`](#model-artifactlistout) | `ArtifactListOut` | `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `artifacts_create`
+
+`POST /v0/drives/{drive_id}/artifacts` — Create Artifact
+
+Authentication: **bearer token**.
+
+Create one artifact with inline content — multipart only. Multipart only (415 for a JSON body). Parts: parent_id, name, metadata, content (bytes), content_type, sha256. parent_id, name, and content are required.
+
+Generated API class: `ArtifactsApi`
+
+Synchronous callables:
+
+```python
+def artifacts_create(drive_id: StrictStr, idempotency_key: Optional[StrictStr], content: Annotated[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], Field(description='The artifact bytes.')], name: Annotated[StrictStr, Field(description='Artifact name.')], parent_id: Annotated[StrictStr, Field(description='Destination folder id (fld_*).')], authorization: Optional[StrictStr] = None, content_type: Annotated[Optional[StrictStr], Field(description='Declared media type.')] = None, metadata: Annotated[Optional[Dict[str, Any]], Field(description='Free-form JSON metadata.')] = None, sha256: Annotated[Optional[StrictStr], Field(description='Optional content sha256 for verification.')] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ArtifactOut
+def artifacts_create_with_http_info(drive_id: StrictStr, idempotency_key: Optional[StrictStr], content: Annotated[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], Field(description='The artifact bytes.')], name: Annotated[StrictStr, Field(description='Artifact name.')], parent_id: Annotated[StrictStr, Field(description='Destination folder id (fld_*).')], authorization: Optional[StrictStr] = None, content_type: Annotated[Optional[StrictStr], Field(description='Declared media type.')] = None, metadata: Annotated[Optional[Dict[str, Any]], Field(description='Free-form JSON metadata.')] = None, sha256: Annotated[Optional[StrictStr], Field(description='Optional content sha256 for verification.')] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ArtifactOut]
+def artifacts_create_without_preload_content(drive_id: StrictStr, idempotency_key: Optional[StrictStr], content: Annotated[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], Field(description='The artifact bytes.')], name: Annotated[StrictStr, Field(description='Artifact name.')], parent_id: Annotated[StrictStr, Field(description='Destination folder id (fld_*).')], authorization: Optional[StrictStr] = None, content_type: Annotated[Optional[StrictStr], Field(description='Declared media type.')] = None, metadata: Annotated[Optional[Dict[str, Any]], Field(description='Free-form JSON metadata.')] = None, sha256: Annotated[Optional[StrictStr], Field(description='Optional content sha256 for verification.')] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def artifacts_create(drive_id: StrictStr, idempotency_key: Optional[StrictStr], content: Annotated[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], Field(description='The artifact bytes.')], name: Annotated[StrictStr, Field(description='Artifact name.')], parent_id: Annotated[StrictStr, Field(description='Destination folder id (fld_*).')], authorization: Optional[StrictStr] = None, content_type: Annotated[Optional[StrictStr], Field(description='Declared media type.')] = None, metadata: Annotated[Optional[Dict[str, Any]], Field(description='Free-form JSON metadata.')] = None, sha256: Annotated[Optional[StrictStr], Field(description='Optional content sha256 for verification.')] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ArtifactOut
+async def artifacts_create_with_http_info(drive_id: StrictStr, idempotency_key: Optional[StrictStr], content: Annotated[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], Field(description='The artifact bytes.')], name: Annotated[StrictStr, Field(description='Artifact name.')], parent_id: Annotated[StrictStr, Field(description='Destination folder id (fld_*).')], authorization: Optional[StrictStr] = None, content_type: Annotated[Optional[StrictStr], Field(description='Declared media type.')] = None, metadata: Annotated[Optional[Dict[str, Any]], Field(description='Free-form JSON metadata.')] = None, sha256: Annotated[Optional[StrictStr], Field(description='Optional content sha256 for verification.')] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ArtifactOut]
+async def artifacts_create_without_preload_content(drive_id: StrictStr, idempotency_key: Optional[StrictStr], content: Annotated[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], Field(description='The artifact bytes.')], name: Annotated[StrictStr, Field(description='Artifact name.')], parent_id: Annotated[StrictStr, Field(description='Destination folder id (fld_*).')], authorization: Optional[StrictStr] = None, content_type: Annotated[Optional[StrictStr], Field(description='Declared media type.')] = None, metadata: Annotated[Optional[Dict[str, Any]], Field(description='Free-form JSON metadata.')] = None, sha256: Annotated[Optional[StrictStr], Field(description='Optional content sha256 for verification.')] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Create Artifact
+
+Create one artifact with inline content — multipart only. Multipart only (415 for a JSON body). Parts: parent_id, name, metadata, content (bytes), content_type, sha256. parent_id, name, and content are required.
+
+:param drive_id: (required)
+:type drive_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param content: The artifact bytes. (required)
+:type content: bytes
+:param name: Artifact name. (required)
+:type name: str
+:param parent_id: Destination folder id (fld_*). (required)
+:type parent_id: str
+:param authorization:
+:type authorization: str
+:param content_type: Declared media type.
+:type content_type: str
+:param metadata: Free-form JSON metadata.
+:type metadata: object
+:param sha256: Optional content sha256 for verification.
+:type sha256: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Request body (required):
+
+| Content type | Schema |
+|---|---|
+| `multipart/form-data` | [`object#f872091b96e1`](#inline-schema-object-f872091b96e1) |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `201` | `application/json` | [`ArtifactOut`](#model-artifactout) | `ArtifactOut` | `ETag`, `Location`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `artifacts_delete`
+
+`DELETE /v0/drives/{drive_id}/artifacts/{artifact_id}` — Delete Artifact
+
+Authentication: **bearer token**.
+
+Soft-delete one artifact (its versions stay).
+
+Generated API class: `ArtifactsApi`
+
+Synchronous callables:
+
+```python
+def artifacts_delete(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ArtifactOut
+def artifacts_delete_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ArtifactOut]
+def artifacts_delete_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def artifacts_delete(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ArtifactOut
+async def artifacts_delete_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ArtifactOut]
+async def artifacts_delete_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Delete Artifact
+
+Soft-delete one artifact (its versions stay).
+
+:param drive_id: (required)
+:type drive_id: str
+:param artifact_id: (required)
+:type artifact_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param if_match: (required)
+:type if_match: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `artifact_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `If-Match` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`ArtifactOut`](#model-artifactout) | `ArtifactOut` | `ETag`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `artifacts_read`
+
+`GET /v0/drives/{drive_id}/artifacts/{artifact_id}` — Read Artifact
+
+Authentication: **bearer token**.
+
+Read one active artifact. ``If-None-Match`` short-circuits to 304.
+
+Generated API class: `ArtifactsApi`
+
+Synchronous callables:
+
+```python
+def artifacts_read(drive_id: StrictStr, artifact_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ArtifactOut
+def artifacts_read_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ArtifactOut]
+def artifacts_read_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def artifacts_read(drive_id: StrictStr, artifact_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ArtifactOut
+async def artifacts_read_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ArtifactOut]
+async def artifacts_read_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Read Artifact
+
+Read one active artifact. ``If-None-Match`` short-circuits to 304.
+
+:param drive_id: (required)
+:type drive_id: str
+:param artifact_id: (required)
+:type artifact_id: str
+:param if_none_match:
+:type if_none_match: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `artifact_id` | `path` | yes | `string` | — |
+| `If-None-Match` | `header` | no | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`ArtifactOut`](#model-artifactout) | `ArtifactOut` | `ETag`, `X-Request-Id` |
+| `304` | — | — | — | `ETag`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `artifacts_update`
+
+`PATCH /v0/drives/{drive_id}/artifacts/{artifact_id}` — Update Artifact
+
+Authentication: **bearer token**.
+
+Rename / move / set metadata or labels. At least one field required.
+
+Generated API class: `ArtifactsApi`
+
+Synchronous callables:
+
+```python
+def artifacts_update(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], artifact_update_in: ArtifactUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ArtifactOut
+def artifacts_update_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], artifact_update_in: ArtifactUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ArtifactOut]
+def artifacts_update_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], artifact_update_in: ArtifactUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def artifacts_update(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], artifact_update_in: ArtifactUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ArtifactOut
+async def artifacts_update_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], artifact_update_in: ArtifactUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ArtifactOut]
+async def artifacts_update_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], artifact_update_in: ArtifactUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Update Artifact
+
+Rename / move / set metadata or labels. At least one field required.
+
+:param drive_id: (required)
+:type drive_id: str
+:param artifact_id: (required)
+:type artifact_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param if_match: (required)
+:type if_match: str
+:param artifact_update_in: (required)
+:type artifact_update_in: ArtifactUpdateIn
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `artifact_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `If-Match` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Request body (required):
+
+| Content type | Schema |
+|---|---|
+| `application/json` | [`ArtifactUpdateIn`](#model-artifactupdatein) |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`ArtifactOut`](#model-artifactout) | `ArtifactOut` | `ETag`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `artifacts_content`
+
+`GET /v0/drives/{drive_id}/artifacts/{artifact_id}/content` — Read Artifact Content
+
+Authentication: **bearer token**.
+
+Download the head version's bytes — stream or 307 signed URL.
+
+Generated API class: `ArtifactsApi`
+
+Synchronous callables:
+
+```python
+def artifacts_content(drive_id: StrictStr, artifact_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> bytes
+def artifacts_content_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[bytes]
+def artifacts_content_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def artifacts_content(drive_id: StrictStr, artifact_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> bytes
+async def artifacts_content_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[bytes]
+async def artifacts_content_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Read Artifact Content
+
+Download the head version's bytes — stream or 307 signed URL.
+
+:param drive_id: (required)
+:type drive_id: str
+:param artifact_id: (required)
+:type artifact_id: str
+:param if_none_match:
+:type if_none_match: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `artifact_id` | `path` | yes | `string` | — |
+| `If-None-Match` | `header` | no | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/octet-stream` | `string(binary)` | `bytes` | `X-Request-Id` |
+| `304` | — | — | — | `ETag`, `X-Request-Id` |
+| `307` | — | — | — | `Location`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `artifacts_copy`
+
+`POST /v0/drives/{drive_id}/artifacts/{artifact_id}/copy` — Copy Artifact
+
+Authentication: **bearer token**.
+
+Copy one artifact within the same drive. Cross-drive copy is out of v0 scope and rejected (400 INVALID_ARGUMENT). ``destination_drive_id`` must equal the source drive when present. Materializes the artifact + its selected version synchronously → 201. ``If-Match`` is optional; when present it is validated against the source revision (412 stale).
+
+Generated API class: `ArtifactsApi`
+
+Synchronous callables:
+
+```python
+def artifacts_copy(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], artifact_copy_in: ArtifactCopyIn, if_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ArtifactOut
+def artifacts_copy_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], artifact_copy_in: ArtifactCopyIn, if_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ArtifactOut]
+def artifacts_copy_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], artifact_copy_in: ArtifactCopyIn, if_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def artifacts_copy(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], artifact_copy_in: ArtifactCopyIn, if_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ArtifactOut
+async def artifacts_copy_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], artifact_copy_in: ArtifactCopyIn, if_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ArtifactOut]
+async def artifacts_copy_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], artifact_copy_in: ArtifactCopyIn, if_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Copy Artifact
+
+Copy one artifact within the same drive. Cross-drive copy is out of v0 scope and rejected (400 INVALID_ARGUMENT). ``destination_drive_id`` must equal the source drive when present. Materializes the artifact + its selected version synchronously → 201. ``If-Match`` is optional; when present it is validated against the source revision (412 stale).
+
+:param drive_id: (required)
+:type drive_id: str
+:param artifact_id: (required)
+:type artifact_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param artifact_copy_in: (required)
+:type artifact_copy_in: ArtifactCopyIn
+:param if_match:
+:type if_match: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `artifact_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `If-Match` | `header` | no | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Request body (required):
+
+| Content type | Schema |
+|---|---|
+| `application/json` | [`ArtifactCopyIn`](#model-artifactcopyin) |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `201` | `application/json` | [`ArtifactOut`](#model-artifactout) | `ArtifactOut` | `ETag`, `Location`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `artifacts_restore`
+
+`POST /v0/drives/{drive_id}/artifacts/{artifact_id}/restore` — Restore Artifact
+
+Authentication: **bearer token**.
+
+Restore a soft-deleted artifact atomically.
+
+Generated API class: `ArtifactsApi`
+
+Synchronous callables:
+
+```python
+def artifacts_restore(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ArtifactOut
+def artifacts_restore_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ArtifactOut]
+def artifacts_restore_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def artifacts_restore(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ArtifactOut
+async def artifacts_restore_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ArtifactOut]
+async def artifacts_restore_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Restore Artifact
+
+Restore a soft-deleted artifact atomically.
+
+:param drive_id: (required)
+:type drive_id: str
+:param artifact_id: (required)
+:type artifact_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param if_match: (required)
+:type if_match: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `artifact_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `If-Match` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`ArtifactOut`](#model-artifactout) | `ArtifactOut` | `ETag`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+### changes
+
+#### `changes_list`
+
+`GET /v0/drives/{drive_id}/changes` — List Changes
+
+Authentication: **bearer token**.
+
+Pull one page of changes. Exactly one of ``start`` or ``cursor``.
+
+Generated API class: `ChangesApi`
+
+Synchronous callables:
+
+```python
+def changes_list(drive_id: StrictStr, limit: Optional[StrictInt] = None, start: Optional[StrictStr] = None, cursor: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ChangePageOut
+def changes_list_with_http_info(drive_id: StrictStr, limit: Optional[StrictInt] = None, start: Optional[StrictStr] = None, cursor: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ChangePageOut]
+def changes_list_without_preload_content(drive_id: StrictStr, limit: Optional[StrictInt] = None, start: Optional[StrictStr] = None, cursor: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def changes_list(drive_id: StrictStr, limit: Optional[StrictInt] = None, start: Optional[StrictStr] = None, cursor: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ChangePageOut
+async def changes_list_with_http_info(drive_id: StrictStr, limit: Optional[StrictInt] = None, start: Optional[StrictStr] = None, cursor: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ChangePageOut]
+async def changes_list_without_preload_content(drive_id: StrictStr, limit: Optional[StrictInt] = None, start: Optional[StrictStr] = None, cursor: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+List Changes
+
+Pull one page of changes. Exactly one of ``start`` or ``cursor``.
+
+:param drive_id: (required)
+:type drive_id: str
+:param limit:
+:type limit: int
+:param start:
+:type start: str
+:param cursor:
+:type cursor: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `limit` | `query` | no | `integer` or `null` | — |
+| `start` | `query` | no | `enum[now, beginning]` or `null` | — |
+| `cursor` | `query` | no | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`ChangePageOut`](#model-changepageout) | `ChangePageOut` | `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesList400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `410` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesList400Response` | `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+### default
+
+#### `health`
+
+`GET /health` — Health
+
+Authentication: **anonymous**.
+
+Liveness + DB-reachability probe. Used by Cloud Run / k8s healthchecks and any uptime monitor. Returns 200 only if the DB pool can serve a trivial query; 503 otherwise so the orchestrator can pull the instance out of rotation. NOTE: route is `/health`, NOT `/healthz`. Google's edge infrastructure intercepts `/healthz` (legacy kubernetes-reserved path) and returns a generic 404 before traffic reaches Cloud Run — discovered the hard way during the first prod deploy. Don't rename back.
+
+Generated API class: `DefaultApi`
+
+Synchronous callables:
+
+```python
+def health(_request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> HealthOut
+def health_with_http_info(_request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[HealthOut]
+def health_without_preload_content(_request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def health(_request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> HealthOut
+async def health_with_http_info(_request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[HealthOut]
+async def health_without_preload_content(_request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Health
+
+Liveness + DB-reachability probe. Used by Cloud Run / k8s healthchecks and any uptime monitor. Returns 200 only if the DB pool can serve a trivial query; 503 otherwise so the orchestrator can pull the instance out of rotation. NOTE: route is `/health`, NOT `/healthz`. Google's edge infrastructure intercepts `/healthz` (legacy kubernetes-reserved path) and returns a generic 404 before traffic reaches Cloud Run — discovered the hard way during the first prod deploy. Don't rename back.
+
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`HealthOut`](#model-healthout) | `HealthOut` | — |
+| `503` | `application/json` | [`HealthDegradedResponse`](#model-healthdegradedresponse) | `HealthDegradedResponse` | — |
+
+### discovery
+
+#### `oauth_protected_resource`
+
+`GET /.well-known/oauth-protected-resource` — Protected-resource metadata (RFC 9728)
+
+Authentication: **anonymous**.
+
+Names the reset v0 surface as a protected resource and points clients at Hub — the only authorization server whose product tokens this deployment accepts.
+
+Generated API class: `DiscoveryApi`
+
+Synchronous callables:
+
+```python
+def oauth_protected_resource(_request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> Dict[str, Optional[object]]
+def oauth_protected_resource_with_http_info(_request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[Dict[str, Optional[object]]]
+def oauth_protected_resource_without_preload_content(_request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def oauth_protected_resource(_request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> Dict[str, Optional[object]]
+async def oauth_protected_resource_with_http_info(_request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[Dict[str, Optional[object]]]
+async def oauth_protected_resource_without_preload_content(_request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Protected-resource metadata (RFC 9728)
+
+Names the reset v0 surface as a protected resource and points clients at Hub — the only authorization server whose product tokens this deployment accepts.
+
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`object#82ef96cebaf5`](#inline-schema-object-82ef96cebaf5) | `Dict[str, Optional[object]]` | — |
+
+### drives
+
+#### `drives_list`
+
+`GET /v0/drives` — List Drives
+
+Authentication: **bearer token**.
+
+List the actor's workspace drives, newest-first (keyset paginated). ``lifecycle`` (active|deleted|all) exposes soft-deleted drives so a manager can read the post-delete revision as the If-Match source for a restore. Unknown query parameters are rejected (§6.3).
+
+Generated API class: `DrivesApi`
+
+Synchronous callables:
+
+```python
+def drives_list(lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> DriveListOut
+def drives_list_with_http_info(lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[DriveListOut]
+def drives_list_without_preload_content(lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def drives_list(lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> DriveListOut
+async def drives_list_with_http_info(lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[DriveListOut]
+async def drives_list_without_preload_content(lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+List Drives
+
+List the actor's workspace drives, newest-first (keyset paginated). ``lifecycle`` (active|deleted|all) exposes soft-deleted drives so a manager can read the post-delete revision as the If-Match source for a restore. Unknown query parameters are rejected (§6.3).
+
+:param lifecycle:
+:type lifecycle: str
+:param limit:
+:type limit: int
+:param cursor:
+:type cursor: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `lifecycle` | `query` | no | `string` | — |
+| `limit` | `query` | no | `integer` or `null` | — |
+| `cursor` | `query` | no | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`DriveListOut`](#model-drivelistout) | `DriveListOut` | `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesList400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesList400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesList400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesList400Response` | `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesList400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesList400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `drives_create`
+
+`POST /v0/drives` — Create Drive
+
+Authentication: **bearer token**.
+
+Create a drive with its structural root folder and creator-manager grant(s) in one transaction; idempotent under the ``Idempotency-Key``.
+
+Generated API class: `DrivesApi`
+
+Synchronous callables:
+
+```python
+def drives_create(idempotency_key: Optional[StrictStr], drive_create_in: DriveCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> DriveOut
+def drives_create_with_http_info(idempotency_key: Optional[StrictStr], drive_create_in: DriveCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[DriveOut]
+def drives_create_without_preload_content(idempotency_key: Optional[StrictStr], drive_create_in: DriveCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def drives_create(idempotency_key: Optional[StrictStr], drive_create_in: DriveCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> DriveOut
+async def drives_create_with_http_info(idempotency_key: Optional[StrictStr], drive_create_in: DriveCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[DriveOut]
+async def drives_create_without_preload_content(idempotency_key: Optional[StrictStr], drive_create_in: DriveCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Create Drive
+
+Create a drive with its structural root folder and creator-manager grant(s) in one transaction; idempotent under the ``Idempotency-Key``.
+
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param drive_create_in: (required)
+:type drive_create_in: DriveCreateIn
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Request body (required):
+
+| Content type | Schema |
+|---|---|
+| `application/json` | [`DriveCreateIn`](#model-drivecreatein) |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `201` | `application/json` | [`DriveOut`](#model-driveout) | `DriveOut` | `ETag`, `Location`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesList400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesList400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesList400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesList400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `drives_delete`
+
+`DELETE /v0/drives/{drive_id}` — Delete Drive
+
+Authentication: **bearer token**.
+
+Soft-delete a drive. Returns 200 with the deleted representation so the client has the post-delete revision/ETag for a restore.
+
+Generated API class: `DrivesApi`
+
+Synchronous callables:
+
+```python
+def drives_delete(drive_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> DriveOut
+def drives_delete_with_http_info(drive_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[DriveOut]
+def drives_delete_without_preload_content(drive_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def drives_delete(drive_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> DriveOut
+async def drives_delete_with_http_info(drive_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[DriveOut]
+async def drives_delete_without_preload_content(drive_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Delete Drive
+
+Soft-delete a drive. Returns 200 with the deleted representation so the client has the post-delete revision/ETag for a restore.
+
+:param drive_id: (required)
+:type drive_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param if_match: (required)
+:type if_match: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `If-Match` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`DriveOut`](#model-driveout) | `DriveOut` | `ETag`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesList400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesList400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `drives_read`
+
+`GET /v0/drives/{drive_id}` — Read Drive
+
+Authentication: **bearer token**.
+
+Read one active drive. ETag = quoted revision; matching ``If-None-Match`` → 304. Deleted and cross-workspace drives are 404.
+
+Generated API class: `DrivesApi`
+
+Synchronous callables:
+
+```python
+def drives_read(drive_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> DriveOut
+def drives_read_with_http_info(drive_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[DriveOut]
+def drives_read_without_preload_content(drive_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def drives_read(drive_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> DriveOut
+async def drives_read_with_http_info(drive_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[DriveOut]
+async def drives_read_without_preload_content(drive_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Read Drive
+
+Read one active drive. ETag = quoted revision; matching ``If-None-Match`` → 304. Deleted and cross-workspace drives are 404.
+
+:param drive_id: (required)
+:type drive_id: str
+:param if_none_match:
+:type if_none_match: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `If-None-Match` | `header` | no | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`DriveOut`](#model-driveout) | `DriveOut` | `ETag`, `X-Request-Id` |
+| `304` | — | — | — | `ETag`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `drives_update`
+
+`PATCH /v0/drives/{drive_id}` — Update Drive
+
+Authentication: **bearer token**.
+
+Rename / update a drive's metadata. Requires ``Idempotency-Key`` and ``If-Match`` (428 absent, 412 stale); bumps the revision.
+
+Generated API class: `DrivesApi`
+
+Synchronous callables:
+
+```python
+def drives_update(drive_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], drive_update_in: DriveUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> DriveOut
+def drives_update_with_http_info(drive_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], drive_update_in: DriveUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[DriveOut]
+def drives_update_without_preload_content(drive_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], drive_update_in: DriveUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def drives_update(drive_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], drive_update_in: DriveUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> DriveOut
+async def drives_update_with_http_info(drive_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], drive_update_in: DriveUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[DriveOut]
+async def drives_update_without_preload_content(drive_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], drive_update_in: DriveUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Update Drive
+
+Rename / update a drive's metadata. Requires ``Idempotency-Key`` and ``If-Match`` (428 absent, 412 stale); bumps the revision.
+
+:param drive_id: (required)
+:type drive_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param if_match: (required)
+:type if_match: str
+:param drive_update_in: (required)
+:type drive_update_in: DriveUpdateIn
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `If-Match` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Request body (required):
+
+| Content type | Schema |
+|---|---|
+| `application/json` | [`DriveUpdateIn`](#model-driveupdatein) |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`DriveOut`](#model-driveout) | `DriveOut` | `ETag`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `drives_restore`
+
+`POST /v0/drives/{drive_id}/restore` — Restore Drive
+
+Authentication: **bearer token**.
+
+Restore a soft-deleted drive. If-Match must carry the post-delete revision; restoring an already-active drive is 409 CONFLICT.
+
+Generated API class: `DrivesApi`
+
+Synchronous callables:
+
+```python
+def drives_restore(drive_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> DriveOut
+def drives_restore_with_http_info(drive_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[DriveOut]
+def drives_restore_without_preload_content(drive_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def drives_restore(drive_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> DriveOut
+async def drives_restore_with_http_info(drive_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[DriveOut]
+async def drives_restore_without_preload_content(drive_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Restore Drive
+
+Restore a soft-deleted drive. If-Match must carry the post-delete revision; restoring an already-active drive is 409 CONFLICT.
+
+:param drive_id: (required)
+:type drive_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param if_match: (required)
+:type if_match: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `If-Match` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`DriveOut`](#model-driveout) | `DriveOut` | `ETag`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `drives_usage`
+
+`GET /v0/drives/{drive_id}/usage` — Drive Usage
+
+Authentication: **bearer token**.
+
+Byte counters for one active drive: storage is the live sum of its versions' sizes; retrieval reads the counter the content-read slice maintains (0 until it lands).
+
+Generated API class: `DrivesApi`
+
+Synchronous callables:
+
+```python
+def drives_usage(drive_id: StrictStr, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> DriveUsageOut
+def drives_usage_with_http_info(drive_id: StrictStr, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[DriveUsageOut]
+def drives_usage_without_preload_content(drive_id: StrictStr, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def drives_usage(drive_id: StrictStr, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> DriveUsageOut
+async def drives_usage_with_http_info(drive_id: StrictStr, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[DriveUsageOut]
+async def drives_usage_without_preload_content(drive_id: StrictStr, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Drive Usage
+
+Byte counters for one active drive: storage is the live sum of its versions' sizes; retrieval reads the counter the content-read slice maintains (0 until it lands).
+
+:param drive_id: (required)
+:type drive_id: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`DriveUsageOut`](#model-driveusageout) | `DriveUsageOut` | `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+### folders
+
+#### `folders_list`
+
+`GET /v0/drives/{drive_id}/folders` — List Folders
+
+Authentication: **bearer token**.
+
+List the drive's folders, newest-first (keyset paginated). ``lifecycle`` (active|deleted|all) exposes soft-deleted folders so the post-delete revision can be read as the If-Match source for a restore. ``parent_id`` / ``name`` are exact-match filters. Unknown query parameters are rejected (§6.3).
+
+Generated API class: `FoldersApi`
+
+Synchronous callables:
+
+```python
+def folders_list(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, parent_id: Optional[StrictStr] = None, name: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> FolderListOut
+def folders_list_with_http_info(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, parent_id: Optional[StrictStr] = None, name: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[FolderListOut]
+def folders_list_without_preload_content(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, parent_id: Optional[StrictStr] = None, name: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def folders_list(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, parent_id: Optional[StrictStr] = None, name: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> FolderListOut
+async def folders_list_with_http_info(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, parent_id: Optional[StrictStr] = None, name: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[FolderListOut]
+async def folders_list_without_preload_content(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, parent_id: Optional[StrictStr] = None, name: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+List Folders
+
+List the drive's folders, newest-first (keyset paginated). ``lifecycle`` (active|deleted|all) exposes soft-deleted folders so the post-delete revision can be read as the If-Match source for a restore. ``parent_id`` / ``name`` are exact-match filters. Unknown query parameters are rejected (§6.3).
+
+:param drive_id: (required)
+:type drive_id: str
+:param lifecycle:
+:type lifecycle: str
+:param limit:
+:type limit: int
+:param cursor:
+:type cursor: str
+:param parent_id:
+:type parent_id: str
+:param name:
+:type name: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `lifecycle` | `query` | no | `string` | — |
+| `limit` | `query` | no | `integer` or `null` | — |
+| `cursor` | `query` | no | `string` or `null` | — |
+| `parent_id` | `query` | no | `string` or `null` | — |
+| `name` | `query` | no | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`FolderListOut`](#model-folderlistout) | `FolderListOut` | `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `folders_create`
+
+`POST /v0/drives/{drive_id}/folders` — Create Folder
+
+Authentication: **bearer token**.
+
+Create one folder under `parent_id`; idempotent under the ``Idempotency-Key``.
+
+Generated API class: `FoldersApi`
+
+Synchronous callables:
+
+```python
+def folders_create(drive_id: StrictStr, idempotency_key: Optional[StrictStr], folder_create_in: FolderCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> FolderOut
+def folders_create_with_http_info(drive_id: StrictStr, idempotency_key: Optional[StrictStr], folder_create_in: FolderCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[FolderOut]
+def folders_create_without_preload_content(drive_id: StrictStr, idempotency_key: Optional[StrictStr], folder_create_in: FolderCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def folders_create(drive_id: StrictStr, idempotency_key: Optional[StrictStr], folder_create_in: FolderCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> FolderOut
+async def folders_create_with_http_info(drive_id: StrictStr, idempotency_key: Optional[StrictStr], folder_create_in: FolderCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[FolderOut]
+async def folders_create_without_preload_content(drive_id: StrictStr, idempotency_key: Optional[StrictStr], folder_create_in: FolderCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Create Folder
+
+Create one folder under `parent_id`; idempotent under the ``Idempotency-Key``.
+
+:param drive_id: (required)
+:type drive_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param folder_create_in: (required)
+:type folder_create_in: FolderCreateIn
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Request body (required):
+
+| Content type | Schema |
+|---|---|
+| `application/json` | [`FolderCreateIn`](#model-foldercreatein) |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `201` | `application/json` | [`FolderOut`](#model-folderout) | `FolderOut` | `ETag`, `Location`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `folders_delete`
+
+`DELETE /v0/drives/{drive_id}/folders/{folder_id}` — Delete Folder
+
+Authentication: **bearer token**.
+
+Soft-delete a folder and its full live subtree (folders + artifacts) in one transaction. A non-empty subtree requires ``recursive=true`` (409 FOLDER_RECURSIVE_REQUIRED otherwise). Returns the deleted root representation plus exact cascade counts and the post-delete revision/ETag for a restore.
+
+Generated API class: `FoldersApi`
+
+Synchronous callables:
+
+```python
+def folders_delete(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], recursive: Optional[StrictBool] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> FolderCascadeOut
+def folders_delete_with_http_info(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], recursive: Optional[StrictBool] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[FolderCascadeOut]
+def folders_delete_without_preload_content(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], recursive: Optional[StrictBool] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def folders_delete(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], recursive: Optional[StrictBool] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> FolderCascadeOut
+async def folders_delete_with_http_info(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], recursive: Optional[StrictBool] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[FolderCascadeOut]
+async def folders_delete_without_preload_content(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], recursive: Optional[StrictBool] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Delete Folder
+
+Soft-delete a folder and its full live subtree (folders + artifacts) in one transaction. A non-empty subtree requires ``recursive=true`` (409 FOLDER_RECURSIVE_REQUIRED otherwise). Returns the deleted root representation plus exact cascade counts and the post-delete revision/ETag for a restore.
+
+:param drive_id: (required)
+:type drive_id: str
+:param folder_id: (required)
+:type folder_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param if_match: (required)
+:type if_match: str
+:param recursive:
+:type recursive: bool
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `folder_id` | `path` | yes | `string` | — |
+| `recursive` | `query` | no | `boolean` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `If-Match` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`FolderCascadeOut`](#model-foldercascadeout) | `FolderCascadeOut` | `ETag`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `folders_read`
+
+`GET /v0/drives/{drive_id}/folders/{folder_id}` — Read Folder
+
+Authentication: **bearer token**.
+
+Read one active folder. ETag = quoted revision; matching ``If-None-Match`` → 304. Deleted and cross-workspace folders are 404.
+
+Generated API class: `FoldersApi`
+
+Synchronous callables:
+
+```python
+def folders_read(drive_id: StrictStr, folder_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> FolderOut
+def folders_read_with_http_info(drive_id: StrictStr, folder_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[FolderOut]
+def folders_read_without_preload_content(drive_id: StrictStr, folder_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def folders_read(drive_id: StrictStr, folder_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> FolderOut
+async def folders_read_with_http_info(drive_id: StrictStr, folder_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[FolderOut]
+async def folders_read_without_preload_content(drive_id: StrictStr, folder_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Read Folder
+
+Read one active folder. ETag = quoted revision; matching ``If-None-Match`` → 304. Deleted and cross-workspace folders are 404.
+
+:param drive_id: (required)
+:type drive_id: str
+:param folder_id: (required)
+:type folder_id: str
+:param if_none_match:
+:type if_none_match: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `folder_id` | `path` | yes | `string` | — |
+| `If-None-Match` | `header` | no | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`FolderOut`](#model-folderout) | `FolderOut` | `ETag`, `X-Request-Id` |
+| `304` | — | — | — | `ETag`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `folders_update`
+
+`PATCH /v0/drives/{drive_id}/folders/{folder_id}` — Update Folder
+
+Authentication: **bearer token**.
+
+Rename / move / update a folder's metadata or inheritance. Requires ``Idempotency-Key`` and ``If-Match`` (428 absent, 412 stale); bumps the revision.
+
+Generated API class: `FoldersApi`
+
+Synchronous callables:
+
+```python
+def folders_update(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], folder_update_in: FolderUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> FolderOut
+def folders_update_with_http_info(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], folder_update_in: FolderUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[FolderOut]
+def folders_update_without_preload_content(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], folder_update_in: FolderUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def folders_update(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], folder_update_in: FolderUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> FolderOut
+async def folders_update_with_http_info(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], folder_update_in: FolderUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[FolderOut]
+async def folders_update_without_preload_content(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], folder_update_in: FolderUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Update Folder
+
+Rename / move / update a folder's metadata or inheritance. Requires ``Idempotency-Key`` and ``If-Match`` (428 absent, 412 stale); bumps the revision.
+
+:param drive_id: (required)
+:type drive_id: str
+:param folder_id: (required)
+:type folder_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param if_match: (required)
+:type if_match: str
+:param folder_update_in: (required)
+:type folder_update_in: FolderUpdateIn
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `folder_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `If-Match` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Request body (required):
+
+| Content type | Schema |
+|---|---|
+| `application/json` | [`FolderUpdateIn`](#model-folderupdatein) |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`FolderOut`](#model-folderout) | `FolderOut` | `ETag`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `folders_copy`
+
+`POST /v0/drives/{drive_id}/folders/{folder_id}/copy` — Copy Folder
+
+Authentication: **bearer token**.
+
+Copy a folder's subtree within the same drive. Cross-drive copy is out of v0 scope and rejected (400 INVALID_ARGUMENT). ``destination_drive_id`` must equal the source drive when present. Materializes the subtree synchronously → 201 + the copied folder. ``If-Match`` is optional; when present it is validated against the source revision (412 stale).
+
+Generated API class: `FoldersApi`
+
+Synchronous callables:
+
+```python
+def folders_copy(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], folder_copy_in: FolderCopyIn, if_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> FolderOut
+def folders_copy_with_http_info(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], folder_copy_in: FolderCopyIn, if_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[FolderOut]
+def folders_copy_without_preload_content(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], folder_copy_in: FolderCopyIn, if_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def folders_copy(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], folder_copy_in: FolderCopyIn, if_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> FolderOut
+async def folders_copy_with_http_info(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], folder_copy_in: FolderCopyIn, if_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[FolderOut]
+async def folders_copy_without_preload_content(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], folder_copy_in: FolderCopyIn, if_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Copy Folder
+
+Copy a folder's subtree within the same drive. Cross-drive copy is out of v0 scope and rejected (400 INVALID_ARGUMENT). ``destination_drive_id`` must equal the source drive when present. Materializes the subtree synchronously → 201 + the copied folder. ``If-Match`` is optional; when present it is validated against the source revision (412 stale).
+
+:param drive_id: (required)
+:type drive_id: str
+:param folder_id: (required)
+:type folder_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param folder_copy_in: (required)
+:type folder_copy_in: FolderCopyIn
+:param if_match:
+:type if_match: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `folder_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `If-Match` | `header` | no | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Request body (required):
+
+| Content type | Schema |
+|---|---|
+| `application/json` | [`FolderCopyIn`](#model-foldercopyin) |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `201` | `application/json` | [`FolderOut`](#model-folderout) | `FolderOut` | `ETag`, `Location`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `folders_restore`
+
+`POST /v0/drives/{drive_id}/folders/{folder_id}/restore` — Restore Folder
+
+Authentication: **bearer token**.
+
+Restore a soft-deleted folder and its deleted subtree atomically. If-Match must carry the post-delete revision; restoring an already-active folder is 409 CONFLICT.
+
+Generated API class: `FoldersApi`
+
+Synchronous callables:
+
+```python
+def folders_restore(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> FolderCascadeOut
+def folders_restore_with_http_info(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[FolderCascadeOut]
+def folders_restore_without_preload_content(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def folders_restore(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> FolderCascadeOut
+async def folders_restore_with_http_info(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[FolderCascadeOut]
+async def folders_restore_without_preload_content(drive_id: StrictStr, folder_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Restore Folder
+
+Restore a soft-deleted folder and its deleted subtree atomically. If-Match must carry the post-delete revision; restoring an already-active folder is 409 CONFLICT.
+
+:param drive_id: (required)
+:type drive_id: str
+:param folder_id: (required)
+:type folder_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param if_match: (required)
+:type if_match: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `folder_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `If-Match` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`FolderCascadeOut`](#model-foldercascadeout) | `FolderCascadeOut` | `ETag`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+### grants
+
+#### `grants_list`
+
+`GET /v0/drives/{drive_id}/grants` — List Grants
+
+Authentication: **bearer token**.
+
+List explicit grants in the drive, keyset paginated. **What you see depends on your role (contract change).** A caller holding ``manager`` on the drive lists EVERY grant in it. Any other caller lists only the grants that name them — their own agent/user rows, ``workspace`` grants covering them, and ``public`` grants (which already expose the resource to them anyway). Previously any drive ``viewer`` could page out every principal id, role and expiry in the drive; that was an access-graph disclosure, not a feature. The operation is refused (404) only for a caller holding no live grant anywhere in the drive — never for lack of ``manager``, because seeing your own access is not a privilege. That admits folder-scoped principals, who previously 404'd here despite having access to show. A folder ``manager`` still sees only their own rows, not the roster of the subtree they administer; scoping the listing by per-resource administration authority is a follow-up this change does not claim. ``resource_id`` filters to one resource's grants and REQUIRES ``resource_type`` alongside it — a bare resource id is ambiguous across the three resource kinds, and guessing the kind from the id prefix would make the filter's meaning depend on an id format the contract does not promise to keep. ``resource_type`` on its own remains a valid (and pre-existing) filter.
+
+Generated API class: `GrantsApi`
+
+Synchronous callables:
+
+```python
+def grants_list(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, resource_type: Optional[StrictStr] = None, resource_id: Optional[StrictStr] = None, principal_type: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> GrantListOut
+def grants_list_with_http_info(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, resource_type: Optional[StrictStr] = None, resource_id: Optional[StrictStr] = None, principal_type: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[GrantListOut]
+def grants_list_without_preload_content(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, resource_type: Optional[StrictStr] = None, resource_id: Optional[StrictStr] = None, principal_type: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def grants_list(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, resource_type: Optional[StrictStr] = None, resource_id: Optional[StrictStr] = None, principal_type: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> GrantListOut
+async def grants_list_with_http_info(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, resource_type: Optional[StrictStr] = None, resource_id: Optional[StrictStr] = None, principal_type: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[GrantListOut]
+async def grants_list_without_preload_content(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, resource_type: Optional[StrictStr] = None, resource_id: Optional[StrictStr] = None, principal_type: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+List Grants
+
+List explicit grants in the drive, keyset paginated. **What you see depends on your role (contract change).** A caller holding ``manager`` on the drive lists EVERY grant in it. Any other caller lists only the grants that name them — their own agent/user rows, ``workspace`` grants covering them, and ``public`` grants (which already expose the resource to them anyway). Previously any drive ``viewer`` could page out every principal id, role and expiry in the drive; that was an access-graph disclosure, not a feature. The operation is refused (404) only for a caller holding no live grant anywhere in the drive — never for lack of ``manager``, because seeing your own access is not a privilege. That admits folder-scoped principals, who previously 404'd here despite having access to show. A folder ``manager`` still sees only their own rows, not the roster of the subtree they administer; scoping the listing by per-resource administration authority is a follow-up this change does not claim. ``resource_id`` filters to one resource's grants and REQUIRES ``resource_type`` alongside it — a bare resource id is ambiguous across the three resource kinds, and guessing the kind from the id prefix would make the filter's meaning depend on an id format the contract does not promise to keep. ``resource_type`` on its own remains a valid (and pre-existing) filter.
+
+:param drive_id: (required)
+:type drive_id: str
+:param lifecycle:
+:type lifecycle: str
+:param limit:
+:type limit: int
+:param cursor:
+:type cursor: str
+:param resource_type:
+:type resource_type: str
+:param resource_id:
+:type resource_id: str
+:param principal_type:
+:type principal_type: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `lifecycle` | `query` | no | `string` | — |
+| `limit` | `query` | no | `integer` or `null` | — |
+| `cursor` | `query` | no | `string` or `null` | — |
+| `resource_type` | `query` | no | `string` or `null` | — |
+| `resource_id` | `query` | no | `string` or `null` | — |
+| `principal_type` | `query` | no | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`GrantListOut`](#model-grantlistout) | `GrantListOut` | `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `grants_create`
+
+`POST /v0/drives/{drive_id}/grants` — Create Grant
+
+Authentication: **bearer token**.
+
+Grant one principal a role on a drive, folder, or artifact.
+
+Generated API class: `GrantsApi`
+
+Synchronous callables:
+
+```python
+def grants_create(drive_id: StrictStr, idempotency_key: Optional[StrictStr], grant_create_in: GrantCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> GrantOut
+def grants_create_with_http_info(drive_id: StrictStr, idempotency_key: Optional[StrictStr], grant_create_in: GrantCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[GrantOut]
+def grants_create_without_preload_content(drive_id: StrictStr, idempotency_key: Optional[StrictStr], grant_create_in: GrantCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def grants_create(drive_id: StrictStr, idempotency_key: Optional[StrictStr], grant_create_in: GrantCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> GrantOut
+async def grants_create_with_http_info(drive_id: StrictStr, idempotency_key: Optional[StrictStr], grant_create_in: GrantCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[GrantOut]
+async def grants_create_without_preload_content(drive_id: StrictStr, idempotency_key: Optional[StrictStr], grant_create_in: GrantCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Create Grant
+
+Grant one principal a role on a drive, folder, or artifact.
+
+:param drive_id: (required)
+:type drive_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param grant_create_in: (required)
+:type grant_create_in: GrantCreateIn
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Request body (required):
+
+| Content type | Schema |
+|---|---|
+| `application/json` | [`GrantCreateIn`](#model-grantcreatein) |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `201` | `application/json` | [`GrantOut`](#model-grantout) | `GrantOut` | `ETag`, `Location`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `grants_revoke`
+
+`DELETE /v0/drives/{drive_id}/grants/{grant_id}` — Revoke Grant
+
+Authentication: **bearer token**.
+
+Revoke a grant (soft, sets revoked_at) under If-Match.
+
+Generated API class: `GrantsApi`
+
+Synchronous callables:
+
+```python
+def grants_revoke(drive_id: StrictStr, grant_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> GrantOut
+def grants_revoke_with_http_info(drive_id: StrictStr, grant_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[GrantOut]
+def grants_revoke_without_preload_content(drive_id: StrictStr, grant_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def grants_revoke(drive_id: StrictStr, grant_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> GrantOut
+async def grants_revoke_with_http_info(drive_id: StrictStr, grant_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[GrantOut]
+async def grants_revoke_without_preload_content(drive_id: StrictStr, grant_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Revoke Grant
+
+Revoke a grant (soft, sets revoked_at) under If-Match.
+
+:param drive_id: (required)
+:type drive_id: str
+:param grant_id: (required)
+:type grant_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param if_match: (required)
+:type if_match: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `grant_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `If-Match` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`GrantOut`](#model-grantout) | `GrantOut` | `ETag`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `grants_read`
+
+`GET /v0/drives/{drive_id}/grants/{grant_id}` — Read Grant
+
+Authentication: **bearer token**.
+
+Read one grant in the drive.
+
+Generated API class: `GrantsApi`
+
+Synchronous callables:
+
+```python
+def grants_read(drive_id: StrictStr, grant_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> GrantOut
+def grants_read_with_http_info(drive_id: StrictStr, grant_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[GrantOut]
+def grants_read_without_preload_content(drive_id: StrictStr, grant_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def grants_read(drive_id: StrictStr, grant_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> GrantOut
+async def grants_read_with_http_info(drive_id: StrictStr, grant_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[GrantOut]
+async def grants_read_without_preload_content(drive_id: StrictStr, grant_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Read Grant
+
+Read one grant in the drive.
+
+:param drive_id: (required)
+:type drive_id: str
+:param grant_id: (required)
+:type grant_id: str
+:param if_none_match:
+:type if_none_match: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `grant_id` | `path` | yes | `string` | — |
+| `If-None-Match` | `header` | no | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`GrantOut`](#model-grantout) | `GrantOut` | `ETag`, `X-Request-Id` |
+| `304` | — | — | — | `ETag`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `grants_update`
+
+`PATCH /v0/drives/{drive_id}/grants/{grant_id}` — Update Grant
+
+Authentication: **bearer token**.
+
+Change a grant's role or expiry under If-Match.
+
+Generated API class: `GrantsApi`
+
+Synchronous callables:
+
+```python
+def grants_update(drive_id: StrictStr, grant_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], grant_update_in: GrantUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> GrantOut
+def grants_update_with_http_info(drive_id: StrictStr, grant_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], grant_update_in: GrantUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[GrantOut]
+def grants_update_without_preload_content(drive_id: StrictStr, grant_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], grant_update_in: GrantUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def grants_update(drive_id: StrictStr, grant_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], grant_update_in: GrantUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> GrantOut
+async def grants_update_with_http_info(drive_id: StrictStr, grant_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], grant_update_in: GrantUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[GrantOut]
+async def grants_update_without_preload_content(drive_id: StrictStr, grant_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], grant_update_in: GrantUpdateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Update Grant
+
+Change a grant's role or expiry under If-Match.
+
+:param drive_id: (required)
+:type drive_id: str
+:param grant_id: (required)
+:type grant_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param if_match: (required)
+:type if_match: str
+:param grant_update_in: (required)
+:type grant_update_in: GrantUpdateIn
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `grant_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `If-Match` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Request body (required):
+
+| Content type | Schema |
+|---|---|
+| `application/json` | [`GrantUpdateIn`](#model-grantupdatein) |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`GrantOut`](#model-grantout) | `GrantOut` | `ETag`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+### search
+
+#### `drive_search`
+
+`GET /v0/drives/{drive_id}/search` — Drive Search
+
+Authentication: **bearer token**.
+
+Search the drive's live artifacts. ``q`` is required and must be non-empty. ``mode`` selects the retrieval engine: ``lexical``, ``hybrid``, or ``semantic``. This deployment enables ``lexical`` only; requesting a disabled mode fails ``400 SEARCH_MODE_UNAVAILABLE``. Each hit's ``snippet`` is HTML-safe by contract: artifact content is entity-escaped and only the server's own ````/```` highlight pair survives, so a client may render it as HTML.
+
+Generated API class: `SearchApi`
+
+Synchronous callables:
+
+```python
+def drive_search(drive_id: StrictStr, q: Annotated[str, Field(min_length=1, strict=True)], mode: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, parent_id: Optional[StrictStr] = None, content_type: Optional[StrictStr] = None, label: Optional[StrictStr] = None, updated_after: Optional[datetime] = None, updated_before: Optional[datetime] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> SearchPageOut
+def drive_search_with_http_info(drive_id: StrictStr, q: Annotated[str, Field(min_length=1, strict=True)], mode: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, parent_id: Optional[StrictStr] = None, content_type: Optional[StrictStr] = None, label: Optional[StrictStr] = None, updated_after: Optional[datetime] = None, updated_before: Optional[datetime] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[SearchPageOut]
+def drive_search_without_preload_content(drive_id: StrictStr, q: Annotated[str, Field(min_length=1, strict=True)], mode: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, parent_id: Optional[StrictStr] = None, content_type: Optional[StrictStr] = None, label: Optional[StrictStr] = None, updated_after: Optional[datetime] = None, updated_before: Optional[datetime] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def drive_search(drive_id: StrictStr, q: Annotated[str, Field(min_length=1, strict=True)], mode: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, parent_id: Optional[StrictStr] = None, content_type: Optional[StrictStr] = None, label: Optional[StrictStr] = None, updated_after: Optional[datetime] = None, updated_before: Optional[datetime] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> SearchPageOut
+async def drive_search_with_http_info(drive_id: StrictStr, q: Annotated[str, Field(min_length=1, strict=True)], mode: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, parent_id: Optional[StrictStr] = None, content_type: Optional[StrictStr] = None, label: Optional[StrictStr] = None, updated_after: Optional[datetime] = None, updated_before: Optional[datetime] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[SearchPageOut]
+async def drive_search_without_preload_content(drive_id: StrictStr, q: Annotated[str, Field(min_length=1, strict=True)], mode: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, parent_id: Optional[StrictStr] = None, content_type: Optional[StrictStr] = None, label: Optional[StrictStr] = None, updated_after: Optional[datetime] = None, updated_before: Optional[datetime] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Drive Search
+
+Search the drive's live artifacts. ``q`` is required and must be non-empty. ``mode`` selects the retrieval engine: ``lexical``, ``hybrid``, or ``semantic``. This deployment enables ``lexical`` only; requesting a disabled mode fails ``400 SEARCH_MODE_UNAVAILABLE``. Each hit's ``snippet`` is HTML-safe by contract: artifact content is entity-escaped and only the server's own ````/```` highlight pair survives, so a client may render it as HTML.
+
+:param drive_id: (required)
+:type drive_id: str
+:param q: (required)
+:type q: str
+:param mode:
+:type mode: str
+:param limit:
+:type limit: int
+:param cursor:
+:type cursor: str
+:param parent_id:
+:type parent_id: str
+:param content_type:
+:type content_type: str
+:param label:
+:type label: str
+:param updated_after:
+:type updated_after: datetime
+:param updated_before:
+:type updated_before: datetime
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `q` | `query` | yes | `string` | — |
+| `mode` | `query` | no | `enum[lexical, hybrid, semantic]` | — |
+| `limit` | `query` | no | `integer` or `null` | — |
+| `cursor` | `query` | no | `string` or `null` | — |
+| `parent_id` | `query` | no | `string` or `null` | — |
+| `content_type` | `query` | no | `string` or `null` | — |
+| `label` | `query` | no | `string` or `null` | — |
+| `updated_after` | `query` | no | `string(date-time)` or `null` | — |
+| `updated_before` | `query` | no | `string(date-time)` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`SearchPageOut`](#model-searchpageout) | `SearchPageOut` | `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesList400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+### shares
+
+#### `shares_list`
+
+`GET /v0/drives/{drive_id}/shares` — List Shares
+
+Authentication: **bearer token**.
+
+List the drive's shares (no secrets), keyset paginated. ``resource_id`` narrows the page to one resource's links and REQUIRES ``resource_type`` alongside it — a bare resource id is ambiguous across ``artifact`` / ``artifact_version`` / ``folder``, and inferring the kind from the id prefix would tie the filter's meaning to an id format the contract does not promise to keep. ``resource_type`` alone is a valid filter. Listing shares already requires drive ``manager``, so these filters only narrow a page the caller could already read in full.
+
+Generated API class: `SharesApi`
+
+Synchronous callables:
+
+```python
+def shares_list(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, resource_type: Optional[StrictStr] = None, resource_id: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ShareListOut
+def shares_list_with_http_info(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, resource_type: Optional[StrictStr] = None, resource_id: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ShareListOut]
+def shares_list_without_preload_content(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, resource_type: Optional[StrictStr] = None, resource_id: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def shares_list(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, resource_type: Optional[StrictStr] = None, resource_id: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ShareListOut
+async def shares_list_with_http_info(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, resource_type: Optional[StrictStr] = None, resource_id: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ShareListOut]
+async def shares_list_without_preload_content(drive_id: StrictStr, lifecycle: Optional[StrictStr] = None, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, resource_type: Optional[StrictStr] = None, resource_id: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+List Shares
+
+List the drive's shares (no secrets), keyset paginated. ``resource_id`` narrows the page to one resource's links and REQUIRES ``resource_type`` alongside it — a bare resource id is ambiguous across ``artifact`` / ``artifact_version`` / ``folder``, and inferring the kind from the id prefix would tie the filter's meaning to an id format the contract does not promise to keep. ``resource_type`` alone is a valid filter. Listing shares already requires drive ``manager``, so these filters only narrow a page the caller could already read in full.
+
+:param drive_id: (required)
+:type drive_id: str
+:param lifecycle:
+:type lifecycle: str
+:param limit:
+:type limit: int
+:param cursor:
+:type cursor: str
+:param resource_type:
+:type resource_type: str
+:param resource_id:
+:type resource_id: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `lifecycle` | `query` | no | `string` | — |
+| `limit` | `query` | no | `integer` or `null` | — |
+| `cursor` | `query` | no | `string` or `null` | — |
+| `resource_type` | `query` | no | `string` or `null` | — |
+| `resource_id` | `query` | no | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`ShareListOut`](#model-sharelistout) | `ShareListOut` | `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `shares_create`
+
+`POST /v0/drives/{drive_id}/shares` — Create Share
+
+Authentication: **bearer token**.
+
+Mint a read-only bearer link. The response carries the plaintext secret — the only response that does.
+
+Generated API class: `SharesApi`
+
+Synchronous callables:
+
+```python
+def shares_create(drive_id: StrictStr, idempotency_key: Optional[StrictStr], share_create_in: ShareCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ShareCreateOut
+def shares_create_with_http_info(drive_id: StrictStr, idempotency_key: Optional[StrictStr], share_create_in: ShareCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ShareCreateOut]
+def shares_create_without_preload_content(drive_id: StrictStr, idempotency_key: Optional[StrictStr], share_create_in: ShareCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def shares_create(drive_id: StrictStr, idempotency_key: Optional[StrictStr], share_create_in: ShareCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ShareCreateOut
+async def shares_create_with_http_info(drive_id: StrictStr, idempotency_key: Optional[StrictStr], share_create_in: ShareCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ShareCreateOut]
+async def shares_create_without_preload_content(drive_id: StrictStr, idempotency_key: Optional[StrictStr], share_create_in: ShareCreateIn, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Create Share
+
+Mint a read-only bearer link. The response carries the plaintext secret — the only response that does.
+
+:param drive_id: (required)
+:type drive_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param share_create_in: (required)
+:type share_create_in: ShareCreateIn
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Request body (required):
+
+| Content type | Schema |
+|---|---|
+| `application/json` | [`ShareCreateIn`](#model-sharecreatein) |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `201` | `application/json` | [`ShareCreateOut`](#model-sharecreateout) | `ShareCreateOut` | `ETag`, `Location`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `shares_revoke`
+
+`DELETE /v0/drives/{drive_id}/shares/{share_id}` — Revoke Share
+
+Authentication: **bearer token**.
+
+Revoke a share (soft, sets revoked_at) under If-Match.
+
+Generated API class: `SharesApi`
+
+Synchronous callables:
+
+```python
+def shares_revoke(drive_id: StrictStr, share_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ShareOut
+def shares_revoke_with_http_info(drive_id: StrictStr, share_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ShareOut]
+def shares_revoke_without_preload_content(drive_id: StrictStr, share_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def shares_revoke(drive_id: StrictStr, share_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ShareOut
+async def shares_revoke_with_http_info(drive_id: StrictStr, share_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ShareOut]
+async def shares_revoke_without_preload_content(drive_id: StrictStr, share_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Revoke Share
+
+Revoke a share (soft, sets revoked_at) under If-Match.
+
+:param drive_id: (required)
+:type drive_id: str
+:param share_id: (required)
+:type share_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param if_match: (required)
+:type if_match: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `share_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `If-Match` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`ShareOut`](#model-shareout) | `ShareOut` | `ETag`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `shares_read`
+
+`GET /v0/drives/{drive_id}/shares/{share_id}` — Read Share
+
+Authentication: **bearer token**.
+
+Read one share's management representation (no secret).
+
+Generated API class: `SharesApi`
+
+Synchronous callables:
+
+```python
+def shares_read(drive_id: StrictStr, share_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ShareOut
+def shares_read_with_http_info(drive_id: StrictStr, share_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ShareOut]
+def shares_read_without_preload_content(drive_id: StrictStr, share_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def shares_read(drive_id: StrictStr, share_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ShareOut
+async def shares_read_with_http_info(drive_id: StrictStr, share_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ShareOut]
+async def shares_read_without_preload_content(drive_id: StrictStr, share_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Read Share
+
+Read one share's management representation (no secret).
+
+:param drive_id: (required)
+:type drive_id: str
+:param share_id: (required)
+:type share_id: str
+:param if_none_match:
+:type if_none_match: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `share_id` | `path` | yes | `string` | — |
+| `If-None-Match` | `header` | no | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`ShareOut`](#model-shareout) | `ShareOut` | `ETag`, `X-Request-Id` |
+| `304` | — | — | — | `ETag`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `shares_rotate`
+
+`POST /v0/drives/{drive_id}/shares/{share_id}/rotate` — Rotate Share
+
+Authentication: **bearer token**.
+
+Rotate the secret in place (same id, no grace window). The response carries the new plaintext secret.
+
+Generated API class: `SharesApi`
+
+Synchronous callables:
+
+```python
+def shares_rotate(drive_id: StrictStr, share_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ShareCreateOut
+def shares_rotate_with_http_info(drive_id: StrictStr, share_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ShareCreateOut]
+def shares_rotate_without_preload_content(drive_id: StrictStr, share_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def shares_rotate(drive_id: StrictStr, share_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ShareCreateOut
+async def shares_rotate_with_http_info(drive_id: StrictStr, share_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[ShareCreateOut]
+async def shares_rotate_without_preload_content(drive_id: StrictStr, share_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Rotate Share
+
+Rotate the secret in place (same id, no grace window). The response carries the new plaintext secret.
+
+:param drive_id: (required)
+:type drive_id: str
+:param share_id: (required)
+:type share_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param if_match: (required)
+:type if_match: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `share_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `If-Match` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`ShareCreateOut`](#model-sharecreateout) | `ShareCreateOut` | `ETag`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+### shares-redemption
+
+#### `shares_redeem`
+
+`GET /s/{share_key}` — Redeem Share
+
+Authentication: **anonymous**.
+
+The un-slashed form. Browsers are canonicalized onto `/s/{key}/`. This inherits the published `shares_redeem` operation id from the route it replaced, because for an API client it *is* that operation, unchanged: same URL, same JSON `Accept`, same bytes, same uniform 404. Only the browser arm is new. Dropping it from the spec would have described the route as gone while it kept answering. The page links its own sub-resources relatively (`content`), and relative resolution replaces the last path segment: from `/s/KEY` that reaches `/s/content`, from `/s/KEY/` it reaches `/s/KEY/content`. The trailing slash is what makes an image on a share page load at all. Links already in the wild have no slash, so this redirect is how they keep working. It is unconditional and runs before any lookup — redirecting only for keys that resolve would turn the status code into an existence oracle and undo the anti-enumeration property the rest of this module maintains. Only browsers are moved. JSON and byte clients are answered in place, so the shipped v0 contract for this URL is unchanged, redirect included.
+
+Generated API class: `SharesRedemptionApi`
+
+Synchronous callables:
+
+```python
+def shares_redeem(share_key: StrictStr, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> object
+def shares_redeem_with_http_info(share_key: StrictStr, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[object]
+def shares_redeem_without_preload_content(share_key: StrictStr, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def shares_redeem(share_key: StrictStr, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> object
+async def shares_redeem_with_http_info(share_key: StrictStr, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[object]
+async def shares_redeem_without_preload_content(share_key: StrictStr, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Redeem Share
+
+The un-slashed form. Browsers are canonicalized onto `/s/{key}/`. This inherits the published `shares_redeem` operation id from the route it replaced, because for an API client it *is* that operation, unchanged: same URL, same JSON `Accept`, same bytes, same uniform 404. Only the browser arm is new. Dropping it from the spec would have described the route as gone while it kept answering. The page links its own sub-resources relatively (`content`), and relative resolution replaces the last path segment: from `/s/KEY` that reaches `/s/content`, from `/s/KEY/` it reaches `/s/KEY/content`. The trailing slash is what makes an image on a share page load at all. Links already in the wild have no slash, so this redirect is how they keep working. It is unconditional and runs before any lookup — redirecting only for keys that resolve would turn the status code into an existence oracle and undo the anti-enumeration property the rest of this module maintains. Only browsers are moved. JSON and byte clients are answered in place, so the shipped v0 contract for this URL is unchanged, redirect included.
+
+:param share_key: (required)
+:type share_key: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `share_key` | `path` | yes | `string` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | `any` | `object` | — |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+
+### versions
+
+#### `versions_list`
+
+`GET /v0/drives/{drive_id}/artifacts/{artifact_id}/versions` — List Versions
+
+Authentication: **bearer token**.
+
+List the artifact's version trail, newest first (ordinal DESC).
+
+Generated API class: `VersionsApi`
+
+Synchronous callables:
+
+```python
+def versions_list(drive_id: StrictStr, artifact_id: StrictStr, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> VersionListOut
+def versions_list_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[VersionListOut]
+def versions_list_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def versions_list(drive_id: StrictStr, artifact_id: StrictStr, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> VersionListOut
+async def versions_list_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[VersionListOut]
+async def versions_list_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, limit: Optional[StrictInt] = None, cursor: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+List Versions
+
+List the artifact's version trail, newest first (ordinal DESC).
+
+:param drive_id: (required)
+:type drive_id: str
+:param artifact_id: (required)
+:type artifact_id: str
+:param limit:
+:type limit: int
+:param cursor:
+:type cursor: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `artifact_id` | `path` | yes | `string` | — |
+| `limit` | `query` | no | `integer` or `null` | — |
+| `cursor` | `query` | no | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`VersionListOut`](#model-versionlistout) | `VersionListOut` | `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `versions_append`
+
+`POST /v0/drives/{drive_id}/artifacts/{artifact_id}/versions` — Append Version
+
+Authentication: **bearer token**.
+
+Append one immutable version and rotate the artifact head. Multipart only (415 for a JSON body). Parts: content (bytes), content_type, sha256. content is required; name, parent_id, and metadata are not accepted here.
+
+Generated API class: `VersionsApi`
+
+Synchronous callables:
+
+```python
+def versions_append(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], content: Annotated[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], Field(description='The artifact bytes.')], authorization: Optional[StrictStr] = None, content_type: Annotated[Optional[StrictStr], Field(description='Declared media type.')] = None, sha256: Annotated[Optional[StrictStr], Field(description='Optional content sha256 for verification.')] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> VersionCreatedOut
+def versions_append_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], content: Annotated[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], Field(description='The artifact bytes.')], authorization: Optional[StrictStr] = None, content_type: Annotated[Optional[StrictStr], Field(description='Declared media type.')] = None, sha256: Annotated[Optional[StrictStr], Field(description='Optional content sha256 for verification.')] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[VersionCreatedOut]
+def versions_append_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], content: Annotated[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], Field(description='The artifact bytes.')], authorization: Optional[StrictStr] = None, content_type: Annotated[Optional[StrictStr], Field(description='Declared media type.')] = None, sha256: Annotated[Optional[StrictStr], Field(description='Optional content sha256 for verification.')] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def versions_append(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], content: Annotated[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], Field(description='The artifact bytes.')], authorization: Optional[StrictStr] = None, content_type: Annotated[Optional[StrictStr], Field(description='Declared media type.')] = None, sha256: Annotated[Optional[StrictStr], Field(description='Optional content sha256 for verification.')] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> VersionCreatedOut
+async def versions_append_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], content: Annotated[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], Field(description='The artifact bytes.')], authorization: Optional[StrictStr] = None, content_type: Annotated[Optional[StrictStr], Field(description='Declared media type.')] = None, sha256: Annotated[Optional[StrictStr], Field(description='Optional content sha256 for verification.')] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[VersionCreatedOut]
+async def versions_append_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], content: Annotated[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], Field(description='The artifact bytes.')], authorization: Optional[StrictStr] = None, content_type: Annotated[Optional[StrictStr], Field(description='Declared media type.')] = None, sha256: Annotated[Optional[StrictStr], Field(description='Optional content sha256 for verification.')] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Append Version
+
+Append one immutable version and rotate the artifact head. Multipart only (415 for a JSON body). Parts: content (bytes), content_type, sha256. content is required; name, parent_id, and metadata are not accepted here.
+
+:param drive_id: (required)
+:type drive_id: str
+:param artifact_id: (required)
+:type artifact_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param if_match: (required)
+:type if_match: str
+:param content: The artifact bytes. (required)
+:type content: bytes
+:param authorization:
+:type authorization: str
+:param content_type: Declared media type.
+:type content_type: str
+:param sha256: Optional content sha256 for verification.
+:type sha256: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `artifact_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `If-Match` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Request body (required):
+
+| Content type | Schema |
+|---|---|
+| `multipart/form-data` | [`object#965d5f23ae45`](#inline-schema-object-965d5f23ae45) |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `201` | `application/json` | [`VersionCreatedOut`](#model-versioncreatedout) | `VersionCreatedOut` | `ETag`, `Location`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `versions_read`
+
+`GET /v0/drives/{drive_id}/artifacts/{artifact_id}/versions/{version_id}` — Read Version
+
+Authentication: **bearer token**.
+
+Read one immutable version.
+
+Generated API class: `VersionsApi`
+
+Synchronous callables:
+
+```python
+def versions_read(drive_id: StrictStr, artifact_id: StrictStr, version_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> VersionOut
+def versions_read_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, version_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[VersionOut]
+def versions_read_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, version_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def versions_read(drive_id: StrictStr, artifact_id: StrictStr, version_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> VersionOut
+async def versions_read_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, version_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[VersionOut]
+async def versions_read_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, version_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Read Version
+
+Read one immutable version.
+
+:param drive_id: (required)
+:type drive_id: str
+:param artifact_id: (required)
+:type artifact_id: str
+:param version_id: (required)
+:type version_id: str
+:param if_none_match:
+:type if_none_match: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `artifact_id` | `path` | yes | `string` | — |
+| `version_id` | `path` | yes | `string` | — |
+| `If-None-Match` | `header` | no | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/json` | [`VersionOut`](#model-versionout) | `VersionOut` | `ETag`, `X-Request-Id` |
+| `304` | — | — | — | `ETag`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `versions_content`
+
+`GET /v0/drives/{drive_id}/artifacts/{artifact_id}/versions/{version_id}/content` — Read Version Content
+
+Authentication: **bearer token**.
+
+Download one version's immutable bytes — stream or 307.
+
+Generated API class: `VersionsApi`
+
+Synchronous callables:
+
+```python
+def versions_content(drive_id: StrictStr, artifact_id: StrictStr, version_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> bytes
+def versions_content_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, version_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[bytes]
+def versions_content_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, version_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def versions_content(drive_id: StrictStr, artifact_id: StrictStr, version_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> bytes
+async def versions_content_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, version_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[bytes]
+async def versions_content_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, version_id: StrictStr, if_none_match: Optional[StrictStr] = None, authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Read Version Content
+
+Download one version's immutable bytes — stream or 307.
+
+:param drive_id: (required)
+:type drive_id: str
+:param artifact_id: (required)
+:type artifact_id: str
+:param version_id: (required)
+:type version_id: str
+:param if_none_match:
+:type if_none_match: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `artifact_id` | `path` | yes | `string` | — |
+| `version_id` | `path` | yes | `string` | — |
+| `If-None-Match` | `header` | no | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `200` | `application/octet-stream` | `string(binary)` | `bytes` | `X-Request-Id` |
+| `304` | — | — | — | `ETag`, `X-Request-Id` |
+| `307` | — | — | — | `Location`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+#### `versions_restore`
+
+`POST /v0/drives/{drive_id}/artifacts/{artifact_id}/versions/{version_id}/restore` — Restore Version
+
+Authentication: **bearer token**.
+
+Restore a historical version as a NEW head version (no byte copy).
+
+Generated API class: `VersionsApi`
+
+Synchronous callables:
+
+```python
+def versions_restore(drive_id: StrictStr, artifact_id: StrictStr, version_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> VersionCreatedOut
+def versions_restore_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, version_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[VersionCreatedOut]
+def versions_restore_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, version_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Asynchronous callables:
+
+```python
+async def versions_restore(drive_id: StrictStr, artifact_id: StrictStr, version_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> VersionCreatedOut
+async def versions_restore_with_http_info(drive_id: StrictStr, artifact_id: StrictStr, version_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> ApiResponse[VersionCreatedOut]
+async def versions_restore_without_preload_content(drive_id: StrictStr, artifact_id: StrictStr, version_id: StrictStr, idempotency_key: Optional[StrictStr], if_match: Optional[StrictStr], authorization: Optional[StrictStr] = None, _request_timeout: Union[None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]] = None, _request_auth: Optional[Dict[StrictStr, Any]] = None, _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0) -> RESTResponseType
+```
+
+Generated docstring:
+
+```text
+Restore Version
+
+Restore a historical version as a NEW head version (no byte copy).
+
+:param drive_id: (required)
+:type drive_id: str
+:param artifact_id: (required)
+:type artifact_id: str
+:param version_id: (required)
+:type version_id: str
+:param idempotency_key: (required)
+:type idempotency_key: str
+:param if_match: (required)
+:type if_match: str
+:param authorization:
+:type authorization: str
+:param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+:type _request_timeout: int, tuple(int, int), optional
+:param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+:type _request_auth: dict, optional
+:param _content_type: force content-type for the request.
+:type _content_type: str, Optional
+:param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+:type _headers: dict, optional
+:param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+:type _host_index: int, optional
+:return: Returns the result object.
+```
+
+Request parameters:
+
+| Wire name | In | Required | Schema | Description |
+|---|---|:---:|---|---|
+| `drive_id` | `path` | yes | `string` | — |
+| `artifact_id` | `path` | yes | `string` | — |
+| `version_id` | `path` | yes | `string` | — |
+| `Idempotency-Key` | `header` | yes | `string` or `null` | — |
+| `If-Match` | `header` | yes | `string` or `null` | — |
+| `authorization` | `header` | no | `string` or `null` | — |
+
+Responses:
+
+| Status | Content | OpenAPI schema | Generated Python type | Headers |
+|---:|---|---|---|---|
+| `201` | `application/json` | [`VersionCreatedOut`](#model-versioncreatedout) | `VersionCreatedOut` | `ETag`, `Location`, `X-Request-Id` |
+| `400` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `401` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `WWW-Authenticate`, `X-Request-Id` |
+| `403` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `404` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `409` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `412` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `ETag`, `X-Request-Id` |
+| `422` | `application/json` | [`ValidationErrorResponse`](#model-validationerrorresponse) | `ValidationErrorResponse` | `X-Request-Id` |
+| `428` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `X-Request-Id` |
+| `429` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+| `503` | `application/json` | [`object#8b962e613b2d`](#inline-schema-object-8b962e613b2d) | `DrivesCreate400Response` | `Retry-After`, `X-Request-Id` |
+
+## Models
+
+### ArtifactCopyIn
+
+
+POST /v0/drives/{id}/artifacts/{artifact_id}/copy body. ``destination_drive_id`` must equal the source drive (or be absent) — cross-drive copy is out of v0 scope and rejected.
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `destination_drive_id` | no | `string` or `null` | — |
+| `destination_name` | yes | `string` | — |
+| `destination_parent_id` | yes | `string` | — |
+| `version_id` | no | `string` or `null` | — |
+
+Additional properties: not allowed.
+
+### ArtifactListOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `items` | yes | `array` of [`ArtifactOut`](#model-artifactout) | — |
+| `next_cursor` | yes | `string` or `null` | — |
+
+### ArtifactOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `content_preview` | yes | `string` or `null` | — |
+| `content_type` | yes | `string` or `null` | — |
+| `created_at` | yes | `string(date-time)` | — |
+| `deleted_at` | yes | `string(date-time)` or `null` | — |
+| `drive_id` | yes | `string` | — |
+| `effective_visibility` | yes | `enum[public, shared, private]` | Server-computed exposure summary, resolved over the artifact's live grants, its folder ancestry (bounded by the nearest sealed folder), and the drive. 'public' when any live grant has principal_type 'public'; otherwise 'shared' when a live grant names a principal other than the drive's creator; otherwise 'private'. Describes exposure, NOT the caller's own access. |
+| `head_version_id` | yes | `string` or `null` | — |
+| `id` | yes | `string` | — |
+| `labels` | yes | `array` of `string` | — |
+| `metadata` | yes | [`object#82ef96cebaf5`](#inline-schema-object-82ef96cebaf5) | — |
+| `name` | yes | `string` | — |
+| `parent_id` | yes | `string` | — |
+| `revision` | yes | `string` | — |
+| `state` | yes | `enum[active, deleted]` | — |
+| `updated_at` | yes | `string(date-time)` | — |
+
+### ArtifactUpdateIn
+
+
+PATCH /v0/drives/{id}/artifacts/{artifact_id} body — at least one field is required.
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `labels` | no | `array` of `string` or `null` | — |
+| `metadata` | no | [`object#82ef96cebaf5`](#inline-schema-object-82ef96cebaf5) or `null` | — |
+| `name` | no | `string` or `null` | — |
+| `parent_id` | no | `string` or `null` | — |
+
+Additional properties: not allowed.
+
+### ChangeActorOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `id` | yes | `string` or `null` | — |
+| `type` | yes | `enum[agent, user, system]` | — |
+
+### ChangeOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `actor` | yes | [`ChangeActorOut`](#model-changeactorout) | — |
+| `change_set_id` | yes | `string` | — |
+| `data` | yes | [`object#82ef96cebaf5`](#inline-schema-object-82ef96cebaf5) | — |
+| `drive_id` | yes | `string` | — |
+| `id` | yes | `string` | — |
+| `occurred_at` | yes | `string(date-time)` | — |
+| `previous_revision` | yes | `string` or `null` | — |
+| `resource` | yes | [`ChangeResourceOut`](#model-changeresourceout) | — |
+| `revision` | yes | `string` or `null` | — |
+| `type` | yes | `string` | — |
+
+### ChangePageOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `has_more` | yes | `boolean` | — |
+| `items` | yes | `array` of [`ChangeOut`](#model-changeout) | — |
+| `next_cursor` | yes | `string` | — |
+
+### ChangeResourceOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `id` | yes | `string` | — |
+| `type` | yes | `enum[drive, folder, artifact]` | — |
+
+### DriveCreateIn
+
+
+POST /v0/drives body.
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `metadata` | no | [`object#82ef96cebaf5`](#inline-schema-object-82ef96cebaf5) | — |
+| `name` | yes | `string` | — |
+
+Additional properties: not allowed.
+
+### DriveListOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `items` | yes | `array` of [`DriveOut`](#model-driveout) | — |
+| `next_cursor` | yes | `string` or `null` | — |
+
+### DriveOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `created_at` | yes | `string(date-time)` | — |
+| `created_by` | yes | `string` or `null` | — |
+| `deleted_at` | yes | `string(date-time)` or `null` | — |
+| `id` | yes | `string` | — |
+| `metadata` | yes | [`object#82ef96cebaf5`](#inline-schema-object-82ef96cebaf5) | — |
+| `name` | yes | `string` | — |
+| `retrieval_bytes` | yes | `integer` | — |
+| `revision` | yes | `string` | — |
+| `root_folder_id` | yes | `string` | — |
+| `state` | yes | `enum[active, deleted]` | — |
+| `storage_bytes` | yes | `integer` | — |
+| `updated_at` | yes | `string(date-time)` | — |
+| `workspace_id` | yes | `string` | — |
+
+### DriveUpdateIn
+
+
+PATCH /v0/drives/{id} body — at least one field is required.
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `metadata` | no | [`object#82ef96cebaf5`](#inline-schema-object-82ef96cebaf5) or `null` | — |
+| `name` | no | `string` or `null` | — |
+
+Additional properties: not allowed.
+
+### DriveUsageOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `retrieval_bytes` | yes | `integer` | — |
+| `storage_bytes` | yes | `integer` | — |
+
+### ErrorResponse
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `error` | yes | [`object#722fdd066e5a`](#inline-schema-object-722fdd066e5a) | — |
+
+### FolderCascadeOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `cascade` | yes | [`object#6c0c57913db9`](#inline-schema-object-6c0c57913db9) | — |
+| `folder` | yes | [`FolderOut`](#model-folderout) | — |
+
+### FolderCopyIn
+
+
+POST /v0/drives/{id}/folders/{folder_id}/copy body. ``destination_drive_id`` must equal the source drive (or be absent) — cross-drive copy is out of v0 scope and rejected.
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `destination_drive_id` | no | `string` or `null` | — |
+| `destination_name` | yes | `string` | — |
+| `destination_parent_id` | yes | `string` | — |
+
+Additional properties: not allowed.
+
+### FolderCreateIn
+
+
+POST /v0/drives/{id}/folders body.
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `grant_inheritance` | no | `enum[inherit, sealed]` | — |
+| `metadata` | no | [`object#82ef96cebaf5`](#inline-schema-object-82ef96cebaf5) | — |
+| `name` | yes | `string` | — |
+| `parent_id` | yes | `string` | — |
+
+Additional properties: not allowed.
+
+### FolderListOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `items` | yes | `array` of [`FolderOut`](#model-folderout) | — |
+| `next_cursor` | yes | `string` or `null` | — |
+
+### FolderOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `created_at` | yes | `string(date-time)` | — |
+| `deleted_at` | yes | `string(date-time)` or `null` | — |
+| `drive_id` | yes | `string` | — |
+| `grant_inheritance` | yes | `enum[inherit, sealed]` | — |
+| `id` | yes | `string` | — |
+| `metadata` | yes | [`object#82ef96cebaf5`](#inline-schema-object-82ef96cebaf5) | — |
+| `name` | yes | `string` or `null` | — |
+| `parent_id` | yes | `string` or `null` | — |
+| `revision` | yes | `string` | — |
+| `state` | yes | `enum[active, deleted]` | — |
+| `updated_at` | yes | `string(date-time)` | — |
+
+### FolderUpdateIn
+
+
+PATCH /v0/drives/{id}/folders/{folder_id} body — at least one field is required.
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `grant_inheritance` | no | `enum[inherit, sealed]` or `null` | — |
+| `metadata` | no | [`object#82ef96cebaf5`](#inline-schema-object-82ef96cebaf5) or `null` | — |
+| `name` | no | `string` or `null` | — |
+| `parent_id` | no | `string` or `null` | — |
+
+Additional properties: not allowed.
+
+### GrantCreateIn
+
+
+POST /v0/drives/{id}/grants body.
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `expires_at` | no | `string(date-time)` or `null` | — |
+| `principal_id` | no | `string` or `null` | — |
+| `principal_type` | yes | `enum[agent, user, workspace, public]` | — |
+| `resource_id` | yes | `string` | — |
+| `resource_type` | yes | `enum[drive, folder, artifact]` | — |
+| `role` | yes | `enum[viewer, editor, manager]` | — |
+
+Additional properties: not allowed.
+
+### GrantListOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `items` | yes | `array` of [`GrantOut`](#model-grantout) | — |
+| `next_cursor` | yes | `string` or `null` | — |
+
+### GrantOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `created_at` | yes | `string(date-time)` | — |
+| `drive_id` | yes | `string` | — |
+| `expires_at` | yes | `string(date-time)` or `null` | — |
+| `id` | yes | `string` | — |
+| `principal_id` | yes | `string` or `null` | — |
+| `principal_type` | yes | `enum[agent, user, workspace, public]` | — |
+| `resource_id` | yes | `string` | — |
+| `resource_type` | yes | `enum[drive, folder, artifact]` | — |
+| `revision` | yes | `string` | — |
+| `revoked_at` | yes | `string(date-time)` or `null` | — |
+| `role` | yes | `enum[viewer, editor, manager]` | — |
+| `state` | yes | `enum[active, revoked, expired]` | — |
+
+### GrantUpdateIn
+
+
+PATCH /v0/drives/{id}/grants/{grant_id} body — at least one field is required. An explicit ``expires_at: null`` clears the expiry; omitting it leaves it unchanged.
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `expires_at` | no | `string(date-time)` or `null` | — |
+| `role` | no | `enum[viewer, editor, manager]` or `null` | — |
+
+Additional properties: not allowed.
+
+### HealthDegradedDetail
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `error` | yes | `string` | — |
+| `status` | yes | `string` | — |
+
+### HealthDegradedResponse
+
+
+Legacy health-probe failure shape. Health predates the `/v0` error envelope and is consumed by load balancers. PR 1 documents the wire shape without changing it; convergence on the canonical API envelope is a separately reviewed compatibility decision.
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `detail` | yes | [`HealthDegradedDetail`](#model-healthdegradeddetail) | — |
+
+### HealthOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `status` | yes | `string` | — |
+
+### SearchHitOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `content_type` | yes | `string` or `null` | — |
+| `drive_id` | yes | `string` | — |
+| `id` | yes | `string` | — |
+| `name` | yes | `string` | — |
+| `parent_id` | yes | `string` or `null` | — |
+| `rank` | yes | `number` | — |
+| `snippet` | yes | `string` | HTML-safe highlighted excerpt. The ONLY markup it may contain is the server's own ... highlight pair; artifact content is entity-escaped, so this may be rendered as HTML. |
+| `updated_at` | yes | `string(date-time)` | — |
+| `version_id` | yes | `string` or `null` | — |
+
+### SearchPageOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `items` | yes | `array` of [`SearchHitOut`](#model-searchhitout) | — |
+| `next_cursor` | yes | `string` or `null` | — |
+
+### ShareCreateIn
+
+
+POST /v0/drives/{id}/shares body.
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `expires_at` | no | `string(date-time)` or `null` | — |
+| `resource_id` | yes | `string` | — |
+| `resource_type` | yes | `enum[artifact, artifact_version, folder]` | — |
+
+Additional properties: not allowed.
+
+### ShareCreateOut
+
+
+The create/rotate response — the ONLY response carrying the plaintext secret.
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `created_at` | yes | `string(date-time)` | — |
+| `created_by` | yes | `string` or `null` | — |
+| `drive_id` | yes | `string` | — |
+| `expires_at` | yes | `string(date-time)` or `null` | — |
+| `id` | yes | `string` | — |
+| `resource_id` | yes | `string` | — |
+| `resource_type` | yes | `enum[artifact, artifact_version, folder]` | — |
+| `revision` | yes | `string` | — |
+| `revoked_at` | yes | `string(date-time)` or `null` | — |
+| `rotated_at` | yes | `string(date-time)` or `null` | — |
+| `secret` | no | `string` or `null` | Plaintext share secret. Present only on first execution of a create or rotate; null on idempotent replay — rotate to obtain a new secret. |
+| `state` | yes | `enum[active, revoked]` | — |
+
+### ShareListOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `items` | yes | `array` of [`ShareOut`](#model-shareout) | — |
+| `next_cursor` | yes | `string` or `null` | — |
+
+### ShareOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `created_at` | yes | `string(date-time)` | — |
+| `created_by` | yes | `string` or `null` | — |
+| `drive_id` | yes | `string` | — |
+| `expires_at` | yes | `string(date-time)` or `null` | — |
+| `id` | yes | `string` | — |
+| `resource_id` | yes | `string` | — |
+| `resource_type` | yes | `enum[artifact, artifact_version, folder]` | — |
+| `revision` | yes | `string` | — |
+| `revoked_at` | yes | `string(date-time)` or `null` | — |
+| `rotated_at` | yes | `string(date-time)` or `null` | — |
+| `state` | yes | `enum[active, revoked]` | — |
+
+### V0ErrorEnvelope
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `error` | yes | [`object#722fdd066e5a`](#inline-schema-object-722fdd066e5a) | — |
+
+### ValidationErrorResponse
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `error` | yes | [`object#96c478f6609e`](#inline-schema-object-96c478f6609e) | — |
+
+### VersionCreatedOut
+
+
+The append/restore response — a version plus the artifact's new revision, which the version-creating 201 rotates.
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `artifact_id` | yes | `string` | — |
+| `artifact_revision` | yes | `string` | The artifact's revision after this version became head — the If-Match value for the next mutation. |
+| `content_type` | yes | `string` | — |
+| `created_at` | yes | `string(date-time)` | — |
+| `created_by` | yes | `string` or `null` | — |
+| `hash` | yes | `string` | — |
+| `id` | yes | `string` | — |
+| `parent_version_id` | yes | `string` or `null` | — |
+| `size_bytes` | yes | `integer` | — |
+| `version_number` | yes | `integer` | — |
+
+### VersionListOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `items` | yes | `array` of [`VersionOut`](#model-versionout) | — |
+| `next_cursor` | yes | `string` or `null` | — |
+
+### VersionOut
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `artifact_id` | yes | `string` | — |
+| `content_type` | yes | `string` | — |
+| `created_at` | yes | `string(date-time)` | — |
+| `created_by` | yes | `string` or `null` | — |
+| `hash` | yes | `string` | — |
+| `id` | yes | `string` | — |
+| `parent_version_id` | yes | `string` or `null` | — |
+| `size_bytes` | yes | `integer` | — |
+| `version_number` | yes | `integer` | — |
+
+## Anonymous and inline schemas
+
+OpenAPI permits request and response objects without a component name.
+The generated clients assign Python class names to some of these objects;
+the response tables show those generated names, while this section records
+their exact wire fields directly from the authoritative contract.
+
+### `object#0e19f9dee6d4`
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `location` | no | `string` | — |
+| `reason` | no | `string` | — |
+
+### `object#6c0c57913db9`
+
+
+Schema type: `object#6c0c57913db9`
+
+Additional properties: allowed values matching `integer`.
+
+### `object#722fdd066e5a`
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `code` | yes | `string` | Stable machine-readable error code (see the error-catalog). |
+| `details` | no | [`object#a2c799262a3c`](#inline-schema-object-a2c799262a3c) | Error-code-specific context (optional). |
+| `message` | yes | `string` | — |
+
+Additional properties: allowed (any JSON value).
+
+### `object#82ef96cebaf5`
+
+
+Schema type: `object#82ef96cebaf5`
+
+Additional properties: allowed (any JSON value).
+
+### `object#8b962e613b2d`
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `error` | yes | [`object#722fdd066e5a`](#inline-schema-object-722fdd066e5a) | — |
+
+### `object#965d5f23ae45`
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `content` | yes | `string(binary)` | The artifact bytes. |
+| `content_type` | no | `string` | Declared media type. |
+| `sha256` | no | `string` | Optional content sha256 for verification. |
+
+### `object#96c478f6609e`
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `code` | yes | `string` | — |
+| `details` | no | [`object#b79eb75a84e1`](#inline-schema-object-b79eb75a84e1) | — |
+| `message` | yes | `string` | — |
+
+Additional properties: allowed (any JSON value).
+
+### `object#a2c799262a3c`
+
+
+Error-code-specific context (optional).
+
+Schema type: `object#a2c799262a3c`
+
+### `object#b79eb75a84e1`
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `fields` | no | `array` of [`object#0e19f9dee6d4`](#inline-schema-object-0e19f9dee6d4) | — |
+
+### `object#f872091b96e1`
+
+
+| Field | Required | Schema | Description |
+|---|:---:|---|---|
+| `content` | yes | `string(binary)` | The artifact bytes. |
+| `content_type` | no | `string` | Declared media type. |
+| `metadata` | no | [`object#a2c799262a3c`](#inline-schema-object-a2c799262a3c) | Free-form JSON metadata. |
+| `name` | yes | `string` | Artifact name. |
+| `parent_id` | yes | `string` | Destination folder id (fld_*). |
+| `sha256` | no | `string` | Optional content sha256 for verification. |
diff --git a/docs/sdk-contract-migration-2026-07.md b/docs/sdk-contract-migration-2026-07.md
index 654d9c6..a5680ee 100644
--- a/docs/sdk-contract-migration-2026-07.md
+++ b/docs/sdk-contract-migration-2026-07.md
@@ -1,41 +1,73 @@
-# SDK contract migration — July 2026
+# SDK Phase 1 contract migration — July–August 2026
-This regeneration switches the SDK source from the live production
-`/openapi.json` endpoint to AgentDrive's reviewed, committed PR 3 contract.
-No package is published by this change.
+This PR replaces the pre-Phase 1 generated surface with AgentDrive's reviewed,
+committed SDK contract and introduces the Python `0.1.0` generated core. No
+package is published by this repository change.
## Generated surface
-| | Before | After |
+| | Pre-Phase 1 (`0.0.1`) | Phase 1 (`0.1.0`) |
|---|---:|---:|
-| OpenAPI paths | 159 | 86 |
-| Operations | 185 | 110 |
-| Component schemas | 123 | 128 |
-
-The removed generated methods were browser pages, `/web/*` forms, and other UI
-or internal operations that never belonged in a machine SDK. Their runtime
-routes are unchanged.
-
-The corrected generated surface adds:
-
-- the HTTP Bearer authentication scheme used by `ad_live_`, `ad_user_`, and
- supported JWT credentials;
-- canonical structured error and validation models;
-- typed JSON success payloads plus correct binary/text response types;
-- PR 2 cursor inputs and `next_cursor` outputs for trash and compile-job
- listings, while retaining their deprecated response aliases.
-
-Generated method and model changes should be reviewed as a client-surface
-correction. Before publishing, choose an SDK version appropriate to the
-packages' current stability promise and include these notes in the release.
-
-## Workflow change
-
-- Input is the committed `sdk/openapi.json` with exact AgentDrive commit and
- SHA-256 provenance.
-- OpenAPI Generator is pinned to 7.24.0.
-- CI regenerates and fails on drift.
-- Python, TypeScript, and Go must expose exactly the contract's operation IDs.
-- All language builds/tests run before merge.
-- Scheduled production fetches, bot auto-commits, and implicit publishing are
- removed.
+| OpenAPI paths | 86 | 27 |
+| Operations | 110 | 42 |
+| Component schemas | 128 | 38 |
+
+The 68 removed operations were browser pages, internal/admin services, and
+other routes outside the supported machine SDK. Their removal from this client
+contract does not claim that their server routes disappeared. The Phase 1
+surface contains 39 bearer-authenticated operations and three anonymous
+discovery/health/share-redemption operations.
+
+The old `agentdrive-sdk` `0.0.1` distribution is pre-Phase 1 and superseded by
+this reviewed contract. Separately, the bare `agentdrive` PyPI name is only a
+parked `0.0.1` placeholder; the retired stdio MCP companion is not part of the
+new SDK architecture.
+
+## Python architecture
+
+The Python package is now hand-owned except for two isolated generated trees:
+
+- synchronous `urllib3` client at
+ `src/agentdrive_sdk/generated/sync`;
+- asynchronous `httpx` client at
+ `src/agentdrive_sdk/generated/async_client`.
+
+Both cores cover all 42 operations and expose the primary,
+`*_with_http_info`, and `*_without_preload_content` variants. The ergonomic
+resource facade is a later phase; `0.1.0` intentionally exposes the complete
+generated cores first. Exact callable signatures and generated docstrings are
+in `docs/python-sdk-api-reference.md`.
+
+Generated request models reject unknown fields, keep request enums closed, and
+distinguish omitted PATCH fields from explicit null. Optional but non-nullable
+wire fields reject explicit null. Generated response models ignore additive
+fields and accept future enum strings. Both transports disable automatic
+redirect following so credentials are not forwarded across hosts, while
+`ApiResponse.headers` preserves the complete raw response-header mapping.
+
+## Compatibility and review gates
+
+The 110-to-42 transition is an intentional one-time reset. It is authorized by
+`sdk/openapi.compatibility-reset.json`, bound to the exact old/new canonical
+contract digests and AgentDrive source commit
+`31cd35c8e12aef1cbee228e965289107cb51092c`. Any different candidate fails the
+reset match. After this contract reaches the base branch, CI performs normal
+directional compatibility checks and rejects breaking request or response
+changes.
+
+CI additionally requires:
+
+- exact provenance and pinned-generator verification;
+- byte-identical regeneration and exact operation coverage in all languages;
+- exact sync/async Python callable and wire parity;
+- direct component property/requiredness/nullability comparison plus reviewed
+ constraint, response status/media/header, and generated AST hashes;
+- generated model evolution and transport conformance tests on Python 3.10,
+ 3.12, and 3.14;
+- a current generated API reference and contract-shape manifest;
+- release input/tag equality with every package version before any publish job.
+
+Publishing remains a separate human-approved action. Before publishing
+`0.1.0`, verify PyPI and npm trusted-publisher ownership after the GitHub
+repository transfer; immutable existing versions are hard failures, not
+silently skipped.
diff --git a/docs/sdk-generation.md b/docs/sdk-generation.md
index 59ffa9c..583795c 100644
--- a/docs/sdk-generation.md
+++ b/docs/sdk-generation.md
@@ -28,8 +28,10 @@ Every API contract change uses two coordinated reviews:
CI regenerates with `openapitools/openapi-generator-cli:v7.24.0`, requires a
clean diff, checks exact operation coverage in all three languages, and runs
-their tests. The workflow does not fetch production, commit changes, publish
-packages, or deploy anything.
+their tests. Before generation it compares the candidate OpenAPI document with
+the PR/push base and rejects breaking operation, parameter, request, response,
+status, media, header, authentication, or server changes. The workflow does
+not fetch production, commit changes, publish packages, or deploy anything.
The canonical OpenAPI 3.1 file is unchanged by generation. A tested
generation-only view removes object/array defaults that produce invalid Go and
@@ -40,6 +42,64 @@ their templates otherwise emit undefined serializers. Python consumes the
unmodified union schemas. A final deterministic pass strips generator-owned
trailing whitespace and excess EOF blank lines.
-Publishing is a separate, explicit release action. Corrected clients should
-receive a version and migration note appropriate to their current stability
-promise before Josh approves publication.
+## Python generated-core gates
+
+Python generation produces two independent clients:
+
+- `sdk/python/src/agentdrive_sdk/generated/sync` (`urllib3`);
+- `sdk/python/src/agentdrive_sdk/generated/async_client` (`httpx`, async only).
+
+`check_python_generated_contract.py` parses both source trees. It requires all
+three public variants for every operation, exact sync/async parameter and
+docstring parity, and contract-matching HTTP methods, paths, authentication,
+wire parameter names/locations/requiredness/types, request media, response
+media/status/model maps, and a response-header carrier.
+
+`generate_python_contract_manifest.py --check` provides the deeper review
+gate. Its committed manifest hashes every constraint-bearing component schema
+and generated model class while directly comparing each component's property
+set, requiredness, and nullability. For every response it records exact status,
+media, and header names/schema hashes. Generated Python does not create one
+attribute per header: both clients copy the complete raw header mapping into
+`ApiResponse.headers`; the manifest verifies that carrier and forwarding path.
+
+`postprocess_python_models.py` applies the compatibility policy that OpenAPI
+Generator does not express correctly by itself:
+
+- request models reject unknown fields and retain closed enum validation;
+- optional-but-non-nullable fields remain omittable but reject explicit null;
+- response models ignore additive fields and accept future enum strings;
+- PATCH request serialization preserves explicit null while omitting unset
+ fields.
+
+`generate_python_api_reference.py` parses the committed source rather than
+guessing from OpenAPI alone. Its checked output includes exact sync/async
+callable signatures, all variants and generated docstrings, plus the wire
+request/response tables. Response tables pair each OpenAPI schema with its
+generated Python type, and anonymous request/error objects link to recursively
+rendered inline field definitions instead of opaque schema hashes.
+
+## Intentional Phase 1 compatibility reset
+
+The pre-Phase 1 `0.0.1` contract exposed 110 operations, including browser and
+internal routes that were never a supported SDK surface. The Phase 1 contract
+intentionally replaces it with the reviewed 42-operation SDK contract. The
+single transition is authorized only by
+`sdk/openapi.compatibility-reset.json`, whose exact old digest, new digest, and
+AgentDrive source commit must all match. It is not a skip flag: any further
+change to either document invalidates it. Once the 42-operation contract is the
+base branch, normal directional compatibility comparison applies.
+
+Publishing is a separate, explicit release action. A manual dispatch fails
+unless it runs from `refs/heads/main`; a GitHub release commit must be contained
+in `origin/main`. The publish workflow then calls the same reusable acceptance
+workflow as pull requests: unit/provenance/compatibility checks, pinned
+regeneration and freshness, exact Python shape/model/reference gates,
+conformance and package builds, TypeScript build, and Go tests must all pass on
+the release commit. Only then does release integrity require the release tag
+(`vX.Y.Z`) or manual input to match `sdk/SDK_VERSION`, Python root and generated
+versions, and TypeScript package/lock versions. PyPI, npm, and Go tag jobs
+depend on those gates and fail rather than silently accepting an
+already-published immutable version. Trusted-publisher ownership/OIDC must be
+verified after the GitHub repository transfer before approving the first
+`0.1.0` publish.
diff --git a/quality/python/test_generated_model_policy.py b/quality/python/test_generated_model_policy.py
new file mode 100644
index 0000000..e24e7d1
--- /dev/null
+++ b/quality/python/test_generated_model_policy.py
@@ -0,0 +1,87 @@
+from __future__ import annotations
+
+import importlib
+from pathlib import Path
+
+import pytest
+from pydantic import ValidationError
+
+from scripts.openapi_sdk_contract import load_document, model_contexts, python_name
+
+NAMESPACES = (
+ "agentdrive_sdk.generated.sync",
+ "agentdrive_sdk.generated.async_client",
+)
+
+
+def _model(namespace: str, name: str):
+ module = importlib.import_module(f"{namespace}.models.{python_name(name)}")
+ return getattr(module, name)
+
+
+@pytest.mark.parametrize("namespace", NAMESPACES)
+def test_all_contract_models_have_directional_extra_field_policy(namespace: str):
+ contract = load_document(Path("sdk/openapi.json"))
+ request_models, response_models = model_contexts(contract)
+
+ for name in sorted(request_models):
+ model = _model(namespace, name)
+ assert model.model_config.get("extra") == "forbid", name
+ assert "additional_properties" not in model.model_fields, name
+ for name in sorted(response_models):
+ model = _model(namespace, name)
+ assert model.model_config.get("extra") == "ignore", name
+
+
+@pytest.mark.parametrize("namespace", NAMESPACES)
+def test_additive_response_field_and_unknown_response_enum_are_accepted(namespace: str):
+ actor = _model(namespace, "ChangeActorOut").from_dict(
+ {"id": None, "type": "future_actor", "future_field": {"nested": True}}
+ )
+
+ assert actor.type == "future_actor"
+ assert actor.id is None
+ assert not hasattr(actor, "future_field")
+
+
+@pytest.mark.parametrize("namespace", NAMESPACES)
+def test_request_models_reject_unknown_fields_through_both_entry_points(namespace: str):
+ drive_create = _model(namespace, "DriveCreateIn")
+ payload = {"name": "research", "future_field": True}
+
+ with pytest.raises(ValidationError):
+ drive_create.model_validate(payload)
+ with pytest.raises(ValidationError):
+ drive_create.from_dict(payload)
+
+
+@pytest.mark.parametrize("namespace", NAMESPACES)
+def test_optional_nonnullable_request_field_rejects_explicit_null(namespace: str):
+ drive_create = _model(namespace, "DriveCreateIn")
+
+ assert drive_create.model_validate({"name": "research"}).metadata is None
+ with pytest.raises(ValidationError):
+ drive_create.model_validate({"name": "research", "metadata": None})
+
+
+@pytest.mark.parametrize("namespace", NAMESPACES)
+def test_request_enum_remains_closed(namespace: str):
+ grant_create = _model(namespace, "GrantCreateIn")
+
+ with pytest.raises(ValidationError):
+ grant_create.from_dict(
+ {
+ "principal_type": "agent",
+ "resource_id": "drv_0123456789abcdef",
+ "resource_type": "drive",
+ "role": "future_role",
+ }
+ )
+
+
+@pytest.mark.parametrize("namespace", NAMESPACES)
+def test_patch_dump_distinguishes_explicit_null_from_unset(namespace: str):
+ grant_update = _model(namespace, "GrantUpdateIn")
+
+ assert grant_update(expires_at=None).to_dict() == {"expires_at": None}
+ assert grant_update().to_dict() == {}
diff --git a/scripts/check_openapi_compatibility.py b/scripts/check_openapi_compatibility.py
new file mode 100644
index 0000000..46906ac
--- /dev/null
+++ b/scripts/check_openapi_compatibility.py
@@ -0,0 +1,590 @@
+"""Reject backward-incompatible SDK contract changes.
+
+The comparator is direction-aware: a new request schema must continue to
+accept every previously valid request, while a new response schema must remain
+readable by an older client. AgentDrive response models intentionally ignore
+additive fields and accept unknown enum strings, so those two response changes
+are explicitly compatible.
+"""
+
+from __future__ import annotations
+
+import argparse
+import json
+import subprocess
+import sys
+from pathlib import Path
+from typing import Any, Literal
+
+try:
+ from scripts.openapi_sdk_contract import (
+ ContractError,
+ load_document,
+ media_schemas,
+ merged_parameters,
+ operation_map,
+ resolve_local_ref,
+ sha256_json,
+ shape_schema,
+ )
+except ModuleNotFoundError: # direct `python scripts/...py` execution
+ from openapi_sdk_contract import (
+ ContractError,
+ load_document,
+ media_schemas,
+ merged_parameters,
+ operation_map,
+ resolve_local_ref,
+ sha256_json,
+ shape_schema,
+ )
+
+Direction = Literal["request", "response"]
+DEFAULT_CURRENT = Path("sdk/openapi.json")
+DEFAULT_RESET = Path("sdk/openapi.compatibility-reset.json")
+DEFAULT_PROVENANCE = Path("sdk/openapi.provenance.json")
+
+
+def load_source(source: str) -> dict[str, Any]:
+ """Load a filesystem JSON document or a ``git show`` object expression."""
+
+ path = Path(source)
+ if path.is_file():
+ return load_document(path)
+ result = subprocess.run(
+ ["git", "show", source],
+ check=False,
+ capture_output=True,
+ text=True,
+ )
+ if result.returncode:
+ detail = result.stderr.strip() or "git show failed"
+ raise ContractError(f"cannot load compatibility base {source!r}: {detail}")
+ try:
+ document = json.loads(result.stdout)
+ except json.JSONDecodeError as exc:
+ raise ContractError(f"compatibility base {source!r} is not JSON: {exc}") from exc
+ if not isinstance(document, dict):
+ raise ContractError(f"compatibility base {source!r} must contain a JSON object")
+ return document
+
+
+def _effective_security(document: dict[str, Any], operation: dict[str, Any]) -> list[Any]:
+ value = operation.get("security", document.get("security", []))
+ return value if isinstance(value, list) else []
+
+
+def _security_covers(old: list[Any], new: list[Any]) -> bool:
+ """Return whether each old authentication alternative still works."""
+
+ if not old:
+ old = [{}]
+ if not new:
+ new = [{}]
+ for old_requirement in old:
+ if not isinstance(old_requirement, dict):
+ return False
+ accepted = False
+ for new_requirement in new:
+ if not isinstance(new_requirement, dict):
+ continue
+ if not set(new_requirement).issubset(old_requirement):
+ continue
+ if all(
+ set(new_requirement[name] or []).issubset(old_requirement[name] or [])
+ for name in new_requirement
+ ):
+ accepted = True
+ break
+ if not accepted:
+ return False
+ return True
+
+
+def _type_set(schema: dict[str, Any]) -> set[str] | None:
+ raw = schema.get("type")
+ if isinstance(raw, str):
+ result = {raw}
+ elif isinstance(raw, list) and all(isinstance(item, str) for item in raw):
+ result = set(raw)
+ elif not schema or set(schema).issubset({"description", "title", "examples", "example"}):
+ return None
+ elif "properties" in schema or "additionalProperties" in schema:
+ result = {"object"}
+ elif "items" in schema:
+ result = {"array"}
+ else:
+ return None
+ if schema.get("nullable") is True:
+ result.add("null")
+ return result
+
+
+def _bound_breaks(
+ old: dict[str, Any], new: dict[str, Any], direction: Direction
+) -> list[str]:
+ failures: list[str] = []
+ lower = ("minimum", "exclusiveMinimum", "minLength", "minItems", "minProperties")
+ upper = ("maximum", "exclusiveMaximum", "maxLength", "maxItems", "maxProperties")
+ for name in lower:
+ old_value = old.get(name)
+ new_value = new.get(name)
+ if direction == "request":
+ if new_value is not None and (old_value is None or new_value > old_value):
+ failures.append(f"tightened {name} from {old_value!r} to {new_value!r}")
+ elif old_value is not None and (new_value is None or new_value < old_value):
+ failures.append(f"response loosened {name} from {old_value!r} to {new_value!r}")
+ for name in upper:
+ old_value = old.get(name)
+ new_value = new.get(name)
+ if direction == "request":
+ if new_value is not None and (old_value is None or new_value < old_value):
+ failures.append(f"tightened {name} from {old_value!r} to {new_value!r}")
+ elif old_value is not None and (new_value is None or new_value > old_value):
+ failures.append(f"response loosened {name} from {old_value!r} to {new_value!r}")
+ old_pattern = old.get("pattern")
+ new_pattern = new.get("pattern")
+ if direction == "request" and new_pattern and new_pattern != old_pattern:
+ failures.append(f"introduced/changed pattern from {old_pattern!r} to {new_pattern!r}")
+ if direction == "response" and old_pattern and new_pattern != old_pattern:
+ failures.append(f"response changed/removed pattern from {old_pattern!r} to {new_pattern!r}")
+ return failures
+
+
+def _additional_policy(schema: dict[str, Any]) -> Any:
+ return schema.get("additionalProperties", True)
+
+
+def _schema_breaks(
+ old_document: dict[str, Any],
+ new_document: dict[str, Any],
+ old_schema: Any,
+ new_schema: Any,
+ *,
+ direction: Direction,
+ location: str,
+ seen: set[tuple[int, int, Direction]] | None = None,
+) -> list[str]:
+ old_schema = resolve_local_ref(old_document, old_schema)
+ new_schema = resolve_local_ref(new_document, new_schema)
+ if not isinstance(old_schema, dict) or not isinstance(new_schema, dict):
+ if shape_schema(old_schema) != shape_schema(new_schema):
+ return [f"{location}: schema changed"]
+ return []
+
+ seen = seen or set()
+ pair = (id(old_schema), id(new_schema), direction)
+ if pair in seen:
+ return []
+ seen.add(pair)
+
+ old_alternatives = old_schema.get("anyOf") or old_schema.get("oneOf")
+ new_alternatives = new_schema.get("anyOf") or new_schema.get("oneOf")
+ if isinstance(old_alternatives, list) or isinstance(new_alternatives, list):
+ old_values = old_alternatives if isinstance(old_alternatives, list) else [old_schema]
+ new_values = new_alternatives if isinstance(new_alternatives, list) else [new_schema]
+ source, targets = (
+ (old_values, new_values) if direction == "request" else (new_values, old_values)
+ )
+ for index, candidate in enumerate(source):
+ if not any(
+ not _schema_breaks(
+ old_document,
+ new_document,
+ candidate if direction == "request" else target,
+ target if direction == "request" else candidate,
+ direction=direction,
+ location=location,
+ seen=set(seen),
+ )
+ for target in targets
+ ):
+ return [f"{location}: union alternative {index} is no longer compatible"]
+ return []
+
+ failures: list[str] = []
+ old_types = _type_set(old_schema)
+ new_types = _type_set(new_schema)
+ if direction == "request":
+ if old_types is None and new_types is not None:
+ failures.append(f"{location}: unconstrained request type became {sorted(new_types)}")
+ elif old_types is not None and new_types is not None and not old_types <= new_types:
+ failures.append(
+ f"{location}: request types {sorted(old_types)} are not a subset of "
+ f"{sorted(new_types)}"
+ )
+ elif old_types is not None:
+ if new_types is None or not new_types <= old_types:
+ failures.append(
+ f"{location}: response types {sorted(new_types) if new_types else 'any'} "
+ f"are not a subset of {sorted(old_types)}"
+ )
+
+ old_format = old_schema.get("format")
+ new_format = new_schema.get("format")
+ if old_format != new_format:
+ if direction == "request" and new_format is not None:
+ failures.append(f"{location}: request format changed {old_format!r} -> {new_format!r}")
+ elif direction == "response" and old_format is not None:
+ failures.append(f"{location}: response format changed {old_format!r} -> {new_format!r}")
+
+ old_enum = old_schema.get("enum")
+ new_enum = new_schema.get("enum")
+ if direction == "request":
+ if isinstance(new_enum, list) and (
+ not isinstance(old_enum, list) or not set(old_enum).issubset(new_enum)
+ ):
+ failures.append(f"{location}: request enum removed or newly restricts values")
+ # Response enums are deliberately open in both generated Python clients.
+ # Expansion and contraction therefore do not make wire deserialization fail.
+
+ failures.extend(
+ f"{location}: {message}" for message in _bound_breaks(old_schema, new_schema, direction)
+ )
+
+ old_properties = old_schema.get("properties", {})
+ new_properties = new_schema.get("properties", {})
+ if isinstance(old_properties, dict) and isinstance(new_properties, dict):
+ old_required = set(old_schema.get("required", []))
+ new_required = set(new_schema.get("required", []))
+ if direction == "request":
+ added_required = new_required - old_required
+ if added_required:
+ failures.append(
+ f"{location}: new required request properties {sorted(added_required)}"
+ )
+ old_additional = _additional_policy(old_schema)
+ new_additional = _additional_policy(new_schema)
+ if old_additional is not False and new_additional is False:
+ failures.append(f"{location}: request additionalProperties became false")
+ for name, old_property in old_properties.items():
+ if name in new_properties:
+ failures.extend(
+ _schema_breaks(
+ old_document,
+ new_document,
+ old_property,
+ new_properties[name],
+ direction=direction,
+ location=f"{location}.{name}",
+ seen=set(seen),
+ )
+ )
+ elif new_additional is False:
+ failures.append(f"{location}: request property {name!r} is no longer accepted")
+ elif isinstance(new_additional, dict):
+ failures.extend(
+ _schema_breaks(
+ old_document,
+ new_document,
+ old_property,
+ new_additional,
+ direction=direction,
+ location=f"{location}.{name}",
+ seen=set(seen),
+ )
+ )
+ else:
+ no_longer_required = old_required - new_required
+ if no_longer_required:
+ failures.append(
+ f"{location}: required response properties became optional "
+ f"{sorted(no_longer_required)}"
+ )
+ for name, old_property in old_properties.items():
+ if name not in new_properties:
+ failures.append(f"{location}: response property {name!r} was removed")
+ continue
+ failures.extend(
+ _schema_breaks(
+ old_document,
+ new_document,
+ old_property,
+ new_properties[name],
+ direction=direction,
+ location=f"{location}.{name}",
+ seen=set(seen),
+ )
+ )
+ # Additive response properties are safe because generated response
+ # models are postprocessed with Pydantic ``extra='ignore'``.
+
+ old_items = old_schema.get("items")
+ new_items = new_schema.get("items")
+ if isinstance(old_items, dict) and isinstance(new_items, dict):
+ failures.extend(
+ _schema_breaks(
+ old_document,
+ new_document,
+ old_items,
+ new_items,
+ direction=direction,
+ location=f"{location}[]",
+ seen=set(seen),
+ )
+ )
+ elif isinstance(old_items, dict) != isinstance(new_items, dict):
+ failures.append(f"{location}: array item schema was added or removed")
+ return failures
+
+
+def _parameter_map(
+ document: dict[str, Any], entry: dict[str, Any]
+) -> dict[tuple[str, str], dict[str, Any]]:
+ return {
+ (str(item.get("in")), str(item.get("name"))): item
+ for item in merged_parameters(document, entry["path_item"], entry["operation"])
+ }
+
+
+def _request_body_breaks(
+ old_document: dict[str, Any],
+ new_document: dict[str, Any],
+ operation_id: str,
+ old_operation: dict[str, Any],
+ new_operation: dict[str, Any],
+) -> list[str]:
+ old_body = resolve_local_ref(old_document, old_operation.get("requestBody", {}))
+ new_body = resolve_local_ref(new_document, new_operation.get("requestBody", {}))
+ old_body = old_body if isinstance(old_body, dict) else {}
+ new_body = new_body if isinstance(new_body, dict) else {}
+ failures: list[str] = []
+ if not old_body.get("content"):
+ if new_body.get("required"):
+ failures.append(f"{operation_id}: added a required request body")
+ return failures
+ if not new_body.get("content"):
+ return [f"{operation_id}: request body was removed"]
+ if not old_body.get("required") and new_body.get("required"):
+ failures.append(f"{operation_id}: request body became required")
+ old_media = media_schemas(old_body.get("content"))
+ new_media = media_schemas(new_body.get("content"))
+ for media_type, old_schema in old_media.items():
+ if media_type not in new_media:
+ failures.append(f"{operation_id}: removed request media type {media_type}")
+ continue
+ failures.extend(
+ _schema_breaks(
+ old_document,
+ new_document,
+ old_schema,
+ new_media[media_type],
+ direction="request",
+ location=f"{operation_id}:request[{media_type}]",
+ )
+ )
+ return failures
+
+
+def _response_breaks(
+ old_document: dict[str, Any],
+ new_document: dict[str, Any],
+ operation_id: str,
+ old_operation: dict[str, Any],
+ new_operation: dict[str, Any],
+) -> list[str]:
+ failures: list[str] = []
+ old_responses = old_operation.get("responses", {})
+ new_responses = new_operation.get("responses", {})
+ for status, old_raw in old_responses.items():
+ if status not in new_responses:
+ failures.append(f"{operation_id}: removed response status {status}")
+ continue
+ old_response = resolve_local_ref(old_document, old_raw)
+ new_response = resolve_local_ref(new_document, new_responses[status])
+ old_response = old_response if isinstance(old_response, dict) else {}
+ new_response = new_response if isinstance(new_response, dict) else {}
+ old_media = media_schemas(old_response.get("content"))
+ new_media = media_schemas(new_response.get("content"))
+ for media_type, old_schema in old_media.items():
+ if media_type not in new_media:
+ failures.append(
+ f"{operation_id}:{status}: removed response media type {media_type}"
+ )
+ continue
+ failures.extend(
+ _schema_breaks(
+ old_document,
+ new_document,
+ old_schema,
+ new_media[media_type],
+ direction="response",
+ location=f"{operation_id}:response[{status},{media_type}]",
+ )
+ )
+ old_headers = old_response.get("headers", {})
+ new_headers = new_response.get("headers", {})
+ for name, old_header in old_headers.items():
+ if name not in new_headers:
+ failures.append(f"{operation_id}:{status}: removed response header {name}")
+ continue
+ old_header = resolve_local_ref(old_document, old_header)
+ new_header = resolve_local_ref(new_document, new_headers[name])
+ if isinstance(old_header, dict) and isinstance(new_header, dict):
+ failures.extend(
+ _schema_breaks(
+ old_document,
+ new_document,
+ old_header.get("schema", {}),
+ new_header.get("schema", {}),
+ direction="response",
+ location=f"{operation_id}:response[{status}].header[{name}]",
+ )
+ )
+ return failures
+
+
+def compare_contracts(
+ old_document: dict[str, Any], new_document: dict[str, Any]
+) -> list[str]:
+ """Return deterministic backward-compatibility failures."""
+
+ failures: list[str] = []
+ old_servers = [item.get("url") for item in old_document.get("servers", []) if isinstance(item, dict)]
+ new_servers = [item.get("url") for item in new_document.get("servers", []) if isinstance(item, dict)]
+ if old_servers and old_servers != new_servers:
+ failures.append(f"API server URLs changed: {old_servers!r} -> {new_servers!r}")
+
+ old_operations = operation_map(old_document)
+ new_operations = operation_map(new_document)
+ for operation_id in sorted(old_operations):
+ if operation_id not in new_operations:
+ failures.append(f"removed operationId {operation_id}")
+ continue
+ old_entry = old_operations[operation_id]
+ new_entry = new_operations[operation_id]
+ if (old_entry["method"], old_entry["path"]) != (
+ new_entry["method"],
+ new_entry["path"],
+ ):
+ failures.append(
+ f"{operation_id}: route changed from {old_entry['method']} {old_entry['path']} "
+ f"to {new_entry['method']} {new_entry['path']}"
+ )
+ old_operation = old_entry["operation"]
+ new_operation = new_entry["operation"]
+ if not _security_covers(
+ _effective_security(old_document, old_operation),
+ _effective_security(new_document, new_operation),
+ ):
+ failures.append(f"{operation_id}: authentication requirements became stricter")
+
+ old_parameters = _parameter_map(old_document, old_entry)
+ new_parameters = _parameter_map(new_document, new_entry)
+ for key, old_parameter in old_parameters.items():
+ if key not in new_parameters:
+ failures.append(f"{operation_id}: removed {key[0]} parameter {key[1]}")
+ continue
+ new_parameter = new_parameters[key]
+ if not old_parameter.get("required") and new_parameter.get("required"):
+ failures.append(f"{operation_id}: parameter {key[1]} became required")
+ failures.extend(
+ _schema_breaks(
+ old_document,
+ new_document,
+ old_parameter.get("schema", {}),
+ new_parameter.get("schema", {}),
+ direction="request",
+ location=f"{operation_id}:parameter[{key[0]},{key[1]}]",
+ )
+ )
+ for key, new_parameter in new_parameters.items():
+ if key not in old_parameters and new_parameter.get("required"):
+ failures.append(f"{operation_id}: added required {key[0]} parameter {key[1]}")
+
+ failures.extend(
+ _request_body_breaks(
+ old_document, new_document, operation_id, old_operation, new_operation
+ )
+ )
+ failures.extend(
+ _response_breaks(
+ old_document, new_document, operation_id, old_operation, new_operation
+ )
+ )
+ return sorted(set(failures))
+
+
+def _reset_matches(
+ reset_path: Path,
+ old_document: dict[str, Any],
+ new_document: dict[str, Any],
+ *,
+ source_commit: str,
+) -> tuple[bool, str]:
+ if not reset_path.is_file():
+ return False, ""
+ reset = load_document(reset_path)
+ required = {"format", "from_sha256", "to_sha256", "reason", "source_commit"}
+ if set(reset) != required:
+ raise ContractError(
+ f"{reset_path}: reset metadata keys must be exactly {sorted(required)}"
+ )
+ if reset["format"] != 1:
+ raise ContractError(f"{reset_path}: unsupported reset metadata format")
+ string_fields = required - {"format"}
+ if not all(isinstance(reset[name], str) and reset[name] for name in string_fields):
+ raise ContractError(f"{reset_path}: reset metadata values must be non-empty strings")
+ matches = (
+ reset["from_sha256"] == sha256_json(old_document)
+ and reset["to_sha256"] == sha256_json(new_document)
+ and reset["source_commit"] == source_commit
+ )
+ return matches, str(reset["reason"])
+
+
+def main() -> None:
+ parser = argparse.ArgumentParser(description=__doc__)
+ parser.add_argument(
+ "--base",
+ required=True,
+ help="base contract path or git object expression (for example BASE:sdk/openapi.json)",
+ )
+ parser.add_argument("--current", type=Path, default=DEFAULT_CURRENT)
+ parser.add_argument("--allow-reset", type=Path, default=DEFAULT_RESET)
+ parser.add_argument("--provenance", type=Path, default=DEFAULT_PROVENANCE)
+ args = parser.parse_args()
+
+ try:
+ old_document = load_source(args.base)
+ new_document = load_document(args.current)
+ provenance = load_document(args.provenance)
+ source_commit = provenance.get("source_commit")
+ if not isinstance(source_commit, str) or not source_commit:
+ raise ContractError(f"{args.provenance}: source_commit must be a non-empty string")
+ failures = compare_contracts(old_document, new_document)
+ if not failures:
+ print(
+ "OpenAPI compatibility gate passed: "
+ f"{len(operation_map(old_document))} -> {len(operation_map(new_document))} operations."
+ )
+ return
+ reset_matches, reason = _reset_matches(
+ args.allow_reset,
+ old_document,
+ new_document,
+ source_commit=source_commit,
+ )
+ if reset_matches:
+ print(
+ "OpenAPI compatibility reset matched exact reviewed contract digests: "
+ f"{len(operation_map(old_document))} -> {len(operation_map(new_document))} "
+ f"operations ({len(failures)} otherwise-breaking changes). Reason: {reason}"
+ )
+ return
+ print("OpenAPI compatibility gate failed:", file=sys.stderr)
+ for failure in failures:
+ print(f"- {failure}", file=sys.stderr)
+ if args.allow_reset.is_file():
+ print(
+ f"Reset metadata {args.allow_reset} does not exactly match the base/current digests.",
+ file=sys.stderr,
+ )
+ raise SystemExit(1)
+ except (ContractError, OSError) as exc:
+ print(f"OpenAPI compatibility gate failed: {exc}", file=sys.stderr)
+ raise SystemExit(1) from exc
+
+
+if __name__ == "__main__":
+ main()
diff --git a/scripts/check_operation_coverage.py b/scripts/check_operation_coverage.py
index a96b955..2259b43 100644
--- a/scripts/check_operation_coverage.py
+++ b/scripts/check_operation_coverage.py
@@ -51,7 +51,13 @@ def _contents(paths: Iterable[Path]) -> str:
def _python_operations(directory: Path) -> Set[str]:
content = _contents(directory.glob("*_api.py"))
- names = set(re.findall(r"^ def ([A-Za-z0-9_]+)\(", content, re.MULTILINE))
+ names = set(
+ re.findall(
+ r"^ (?:async )?def ([A-Za-z0-9_]+)\(",
+ content,
+ re.MULTILINE,
+ )
+ )
return {
name
for name in names
@@ -87,16 +93,23 @@ def _go_operations(directory: Path) -> Set[str]:
def check_operation_coverage(
spec_path: Path,
*,
- python_dir: Path,
+ python_sync_dir: Path,
+ python_async_dir: Path,
typescript_dir: Path,
go_dir: Path,
) -> None:
operation_ids = _operation_ids(spec_path)
expected = {}
- for language in ("python", "typescript", "go"):
+ language_conventions = {
+ "python sync": "python",
+ "python async": "python",
+ "typescript": "typescript",
+ "go": "go",
+ }
+ for language, convention in language_conventions.items():
owners: Dict[str, list[str]] = {}
for operation_id in operation_ids:
- generated = generated_names(operation_id)[language]
+ generated = generated_names(operation_id)[convention]
owners.setdefault(generated, []).append(operation_id)
collisions = {
name: sorted(ids)
@@ -109,13 +122,14 @@ def check_operation_coverage(
)
expected[language] = set(owners)
actual = {
- "python": _python_operations(python_dir),
+ "python sync": _python_operations(python_sync_dir),
+ "python async": _python_operations(python_async_dir),
"typescript": _typescript_operations(typescript_dir),
"go": _go_operations(go_dir),
}
failures = []
- for language in ("python", "typescript", "go"):
+ for language in language_conventions:
missing = sorted(expected[language] - actual[language])
extra = sorted(actual[language] - expected[language])
if missing:
@@ -132,7 +146,12 @@ def main() -> None:
args = parser.parse_args()
check_operation_coverage(
args.spec,
- python_dir=Path("sdk/python/agentdrive_sdk/api"),
+ python_sync_dir=Path(
+ "sdk/python/src/agentdrive_sdk/generated/sync/api"
+ ),
+ python_async_dir=Path(
+ "sdk/python/src/agentdrive_sdk/generated/async_client/api"
+ ),
typescript_dir=Path("sdk/typescript/src/apis"),
go_dir=Path("sdk/go"),
)
diff --git a/scripts/check_python_generated_contract.py b/scripts/check_python_generated_contract.py
new file mode 100644
index 0000000..eb0d1a9
--- /dev/null
+++ b/scripts/check_python_generated_contract.py
@@ -0,0 +1,85 @@
+"""Fail unless both generated Python clients exactly represent the SDK contract."""
+
+from __future__ import annotations
+
+import argparse
+import sys
+from pathlib import Path
+
+try:
+ from scripts.openapi_sdk_contract import ContractError, load_document, operation_map
+ from scripts.python_generated_surface import (
+ check_surface_against_contract,
+ check_sync_async_parity,
+ parse_surface,
+ public_operation_names,
+ )
+except ModuleNotFoundError: # direct `python scripts/...py` execution
+ from openapi_sdk_contract import ContractError, load_document, operation_map
+ from python_generated_surface import (
+ check_surface_against_contract,
+ check_sync_async_parity,
+ parse_surface,
+ public_operation_names,
+ )
+
+DEFAULT_CONTRACT = Path("sdk/openapi.json")
+DEFAULT_SYNC_API = Path("sdk/python/src/agentdrive_sdk/generated/sync/api")
+DEFAULT_ASYNC_API = Path("sdk/python/src/agentdrive_sdk/generated/async_client/api")
+
+
+def validate_generated_contract(
+ contract_path: Path,
+ sync_api: Path,
+ async_api: Path,
+) -> tuple[dict[str, dict], dict[str, dict]]:
+ document = load_document(contract_path)
+ operation_ids = set(operation_map(document))
+ failures: list[str] = []
+
+ for label, api_root in (("sync", sync_api), ("async", async_api)):
+ if not api_root.is_dir():
+ failures.append(f"{label}: generated API directory is missing: {api_root}")
+ continue
+ public = public_operation_names(api_root)
+ if public != operation_ids:
+ failures.append(
+ f"{label}: public operation set differs; "
+ f"missing={sorted(operation_ids - public)}, extra={sorted(public - operation_ids)}"
+ )
+ if failures:
+ raise ContractError("\n".join(failures))
+
+ sync = parse_surface(sync_api, operation_ids, expected_async=False)
+ async_client = parse_surface(async_api, operation_ids, expected_async=True)
+ failures.extend(check_surface_against_contract(document, sync, label="sync"))
+ failures.extend(check_surface_against_contract(document, async_client, label="async"))
+ failures.extend(check_sync_async_parity(sync, async_client))
+ if failures:
+ raise ContractError("\n".join(failures))
+ return sync, async_client
+
+
+def main() -> None:
+ parser = argparse.ArgumentParser(description=__doc__)
+ parser.add_argument("--contract", type=Path, default=DEFAULT_CONTRACT)
+ parser.add_argument("--sync-api", type=Path, default=DEFAULT_SYNC_API)
+ parser.add_argument("--async-api", type=Path, default=DEFAULT_ASYNC_API)
+ args = parser.parse_args()
+
+ try:
+ sync, _async_client = validate_generated_contract(
+ args.contract, args.sync_api, args.async_api
+ )
+ except (ContractError, OSError, SyntaxError) as exc:
+ print(f"Generated Python contract gate failed:\n{exc}", file=sys.stderr)
+ raise SystemExit(1) from exc
+ print(
+ "Generated Python contract is exact: "
+ f"{len(sync)} operations, sync/async callable parity, parameters, request media, "
+ "responses, status codes, auth, and response-header transport."
+ )
+
+
+if __name__ == "__main__":
+ main()
diff --git a/scripts/check_release_version.py b/scripts/check_release_version.py
new file mode 100644
index 0000000..be627b4
--- /dev/null
+++ b/scripts/check_release_version.py
@@ -0,0 +1,92 @@
+"""Validate a publish request against every SDK package version."""
+
+from __future__ import annotations
+
+import argparse
+import ast
+import json
+import re
+import sys
+import tomllib
+from pathlib import Path
+
+SEMVER = re.compile(r"(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\Z")
+
+
+def _python_assignment(path: Path, name: str) -> str:
+ tree = ast.parse(path.read_text(encoding="utf-8"), filename=str(path))
+ values: list[str] = []
+ for node in tree.body:
+ if not isinstance(node, ast.Assign) or len(node.targets) != 1:
+ continue
+ target = node.targets[0]
+ if isinstance(target, ast.Name) and target.id == name:
+ value = ast.literal_eval(node.value)
+ if isinstance(value, str):
+ values.append(value)
+ if len(values) != 1:
+ raise ValueError(f"{path}: expected exactly one string assignment to {name}")
+ return values[0]
+
+
+def version_values(root: Path) -> dict[str, str]:
+ python_project = tomllib.loads(
+ (root / "sdk/python/pyproject.toml").read_text(encoding="utf-8")
+ )
+ typescript = json.loads(
+ (root / "sdk/typescript/package.json").read_text(encoding="utf-8")
+ )
+ lock = json.loads(
+ (root / "sdk/typescript/package-lock.json").read_text(encoding="utf-8")
+ )
+ return {
+ "sdk/SDK_VERSION": (root / "sdk/SDK_VERSION").read_text(encoding="utf-8").strip(),
+ "python project": str(python_project["project"]["version"]),
+ "python package": _python_assignment(
+ root / "sdk/python/src/agentdrive_sdk/__init__.py", "__version__"
+ ),
+ "python generated sync": _python_assignment(
+ root / "sdk/python/src/agentdrive_sdk/generated/sync/__init__.py", "__version__"
+ ),
+ "python generated async": _python_assignment(
+ root / "sdk/python/src/agentdrive_sdk/generated/async_client/__init__.py",
+ "__version__",
+ ),
+ "typescript package": str(typescript["version"]),
+ "typescript lock": str(lock["version"]),
+ "typescript lock root": str(lock["packages"][""]["version"]),
+ }
+
+
+def check_release_version(root: Path, requested: str, *, event: str) -> str:
+ canonical = requested[1:] if requested.startswith("v") else requested
+ if event == "release" and requested != f"v{canonical}":
+ raise ValueError("GitHub release tags must use the exact form vX.Y.Z")
+ if not SEMVER.fullmatch(canonical):
+ raise ValueError(f"publish version must be a stable X.Y.Z value, got {requested!r}")
+ values = version_values(root)
+ mismatches = {label: value for label, value in values.items() if value != canonical}
+ if mismatches:
+ detail = ", ".join(f"{label}={value!r}" for label, value in mismatches.items())
+ raise ValueError(f"publish request {canonical!r} does not match metadata: {detail}")
+ return canonical
+
+
+def main() -> None:
+ parser = argparse.ArgumentParser(description=__doc__)
+ parser.add_argument("--requested", required=True, help="release tag or dispatch version")
+ parser.add_argument(
+ "--event", choices=("release", "workflow_dispatch"), required=True
+ )
+ parser.add_argument("--root", type=Path, default=Path("."))
+ args = parser.parse_args()
+ try:
+ version = check_release_version(args.root, args.requested, event=args.event)
+ except (KeyError, OSError, SyntaxError, ValueError, tomllib.TOMLDecodeError) as exc:
+ print(f"Release version gate failed: {exc}", file=sys.stderr)
+ raise SystemExit(1) from exc
+ print(version)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/scripts/generate-sdks.sh b/scripts/generate-sdks.sh
index ea8acdf..15a6b3e 100755
--- a/scripts/generate-sdks.sh
+++ b/scripts/generate-sdks.sh
@@ -2,104 +2,264 @@
# Generate the Python / TypeScript / Go SDKs from the AgentDrive OpenAPI spec.
#
# Usage: scripts/generate-sdks.sh [path-to-openapi.json]
-# Requires: Docker. The generator image is pinned below and in provenance.
+# Requires: Docker and the immutable OpenAPI Generator image recorded in
+# sdk/openapi-generator-image.txt.
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
SPEC_INPUT="${1:-sdk/openapi.json}"
SPEC="$(python3 "$ROOT/scripts/resolve_repo_path.py" "$ROOT" "$SPEC_INPUT")"
-cd "$ROOT"
-VERSION="${SDK_VERSION:-0.0.1}"
+SOURCE_SPEC="$ROOT/$SPEC"
+VERSION_FILE="$ROOT/sdk/SDK_VERSION"
+PYPROJECT="$ROOT/sdk/python/pyproject.toml"
GIT_HOST="github.com"
GIT_USER="Mnexa-AI"
GIT_REPO="agentdrive-sdk"
-OAG_IMAGE="$(tr -d '\r\n' < "$ROOT/sdk/openapi-generator-image.txt")"
-if [[ -z "$OAG_IMAGE" ]]; then
- echo "sdk/openapi-generator-image.txt must not be empty" >&2
+GO_MODULE="${GIT_HOST}/${GIT_USER}/${GIT_REPO}/sdk/go"
+
+if [[ ! -f "$VERSION_FILE" ]]; then
+ echo "sdk/SDK_VERSION is required" >&2
+ exit 2
+fi
+VERSION="$(tr -d '\r\n' < "$VERSION_FILE")"
+if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+([a-zA-Z0-9.-]+)?$ ]]; then
+ echo "sdk/SDK_VERSION must contain one semantic version" >&2
exit 2
fi
-echo "Generating SDKs from ${SPEC} with ${OAG_IMAGE} (version ${VERSION})"
+python3 - "$PYPROJECT" "$ROOT/sdk/python/src/agentdrive_sdk/__init__.py" "$VERSION" <<'PY'
+import ast
+import sys
+import tomllib
+from pathlib import Path
-# openapi-generator's Go templates emit invalid code for object/array `default`
-# values (e.g. `var options CompileOptions = {wait=false}`). Strip those defaults
-# into a sanitized spec used for generation; scalar defaults are left intact.
-CLEAN_SPEC="$(dirname "$SPEC")/.openapi.codegen.json"
-TYPESCRIPT_SPEC="$(dirname "$SPEC")/.openapi.codegen.typescript.json"
-GO_SPEC="$(dirname "$SPEC")/.openapi.codegen.go.json"
-LOCK_BACKUP="$(mktemp "${TMPDIR:-/tmp}/agentdrive-sdk-package-lock.XXXXXX")"
-had_lock=false
-if [[ -f "$ROOT/sdk/typescript/package-lock.json" ]]; then
- cp "$ROOT/sdk/typescript/package-lock.json" "$LOCK_BACKUP"
- had_lock=true
+pyproject = Path(sys.argv[1])
+package_init = Path(sys.argv[2])
+expected = sys.argv[3]
+actual = tomllib.loads(pyproject.read_text(encoding="utf-8"))["project"]["version"]
+if actual != expected:
+ raise SystemExit(
+ f"{pyproject.relative_to(pyproject.parents[2])} version {actual!r} "
+ f"does not match sdk/SDK_VERSION {expected!r}"
+ )
+
+tree = ast.parse(package_init.read_text(encoding="utf-8"), filename=str(package_init))
+versions = [
+ node.value.value
+ for node in tree.body
+ if isinstance(node, ast.Assign)
+ and any(isinstance(target, ast.Name) and target.id == "__version__" for target in node.targets)
+ and isinstance(node.value, ast.Constant)
+ and isinstance(node.value.value, str)
+]
+if versions != [expected]:
+ raise SystemExit(
+ f"{package_init.relative_to(pyproject.parents[2])} must declare "
+ f"__version__ = {expected!r}"
+ )
+PY
+
+OAG_IMAGE="$(tr -d '\r\n' < "$ROOT/sdk/openapi-generator-image.txt")"
+if [[ ! "$OAG_IMAGE" =~ ^openapitools/openapi-generator-cli:v7\.24\.0@sha256:[0-9a-f]{64}$ ]]; then
+ echo "sdk/openapi-generator-image.txt must pin OpenAPI Generator 7.24.0 by digest" >&2
+ exit 2
fi
+
+GENERATION_ROOT="$(mktemp -d "${TMPDIR:-/tmp}/agentdrive-sdk-generation.XXXXXX")"
cleanup() {
- if [[ "$had_lock" = true && -f "$LOCK_BACKUP" ]]; then
- mkdir -p "$ROOT/sdk/typescript"
- cp "$LOCK_BACKUP" "$ROOT/sdk/typescript/package-lock.json"
- fi
- rm -f \
- "$ROOT/$CLEAN_SPEC" \
- "$ROOT/$TYPESCRIPT_SPEC" \
- "$ROOT/$GO_SPEC" \
- "$LOCK_BACKUP"
+ rm -rf "$GENERATION_ROOT"
}
trap cleanup EXIT
+COMMON_SPEC="$GENERATION_ROOT/openapi.common.json"
+TYPESCRIPT_SPEC="$GENERATION_ROOT/openapi.typescript.json"
+GO_SPEC="$GENERATION_ROOT/openapi.go.json"
+
python3 "$ROOT/scripts/prepare_codegen_contract.py" \
- "$ROOT/$SPEC" "$ROOT/$CLEAN_SPEC"
+ "$SOURCE_SPEC" "$COMMON_SPEC"
python3 "$ROOT/scripts/prepare_codegen_contract.py" \
- "$ROOT/$SPEC" "$ROOT/$TYPESCRIPT_SPEC" --language typescript
+ "$SOURCE_SPEC" "$TYPESCRIPT_SPEC" --language typescript
python3 "$ROOT/scripts/prepare_codegen_contract.py" \
- "$ROOT/$SPEC" "$ROOT/$GO_SPEC" --language go
-SPEC="$CLEAN_SPEC"
-echo "Sanitized spec -> ${SPEC}"
-
-# openapi-generator does not delete files for operations that no longer exist;
-# wipe the generated dirs first so dropped endpoints (e.g. /internal/*) don't
-# linger as stale clients.
-# Verify Docker and the pinned image before deleting the recoverable generated
-# tree, so a missing daemon or failed image pull leaves the worktree untouched.
+ "$SOURCE_SPEC" "$GO_SPEC" --language go
+
+echo "Generating SDKs from ${SPEC} with ${OAG_IMAGE} (version ${VERSION})"
+
+# Verify Docker and fetch the pinned image before touching committed output.
docker info >/dev/null
docker image inspect "$OAG_IMAGE" >/dev/null 2>&1 || docker pull "$OAG_IMAGE"
-rm -rf "$ROOT/sdk/python" "$ROOT/sdk/typescript" "$ROOT/sdk/go"
generate() {
docker run --rm \
--user "$(id -u):$(id -g)" \
- --volume "$ROOT:/local" \
+ --volume "$ROOT:/local:ro" \
+ --volume "$GENERATION_ROOT:/generated" \
--workdir /local \
"$OAG_IMAGE" generate "$@"
}
-# --- Python -> package: agentdrive_sdk, PyPI dist: agentdrive-sdk ---
-generate -i "/local/$SPEC" -g python -o /local/sdk/python \
- --additional-properties=packageName=agentdrive_sdk,projectName=agentdrive-sdk,packageVersion="${VERSION}",library=urllib3,hideGenerationTimestamp=true \
+PYTHON_GLOBAL_PROPERTIES="apiTests=false,modelTests=false,apiDocs=false,modelDocs=false"
+
+# Python's generated core has two deliberately separate implementations. The
+# handwritten package lives outside these leaf directories and is never
+# replaced by generation.
+generate -i /generated/openapi.common.json -g python -o /generated/python-sync \
+ --global-property="$PYTHON_GLOBAL_PROPERTIES" \
+ --additional-properties=packageName=agentdrive_sdk.generated.sync,projectName=agentdrive-sdk,packageVersion="${VERSION}",library=urllib3,hideGenerationTimestamp=true \
--git-host="$GIT_HOST" --git-user-id="$GIT_USER" --git-repo-id="$GIT_REPO"
-# --- TypeScript (fetch-based: works in browser + Node, no axios dep) -> npm: @mnexa-ai/agentdrive-sdk ---
-generate -i "/local/$TYPESCRIPT_SPEC" -g typescript-fetch -o /local/sdk/typescript \
+generate -i /generated/openapi.common.json -g python -o /generated/python-async \
+ --global-property="$PYTHON_GLOBAL_PROPERTIES" \
+ --additional-properties=packageName=agentdrive_sdk.generated.async_client,projectName=agentdrive-sdk,packageVersion="${VERSION}",library=httpx,supportHttpxSync=false,hideGenerationTimestamp=true \
+ --git-host="$GIT_HOST" --git-user-id="$GIT_USER" --git-repo-id="$GIT_REPO"
+
+# TypeScript remains fetch-based for browser and Node compatibility.
+generate -i /generated/openapi.typescript.json -g typescript-fetch \
+ -o /generated/typescript \
--additional-properties=npmName=@mnexa-ai/agentdrive-sdk,npmVersion="${VERSION}",supportsES6=true,typescriptThreePlus=true,hideGenerationTimestamp=true \
--git-host="$GIT_HOST" --git-user-id="$GIT_USER" --git-repo-id="$GIT_REPO"
-# --- Go -> module: github.com/Mnexa-AI/agentdrive-sdk/sdk/go ---
-generate -i "/local/$GO_SPEC" -g go -o /local/sdk/go \
+# Go remains a submodule at sdk/go.
+generate -i /generated/openapi.go.json -g go -o /generated/go \
--additional-properties=packageName=agentdrive,isGoSubmodule=true,enumClassPrefix=true,hideGenerationTimestamp=true \
--git-host="$GIT_HOST" --git-user-id="$GIT_USER" --git-repo-id="$GIT_REPO"
-# The generator's Go test stubs import `/` even though this
-# repository intentionally publishes the module at `sdk/go`. They contain
-# only skipped placeholder calls and are not contract tests; remove them and
-# compile/test the actual module with `go test ./...`.
-rm -rf "$ROOT/sdk/go/test"
+SYNC_SOURCE="$GENERATION_ROOT/python-sync/agentdrive_sdk/generated/sync"
+ASYNC_SOURCE="$GENERATION_ROOT/python-async/agentdrive_sdk/generated/async_client"
+for generated_python in "$SYNC_SOURCE" "$ASYNC_SOURCE"; do
+ if [[ ! -f "$generated_python/api_client.py" ]]; then
+ echo "OpenAPI Generator did not create expected Python source: $generated_python" >&2
+ exit 2
+ fi
+done
+
+# Redirects are credential-boundary events. Keep both generated transports from
+# following them automatically; Phase 2 will follow signed storage URLs without
+# forwarding AgentDrive authorization.
+python3 "$ROOT/scripts/patch_python_transports.py" \
+ "$SYNC_SOURCE/rest.py" "$ASYNC_SOURCE/rest.py"
+python3 "$ROOT/scripts/postprocess_python_models.py" \
+ --contract "$SOURCE_SPEC" \
+ --models-dir "$SYNC_SOURCE/models" \
+ --models-dir "$ASYNC_SOURCE/models"
+
+# OpenAPI Generator's Go test stubs import the wrong module location and contain
+# only skipped placeholder calls. Compile the actual generated module instead.
+rm -rf "$GENERATION_ROOT/go/test"
+sed -i.bak "1s|^module .*|module ${GO_MODULE}|" "$GENERATION_ROOT/go/go.mod"
+rm -f "$GENERATION_ROOT/go/go.mod.bak"
+
+# OpenAPI Generator does not create a lockfile. Preserve the reviewed npm lock
+# while replacing the rest of the TypeScript output.
+if [[ -f "$ROOT/sdk/typescript/package-lock.json" ]]; then
+ cp "$ROOT/sdk/typescript/package-lock.json" \
+ "$GENERATION_ROOT/typescript/package-lock.json"
+ python3 - "$GENERATION_ROOT/typescript/package-lock.json" "$VERSION" <<'PY'
+import json
+import sys
+from pathlib import Path
+
+path = Path(sys.argv[1])
+version = sys.argv[2]
+document = json.loads(path.read_text(encoding="utf-8"))
+document["version"] = version
+document["packages"][""]["version"] = version
+path.write_text(json.dumps(document, indent=2) + "\n", encoding="utf-8")
+PY
+fi
+
+python3 - \
+ "$VERSION" \
+ "$SYNC_SOURCE/__init__.py" \
+ "$ASYNC_SOURCE/__init__.py" \
+ "$GENERATION_ROOT/typescript/package.json" \
+ "$GENERATION_ROOT/typescript/package-lock.json" <<'PY'
+import ast
+import json
+import sys
+from pathlib import Path
+
+expected = sys.argv[1]
+for raw in sys.argv[2:4]:
+ path = Path(raw)
+ tree = ast.parse(path.read_text(encoding="utf-8"), filename=str(path))
+ versions = [
+ node.value.value
+ for node in tree.body
+ if isinstance(node, ast.Assign)
+ and any(
+ isinstance(target, ast.Name) and target.id == "__version__"
+ for target in node.targets
+ )
+ and isinstance(node.value, ast.Constant)
+ and isinstance(node.value.value, str)
+ ]
+ if versions != [expected]:
+ raise SystemExit(f"generated package version drift in {path}")
+
+package = json.loads(Path(sys.argv[4]).read_text(encoding="utf-8"))
+lock = json.loads(Path(sys.argv[5]).read_text(encoding="utf-8"))
+actual = {
+ package["version"],
+ lock["version"],
+ lock["packages"][""]["version"],
+}
+if actual != {expected}:
+ raise SystemExit(f"TypeScript package version drift: {sorted(actual)}")
+PY
-# The module must be importable at its location in the monorepo so that
-# `go get github.com/Mnexa-AI/agentdrive-sdk/sdk/go@` resolves. Version
-# tags for this submodule are `sdk/go/vX.Y.Z` (see publish.yml).
-GO_MODULE="${GIT_HOST}/${GIT_USER}/${GIT_REPO}/sdk/go"
-sed -i.bak "1s|^module .*|module ${GO_MODULE}|" "$ROOT/sdk/go/go.mod"
-rm -f "$ROOT/sdk/go/go.mod.bak"
python3 "$ROOT/scripts/normalize_generated_text.py" \
- "$ROOT/sdk/python" "$ROOT/sdk/typescript" "$ROOT/sdk/go"
+ "$SYNC_SOURCE" \
+ "$ASYNC_SOURCE" \
+ "$GENERATION_ROOT/typescript" \
+ "$GENERATION_ROOT/go"
+
+# Generation succeeded completely. Replace only generated output from here on.
+PYTHON_PACKAGE="$ROOT/sdk/python/src/agentdrive_sdk"
+PYTHON_GENERATED="$PYTHON_PACKAGE/generated"
+mkdir -p "$PYTHON_GENERATED"
+rm -rf "$PYTHON_GENERATED/sync" "$PYTHON_GENERATED/async_client"
+cp -a "$SYNC_SOURCE" "$PYTHON_GENERATED/sync"
+cp -a "$ASYNC_SOURCE" "$PYTHON_GENERATED/async_client"
+
+# Remove the legacy all-generated Python package layout. These exact paths are
+# intentionally narrower than sdk/python so README, packaging, and tests remain.
+rm -rf \
+ "$ROOT/sdk/python/agentdrive_sdk" \
+ "$ROOT/sdk/python/docs" \
+ "$ROOT/sdk/python/test" \
+ "$ROOT/sdk/python/.github" \
+ "$ROOT/sdk/python/.openapi-generator"
+rm -f \
+ "$ROOT/sdk/python/.gitignore" \
+ "$ROOT/sdk/python/.gitlab-ci.yml" \
+ "$ROOT/sdk/python/.openapi-generator-ignore" \
+ "$ROOT/sdk/python/.travis.yml" \
+ "$ROOT/sdk/python/git_push.sh" \
+ "$ROOT/sdk/python/requirements.txt" \
+ "$ROOT/sdk/python/setup.cfg" \
+ "$ROOT/sdk/python/setup.py" \
+ "$ROOT/sdk/python/test-requirements.txt" \
+ "$ROOT/sdk/python/tox.ini"
+
+rm -rf "$ROOT/sdk/typescript" "$ROOT/sdk/go"
+cp -a "$GENERATION_ROOT/typescript" "$ROOT/sdk/typescript"
+cp -a "$GENERATION_ROOT/go" "$ROOT/sdk/go"
+
+# The exact Python reference and review manifest are generated artifacts too.
+# Keep them in the same one-command pipeline as the clients so an API change
+# cannot regenerate code while leaving either representation stale.
+python3 "$ROOT/scripts/generate_python_contract_manifest.py" \
+ --contract "$SOURCE_SPEC" \
+ --sync-root "$PYTHON_GENERATED/sync" \
+ --async-root "$PYTHON_GENERATED/async_client" \
+ --output "$ROOT/sdk/python/generated-contract-shape.json"
+python3 "$ROOT/scripts/generate_python_api_reference.py" \
+ --contract "$SOURCE_SPEC" \
+ --provenance "$ROOT/sdk/openapi.provenance.json" \
+ --sync-api "$PYTHON_GENERATED/sync/api" \
+ --async-api "$PYTHON_GENERATED/async_client/api" \
+ --output "$ROOT/docs/python-sdk-api-reference.md"
-echo "Done. SDKs written to sdk/{python,typescript,go}."
+echo "Done. Generated Python core -> sdk/python/src/agentdrive_sdk/generated/{sync,async_client}."
+echo "TypeScript and Go -> sdk/{typescript,go}."
+echo "Python contract manifest/reference -> sdk/python/generated-contract-shape.json and docs/python-sdk-api-reference.md."
diff --git a/scripts/generate_python_api_reference.py b/scripts/generate_python_api_reference.py
new file mode 100644
index 0000000..42984b0
--- /dev/null
+++ b/scripts/generate_python_api_reference.py
@@ -0,0 +1,422 @@
+"""Render/check the deterministic Python generated-core API reference."""
+
+from __future__ import annotations
+
+import argparse
+import difflib
+import sys
+from pathlib import Path
+from typing import Any
+
+try:
+ from scripts.check_python_generated_contract import validate_generated_contract
+ from scripts.openapi_sdk_contract import (
+ iter_operations,
+ load_document,
+ media_schemas,
+ merged_parameters,
+ ref_name,
+ resolve_local_ref,
+ schema_label,
+ sha256_json,
+ )
+except ModuleNotFoundError: # direct `python scripts/...py` execution
+ from check_python_generated_contract import validate_generated_contract
+ from openapi_sdk_contract import (
+ iter_operations,
+ load_document,
+ media_schemas,
+ merged_parameters,
+ ref_name,
+ resolve_local_ref,
+ schema_label,
+ sha256_json,
+ )
+
+DEFAULT_CONTRACT = Path("sdk/openapi.json")
+DEFAULT_PROVENANCE = Path("sdk/openapi.provenance.json")
+DEFAULT_OUTPUT = Path("docs/python-sdk-api-reference.md")
+DEFAULT_SYNC_API = Path("sdk/python/src/agentdrive_sdk/generated/sync/api")
+DEFAULT_ASYNC_API = Path("sdk/python/src/agentdrive_sdk/generated/async_client/api")
+
+
+def _text(value: Any) -> str:
+ return " ".join(str(value or "").split())
+
+
+def _cell(value: Any) -> str:
+ return _text(value).replace("|", "\\|").replace("`", "\\`") or "—"
+
+
+def _anchor(name: str) -> str:
+ return "model-" + "".join(char.lower() if char.isalnum() else "-" for char in name).strip("-")
+
+
+def _inline_anchor(schema: Any) -> str:
+ label = schema_label(schema)
+ slug = "".join(char.lower() if char.isalnum() else "-" for char in label).strip("-")
+ return f"inline-schema-{slug}"
+
+
+def _schema(schema: Any, *, link_inline: bool = True) -> str:
+ name = ref_name(schema)
+ if name:
+ return f"[`{name}`](#{_anchor(name)})"
+ if not isinstance(schema, dict):
+ return "`none`"
+ if isinstance(schema.get("anyOf"), list):
+ return " or ".join(_schema(item, link_inline=link_inline) for item in schema["anyOf"])
+ if isinstance(schema.get("oneOf"), list):
+ return "one of: " + ", ".join(
+ _schema(item, link_inline=link_inline) for item in schema["oneOf"]
+ )
+ if isinstance(schema.get("allOf"), list):
+ return "all of: " + ", ".join(
+ _schema(item, link_inline=link_inline) for item in schema["allOf"]
+ )
+ if schema.get("type") == "array":
+ return f"`array` of {_schema(schema.get('items', {}), link_inline=link_inline)}"
+ label = schema_label(schema)
+ if link_inline and (schema.get("type") == "object" or "properties" in schema):
+ return f"[`{_cell(label)}`](#{_inline_anchor(schema)})"
+ return f"`{_cell(label)}`"
+
+
+def _schema_children(schema: Any) -> list[dict[str, Any]]:
+ if not isinstance(schema, dict):
+ return []
+ children: list[dict[str, Any]] = []
+ properties = schema.get("properties", {})
+ if isinstance(properties, dict):
+ children.extend(item for item in properties.values() if isinstance(item, dict))
+ items = schema.get("items")
+ if isinstance(items, dict):
+ children.append(items)
+ additional = schema.get("additionalProperties")
+ if isinstance(additional, dict):
+ children.append(additional)
+ for keyword in ("allOf", "anyOf", "oneOf", "prefixItems"):
+ alternatives = schema.get(keyword, [])
+ if isinstance(alternatives, list):
+ children.extend(item for item in alternatives if isinstance(item, dict))
+ return children
+
+
+def _inline_schemas(contract: dict[str, Any]) -> dict[str, dict[str, Any]]:
+ """Collect every anonymous object schema reachable from the public contract."""
+
+ result: dict[str, dict[str, Any]] = {}
+
+ def visit(schema: Any) -> None:
+ if not isinstance(schema, dict) or ref_name(schema):
+ return
+ if schema.get("type") == "object" or "properties" in schema:
+ result.setdefault(schema_label(schema), schema)
+ for child in _schema_children(schema):
+ visit(child)
+
+ schemas = contract.get("components", {}).get("schemas", {})
+ if isinstance(schemas, dict):
+ for schema in schemas.values():
+ # The named component itself is rendered under Models. Its anonymous
+ # nested objects still need their own linkable definition.
+ for child in _schema_children(schema):
+ visit(child)
+
+ for _path, _method, path_item, operation in iter_operations(contract):
+ for parameter in merged_parameters(contract, path_item, operation):
+ visit(parameter.get("schema", {}))
+ request_body = resolve_local_ref(contract, operation.get("requestBody", {}))
+ if isinstance(request_body, dict):
+ for schema in media_schemas(request_body.get("content", {})).values():
+ visit(schema)
+ for raw_response in operation.get("responses", {}).values():
+ response = resolve_local_ref(contract, raw_response)
+ if isinstance(response, dict):
+ for schema in media_schemas(response.get("content", {})).values():
+ visit(schema)
+ return result
+
+
+def _append_object_fields(lines: list[str], schema: dict[str, Any]) -> None:
+ properties = schema.get("properties", {})
+ required = set(schema.get("required", []))
+ if isinstance(properties, dict) and properties:
+ lines.extend(
+ [
+ "| Field | Required | Schema | Description |",
+ "|---|:---:|---|---|",
+ ]
+ )
+ for property_name, property_schema in sorted(properties.items()):
+ lines.append(
+ "| `{}` | {} | {} | {} |".format(
+ _cell(property_name),
+ "yes" if property_name in required else "no",
+ _schema(property_schema),
+ _cell(
+ property_schema.get("description")
+ if isinstance(property_schema, dict)
+ else ""
+ ),
+ )
+ )
+ lines.append("")
+ else:
+ lines.extend([f"Schema type: {_schema(schema, link_inline=False)}", ""])
+
+ if "additionalProperties" in schema:
+ additional = schema["additionalProperties"]
+ if additional is True:
+ detail = "allowed (any JSON value)"
+ elif additional is False:
+ detail = "not allowed"
+ else:
+ detail = f"allowed values matching {_schema(additional)}"
+ lines.extend([f"Additional properties: {detail}.", ""])
+
+
+def _response_sort_key(value: str) -> tuple[int, str]:
+ return (int(value), value) if value.isdigit() else (10_000, value)
+
+
+def render_reference(
+ contract: dict[str, Any],
+ sync_surface: dict[str, dict[str, Any]],
+ async_surface: dict[str, dict[str, Any]],
+ provenance: dict[str, Any] | None = None,
+) -> str:
+ operations = list(iter_operations(contract))
+ authenticated = sum(bool(operation.get("security")) for *_, operation in operations)
+ lines = [
+ "",
+ "# AgentDrive Python generated-core API reference",
+ "",
+ "This reference describes the exact OpenAPI wire surface wrapped by both the",
+ "synchronous and asynchronous generated Python cores. The ergonomic SDK facade",
+ "is documented separately. Callable signatures and docstrings below are parsed",
+ "from the committed generated source; the reference check fails if either client",
+ "is absent or drifts from the contract.",
+ "",
+ f"- Contract SHA-256: `{sha256_json(contract)}`",
+ f"- Operations: **{len(operations)}** ({authenticated} bearer-authenticated, "
+ f"{len(operations) - authenticated} anonymous)",
+ ]
+ if provenance:
+ lines.extend(
+ [
+ f"- AgentDrive source commit: `{_text(provenance.get('source_commit'))}`",
+ f"- Generator image: `{_text(provenance.get('generator_image'))}`",
+ ]
+ )
+ lines.extend(["", "## Operations", ""])
+
+ grouped: dict[str, list[tuple[str, str, dict[str, Any], dict[str, Any]]]] = {}
+ for item in operations:
+ operation = item[3]
+ tag = str((operation.get("tags") or ["default"])[0])
+ grouped.setdefault(tag, []).append(item)
+
+ for tag in sorted(grouped):
+ lines.extend([f"### {tag}", ""])
+ for path, method, path_item, operation in sorted(
+ grouped[tag], key=lambda item: (item[0], item[1], item[3]["operationId"])
+ ):
+ operation_id = operation["operationId"]
+ lines.extend(
+ [
+ f"#### `{operation_id}`",
+ "",
+ f"`{method.upper()} {path}` — {_text(operation.get('summary')) or operation_id}",
+ "",
+ f"Authentication: **{'bearer token' if operation.get('security') else 'anonymous'}**.",
+ "",
+ ]
+ )
+ description = _text(operation.get("description"))
+ if description:
+ lines.extend([description, ""])
+
+ sync = sync_surface[operation_id]
+ async_client = async_surface[operation_id]
+ lines.extend(
+ [
+ f"Generated API class: `{sync['api_class']}`",
+ "",
+ "Synchronous callables:",
+ "",
+ "```python",
+ sync["primary"].signature,
+ sync["with_http_info"].signature,
+ sync["without_preload_content"].signature,
+ "```",
+ "",
+ "Asynchronous callables:",
+ "",
+ "```python",
+ async_client["primary"].signature,
+ async_client["with_http_info"].signature,
+ async_client["without_preload_content"].signature,
+ "```",
+ "",
+ "Generated docstring:",
+ "",
+ "```text",
+ sync["primary"].docstring or "(empty)",
+ "```",
+ "",
+ ]
+ )
+
+ parameters = merged_parameters(contract, path_item, operation)
+ if parameters:
+ lines.extend(
+ [
+ "Request parameters:",
+ "",
+ "| Wire name | In | Required | Schema | Description |",
+ "|---|---|:---:|---|---|",
+ ]
+ )
+ for parameter in parameters:
+ lines.append(
+ "| `{}` | `{}` | {} | {} | {} |".format(
+ _cell(parameter.get("name")),
+ _cell(parameter.get("in")),
+ "yes" if parameter.get("required") else "no",
+ _schema(parameter.get("schema", {})),
+ _cell(parameter.get("description")),
+ )
+ )
+ lines.append("")
+
+ raw_body = resolve_local_ref(contract, operation.get("requestBody", {}))
+ if isinstance(raw_body, dict) and raw_body.get("content"):
+ lines.extend(
+ [
+ f"Request body ({'required' if raw_body.get('required') else 'optional'}):",
+ "",
+ "| Content type | Schema |",
+ "|---|---|",
+ ]
+ )
+ for media_type, schema in sorted(media_schemas(raw_body["content"]).items()):
+ lines.append(f"| `{_cell(media_type)}` | {_schema(schema)} |")
+ lines.append("")
+
+ lines.extend(
+ [
+ "Responses:",
+ "",
+ "| Status | Content | OpenAPI schema | Generated Python type | Headers |",
+ "|---:|---|---|---|---|",
+ ]
+ )
+ for status, raw_response in sorted(
+ operation.get("responses", {}).items(), key=lambda item: _response_sort_key(item[0])
+ ):
+ response = resolve_local_ref(contract, raw_response)
+ if not isinstance(response, dict):
+ response = {}
+ media = media_schemas(response.get("content", {}))
+ content_types = ", ".join(f"`{_cell(item)}`" for item in sorted(media)) or "—"
+ schemas = ", ".join(_schema(media[item]) for item in sorted(media)) or "—"
+ generated_type = sync["response_types"].get(str(status))
+ generated = f"`{_cell(generated_type)}`" if generated_type else "—"
+ headers = ", ".join(f"`{_cell(item)}`" for item in sorted(response.get("headers", {}))) or "—"
+ lines.append(
+ f"| `{_cell(status)}` | {content_types} | {schemas} | {generated} | {headers} |"
+ )
+ lines.append("")
+
+ lines.extend(["## Models", ""])
+ schemas = contract.get("components", {}).get("schemas", {})
+ for name in sorted(schemas):
+ schema = schemas[name]
+ if not isinstance(schema, dict):
+ continue
+ lines.extend([f"### {name}", f"", ""])
+ description = _text(schema.get("description"))
+ if description:
+ lines.extend([description, ""])
+ _append_object_fields(lines, schema)
+
+ inline_schemas = _inline_schemas(contract)
+ lines.extend(
+ [
+ "## Anonymous and inline schemas",
+ "",
+ "OpenAPI permits request and response objects without a component name.",
+ "The generated clients assign Python class names to some of these objects;",
+ "the response tables show those generated names, while this section records",
+ "their exact wire fields directly from the authoritative contract.",
+ "",
+ ]
+ )
+ for label, schema in sorted(inline_schemas.items()):
+ lines.extend(
+ [
+ f"### `{label}`",
+ f'',
+ "",
+ ]
+ )
+ description = _text(schema.get("description"))
+ if description:
+ lines.extend([description, ""])
+ _append_object_fields(lines, schema)
+ return "\n".join(lines).rstrip() + "\n"
+
+
+def check_output(path: Path, expected: str) -> bool:
+ try:
+ actual = path.read_text(encoding="utf-8")
+ except FileNotFoundError:
+ print(f"generated API reference is missing: {path}", file=sys.stderr)
+ return False
+ if actual == expected:
+ print(f"Generated Python API reference is current: {path}")
+ return True
+ diff = difflib.unified_diff(
+ actual.splitlines(),
+ expected.splitlines(),
+ fromfile=str(path),
+ tofile=f"{path} (regenerated)",
+ lineterm="",
+ )
+ print("\n".join(diff), file=sys.stderr)
+ print(
+ "Run `python3 scripts/generate_python_api_reference.py` and commit the result.",
+ file=sys.stderr,
+ )
+ return False
+
+
+def main() -> None:
+ parser = argparse.ArgumentParser(description=__doc__)
+ parser.add_argument("--contract", type=Path, default=DEFAULT_CONTRACT)
+ parser.add_argument("--provenance", type=Path, default=DEFAULT_PROVENANCE)
+ parser.add_argument("--output", type=Path, default=DEFAULT_OUTPUT)
+ parser.add_argument("--sync-api", type=Path, default=DEFAULT_SYNC_API)
+ parser.add_argument("--async-api", type=Path, default=DEFAULT_ASYNC_API)
+ parser.add_argument("--check", action="store_true")
+ args = parser.parse_args()
+
+ contract = load_document(args.contract)
+ provenance = load_document(args.provenance) if args.provenance.exists() else None
+ sync_surface, async_surface = validate_generated_contract(
+ args.contract, args.sync_api, args.async_api
+ )
+ rendered = render_reference(contract, sync_surface, async_surface, provenance)
+ if args.check:
+ raise SystemExit(0 if check_output(args.output, rendered) else 1)
+ args.output.parent.mkdir(parents=True, exist_ok=True)
+ args.output.write_text(rendered, encoding="utf-8")
+ print(
+ f"Rendered {args.output} from {args.contract} "
+ f"({len(list(iter_operations(contract)))} operations)."
+ )
+
+
+if __name__ == "__main__":
+ main()
diff --git a/scripts/generate_python_contract_manifest.py b/scripts/generate_python_contract_manifest.py
new file mode 100644
index 0000000..d6f9ef2
--- /dev/null
+++ b/scripts/generate_python_contract_manifest.py
@@ -0,0 +1,396 @@
+"""Render/check the exact OpenAPI-to-generated-Python shape manifest."""
+
+from __future__ import annotations
+
+import argparse
+import ast
+import difflib
+import json
+import sys
+from pathlib import Path
+from typing import Any
+
+try:
+ from scripts.check_python_generated_contract import validate_generated_contract
+ from scripts.openapi_sdk_contract import (
+ iter_operations,
+ load_document,
+ merged_parameters,
+ python_name,
+ resolve_local_ref,
+ sha256_json,
+ shape_schema,
+ )
+except ModuleNotFoundError: # direct `python scripts/...py` execution
+ from check_python_generated_contract import validate_generated_contract
+ from openapi_sdk_contract import (
+ iter_operations,
+ load_document,
+ merged_parameters,
+ python_name,
+ resolve_local_ref,
+ sha256_json,
+ shape_schema,
+ )
+
+DEFAULT_CONTRACT = Path("sdk/openapi.json")
+DEFAULT_SYNC_ROOT = Path("sdk/python/src/agentdrive_sdk/generated/sync")
+DEFAULT_ASYNC_ROOT = Path("sdk/python/src/agentdrive_sdk/generated/async_client")
+DEFAULT_OUTPUT = Path("sdk/python/generated-contract-shape.json")
+
+
+def _field_shape(node: ast.AnnAssign) -> dict[str, Any]:
+ required = node.value is None
+ if isinstance(node.value, ast.Call):
+ function = node.value.func
+ is_field = (isinstance(function, ast.Name) and function.id == "Field") or (
+ isinstance(function, ast.Attribute) and function.attr == "Field"
+ )
+ has_default = bool(node.value.args) or any(
+ item.arg in {"default", "default_factory"} for item in node.value.keywords
+ )
+ if is_field and not has_default:
+ required = True
+ return {
+ "annotation": ast.unparse(node.annotation),
+ "default": ast.unparse(node.value) if node.value is not None else None,
+ "required": required,
+ }
+
+
+def _annotation_nullable(annotation: str) -> bool:
+ tree = ast.parse(annotation, mode="eval")
+ return any(
+ (isinstance(node, ast.Name) and node.id in {"Optional", "None"})
+ or (isinstance(node, ast.Constant) and node.value is None)
+ for node in ast.walk(tree)
+ )
+
+
+def _schema_nullable(schema: Any) -> bool:
+ if not isinstance(schema, dict):
+ return False
+ if schema.get("nullable") is True:
+ return True
+ schema_type = schema.get("type")
+ if isinstance(schema_type, list) and "null" in schema_type:
+ return True
+ return any(
+ isinstance(item, dict) and item.get("type") == "null"
+ for keyword in ("anyOf", "oneOf")
+ for item in schema.get(keyword, [])
+ )
+
+
+def _check_component_models(
+ document: dict[str, Any], models: dict[str, Any], *, label: str
+) -> None:
+ failures: list[str] = []
+ schemas = document.get("components", {}).get("schemas", {})
+ for model_name, schema in sorted(schemas.items()):
+ if not isinstance(schema, dict) or not isinstance(schema.get("properties"), dict):
+ continue
+ model = models.get(model_name)
+ if model is None:
+ failures.append(f"{label}: missing component model {model_name}")
+ continue
+ properties = schema["properties"]
+ expected_fields = {python_name(name) for name in properties}
+ actual_fields = set(model["fields"])
+ if actual_fields != expected_fields:
+ failures.append(
+ f"{label}:{model_name}: property set differs; "
+ f"missing={sorted(expected_fields - actual_fields)}, "
+ f"extra={sorted(actual_fields - expected_fields)}"
+ )
+ required = set(schema.get("required", []))
+ for wire_name, property_schema in properties.items():
+ field_name = python_name(wire_name)
+ field = model["fields"].get(field_name)
+ if field is None:
+ continue
+ expected_required = wire_name in required
+ if field["required"] != expected_required:
+ failures.append(
+ f"{label}:{model_name}.{wire_name}: requiredness "
+ f"{field['required']} != {expected_required}"
+ )
+ expected_nullable = _schema_nullable(property_schema)
+ actual_nullable = _annotation_nullable(field["annotation"])
+ if actual_nullable != expected_nullable:
+ failures.append(
+ f"{label}:{model_name}.{wire_name}: nullable annotation "
+ f"{actual_nullable} != {expected_nullable}"
+ )
+ if failures:
+ raise ValueError("\n".join(failures))
+
+
+def _model_manifest(models_root: Path) -> dict[str, Any]:
+ result: dict[str, Any] = {}
+ for path in sorted(models_root.glob("*.py")):
+ if path.name == "__init__.py":
+ continue
+ tree = ast.parse(path.read_text(encoding="utf-8"), filename=str(path))
+ classes = [node for node in tree.body if isinstance(node, ast.ClassDef)]
+ if len(classes) != 1:
+ continue
+ class_node = classes[0]
+ fields = {
+ node.target.id: _field_shape(node)
+ for node in class_node.body
+ if isinstance(node, ast.AnnAssign)
+ and isinstance(node.target, ast.Name)
+ and not node.target.id.startswith("__")
+ }
+ validators = {
+ node.name: sha256_json(ast.dump(node, include_attributes=False))
+ for node in class_node.body
+ if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef))
+ and node.decorator_list
+ }
+ result[class_node.name] = {
+ "class_ast_sha256": sha256_json(ast.dump(class_node, include_attributes=False)),
+ "fields": fields,
+ "validators": validators,
+ }
+ return result
+
+
+def _headers_transport(package_root: Path) -> dict[str, Any]:
+ response_path = package_root / "api_response.py"
+ client_path = package_root / "api_client.py"
+ response_tree = ast.parse(
+ response_path.read_text(encoding="utf-8"), filename=str(response_path)
+ )
+ headers_annotations = [
+ ast.unparse(node.annotation)
+ for node in ast.walk(response_tree)
+ if isinstance(node, ast.AnnAssign)
+ and isinstance(node.target, ast.Name)
+ and node.target.id == "headers"
+ ]
+ client_tree = ast.parse(client_path.read_text(encoding="utf-8"), filename=str(client_path))
+ forwarded = False
+ for node in ast.walk(client_tree):
+ if not isinstance(node, ast.Call):
+ continue
+ if not isinstance(node.func, ast.Name) or node.func.id != "ApiResponse":
+ continue
+ for keyword in node.keywords:
+ if keyword.arg == "headers" and ast.unparse(keyword.value) == "response_data.headers":
+ forwarded = True
+ return {
+ "api_response_headers_annotation": headers_annotations,
+ "response_deserialize_forwards_all_headers": forwarded,
+ }
+
+
+def _function_manifest(item: Any) -> dict[str, Any]:
+ return {
+ "docstring_sha256": sha256_json(item.docstring),
+ "parameters": list(item.parameters),
+ "return": item.returns,
+ "signature": item.signature,
+ }
+
+
+def _surface_manifest(surface: dict[str, dict[str, Any]]) -> dict[str, Any]:
+ result: dict[str, Any] = {}
+ for operation_id, value in sorted(surface.items()):
+ full_shape = {
+ "api_class": value["api_class"],
+ "primary": _function_manifest(value["primary"]),
+ "with_http_info": _function_manifest(value["with_http_info"]),
+ "without_preload_content": _function_manifest(value["without_preload_content"]),
+ "serializer": value["serialize"],
+ "response_types": value["response_types"],
+ }
+ result[operation_id] = {
+ "api_class": value["api_class"],
+ "primary_signature": value["primary"].signature,
+ "surface_sha256": sha256_json(full_shape),
+ }
+ return result
+
+
+def _contract_operation_shape(
+ document: dict[str, Any],
+ path: str,
+ method: str,
+ path_item: dict[str, Any],
+ operation: dict[str, Any],
+) -> dict[str, Any]:
+ parameter_shapes = []
+ for parameter in merged_parameters(document, path_item, operation):
+ full_parameter = shape_schema(
+ {
+ key: value
+ for key, value in parameter.items()
+ if key
+ in {
+ "name",
+ "in",
+ "required",
+ "deprecated",
+ "style",
+ "explode",
+ "allowEmptyValue",
+ "allowReserved",
+ "schema",
+ "content",
+ }
+ }
+ )
+ parameter_shapes.append(
+ {
+ "in": parameter.get("in"),
+ "name": parameter.get("name"),
+ "required": bool(parameter.get("required")),
+ "shape_sha256": sha256_json(full_parameter),
+ }
+ )
+ request_body = resolve_local_ref(document, operation.get("requestBody", {}))
+ request_shape = shape_schema(request_body)
+ responses: dict[str, Any] = {}
+ for status, raw_response in sorted(operation.get("responses", {}).items()):
+ response = resolve_local_ref(document, raw_response)
+ response = response if isinstance(response, dict) else {}
+ responses[str(status)] = {
+ "content": {
+ media_type: sha256_json(shape_schema(media.get("schema", {})))
+ for media_type, media in sorted(response.get("content", {}).items())
+ if isinstance(media, dict)
+ },
+ "headers": {
+ name: sha256_json(shape_schema(resolve_local_ref(document, header)))
+ for name, header in sorted(response.get("headers", {}).items())
+ },
+ "shape_sha256": sha256_json(shape_schema(response)),
+ }
+ full_operation = shape_schema(operation)
+ return {
+ "method": method.upper(),
+ "path": path,
+ "operation_shape_sha256": sha256_json(full_operation),
+ "parameters": parameter_shapes,
+ "request_body": {
+ "required": bool(request_body.get("required"))
+ if isinstance(request_body, dict)
+ else False,
+ "shape_sha256": sha256_json(request_shape),
+ },
+ # Each response entry retains its exact status, media schemas, and
+ # header names/schemas. Generated clients preserve those headers via
+ # the generic ApiResponse.headers carrier recorded alongside this map.
+ "responses": responses,
+ }
+
+
+def build_manifest(
+ contract_path: Path,
+ sync_root: Path,
+ async_root: Path,
+) -> dict[str, Any]:
+ document = load_document(contract_path)
+ sync, async_client = validate_generated_contract(
+ contract_path, sync_root / "api", async_root / "api"
+ )
+ sync_models = _model_manifest(sync_root / "models")
+ async_models = _model_manifest(async_root / "models")
+ if sync_models != async_models:
+ raise ValueError("sync/async generated model AST shapes differ")
+ _check_component_models(document, sync_models, label="sync")
+ _check_component_models(document, async_models, label="async")
+ header_transport = {
+ "sync": _headers_transport(sync_root),
+ "async": _headers_transport(async_root),
+ }
+ if not all(
+ value["api_response_headers_annotation"]
+ and value["response_deserialize_forwards_all_headers"]
+ for value in header_transport.values()
+ ):
+ raise ValueError("generated response transport does not preserve raw response headers")
+ operations = {
+ operation["operationId"]: _contract_operation_shape(
+ document, path, method, path_item, operation
+ )
+ for path, method, path_item, operation in iter_operations(document)
+ }
+ raw_schemas = document.get("components", {}).get("schemas", {})
+ schemas = {
+ name: sha256_json(shape_schema(schema)) for name, schema in sorted(raw_schemas.items())
+ }
+ full_contract_shape = {"operations": operations, "schemas": shape_schema(raw_schemas)}
+ return {
+ "format": 1,
+ "contract_sha256": sha256_json(document),
+ "contract": {
+ "operations": dict(sorted(operations.items())),
+ "schemas": schemas,
+ "shape_sha256": sha256_json(full_contract_shape),
+ },
+ "generated": {
+ "models": sync_models,
+ "sync_operations": _surface_manifest(sync),
+ "async_operations": _surface_manifest(async_client),
+ "response_header_transport": header_transport,
+ },
+ }
+
+
+def render_manifest(manifest: dict[str, Any]) -> str:
+ return json.dumps(manifest, indent=2, sort_keys=True, ensure_ascii=False) + "\n"
+
+
+def main() -> None:
+ parser = argparse.ArgumentParser(description=__doc__)
+ parser.add_argument("--contract", type=Path, default=DEFAULT_CONTRACT)
+ parser.add_argument("--sync-root", type=Path, default=DEFAULT_SYNC_ROOT)
+ parser.add_argument("--async-root", type=Path, default=DEFAULT_ASYNC_ROOT)
+ parser.add_argument("--output", type=Path, default=DEFAULT_OUTPUT)
+ parser.add_argument("--check", action="store_true")
+ args = parser.parse_args()
+
+ try:
+ expected = render_manifest(
+ build_manifest(args.contract, args.sync_root, args.async_root)
+ )
+ except (OSError, SyntaxError, ValueError) as exc:
+ print(f"Python contract-shape manifest failed: {exc}", file=sys.stderr)
+ raise SystemExit(1) from exc
+ if args.check:
+ try:
+ actual = args.output.read_text(encoding="utf-8")
+ except FileNotFoundError:
+ print(f"Python contract-shape manifest is missing: {args.output}", file=sys.stderr)
+ raise SystemExit(1) from None
+ if actual != expected:
+ print(
+ "\n".join(
+ difflib.unified_diff(
+ actual.splitlines(),
+ expected.splitlines(),
+ fromfile=str(args.output),
+ tofile=f"{args.output} (regenerated)",
+ lineterm="",
+ )
+ ),
+ file=sys.stderr,
+ )
+ print(
+ "Run `python3 scripts/generate_python_contract_manifest.py` and review the "
+ "schema/signature delta.",
+ file=sys.stderr,
+ )
+ raise SystemExit(1)
+ print(f"Generated Python contract-shape manifest is current: {args.output}")
+ return
+ args.output.parent.mkdir(parents=True, exist_ok=True)
+ args.output.write_text(expected, encoding="utf-8")
+ print(f"Rendered exact Python contract-shape manifest: {args.output}")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/scripts/import_agentdrive_contract.py b/scripts/import_agentdrive_contract.py
index 8078079..ebc59bc 100644
--- a/scripts/import_agentdrive_contract.py
+++ b/scripts/import_agentdrive_contract.py
@@ -5,6 +5,7 @@
import argparse
import hashlib
import json
+import re
from pathlib import Path
from typing import Any, Dict
@@ -43,7 +44,7 @@ def _validate(document: Dict[str, Any]) -> None:
scheme = (
document.get("components", {})
.get("securitySchemes", {})
- .get("BearerAuth")
+ .get("bearerAuth")
)
if (
not isinstance(scheme, dict)
@@ -51,7 +52,7 @@ def _validate(document: Dict[str, Any]) -> None:
or scheme.get("scheme") != "bearer"
or not scheme.get("bearerFormat")
):
- raise ContractImportError("source contract lacks canonical BearerAuth")
+ raise ContractImportError("source contract lacks canonical bearerAuth")
operation_ids = []
for path_item in document.get("paths", {}).values():
@@ -72,6 +73,8 @@ def import_contract(
*,
source_commit: str,
) -> None:
+ if not re.fullmatch(r"[0-9a-f]{40}", source_commit):
+ raise ContractImportError("source_commit must be a full lowercase Git SHA")
source_bytes = source.read_bytes()
document = json.loads(source_bytes)
_validate(document)
diff --git a/scripts/openapi_sdk_contract.py b/scripts/openapi_sdk_contract.py
new file mode 100644
index 0000000..7933c56
--- /dev/null
+++ b/scripts/openapi_sdk_contract.py
@@ -0,0 +1,240 @@
+"""Shared, dependency-free helpers for AgentDrive SDK contract gates."""
+
+from __future__ import annotations
+
+import hashlib
+import json
+import re
+from copy import deepcopy
+from pathlib import Path
+from typing import Any, Iterator
+
+HTTP_METHODS = frozenset(
+ {"get", "put", "post", "delete", "patch", "head", "options", "trace"}
+)
+SCHEMA_DOC_KEYS = frozenset(
+ {"$comment", "description", "example", "examples", "externalDocs", "title"}
+)
+
+
+class ContractError(ValueError):
+ """Raised when an SDK contract invariant is violated."""
+
+
+def load_document(path: Path) -> dict[str, Any]:
+ value = json.loads(path.read_text(encoding="utf-8"))
+ if not isinstance(value, dict):
+ raise ContractError(f"{path} must contain a JSON object")
+ return value
+
+
+def canonical_json(value: Any) -> str:
+ return json.dumps(value, sort_keys=True, separators=(",", ":"), ensure_ascii=False)
+
+
+def sha256_json(value: Any) -> str:
+ return hashlib.sha256(canonical_json(value).encode()).hexdigest()
+
+
+def resolve_local_ref(document: dict[str, Any], value: Any) -> Any:
+ """Resolve one local JSON pointer, leaving non-reference values unchanged."""
+
+ if not isinstance(value, dict) or set(value) != {"$ref"}:
+ return value
+ ref = value["$ref"]
+ if not isinstance(ref, str) or not ref.startswith("#/"):
+ raise ContractError(f"only local OpenAPI references are supported: {ref!r}")
+ current: Any = document
+ for raw_part in ref[2:].split("/"):
+ part = raw_part.replace("~1", "/").replace("~0", "~")
+ try:
+ current = current[part]
+ except (KeyError, TypeError) as exc:
+ raise ContractError(f"unresolvable local reference: {ref}") from exc
+ return current
+
+
+def ref_name(value: Any) -> str | None:
+ if not isinstance(value, dict):
+ return None
+ ref = value.get("$ref")
+ if isinstance(ref, str) and ref.startswith("#/components/schemas/"):
+ return ref.rsplit("/", 1)[1]
+ return None
+
+
+def iter_operations(
+ document: dict[str, Any],
+) -> Iterator[tuple[str, str, dict[str, Any], dict[str, Any]]]:
+ """Yield ``(path, method, path_item, operation)`` in wire order."""
+
+ for path, path_item in document.get("paths", {}).items():
+ if not isinstance(path_item, dict):
+ continue
+ for method, operation in path_item.items():
+ if method in HTTP_METHODS and isinstance(operation, dict):
+ yield path, method, path_item, operation
+
+
+def operation_map(document: dict[str, Any]) -> dict[str, dict[str, Any]]:
+ result: dict[str, dict[str, Any]] = {}
+ for path, method, path_item, operation in iter_operations(document):
+ operation_id = operation.get("operationId")
+ if not isinstance(operation_id, str) or not operation_id:
+ raise ContractError(f"{method.upper()} {path} is missing operationId")
+ if operation_id in result:
+ raise ContractError(f"duplicate operationId: {operation_id}")
+ result[operation_id] = {
+ "path": path,
+ "method": method.upper(),
+ "path_item": path_item,
+ "operation": operation,
+ }
+ return result
+
+
+def python_name(value: str) -> str:
+ """Match OpenAPI Generator's ordinary Python parameter/model spelling."""
+
+ value = re.sub(r"([a-z0-9])([A-Z])", r"\1_\2", value)
+ value = re.sub(r"[^A-Za-z0-9]+", "_", value).strip("_").lower()
+ if value and value[0].isdigit():
+ value = f"var_{value}"
+ return value
+
+
+def shape_schema(value: Any) -> Any:
+ """Remove prose-only keys while retaining every wire/validation constraint."""
+
+ if isinstance(value, dict):
+ return {
+ key: shape_schema(child)
+ for key, child in sorted(value.items())
+ if key not in SCHEMA_DOC_KEYS
+ }
+ if isinstance(value, list):
+ return [shape_schema(child) for child in value]
+ return value
+
+
+def schema_label(schema: Any) -> str:
+ """Return a concise, deterministic schema label for docs and diagnostics."""
+
+ if not isinstance(schema, dict):
+ return "none"
+ name = ref_name(schema)
+ if name:
+ return name
+ if "anyOf" in schema:
+ return " | ".join(schema_label(item) for item in schema["anyOf"])
+ if "oneOf" in schema:
+ return "oneOf(" + ", ".join(schema_label(item) for item in schema["oneOf"]) + ")"
+ if "allOf" in schema:
+ return "allOf(" + ", ".join(schema_label(item) for item in schema["allOf"]) + ")"
+ schema_type = schema.get("type")
+ if schema_type == "array":
+ return f"array[{schema_label(schema.get('items', {}))}]"
+ if schema_type == "object" or "properties" in schema:
+ return f"object#{sha256_json(shape_schema(schema))[:12]}"
+ if isinstance(schema.get("enum"), list):
+ return "enum[" + ", ".join(map(str, schema["enum"])) + "]"
+ if schema_type == "string" and schema.get("format"):
+ return f"string({schema['format']})"
+ if isinstance(schema_type, list):
+ return " | ".join(map(str, schema_type))
+ return str(schema_type or "any")
+
+
+def merged_parameters(
+ document: dict[str, Any], path_item: dict[str, Any], operation: dict[str, Any]
+) -> list[dict[str, Any]]:
+ """Return dereferenced path-level + operation-level parameters."""
+
+ by_key: dict[tuple[str, str], dict[str, Any]] = {}
+ for raw in [*path_item.get("parameters", []), *operation.get("parameters", [])]:
+ parameter = resolve_local_ref(document, raw)
+ if not isinstance(parameter, dict):
+ raise ContractError("parameter must resolve to an object")
+ key = (str(parameter.get("name")), str(parameter.get("in")))
+ by_key[key] = parameter
+ return list(by_key.values())
+
+
+def media_schemas(content: Any) -> dict[str, dict[str, Any]]:
+ if not isinstance(content, dict):
+ return {}
+ result: dict[str, dict[str, Any]] = {}
+ for media_type, media in content.items():
+ if isinstance(media, dict):
+ schema = media.get("schema", {})
+ result[str(media_type)] = schema if isinstance(schema, dict) else {}
+ return result
+
+
+def schema_references(value: Any) -> set[str]:
+ result: set[str] = set()
+ if isinstance(value, dict):
+ name = ref_name(value)
+ if name:
+ result.add(name)
+ for child in value.values():
+ result.update(schema_references(child))
+ elif isinstance(value, list):
+ for child in value:
+ result.update(schema_references(child))
+ return result
+
+
+def schema_closure(document: dict[str, Any], seeds: set[str]) -> set[str]:
+ schemas = document.get("components", {}).get("schemas", {})
+ result = set(seeds)
+ pending = list(seeds)
+ while pending:
+ name = pending.pop()
+ schema = schemas.get(name)
+ if not isinstance(schema, dict):
+ raise ContractError(f"unknown component schema: {name}")
+ for child in schema_references(schema):
+ if child not in result:
+ result.add(child)
+ pending.append(child)
+ return result
+
+
+def model_contexts(document: dict[str, Any]) -> tuple[set[str], set[str]]:
+ """Return transitive request and response component schema sets."""
+
+ request_seeds: set[str] = set()
+ response_seeds: set[str] = set()
+ for _path, _method, _path_item, operation in iter_operations(document):
+ request_body = resolve_local_ref(document, operation.get("requestBody", {}))
+ if isinstance(request_body, dict):
+ request_seeds.update(schema_references(request_body.get("content", {})))
+ for raw_response in operation.get("responses", {}).values():
+ response = resolve_local_ref(document, raw_response)
+ if isinstance(response, dict):
+ response_seeds.update(schema_references(response.get("content", {})))
+ return (
+ schema_closure(document, request_seeds),
+ schema_closure(document, response_seeds),
+ )
+
+
+def enum_properties(schema: dict[str, Any]) -> set[str]:
+ result: set[str] = set()
+ for name, value in schema.get("properties", {}).items():
+ if isinstance(value, dict) and (
+ isinstance(value.get("enum"), list)
+ or any(
+ isinstance(item, dict) and isinstance(item.get("enum"), list)
+ for item in value.get("anyOf", [])
+ )
+ ):
+ result.add(name)
+ return result
+
+
+def clone(value: Any) -> Any:
+ """Typed alias used by compatibility checks before local mutation."""
+
+ return deepcopy(value)
diff --git a/scripts/patch_python_transports.py b/scripts/patch_python_transports.py
new file mode 100644
index 0000000..36f0365
--- /dev/null
+++ b/scripts/patch_python_transports.py
@@ -0,0 +1,67 @@
+"""Apply deterministic security policy to generated Python transports."""
+
+from __future__ import annotations
+
+import argparse
+import re
+from pathlib import Path
+
+
+class TransportPatchError(ValueError):
+ pass
+
+
+def patch_sync_redirects(path: Path) -> None:
+ text = path.read_text(encoding="utf-8")
+ if text.count("redirect=False") == 6:
+ return
+ if "redirect=False" in text:
+ raise TransportPatchError("sync redirect patch is only partially applied")
+
+ pattern = re.compile(
+ r"^(?P[ \t]*)preload_content=False,?[ \t]*$",
+ re.MULTILINE,
+ )
+ patched, count = pattern.subn(
+ lambda match: (
+ f'{match.group("indent")}preload_content=False,\n'
+ f'{match.group("indent")}redirect=False,'
+ ),
+ text,
+ )
+ if count != 6:
+ raise TransportPatchError(
+ f"expected six urllib3 request sites, found {count}"
+ )
+ path.write_text(patched, encoding="utf-8")
+
+
+def patch_async_redirects(path: Path) -> None:
+ text = path.read_text(encoding="utf-8")
+ if text.count("follow_redirects=False") == 1:
+ return
+ if "follow_redirects=" in text:
+ raise TransportPatchError("async redirect policy is unexpected")
+
+ marker = " trust_env=True\n )"
+ replacement = (
+ " trust_env=True,\n"
+ " follow_redirects=False\n"
+ " )"
+ )
+ if text.count(marker) != 1:
+ raise TransportPatchError("expected one generated httpx client constructor")
+ path.write_text(text.replace(marker, replacement), encoding="utf-8")
+
+
+def main() -> None:
+ parser = argparse.ArgumentParser(description=__doc__)
+ parser.add_argument("sync_rest", type=Path)
+ parser.add_argument("async_rest", type=Path)
+ args = parser.parse_args()
+ patch_sync_redirects(args.sync_rest)
+ patch_async_redirects(args.async_rest)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/scripts/postprocess_python_models.py b/scripts/postprocess_python_models.py
new file mode 100644
index 0000000..f686c79
--- /dev/null
+++ b/scripts/postprocess_python_models.py
@@ -0,0 +1,354 @@
+"""Enforce request strictness and response forward compatibility in OAG models.
+
+OpenAPI Generator 7.24 does not faithfully preserve ``additionalProperties:
+false`` in generated Pydantic request models, and it emits closed enum
+validators for response vocabularies. This deterministic postprocessor applies
+the AgentDrive policy without hand-editing generated files:
+
+* request-reachable component models reject unknown fields and retain enums;
+* all other generated models ignore additive response fields;
+* response enum validators are removed so additive wire values deserialize.
+"""
+
+from __future__ import annotations
+
+import argparse
+import ast
+import difflib
+import re
+import sys
+from dataclasses import dataclass
+from pathlib import Path
+
+try:
+ from scripts.openapi_sdk_contract import (
+ ContractError,
+ load_document,
+ model_contexts,
+ python_name,
+ )
+except ModuleNotFoundError: # direct `python scripts/...py` execution
+ from openapi_sdk_contract import ContractError, load_document, model_contexts, python_name
+
+DEFAULT_MODEL_DIRS = (
+ Path("sdk/python/src/agentdrive_sdk/generated/sync/models"),
+ Path("sdk/python/src/agentdrive_sdk/generated/async_client/models"),
+)
+
+
+@dataclass(frozen=True)
+class Replacement:
+ start: int
+ end: int
+ lines: tuple[str, ...]
+
+
+def _class_node(tree: ast.Module) -> ast.ClassDef:
+ classes = [node for node in tree.body if isinstance(node, ast.ClassDef)]
+ if len(classes) != 1:
+ raise ContractError(f"expected exactly one generated model class, found {len(classes)}")
+ return classes[0]
+
+
+def _decorated_start(node: ast.FunctionDef | ast.AsyncFunctionDef) -> int:
+ return min([node.lineno, *(item.lineno for item in node.decorator_list)])
+
+
+def _field_validator_name(node: ast.FunctionDef | ast.AsyncFunctionDef) -> str | None:
+ for decorator in node.decorator_list:
+ if not isinstance(decorator, ast.Call):
+ continue
+ function = decorator.func
+ if not (
+ isinstance(function, ast.Name) and function.id == "field_validator"
+ ) and not (
+ isinstance(function, ast.Attribute) and function.attr == "field_validator"
+ ):
+ continue
+ if decorator.args and isinstance(decorator.args[0], ast.Constant):
+ value = decorator.args[0].value
+ return value if isinstance(value, str) else None
+ return None
+
+
+def _config_replacement(
+ source_lines: list[str], class_node: ast.ClassDef, policy: str
+) -> Replacement:
+ assignments = [
+ node
+ for node in class_node.body
+ if isinstance(node, ast.Assign)
+ and any(isinstance(target, ast.Name) and target.id == "model_config" for target in node.targets)
+ ]
+ if len(assignments) != 1:
+ raise ContractError(f"{class_node.name}: expected one model_config assignment")
+ node = assignments[0]
+ if not isinstance(node.value, (ast.Call, ast.Dict)):
+ raise ContractError(f"{class_node.name}: unsupported model_config shape")
+ block = source_lines[node.lineno - 1 : node.end_lineno]
+ joined = "\n".join(block)
+ if re.search(r"\bextra\s*=", joined):
+ joined = re.sub(r"\bextra\s*=\s*(['\"])(?:forbid|ignore|allow)\1", f'extra="{policy}"', joined)
+ return Replacement(node.lineno, node.end_lineno or node.lineno, tuple(joined.splitlines()))
+ if isinstance(node.value, ast.Call):
+ if node.lineno == node.end_lineno:
+ joined = joined.rsplit(")", 1)[0] + f', extra="{policy}")'
+ return Replacement(node.lineno, node.end_lineno, (joined,))
+ indent = re.match(r"\s*", source_lines[node.lineno - 1]).group(0) + " "
+ block.insert(1, f'{indent}extra="{policy}",')
+ return Replacement(node.lineno, node.end_lineno or node.lineno, tuple(block))
+ # Dict-form ConfigDict is uncommon in generated models, but preserving it is
+ # straightforward and keeps the checker future-proof.
+ if node.lineno == node.end_lineno:
+ joined = joined.rsplit("}", 1)[0] + f', "extra": "{policy}"}}'
+ return Replacement(node.lineno, node.end_lineno, (joined,))
+ indent = re.match(r"\s*", source_lines[node.lineno - 1]).group(0) + " "
+ block.insert(1, f'{indent}"extra": "{policy}",')
+ return Replacement(node.lineno, node.end_lineno or node.lineno, tuple(block))
+
+
+def _request_method_replacement(node: ast.FunctionDef) -> Replacement | None:
+ if node.name == "to_dict":
+ return Replacement(
+ node.lineno,
+ node.end_lineno or node.lineno,
+ (
+ " def to_dict(self) -> Dict[str, Any]:",
+ ' """Return the request body using wire aliases."""',
+ " return to_jsonable_python(",
+ " self.model_dump(",
+ " by_alias=True,",
+ " exclude_unset=True,",
+ ' exclude={"additional_properties"},',
+ " )",
+ " )",
+ ),
+ )
+ if node.name == "from_dict":
+ return Replacement(
+ _decorated_start(node),
+ node.end_lineno or node.lineno,
+ (
+ " @classmethod",
+ " def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:",
+ ' """Validate a request dictionary without discarding unknown fields."""',
+ " if obj is None:",
+ " return None",
+ " return cls.model_validate(obj)",
+ ),
+ )
+ return None
+
+
+def _is_nullable(schema: object) -> bool:
+ if not isinstance(schema, dict):
+ return False
+ if schema.get("nullable") is True:
+ return True
+ schema_type = schema.get("type")
+ if isinstance(schema_type, list) and "null" in schema_type:
+ return True
+ return any(
+ isinstance(item, dict) and item.get("type") == "null"
+ for keyword in ("anyOf", "oneOf")
+ for item in schema.get(keyword, [])
+ )
+
+
+def _strip_outer_optional(node: ast.AST) -> ast.AST:
+ if isinstance(node, ast.Subscript) and isinstance(node.value, ast.Name):
+ if node.value.id == "Optional":
+ return node.slice
+ if node.value.id == "Annotated" and isinstance(node.slice, ast.Tuple):
+ first, *rest = node.slice.elts
+ stripped = _strip_outer_optional(first)
+ if ast.dump(stripped) != ast.dump(first):
+ return ast.Subscript(
+ value=node.value,
+ slice=ast.Tuple(elts=[stripped, *rest], ctx=ast.Load()),
+ ctx=ast.Load(),
+ )
+ return node
+
+
+def _nonnull_field_replacement(node: ast.AnnAssign) -> Replacement | None:
+ parsed = ast.parse(ast.unparse(node.annotation), mode="eval").body
+ rewritten = ast.fix_missing_locations(_strip_outer_optional(parsed))
+ annotation = ast.unparse(rewritten)
+ if annotation == ast.unparse(node.annotation):
+ return None
+ if not isinstance(node.target, ast.Name):
+ return None
+ line = f" {node.target.id}: {annotation}"
+ if node.value is not None:
+ line += f" = {ast.unparse(node.value)}"
+ return Replacement(node.lineno, node.end_lineno or node.lineno, (line,))
+
+
+def _apply_replacements(source_lines: list[str], replacements: list[Replacement]) -> str:
+ result = list(source_lines)
+ previous_start = len(result) + 1
+ for replacement in sorted(replacements, key=lambda item: item.start, reverse=True):
+ if replacement.end >= previous_start:
+ raise ContractError("overlapping generated-model source replacements")
+ result[replacement.start - 1 : replacement.end] = list(replacement.lines)
+ previous_start = replacement.start
+ return "\n".join(result).rstrip() + "\n"
+
+
+def transform_model(
+ source: str,
+ *,
+ request_model: bool,
+ nonnullable_fields: set[str] | None = None,
+) -> str:
+ tree = ast.parse(source)
+ class_node = _class_node(tree)
+ lines = source.splitlines()
+ replacements = [
+ _config_replacement(lines, class_node, "forbid" if request_model else "ignore")
+ ]
+
+ for node in class_node.body:
+ if (
+ isinstance(node, ast.AnnAssign)
+ and isinstance(node.target, ast.Name)
+ and node.target.id in (nonnullable_fields or set())
+ ):
+ replacement = _nonnull_field_replacement(node)
+ if replacement:
+ replacements.append(replacement)
+ if request_model:
+ if (
+ isinstance(node, ast.AnnAssign)
+ and isinstance(node.target, ast.Name)
+ and node.target.id == "additional_properties"
+ ):
+ replacements.append(
+ Replacement(node.lineno, node.end_lineno or node.lineno, ())
+ )
+ if isinstance(node, ast.FunctionDef):
+ replacement = _request_method_replacement(node)
+ if replacement:
+ replacements.append(replacement)
+ elif isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef)):
+ # Every field-validator emitted for a response enum is closed over
+ # the contract's current value set. Response vocabularies are open;
+ # request models take the opposite policy and never enter this arm.
+ if _field_validator_name(node) is not None and node.name.endswith("_validate_enum"):
+ replacements.append(
+ Replacement(
+ _decorated_start(node), node.end_lineno or node.lineno, ()
+ )
+ )
+
+ return _apply_replacements(lines, replacements)
+
+
+def _model_files(directory: Path) -> dict[str, Path]:
+ result: dict[str, Path] = {}
+ for path in sorted(directory.glob("*.py")):
+ if path.name == "__init__.py":
+ continue
+ tree = ast.parse(path.read_text(encoding="utf-8"), filename=str(path))
+ classes = [node for node in tree.body if isinstance(node, ast.ClassDef)]
+ if len(classes) == 1:
+ result[classes[0].name] = path
+ return result
+
+
+def process_directory(
+ directory: Path,
+ *,
+ request_models: set[str],
+ nonnullable_fields: dict[str, set[str]],
+ check: bool,
+) -> list[str]:
+ files = _model_files(directory)
+ missing = sorted(request_models - set(files))
+ if missing:
+ raise ContractError(f"{directory}: missing request models: {missing}")
+ changed: list[str] = []
+ for name, path in sorted(files.items()):
+ source = path.read_text(encoding="utf-8")
+ transformed = transform_model(
+ source,
+ request_model=name in request_models,
+ nonnullable_fields=nonnullable_fields.get(name, set()),
+ )
+ if transformed == source:
+ continue
+ changed.append(str(path))
+ if check:
+ diff = difflib.unified_diff(
+ source.splitlines(),
+ transformed.splitlines(),
+ fromfile=str(path),
+ tofile=f"{path} (postprocessed)",
+ lineterm="",
+ )
+ print("\n".join(diff), file=sys.stderr)
+ else:
+ path.write_text(transformed, encoding="utf-8")
+ return changed
+
+
+def main() -> None:
+ parser = argparse.ArgumentParser(description=__doc__)
+ parser.add_argument("--contract", type=Path, default=Path("sdk/openapi.json"))
+ parser.add_argument(
+ "--models-dir",
+ action="append",
+ type=Path,
+ dest="model_dirs",
+ help="generated models directory (repeatable)",
+ )
+ parser.add_argument("--check", action="store_true")
+ args = parser.parse_args()
+ document = load_document(args.contract)
+ request_models, response_models = model_contexts(document)
+ overlap = request_models & response_models
+ if overlap:
+ raise ContractError(
+ "request and response schemas must be split to apply opposite compatibility "
+ f"policies: {sorted(overlap)}"
+ )
+
+ schemas = document.get("components", {}).get("schemas", {})
+ nonnullable_fields = {
+ name: {
+ python_name(field_name)
+ for field_name, field_schema in schema.get("properties", {}).items()
+ if not _is_nullable(field_schema)
+ }
+ for name, schema in schemas.items()
+ if isinstance(schema, dict)
+ }
+
+ changed: list[str] = []
+ for directory in args.model_dirs or DEFAULT_MODEL_DIRS:
+ if not directory.is_dir():
+ raise ContractError(f"generated model directory is missing: {directory}")
+ changed.extend(
+ process_directory(
+ directory,
+ request_models=request_models,
+ nonnullable_fields=nonnullable_fields,
+ check=args.check,
+ )
+ )
+ if args.check and changed:
+ print(
+ "Generated Python model policy drifted. Regenerate through the pinned pipeline.",
+ file=sys.stderr,
+ )
+ raise SystemExit(1)
+ action = "checked" if args.check else "postprocessed"
+ print(
+ f"Python generated models {action}: {len(request_models)} strict request schemas; "
+ f"{len(response_models)} referenced response schemas."
+ )
+
+
+if __name__ == "__main__":
+ main()
diff --git a/scripts/python_generated_surface.py b/scripts/python_generated_surface.py
new file mode 100644
index 0000000..e523e52
--- /dev/null
+++ b/scripts/python_generated_surface.py
@@ -0,0 +1,634 @@
+"""Parse and validate the generated sync/async Python callable wire surface."""
+
+from __future__ import annotations
+
+import ast
+from dataclasses import dataclass
+from pathlib import Path
+from typing import Any
+
+try:
+ from scripts.openapi_sdk_contract import (
+ ContractError,
+ media_schemas,
+ merged_parameters,
+ operation_map,
+ python_name,
+ ref_name,
+ resolve_local_ref,
+ schema_label,
+ )
+except ModuleNotFoundError: # direct script execution through a sibling module
+ from openapi_sdk_contract import (
+ ContractError,
+ media_schemas,
+ merged_parameters,
+ operation_map,
+ python_name,
+ ref_name,
+ resolve_local_ref,
+ schema_label,
+ )
+
+SPECIAL_PARAMETERS = frozenset(
+ {"_request_timeout", "_request_auth", "_content_type", "_headers", "_host_index"}
+)
+
+
+@dataclass(frozen=True)
+class ParsedFunction:
+ name: str
+ is_async: bool
+ parameters: tuple[dict[str, Any], ...]
+ returns: str
+ docstring: str
+ signature: str
+
+
+def _literal(node: ast.AST | None) -> Any:
+ if node is None:
+ return None
+ try:
+ return ast.literal_eval(node)
+ except (ValueError, TypeError):
+ return None
+
+
+def _annotation(node: ast.AST | None) -> str:
+ return ast.unparse(node) if node is not None else "Any"
+
+
+def _parameters(node: ast.FunctionDef | ast.AsyncFunctionDef) -> tuple[dict[str, Any], ...]:
+ positional = [*node.args.posonlyargs, *node.args.args]
+ positional_defaults: list[ast.AST | None] = [None] * (
+ len(positional) - len(node.args.defaults)
+ ) + list(node.args.defaults)
+ result: list[dict[str, Any]] = []
+ for argument, default in zip(positional, positional_defaults, strict=True):
+ if argument.arg == "self":
+ continue
+ result.append(
+ {
+ "name": argument.arg,
+ "annotation": _annotation(argument.annotation),
+ "required": default is None,
+ "default": None if default is None else ast.unparse(default),
+ "kind": "positional",
+ }
+ )
+ if node.args.vararg:
+ result.append(
+ {
+ "name": f"*{node.args.vararg.arg}",
+ "annotation": _annotation(node.args.vararg.annotation),
+ "required": False,
+ "default": None,
+ "kind": "vararg",
+ }
+ )
+ for argument, default in zip(
+ node.args.kwonlyargs, node.args.kw_defaults, strict=True
+ ):
+ result.append(
+ {
+ "name": argument.arg,
+ "annotation": _annotation(argument.annotation),
+ "required": default is None,
+ "default": None if default is None else ast.unparse(default),
+ "kind": "keyword",
+ }
+ )
+ return tuple(result)
+
+
+def _signature(node: ast.FunctionDef | ast.AsyncFunctionDef) -> str:
+ rendered = []
+ for parameter in _parameters(node):
+ text = f"{parameter['name']}: {parameter['annotation']}"
+ if not parameter["required"] and parameter["kind"] != "vararg":
+ text += f" = {parameter['default']}"
+ rendered.append(text)
+ prefix = "async def" if isinstance(node, ast.AsyncFunctionDef) else "def"
+ return f"{prefix} {node.name}({', '.join(rendered)}) -> {_annotation(node.returns)}"
+
+
+def _parse_function(node: ast.FunctionDef | ast.AsyncFunctionDef) -> ParsedFunction:
+ return ParsedFunction(
+ name=node.name,
+ is_async=isinstance(node, ast.AsyncFunctionDef),
+ parameters=_parameters(node),
+ returns=_annotation(node.returns),
+ docstring=ast.get_docstring(node, clean=True) or "",
+ signature=_signature(node),
+ )
+
+
+def _mapping_location(name: str) -> str | None:
+ return {
+ "_path_params": "path",
+ "_query_params": "query",
+ "_header_params": "header",
+ "_form_params": "form",
+ "_files": "file",
+ }.get(name)
+
+
+def _subscript_key(node: ast.Subscript) -> str | None:
+ value = _literal(node.slice)
+ return value if isinstance(value, str) else None
+
+
+def _extract_serialize(node: ast.FunctionDef) -> dict[str, Any]:
+ wire: list[dict[str, str]] = []
+ method: str | None = None
+ path: str | None = None
+ auth: list[str] = []
+ accept: list[str] = []
+ content_types: list[str] = []
+
+ for child in ast.walk(node):
+ if isinstance(child, ast.Assign) and len(child.targets) == 1:
+ target = child.targets[0]
+ if isinstance(target, ast.Subscript) and isinstance(target.value, ast.Name):
+ location = _mapping_location(target.value.id)
+ key = _subscript_key(target)
+ if (
+ location
+ and key
+ and key.lower() not in {"accept", "content-type"}
+ and isinstance(child.value, ast.Name)
+ ):
+ wire.append(
+ {"location": location, "wire_name": key, "python_name": child.value.id}
+ )
+ elif isinstance(target, ast.Name) and target.id == "_body_params" and isinstance(
+ child.value, ast.Name
+ ):
+ wire.append(
+ {"location": "body", "wire_name": "body", "python_name": child.value.id}
+ )
+ elif isinstance(target, ast.Name) and target.id == "_auth_settings":
+ value = _literal(child.value)
+ if isinstance(value, list) and all(isinstance(item, str) for item in value):
+ auth = value
+ elif (
+ isinstance(child, ast.AnnAssign)
+ and isinstance(child.target, ast.Name)
+ and child.target.id == "_auth_settings"
+ ):
+ value = _literal(child.value)
+ if isinstance(value, list) and all(isinstance(item, str) for item in value):
+ auth = value
+ if isinstance(child, ast.Expr) and isinstance(child.value, ast.Call):
+ call = child.value
+ if isinstance(call.func, ast.Attribute) and isinstance(call.func.value, ast.Name):
+ location = _mapping_location(call.func.value.id)
+ if location in {"query", "form"} and call.func.attr == "append" and call.args:
+ pair = call.args[0]
+ if isinstance(pair, ast.Tuple) and len(pair.elts) >= 2:
+ key = _literal(pair.elts[0])
+ value = pair.elts[1]
+ if isinstance(key, str) and isinstance(value, ast.Name):
+ wire.append(
+ {
+ "location": location,
+ "wire_name": key,
+ "python_name": value.id,
+ }
+ )
+ if not isinstance(child, ast.Call) or not isinstance(child.func, ast.Attribute):
+ continue
+ if child.func.attr == "param_serialize":
+ values = {item.arg: _literal(item.value) for item in child.keywords if item.arg}
+ method = values.get("method")
+ path = values.get("resource_path")
+ elif child.func.attr == "select_header_accept" and child.args:
+ value = _literal(child.args[0])
+ if isinstance(value, list):
+ accept = [str(item) for item in value]
+ elif child.func.attr == "select_header_content_type" and child.args:
+ value = _literal(child.args[0])
+ if isinstance(value, list):
+ content_types = [str(item) for item in value]
+
+ if method is None or path is None:
+ raise ContractError(f"{node.name}: generated serializer lacks method/resource_path")
+ unique_wire = {
+ (item["location"], item["wire_name"], item["python_name"]): item for item in wire
+ }
+ return {
+ "method": method,
+ "path": path,
+ "wire": sorted(
+ unique_wire.values(),
+ key=lambda item: (item["location"], item["wire_name"], item["python_name"]),
+ ),
+ "auth": sorted(auth),
+ "accept": sorted(set(accept)),
+ "content_types": sorted(set(content_types)),
+ }
+
+
+def _response_types(node: ast.FunctionDef | ast.AsyncFunctionDef) -> dict[str, str | None]:
+ for child in ast.walk(node):
+ if isinstance(child, ast.Assign) and len(child.targets) == 1:
+ target = child.targets[0]
+ assigned = child.value
+ elif isinstance(child, ast.AnnAssign):
+ target = child.target
+ assigned = child.value
+ else:
+ continue
+ if isinstance(target, ast.Name) and target.id == "_response_types_map":
+ value = _literal(assigned)
+ if isinstance(value, dict):
+ return {
+ str(key): item if isinstance(item, str) else None
+ for key, item in value.items()
+ }
+ raise ContractError(f"{node.name}: generated operation lacks _response_types_map")
+
+
+def _header_carrier(api_root: Path) -> bool:
+ path = api_root.parent / "api_response.py"
+ if not path.exists():
+ return False
+ tree = ast.parse(path.read_text(encoding="utf-8"), filename=str(path))
+ return any(
+ isinstance(node, ast.AnnAssign)
+ and isinstance(node.target, ast.Name)
+ and node.target.id == "headers"
+ for node in ast.walk(tree)
+ )
+
+
+def parse_surface(
+ api_root: Path, operation_ids: set[str], *, expected_async: bool
+) -> dict[str, dict[str, Any]]:
+ functions: dict[str, tuple[str, ast.FunctionDef | ast.AsyncFunctionDef]] = {}
+ for path in sorted(api_root.glob("*_api.py")):
+ if path.name == "__init__.py":
+ continue
+ tree = ast.parse(path.read_text(encoding="utf-8"), filename=str(path))
+ classes = [node for node in tree.body if isinstance(node, ast.ClassDef)]
+ for class_node in classes:
+ for node in class_node.body:
+ if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef)):
+ functions[node.name] = (class_node.name, node)
+
+ result: dict[str, dict[str, Any]] = {}
+ for operation_id in sorted(operation_ids):
+ required_names = (
+ operation_id,
+ f"{operation_id}_with_http_info",
+ f"{operation_id}_without_preload_content",
+ f"_{operation_id}_serialize",
+ )
+ missing = [name for name in required_names if name not in functions]
+ if missing:
+ raise ContractError(f"{api_root}: {operation_id} missing generated callables {missing}")
+ owner, primary_node = functions[operation_id]
+ info_owner, info_node = functions[f"{operation_id}_with_http_info"]
+ raw_owner, raw_node = functions[f"{operation_id}_without_preload_content"]
+ serializer_owner, serializer_node = functions[f"_{operation_id}_serialize"]
+ if len({owner, info_owner, raw_owner, serializer_owner}) != 1:
+ raise ContractError(f"{operation_id}: generated variants are split across API classes")
+ for public_node in (primary_node, info_node, raw_node):
+ if isinstance(public_node, ast.AsyncFunctionDef) != expected_async:
+ mode = "async" if expected_async else "sync"
+ raise ContractError(f"{api_root}: {public_node.name} is not {mode}")
+ if not isinstance(serializer_node, ast.FunctionDef):
+ raise ContractError(f"{operation_id}: serializer must be synchronous setup code")
+
+ primary = _parse_function(primary_node)
+ with_info = _parse_function(info_node)
+ without_preload = _parse_function(raw_node)
+ parameter_shapes = [item.parameters for item in (primary, with_info, without_preload)]
+ if not parameter_shapes[0] == parameter_shapes[1] == parameter_shapes[2]:
+ raise ContractError(f"{operation_id}: generated variant parameter signatures drifted")
+ result[operation_id] = {
+ "api_class": owner,
+ "primary": primary,
+ "with_http_info": with_info,
+ "without_preload_content": without_preload,
+ "serialize": _extract_serialize(serializer_node),
+ "response_types": _response_types(primary_node),
+ "response_headers_available": _header_carrier(api_root),
+ }
+ return result
+
+
+def _nonnull_schema(schema: dict[str, Any]) -> tuple[dict[str, Any], bool]:
+ alternatives = schema.get("anyOf")
+ if isinstance(alternatives, list):
+ nonnull = [item for item in alternatives if isinstance(item, dict) and item.get("type") != "null"]
+ nullable = len(nonnull) != len(alternatives)
+ if len(nonnull) == 1:
+ return nonnull[0], nullable
+ return schema, schema.get("nullable") is True
+
+
+def _annotation_matches(schema: dict[str, Any], annotation: str) -> bool:
+ schema, nullable = _nonnull_schema(schema)
+ normalized = annotation.replace("Strict", "").lower()
+ name = ref_name(schema)
+ if name:
+ matched = name.lower() in normalized
+ else:
+ schema_type = schema.get("type")
+ if schema_type == "string" and schema.get("format") == "binary":
+ matched = "bytes" in normalized
+ elif schema_type == "string" and schema.get("format") == "date-time":
+ matched = "datetime" in normalized
+ elif schema_type == "string" and schema.get("format") == "date":
+ matched = "date" in normalized
+ elif schema_type == "string" and schema.get("format") == "uuid":
+ matched = "uuid" in normalized or "str" in normalized
+ elif schema_type == "string":
+ matched = "str" in normalized
+ elif schema_type == "integer":
+ matched = "int" in normalized
+ elif schema_type == "number":
+ matched = "float" in normalized or "int" in normalized
+ elif schema_type == "boolean":
+ matched = "bool" in normalized
+ elif schema_type == "array":
+ matched = "list" in normalized or "sequence" in normalized
+ elif schema_type == "object" or "properties" in schema:
+ matched = any(item in normalized for item in ("dict", "mapping", "any"))
+ else:
+ matched = "any" in normalized
+ if nullable and "optional" not in normalized and "none" not in normalized:
+ return False
+ return matched
+
+
+def _expected_wire(document: dict[str, Any], entry: dict[str, Any]) -> list[dict[str, Any]]:
+ operation = entry["operation"]
+ result: list[dict[str, Any]] = []
+ for parameter in merged_parameters(document, entry["path_item"], operation):
+ result.append(
+ {
+ "location": parameter["in"],
+ "wire_name": parameter["name"],
+ "python_name": python_name(parameter["name"]),
+ "required": bool(parameter.get("required")),
+ "schema": parameter.get("schema", {}),
+ }
+ )
+ request_body = resolve_local_ref(document, operation.get("requestBody", {}))
+ if isinstance(request_body, dict) and request_body.get("content"):
+ media = media_schemas(request_body["content"])
+ if "multipart/form-data" in media:
+ schema = resolve_local_ref(document, media["multipart/form-data"])
+ required = set(schema.get("required", [])) if isinstance(schema, dict) else set()
+ for name, field_schema in schema.get("properties", {}).items():
+ nonnull, _nullable = _nonnull_schema(field_schema)
+ location = "file" if nonnull.get("format") == "binary" else "form"
+ result.append(
+ {
+ "location": location,
+ "wire_name": name,
+ "python_name": python_name(name),
+ "required": name in required,
+ "schema": field_schema,
+ }
+ )
+ else:
+ first_schema = next(iter(media.values()))
+ name = ref_name(first_schema)
+ result.append(
+ {
+ "location": "body",
+ "wire_name": "body",
+ "python_name": python_name(name) if name else "body",
+ "required": bool(request_body.get("required")),
+ "schema": first_schema,
+ }
+ )
+ return result
+
+
+def _expected_response_type(schema: dict[str, Any]) -> str | None:
+ if not schema:
+ return "object"
+ name = ref_name(schema)
+ if name:
+ return name
+ schema, _nullable = _nonnull_schema(schema)
+ schema_type = schema.get("type")
+ if schema_type == "string" and schema.get("format") == "binary":
+ return "bytes"
+ if schema_type == "string":
+ return "str"
+ if schema_type == "integer":
+ return "int"
+ if schema_type == "number":
+ return "float"
+ if schema_type == "boolean":
+ return "bool"
+ if schema_type == "array":
+ child = _expected_response_type(schema.get("items", {})) or "object"
+ return f"List[{child}]"
+ if schema_type == "object" or "properties" in schema:
+ return ""
+ return None
+
+
+def _parameters_by_name(surface: dict[str, Any]) -> dict[str, dict[str, Any]]:
+ return {item["name"]: item for item in surface["primary"].parameters}
+
+
+def check_surface_against_contract(
+ document: dict[str, Any], surface: dict[str, dict[str, Any]], *, label: str
+) -> list[str]:
+ failures: list[str] = []
+ expected = operation_map(document)
+ if set(surface) != set(expected):
+ failures.append(
+ f"{label}: operation set differs; missing={sorted(set(expected) - set(surface))}, "
+ f"extra={sorted(set(surface) - set(expected))}"
+ )
+ return failures
+ for operation_id, entry in expected.items():
+ actual = surface[operation_id]
+ serialized = actual["serialize"]
+ if serialized["method"] != entry["method"] or serialized["path"] != entry["path"]:
+ failures.append(
+ f"{label}:{operation_id}: expected {entry['method']} {entry['path']}, got "
+ f"{serialized['method']} {serialized['path']}"
+ )
+ expected_auth = sorted(
+ {name for requirement in entry["operation"].get("security", []) for name in requirement}
+ )
+ if serialized["auth"] != expected_auth:
+ failures.append(
+ f"{label}:{operation_id}: auth {serialized['auth']} != {expected_auth}"
+ )
+
+ expected_wire = _expected_wire(document, entry)
+ actual_wire = {
+ (item["location"], item["wire_name"], item["python_name"])
+ for item in serialized["wire"]
+ }
+ expected_wire_keys = {
+ (item["location"], item["wire_name"], item["python_name"])
+ for item in expected_wire
+ }
+ if actual_wire != expected_wire_keys:
+ failures.append(
+ f"{label}:{operation_id}: wire params differ; missing="
+ f"{sorted(expected_wire_keys - actual_wire)}, "
+ f"extra={sorted(actual_wire - expected_wire_keys)}"
+ )
+
+ expected_public_parameters = {
+ item["python_name"] for item in expected_wire
+ } | SPECIAL_PARAMETERS
+ for variant_name in (
+ "primary",
+ "with_http_info",
+ "without_preload_content",
+ ):
+ actual_public_parameters = {
+ item["name"] for item in actual[variant_name].parameters
+ }
+ if actual_public_parameters != expected_public_parameters:
+ failures.append(
+ f"{label}:{operation_id}:{variant_name}: public parameters differ; "
+ f"missing={sorted(expected_public_parameters - actual_public_parameters)}, "
+ f"extra={sorted(actual_public_parameters - expected_public_parameters)}"
+ )
+
+ signature = _parameters_by_name(actual)
+ for item in expected_wire:
+ parameter = signature.get(item["python_name"])
+ if not parameter:
+ failures.append(
+ f"{label}:{operation_id}: signature missing {item['python_name']}"
+ )
+ continue
+ if parameter["required"] != item["required"]:
+ failures.append(
+ f"{label}:{operation_id}:{item['python_name']}: requiredness "
+ f"{parameter['required']} != {item['required']}"
+ )
+ if not _annotation_matches(item["schema"], parameter["annotation"]):
+ failures.append(
+ f"{label}:{operation_id}:{item['python_name']}: annotation "
+ f"{parameter['annotation']} does not represent {schema_label(item['schema'])}"
+ )
+
+ operation = entry["operation"]
+ request_body = resolve_local_ref(document, operation.get("requestBody", {}))
+ expected_content_types = sorted(
+ media_schemas(request_body.get("content", {}))
+ if isinstance(request_body, dict)
+ else []
+ )
+ if serialized["content_types"] != expected_content_types:
+ failures.append(
+ f"{label}:{operation_id}: request content types {serialized['content_types']} "
+ f"!= {expected_content_types}"
+ )
+ expected_accept = sorted(
+ {
+ media_type
+ for raw_response in operation.get("responses", {}).values()
+ for media_type in media_schemas(
+ (
+ resolve_local_ref(document, raw_response)
+ if isinstance(resolve_local_ref(document, raw_response), dict)
+ else {}
+ ).get("content", {})
+ )
+ }
+ )
+ if serialized["accept"] != expected_accept:
+ failures.append(
+ f"{label}:{operation_id}: response content types {serialized['accept']} "
+ f"!= {expected_accept}"
+ )
+
+ expected_responses: dict[str, str | None] = {}
+ for status, raw_response in operation.get("responses", {}).items():
+ response = resolve_local_ref(document, raw_response)
+ media = media_schemas(response.get("content", {}) if isinstance(response, dict) else {})
+ expected_responses[str(status)] = (
+ _expected_response_type(next(iter(media.values()))) if media else None
+ )
+ actual_responses = actual["response_types"]
+ if set(actual_responses) != set(expected_responses):
+ failures.append(
+ f"{label}:{operation_id}: response statuses {sorted(actual_responses)} "
+ f"!= {sorted(expected_responses)}"
+ )
+ for status, expected_type in expected_responses.items():
+ actual_type = actual_responses.get(status)
+ if expected_type == "":
+ if not actual_type:
+ failures.append(
+ f"{label}:{operation_id}:{status}: inline response has no generated model"
+ )
+ elif actual_type != expected_type:
+ failures.append(
+ f"{label}:{operation_id}:{status}: response type {actual_type!r} "
+ f"!= {expected_type!r}"
+ )
+ has_headers = any(
+ isinstance(resolve_local_ref(document, raw), dict)
+ and bool(resolve_local_ref(document, raw).get("headers"))
+ for raw in operation.get("responses", {}).values()
+ )
+ if has_headers and not actual["response_headers_available"]:
+ failures.append(
+ f"{label}:{operation_id}: response headers exist but ApiResponse has no header carrier"
+ )
+ return failures
+
+
+def _parity_value(value: dict[str, Any]) -> dict[str, Any]:
+ def function(item: ParsedFunction) -> dict[str, Any]:
+ return {
+ "parameters": item.parameters,
+ "returns": item.returns,
+ "docstring": item.docstring,
+ }
+
+ return {
+ "api_class": value["api_class"],
+ "primary": function(value["primary"]),
+ "with_http_info": function(value["with_http_info"]),
+ "without_preload_content": function(value["without_preload_content"]),
+ "serialize": value["serialize"],
+ "response_types": value["response_types"],
+ "response_headers_available": value["response_headers_available"],
+ }
+
+
+def check_sync_async_parity(
+ sync: dict[str, dict[str, Any]], async_client: dict[str, dict[str, Any]]
+) -> list[str]:
+ failures: list[str] = []
+ if set(sync) != set(async_client):
+ return ["sync/async generated operation sets differ"]
+ for operation_id in sorted(sync):
+ if _parity_value(sync[operation_id]) != _parity_value(async_client[operation_id]):
+ failures.append(f"{operation_id}: sync/async generated callable or wire shape differs")
+ return failures
+
+
+def public_operation_names(api_root: Path) -> set[str]:
+ names: set[str] = set()
+ for path in api_root.glob("*_api.py"):
+ tree = ast.parse(path.read_text(encoding="utf-8"), filename=str(path))
+ for node in ast.walk(tree):
+ if not isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef)):
+ continue
+ if node.name.startswith("_") or node.name.endswith(
+ ("_with_http_info", "_without_preload_content")
+ ):
+ continue
+ if node.name != "__init__":
+ names.add(node.name)
+ return names
diff --git a/sdk/README.md b/sdk/README.md
index 8bf632e..ecceee7 100644
--- a/sdk/README.md
+++ b/sdk/README.md
@@ -7,7 +7,7 @@ AgentDrive source commit and snapshot digest.
| Language | Directory | Package | Generator |
|---|---|---|---|
-| Python | [`python/`](python/) | `agentdrive-sdk` (PyPI) | `python` (urllib3) |
+| Python | [`python/`](python/) | `agentdrive-sdk` (PyPI) | `python` (`urllib3` sync + `httpx` async) |
| TypeScript | [`typescript/`](typescript/) | `@mnexa-ai/agentdrive-sdk` (npm) | `typescript-fetch` |
| Go | [`go/`](go/) | `github.com/Mnexa-AI/agentdrive-sdk/sdk/go` | `go` |
@@ -32,12 +32,24 @@ without language-specific name collisions or stale operations. It never
fetches the live production endpoint and never auto-commits or publishes
generated changes.
+Python has two generated cores under
+`python/src/agentdrive_sdk/generated/{sync,async_client}`. Everything else in
+the Python package—metadata, README, type marker, tests, and the future
+ergonomic facade—is hand-owned and survives regeneration. The Python gates
+also verify exact callable/wire parity, component fields and
+required/nullable shape, model constraint hashes, raw response-header
+preservation, request strictness, response forward compatibility, and the
+generated [API reference](../docs/python-sdk-api-reference.md).
+
## Authentication
All three clients talk to `https://api.agentdrive.run`. Authenticate with an API
key (`ad_live_...`) or an OAuth access token as a bearer credential — see
[`../docs/auth.md`](../docs/auth.md) and [`../docs/api.md`](../docs/api.md).
-> **Generated code.** Don't hand-edit files under `python/`, `typescript/`, or
-> `go/` — changes are overwritten on the next generation. Adjust
-> `scripts/generate-sdks.sh` instead.
+> **Generated code.** In Python, only
+> `python/src/agentdrive_sdk/generated/sync` and
+> `python/src/agentdrive_sdk/generated/async_client` are generated. TypeScript
+> and Go remain generator-owned package trees. Change the contract or
+> deterministic generation/postprocessing scripts instead of editing those
+> generated files.
diff --git a/sdk/SDK_VERSION b/sdk/SDK_VERSION
new file mode 100644
index 0000000..6e8bf73
--- /dev/null
+++ b/sdk/SDK_VERSION
@@ -0,0 +1 @@
+0.1.0
diff --git a/sdk/go/README.md b/sdk/go/README.md
index 55c03f5..0bb3088 100644
--- a/sdk/go/README.md
+++ b/sdk/go/README.md
@@ -1,6 +1,6 @@
# Go API client for agentdrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
## Overview
This API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using the [OpenAPI-spec](https://www.openapis.org/) from a remote server, you can easily generate an API client.
@@ -71,253 +71,104 @@ All URIs are relative to *https://api.agentdrive.run*
Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
-*AgentAuthAPI* | [**ExtensionExchangeV0AuthExtensionExchangePost**](docs/AgentAuthAPI.md#extensionexchangev0authextensionexchangepost) | **Post** /v0/auth/extension/exchange | Redeem an extension OAuth ticket for a JWT pair
-*AgentAuthAPI* | [**InitiateClaimAgentIdentityClaimPost**](docs/AgentAuthAPI.md#initiateclaimagentidentityclaimpost) | **Post** /agent/identity/claim | Initiate the human-claim ceremony for an agent identity
-*AgentAuthAPI* | [**JwksWellKnownJwksJsonGet**](docs/AgentAuthAPI.md#jwkswellknownjwksjsonget) | **Get** /.well-known/jwks.json | JSON Web Key Set — public keys for verifying AgentDrive JWTs
-*AgentAuthAPI* | [**Oauth2TokenOauth2TokenPost**](docs/AgentAuthAPI.md#oauth2tokenoauth2tokenpost) | **Post** /oauth2/token | Exchange a credential for an access_token
-*AgentAuthAPI* | [**OauthAuthorizationServerWellKnownOauthAuthorizationServerGet**](docs/AgentAuthAPI.md#oauthauthorizationserverwellknownoauthauthorizationserverget) | **Get** /.well-known/oauth-authorization-server | Authorization-server metadata (RFC 8414 + auth.md agent_auth block)
-*AgentAuthAPI* | [**OauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGet**](docs/AgentAuthAPI.md#oauthprotectedresourcemcpwellknownoauthprotectedresourcemcpget) | **Get** /.well-known/oauth-protected-resource/mcp | Protected-resource metadata for the MCP endpoint (RFC 9728 §3.1)
-*AgentAuthAPI* | [**OauthProtectedResourceWellKnownOauthProtectedResourceGet**](docs/AgentAuthAPI.md#oauthprotectedresourcewellknownoauthprotectedresourceget) | **Get** /.well-known/oauth-protected-resource | Protected-resource metadata (auth.md / RFC 9728-like discovery)
-*AgentAuthAPI* | [**RegisterAgentIdentityAgentIdentityPost**](docs/AgentAuthAPI.md#registeragentidentityagentidentitypost) | **Post** /agent/identity | Register an agent identity (anonymous or ID-JAG)
-*DefaultAPI* | [**AbortUploadV0UploadsUploadIdDelete**](docs/DefaultAPI.md#abortuploadv0uploadsuploadiddelete) | **Delete** /v0/uploads/{upload_id} | Abort a large (direct-to-GCS) upload session
-*DefaultAPI* | [**BeginUploadV0UploadsPost**](docs/DefaultAPI.md#beginuploadv0uploadspost) | **Post** /v0/uploads | Begin a large (direct-to-GCS) upload
-*DefaultAPI* | [**CallbackAuthCallbackGet**](docs/DefaultAPI.md#callbackauthcallbackget) | **Get** /auth/callback | Callback
-*DefaultAPI* | [**CancelJobV0JobsJobIdCancelPost**](docs/DefaultAPI.md#canceljobv0jobsjobidcancelpost) | **Post** /v0/jobs/{job_id}/cancel | Cancel a queued/running job
-*DefaultAPI* | [**CommitUploadV0UploadsUploadIdCommitPost**](docs/DefaultAPI.md#commituploadv0uploadsuploadidcommitpost) | **Post** /v0/uploads/{upload_id}/commit | Commit a large (direct-to-GCS) upload
-*DefaultAPI* | [**CopyArtifactRouteV0ArtifactsArtIdCopyPost**](docs/DefaultAPI.md#copyartifactroutev0artifactsartidcopypost) | **Post** /v0/artifacts/{art_id}/copy | Duplicate an artifact to a new path (CAS-shared, new ID)
-*DefaultAPI* | [**CopyFolderByIdV0FoldersFldIdCopyPost**](docs/DefaultAPI.md#copyfolderbyidv0foldersfldidcopypost) | **Post** /v0/folders/{fld_id}/copy | Duplicate a folder subtree to a new path (CAS-shared, new IDs)
-*DefaultAPI* | [**CreateFolderByPathV0FoldersPathPut**](docs/DefaultAPI.md#createfolderbypathv0folderspathput) | **Put** /v0/folders/{path} | Create a folder (idempotent)
-*DefaultAPI* | [**CreateGrantRouteV0GrantsPost**](docs/DefaultAPI.md#creategrantroutev0grantspost) | **Post** /v0/grants | Create (or fetch) a per-principal grant on a resource
-*DefaultAPI* | [**CreateShareRouteV0SharesPost**](docs/DefaultAPI.md#createshareroutev0sharespost) | **Post** /v0/shares | Mint a share link (returns the share_key once)
-*DefaultAPI* | [**DeleteArtifactByIdRouteV0ArtifactsArtIdDelete**](docs/DefaultAPI.md#deleteartifactbyidroutev0artifactsartiddelete) | **Delete** /v0/artifacts/{art_id} | Soft-delete an artifact by its stable ID
-*DefaultAPI* | [**DeleteArtifactV0ArtifactsPathDelete**](docs/DefaultAPI.md#deleteartifactv0artifactspathdelete) | **Delete** /v0/artifacts/{path} | Delete Artifact
-*DefaultAPI* | [**DeleteDriveRouteV0DrivesDriveIdDelete**](docs/DefaultAPI.md#deletedriveroutev0drivesdriveiddelete) | **Delete** /v0/drives/{drive_id} | Soft-delete a drive
-*DefaultAPI* | [**DeleteFolderByIdV0FoldersFldIdDelete**](docs/DefaultAPI.md#deletefolderbyidv0foldersfldiddelete) | **Delete** /v0/folders/{fld_id} | Soft-delete a folder by stable ID (cascade with ?recursive=true)
-*DefaultAPI* | [**DeleteFolderByPathV0FoldersPathDelete**](docs/DefaultAPI.md#deletefolderbypathv0folderspathdelete) | **Delete** /v0/folders/{path} | Soft-delete a folder (cascade with ?recursive=true)
-*DefaultAPI* | [**DeleteGrantRouteV0GrantsGrnIdDelete**](docs/DefaultAPI.md#deletegrantroutev0grantsgrniddelete) | **Delete** /v0/grants/{grn_id} | Revoke a grant (can_manage, or self-revoke own grant)
-*DefaultAPI* | [**DeleteShareRouteV0SharesShrIdDelete**](docs/DefaultAPI.md#deleteshareroutev0sharesshriddelete) | **Delete** /v0/shares/{shr_id} | Revoke a share link (requires can_manage)
-*DefaultAPI* | [**DownloadArtifactByIdV0ArtifactsArtIdDownloadGet**](docs/DefaultAPI.md#downloadartifactbyidv0artifactsartiddownloadget) | **Get** /v0/artifacts/{art_id}/download | Stream the artifact bytes by stable ID (never rendered HTML)
-*DefaultAPI* | [**DownloadArtifactByPathV0ArtifactsPathDownloadGet**](docs/DefaultAPI.md#downloadartifactbypathv0artifactspathdownloadget) | **Get** /v0/artifacts/{path}/download | Stream the artifact bytes by path (never rendered HTML)
-*DefaultAPI* | [**DownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGet**](docs/DefaultAPI.md#downloadartifactversionv0artifactsartidversionsversionnumberdownloadget) | **Get** /v0/artifacts/{art_id}/versions/{version_number}/download | Stream bytes for a specific version (machine surface)
-*DefaultAPI* | [**DownloadUrlByIdV0ArtifactsArtIdDownloadUrlGet**](docs/DefaultAPI.md#downloadurlbyidv0artifactsartiddownloadurlget) | **Get** /v0/artifacts/{art_id}/download-url | Signed direct-from-GCS download URL by stable ID
-*DefaultAPI* | [**DownloadUrlByPathV0ArtifactsPathDownloadUrlGet**](docs/DefaultAPI.md#downloadurlbypathv0artifactspathdownloadurlget) | **Get** /v0/artifacts/{path}/download-url | Signed direct-from-GCS download URL by path
-*DefaultAPI* | [**DownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGet**](docs/DefaultAPI.md#downloadurlversionv0artifactsartidversionsversionnumberdownloadurlget) | **Get** /v0/artifacts/{art_id}/versions/{version_number}/download-url | Signed direct-from-GCS download URL for a specific version
-*DefaultAPI* | [**EnqueueJobV0ProjectsFldIdJobsPost**](docs/DefaultAPI.md#enqueuejobv0projectsfldidjobspost) | **Post** /v0/projects/{fld_id}/jobs | Enqueue a compile job for a project (folder)
-*DefaultAPI* | [**ExtensionStartAuthExtensionStartGet**](docs/DefaultAPI.md#extensionstartauthextensionstartget) | **Get** /auth/extension/start | Extension Start
-*DefaultAPI* | [**FindV0FindGet**](docs/DefaultAPI.md#findv0findget) | **Get** /v0/find | Hybrid passage retrieval over the full file body
-*DefaultAPI* | [**GetArtifactByIdMetaV0ArtifactsArtIdMetaGet**](docs/DefaultAPI.md#getartifactbyidmetav0artifactsartidmetaget) | **Get** /v0/artifacts/{art_id}/meta | Artifact metadata by stable ID (same shape as path /meta)
-*DefaultAPI* | [**GetArtifactByIdV0ArtifactsArtIdGet**](docs/DefaultAPI.md#getartifactbyidv0artifactsartidget) | **Get** /v0/artifacts/{art_id} | Canonical lookup of an artifact by its stable ID
-*DefaultAPI* | [**GetArtifactMetaV0ArtifactsPathMetaGet**](docs/DefaultAPI.md#getartifactmetav0artifactspathmetaget) | **Get** /v0/artifacts/{path}/meta | Get Artifact Meta
-*DefaultAPI* | [**GetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGet**](docs/DefaultAPI.md#getartifactversionv0artifactsartidversionsversionnumberget) | **Get** /v0/artifacts/{art_id}/versions/{version_number} | Metadata for a specific version of an artifact
-*DefaultAPI* | [**GetDriveRouteV0DrivesDriveIdGet**](docs/DefaultAPI.md#getdriveroutev0drivesdriveidget) | **Get** /v0/drives/{drive_id} | Drive overview by id (same shape as /drives/me)
-*DefaultAPI* | [**GetFeedbackStatusV0FeedbackFbkIdGet**](docs/DefaultAPI.md#getfeedbackstatusv0feedbackfbkidget) | **Get** /v0/feedback/{fbk_id} | Get Feedback Status
-*DefaultAPI* | [**GetFolderByIdMetaV0FoldersFldIdMetaGet**](docs/DefaultAPI.md#getfolderbyidmetav0foldersfldidmetaget) | **Get** /v0/folders/{fld_id}/meta | Folder metadata by stable ID (same shape as the bare id route)
-*DefaultAPI* | [**GetFolderByIdV0FoldersFldIdGet**](docs/DefaultAPI.md#getfolderbyidv0foldersfldidget) | **Get** /v0/folders/{fld_id} | Canonical lookup of a folder by its stable ID
-*DefaultAPI* | [**GetFolderByPathMetaV0FoldersPathMetaGet**](docs/DefaultAPI.md#getfolderbypathmetav0folderspathmetaget) | **Get** /v0/folders/{path}/meta | Folder metadata by path (same shape as the bare path route)
-*DefaultAPI* | [**GetFolderByPathV0FoldersPathGet**](docs/DefaultAPI.md#getfolderbypathv0folderspathget) | **Get** /v0/folders/{path} | Read folder metadata by path
-*DefaultAPI* | [**GetGrantRouteV0GrantsGrnIdGet**](docs/DefaultAPI.md#getgrantroutev0grantsgrnidget) | **Get** /v0/grants/{grn_id} | Read a single grant (can_manage, or the grant's own principal)
-*DefaultAPI* | [**GetJobLogsV0JobsJobIdLogsGet**](docs/DefaultAPI.md#getjoblogsv0jobsjobidlogsget) | **Get** /v0/jobs/{job_id}/logs | Raw compile log (text/plain)
-*DefaultAPI* | [**GetJobV0JobsJobIdGet**](docs/DefaultAPI.md#getjobv0jobsjobidget) | **Get** /v0/jobs/{job_id} | Poll a job
-*DefaultAPI* | [**GetProjectV0ProjectsFldIdGet**](docs/DefaultAPI.md#getprojectv0projectsfldidget) | **Get** /v0/projects/{fld_id} | Get a project's compile config
-*DefaultAPI* | [**GetShareRouteV0SharesShrIdGet**](docs/DefaultAPI.md#getshareroutev0sharesshridget) | **Get** /v0/shares/{shr_id} | Read a single share link's metadata (requires can_manage)
-*DefaultAPI* | [**GetUploadStatusV0UploadsUploadIdGet**](docs/DefaultAPI.md#getuploadstatusv0uploadsuploadidget) | **Get** /v0/uploads/{upload_id} | Get the status of a large (direct-to-GCS) upload session
-*DefaultAPI* | [**HealthHealthGet**](docs/DefaultAPI.md#healthhealthget) | **Get** /health | Health
-*DefaultAPI* | [**ListArtifactVersionsV0ArtifactsArtIdVersionsGet**](docs/DefaultAPI.md#listartifactversionsv0artifactsartidversionsget) | **Get** /v0/artifacts/{art_id}/versions | List versions of an artifact, newest first
-*DefaultAPI* | [**ListArtifactsV0ArtifactsGet**](docs/DefaultAPI.md#listartifactsv0artifactsget) | **Get** /v0/artifacts | List artifacts in the drive
-*DefaultAPI* | [**ListEventsRouteV0EventsGet**](docs/DefaultAPI.md#listeventsroutev0eventsget) | **Get** /v0/events | Read the append-only event log for the authenticated drive
-*DefaultAPI* | [**ListGrantsRouteV0GrantsGet**](docs/DefaultAPI.md#listgrantsroutev0grantsget) | **Get** /v0/grants | List live grants on a resource (requires can_manage)
-*DefaultAPI* | [**ListProjectJobsV0ProjectsFldIdJobsGet**](docs/DefaultAPI.md#listprojectjobsv0projectsfldidjobsget) | **Get** /v0/projects/{fld_id}/jobs | List a project's jobs
-*DefaultAPI* | [**ListSharesRouteV0SharesGet**](docs/DefaultAPI.md#listsharesroutev0sharesget) | **Get** /v0/shares | List live share links on a resource (requires can_manage)
-*DefaultAPI* | [**ListTrashRouteV0DrivesDriveIdTrashGet**](docs/DefaultAPI.md#listtrashroutev0drivesdriveidtrashget) | **Get** /v0/drives/{drive_id}/trash | List the authenticated drive's trash
-*DefaultAPI* | [**LoginAuthLoginGet**](docs/DefaultAPI.md#loginauthloginget) | **Get** /auth/login | Login
-*DefaultAPI* | [**LogoutAuthLogoutPost**](docs/DefaultAPI.md#logoutauthlogoutpost) | **Post** /auth/logout | Logout
-*DefaultAPI* | [**MeUsageV0DrivesMeUsageGet**](docs/DefaultAPI.md#meusagev0drivesmeusageget) | **Get** /v0/drives/me/usage | Current-period usage + caps for the authenticated drive
-*DefaultAPI* | [**MeV0DrivesMeGet**](docs/DefaultAPI.md#mev0drivesmeget) | **Get** /v0/drives/me | Me
-*DefaultAPI* | [**MoveArtifactRouteV0ArtifactsArtIdMovePost**](docs/DefaultAPI.md#moveartifactroutev0artifactsartidmovepost) | **Post** /v0/artifacts/{art_id}/move | Rename / move an artifact to a new path
-*DefaultAPI* | [**MoveFolderByIdV0FoldersFldIdMovePost**](docs/DefaultAPI.md#movefolderbyidv0foldersfldidmovepost) | **Post** /v0/folders/{fld_id}/move | Rename / move a folder by stable ID (cascade descendants)
-*DefaultAPI* | [**MoveFolderByPathV0FoldersPathMovePost**](docs/DefaultAPI.md#movefolderbypathv0folderspathmovepost) | **Post** /v0/folders/{path}/move | Rename / move a folder (cascade-update descendants)
-*DefaultAPI* | [**PatchArtifactRouteV0ArtifactsArtIdPatch**](docs/DefaultAPI.md#patchartifactroutev0artifactsartidpatch) | **Patch** /v0/artifacts/{art_id} | Edit artifact metadata (labels / metadata / source)
-*DefaultAPI* | [**PatchFolderByIdV0FoldersFldIdPatch**](docs/DefaultAPI.md#patchfolderbyidv0foldersfldidpatch) | **Patch** /v0/folders/{fld_id} | Update folder metadata by stable ID
-*DefaultAPI* | [**PatchFolderByPathV0FoldersPathPatch**](docs/DefaultAPI.md#patchfolderbypathv0folderspathpatch) | **Patch** /v0/folders/{path} | Update folder metadata by path
-*DefaultAPI* | [**PatchGrantRouteV0GrantsGrnIdPatch**](docs/DefaultAPI.md#patchgrantroutev0grantsgrnidpatch) | **Patch** /v0/grants/{grn_id} | Update a grant's role and/or expiry (requires can_manage)
-*DefaultAPI* | [**PostDescribeV0QueryDescribePost**](docs/DefaultAPI.md#postdescribev0querydescribepost) | **Post** /v0/query/describe | Describe a dataset's column schema
-*DefaultAPI* | [**PostFeedbackV0FeedbackPost**](docs/DefaultAPI.md#postfeedbackv0feedbackpost) | **Post** /v0/feedback | Post Feedback
-*DefaultAPI* | [**PostLookupValuesV0QueryLookupValuesPost**](docs/DefaultAPI.md#postlookupvaluesv0querylookupvaluespost) | **Post** /v0/query/lookup-values | List distinct values of a dataset column
-*DefaultAPI* | [**PostQueryV0QueryPost**](docs/DefaultAPI.md#postqueryv0querypost) | **Post** /v0/query | Run a read-only SQL query over authorized datasets
-*DefaultAPI* | [**PutArtifactV0ArtifactsPathPut**](docs/DefaultAPI.md#putartifactv0artifactspathput) | **Put** /v0/artifacts/{path} | Upload (or overwrite) an artifact
-*DefaultAPI* | [**PutProjectV0ProjectsFldIdPut**](docs/DefaultAPI.md#putprojectv0projectsfldidput) | **Put** /v0/projects/{fld_id} | Set a project's compile config (entrypoint/engine/auto_compile)
-*DefaultAPI* | [**RedeemShareSShareKeyGet**](docs/DefaultAPI.md#redeemsharessharekeyget) | **Get** /s/{share_key} | Redeem Share
-*DefaultAPI* | [**RedeemShareWithPasswordSShareKeyPost**](docs/DefaultAPI.md#redeemsharewithpasswordssharekeypost) | **Post** /s/{share_key} | Redeem Share With Password
-*DefaultAPI* | [**RestoreArtifactV0ArtifactsArtIdRestorePost**](docs/DefaultAPI.md#restoreartifactv0artifactsartidrestorepost) | **Post** /v0/artifacts/{art_id}/restore | Restore a soft-deleted artifact
-*DefaultAPI* | [**RestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePost**](docs/DefaultAPI.md#restoreartifactversionv0artifactsartidversionsversionnumberrestorepost) | **Post** /v0/artifacts/{art_id}/versions/{version_number}/restore | Restore a previous version as a new head version
-*DefaultAPI* | [**RestoreDriveRouteV0DrivesDriveIdRestorePost**](docs/DefaultAPI.md#restoredriveroutev0drivesdriveidrestorepost) | **Post** /v0/drives/{drive_id}/restore | Restore a soft-deleted drive
-*DefaultAPI* | [**RestoreFolderByIdV0FoldersFldIdRestorePost**](docs/DefaultAPI.md#restorefolderbyidv0foldersfldidrestorepost) | **Post** /v0/folders/{fld_id}/restore | Restore a soft-deleted folder (cascade)
-*DefaultAPI* | [**RotateShareRouteV0SharesShrIdRotatePost**](docs/DefaultAPI.md#rotateshareroutev0sharesshridrotatepost) | **Post** /v0/shares/{shr_id}/rotate | Revoke + reissue a share link's key (requires can_share)
-*DefaultAPI* | [**SearchV0SearchGet**](docs/DefaultAPI.md#searchv0searchget) | **Get** /v0/search | Full-text search over artifacts in the drive
-*DefaultAPI* | [**ViewArtifactHeadAArtIdHeadGet**](docs/DefaultAPI.md#viewartifactheadaartidheadget) | **Get** /a/{art_id}/head | View Artifact Head
-*DefaultAPI* | [**ViewArtifactVersionVArtIdVersionGet**](docs/DefaultAPI.md#viewartifactversionvartidversionget) | **Get** /v/{art_id}/{version} | View Artifact Version
-*DefaultAPI* | [**ViewFileDriveIdPathGet**](docs/DefaultAPI.md#viewfiledriveidpathget) | **Get** /{drive_id}/{path} | View File
-*DefaultAPI* | [**ViewPermalinkArtifactAArtIdGet**](docs/DefaultAPI.md#viewpermalinkartifactaartidget) | **Get** /a/{art_id} | View Permalink Artifact
-*DefaultAPI* | [**ViewPermalinkFolderFFldIdGet**](docs/DefaultAPI.md#viewpermalinkfolderffldidget) | **Get** /f/{fld_id} | View Permalink Folder
-*DrivesAPI* | [**CreateDriveKeyRouteV0DrivesDriveIdKeysPost**](docs/DrivesAPI.md#createdrivekeyroutev0drivesdriveidkeyspost) | **Post** /v0/drives/{drive_id}/keys | Create a drive API key
-*DrivesAPI* | [**CreateDriveRouteV0DrivesPost**](docs/DrivesAPI.md#createdriveroutev0drivespost) | **Post** /v0/drives | Create a drive in your active space
-*DrivesAPI* | [**ListDriveKeysRouteV0DrivesDriveIdKeysGet**](docs/DrivesAPI.md#listdrivekeysroutev0drivesdriveidkeysget) | **Get** /v0/drives/{drive_id}/keys | List a drive's API keys
-*DrivesAPI* | [**ListDrivesRouteV0DrivesGet**](docs/DrivesAPI.md#listdrivesroutev0drivesget) | **Get** /v0/drives | List the drives you can see
-*DrivesAPI* | [**RenameDriveRouteV0DrivesDriveIdPatch**](docs/DrivesAPI.md#renamedriveroutev0drivesdriveidpatch) | **Patch** /v0/drives/{drive_id} | Rename a drive you own
-*DrivesAPI* | [**RevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePost**](docs/DrivesAPI.md#revokedrivekeyroutev0drivesdriveidkeyskeyidrevokepost) | **Post** /v0/drives/{drive_id}/keys/{key_id}/revoke | Revoke a drive API key
-*DrivesAPI* | [**RotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePost**](docs/DrivesAPI.md#rotateonekeyroutev0drivesdriveidkeyskeyidrotatepost) | **Post** /v0/drives/{drive_id}/keys/{key_id}/rotate | Rotate one API key
-*McpOauthAPI* | [**Oauth2RegisterOauth2RegisterPost**](docs/McpOauthAPI.md#oauth2registeroauth2registerpost) | **Post** /oauth2/register | Dynamic Client Registration (RFC 7591)
-*McpOauthAPI* | [**Oauth2RevokeOauth2RevokePost**](docs/McpOauthAPI.md#oauth2revokeoauth2revokepost) | **Post** /oauth2/revoke | Token revocation (RFC 7009)
-*McpOauthUiAPI* | [**AuthorizeDecisionOauth2AuthorizePost**](docs/McpOauthUiAPI.md#authorizedecisionoauth2authorizepost) | **Post** /oauth2/authorize | Authorize Decision
-*McpOauthUiAPI* | [**AuthorizePageOauth2AuthorizeGet**](docs/McpOauthUiAPI.md#authorizepageoauth2authorizeget) | **Get** /oauth2/authorize | Authorize Page
-*MembersAPI* | [**InviteMemberV0MembersInvitePost**](docs/MembersAPI.md#invitememberv0membersinvitepost) | **Post** /v0/members/invite | Invite a person to your workspace by email
-*MembersAPI* | [**ListInvitationsV0InvitationsGet**](docs/MembersAPI.md#listinvitationsv0invitationsget) | **Get** /v0/invitations | List pending invitations
-*MembersAPI* | [**ListMembersV0MembersGet**](docs/MembersAPI.md#listmembersv0membersget) | **Get** /v0/members | List the members of your active workspace
-*MembersAPI* | [**RemoveMemberV0MembersTargetUserIdDelete**](docs/MembersAPI.md#removememberv0memberstargetuseriddelete) | **Delete** /v0/members/{target_user_id} | Remove a member (or leave)
-*MembersAPI* | [**RevokeInvitationV0InvitationsInvitationIdDelete**](docs/MembersAPI.md#revokeinvitationv0invitationsinvitationiddelete) | **Delete** /v0/invitations/{invitation_id} | Revoke a pending invitation
-*MembersAPI* | [**SetMemberRoleV0MembersTargetUserIdPatch**](docs/MembersAPI.md#setmemberrolev0memberstargetuseridpatch) | **Patch** /v0/members/{target_user_id} | Change a member's role
-*TokensAPI* | [**ListTokensV0TokensGet**](docs/TokensAPI.md#listtokensv0tokensget) | **Get** /v0/tokens | List your user-identity tokens
-*TokensAPI* | [**RevokeTokenV0TokensTokenIdRevokePost**](docs/TokensAPI.md#revoketokenv0tokenstokenidrevokepost) | **Post** /v0/tokens/{token_id}/revoke | Revoke one of your user-identity tokens
-*WorkspacesAPI* | [**CreateWorkspaceRouteV0WorkspacesPost**](docs/WorkspacesAPI.md#createworkspaceroutev0workspacespost) | **Post** /v0/workspaces | Create a new shared drive
-*WorkspacesAPI* | [**ListWorkspacesRouteV0WorkspacesGet**](docs/WorkspacesAPI.md#listworkspacesroutev0workspacesget) | **Get** /v0/workspaces | List the spaces you belong to
-*WorkspacesAPI* | [**RenameWorkspaceRouteV0WorkspacesOrgIdPatch**](docs/WorkspacesAPI.md#renameworkspaceroutev0workspacesorgidpatch) | **Patch** /v0/workspaces/{org_id} | Rename a shared drive you administer
+*ArtifactsAPI* | [**ArtifactsContent**](docs/ArtifactsAPI.md#artifactscontent) | **Get** /v0/drives/{drive_id}/artifacts/{artifact_id}/content | Read Artifact Content
+*ArtifactsAPI* | [**ArtifactsCopy**](docs/ArtifactsAPI.md#artifactscopy) | **Post** /v0/drives/{drive_id}/artifacts/{artifact_id}/copy | Copy Artifact
+*ArtifactsAPI* | [**ArtifactsCreate**](docs/ArtifactsAPI.md#artifactscreate) | **Post** /v0/drives/{drive_id}/artifacts | Create Artifact
+*ArtifactsAPI* | [**ArtifactsDelete**](docs/ArtifactsAPI.md#artifactsdelete) | **Delete** /v0/drives/{drive_id}/artifacts/{artifact_id} | Delete Artifact
+*ArtifactsAPI* | [**ArtifactsList**](docs/ArtifactsAPI.md#artifactslist) | **Get** /v0/drives/{drive_id}/artifacts | List Artifacts
+*ArtifactsAPI* | [**ArtifactsRead**](docs/ArtifactsAPI.md#artifactsread) | **Get** /v0/drives/{drive_id}/artifacts/{artifact_id} | Read Artifact
+*ArtifactsAPI* | [**ArtifactsRestore**](docs/ArtifactsAPI.md#artifactsrestore) | **Post** /v0/drives/{drive_id}/artifacts/{artifact_id}/restore | Restore Artifact
+*ArtifactsAPI* | [**ArtifactsUpdate**](docs/ArtifactsAPI.md#artifactsupdate) | **Patch** /v0/drives/{drive_id}/artifacts/{artifact_id} | Update Artifact
+*ChangesAPI* | [**ChangesList**](docs/ChangesAPI.md#changeslist) | **Get** /v0/drives/{drive_id}/changes | List Changes
+*DefaultAPI* | [**Health**](docs/DefaultAPI.md#health) | **Get** /health | Health
+*DiscoveryAPI* | [**OauthProtectedResource**](docs/DiscoveryAPI.md#oauthprotectedresource) | **Get** /.well-known/oauth-protected-resource | Protected-resource metadata (RFC 9728)
+*DrivesAPI* | [**DrivesCreate**](docs/DrivesAPI.md#drivescreate) | **Post** /v0/drives | Create Drive
+*DrivesAPI* | [**DrivesDelete**](docs/DrivesAPI.md#drivesdelete) | **Delete** /v0/drives/{drive_id} | Delete Drive
+*DrivesAPI* | [**DrivesList**](docs/DrivesAPI.md#driveslist) | **Get** /v0/drives | List Drives
+*DrivesAPI* | [**DrivesRead**](docs/DrivesAPI.md#drivesread) | **Get** /v0/drives/{drive_id} | Read Drive
+*DrivesAPI* | [**DrivesRestore**](docs/DrivesAPI.md#drivesrestore) | **Post** /v0/drives/{drive_id}/restore | Restore Drive
+*DrivesAPI* | [**DrivesUpdate**](docs/DrivesAPI.md#drivesupdate) | **Patch** /v0/drives/{drive_id} | Update Drive
+*DrivesAPI* | [**DrivesUsage**](docs/DrivesAPI.md#drivesusage) | **Get** /v0/drives/{drive_id}/usage | Drive Usage
+*FoldersAPI* | [**FoldersCopy**](docs/FoldersAPI.md#folderscopy) | **Post** /v0/drives/{drive_id}/folders/{folder_id}/copy | Copy Folder
+*FoldersAPI* | [**FoldersCreate**](docs/FoldersAPI.md#folderscreate) | **Post** /v0/drives/{drive_id}/folders | Create Folder
+*FoldersAPI* | [**FoldersDelete**](docs/FoldersAPI.md#foldersdelete) | **Delete** /v0/drives/{drive_id}/folders/{folder_id} | Delete Folder
+*FoldersAPI* | [**FoldersList**](docs/FoldersAPI.md#folderslist) | **Get** /v0/drives/{drive_id}/folders | List Folders
+*FoldersAPI* | [**FoldersRead**](docs/FoldersAPI.md#foldersread) | **Get** /v0/drives/{drive_id}/folders/{folder_id} | Read Folder
+*FoldersAPI* | [**FoldersRestore**](docs/FoldersAPI.md#foldersrestore) | **Post** /v0/drives/{drive_id}/folders/{folder_id}/restore | Restore Folder
+*FoldersAPI* | [**FoldersUpdate**](docs/FoldersAPI.md#foldersupdate) | **Patch** /v0/drives/{drive_id}/folders/{folder_id} | Update Folder
+*GrantsAPI* | [**GrantsCreate**](docs/GrantsAPI.md#grantscreate) | **Post** /v0/drives/{drive_id}/grants | Create Grant
+*GrantsAPI* | [**GrantsList**](docs/GrantsAPI.md#grantslist) | **Get** /v0/drives/{drive_id}/grants | List Grants
+*GrantsAPI* | [**GrantsRead**](docs/GrantsAPI.md#grantsread) | **Get** /v0/drives/{drive_id}/grants/{grant_id} | Read Grant
+*GrantsAPI* | [**GrantsRevoke**](docs/GrantsAPI.md#grantsrevoke) | **Delete** /v0/drives/{drive_id}/grants/{grant_id} | Revoke Grant
+*GrantsAPI* | [**GrantsUpdate**](docs/GrantsAPI.md#grantsupdate) | **Patch** /v0/drives/{drive_id}/grants/{grant_id} | Update Grant
+*SearchAPI* | [**DriveSearch**](docs/SearchAPI.md#drivesearch) | **Get** /v0/drives/{drive_id}/search | Drive Search
+*SharesAPI* | [**SharesCreate**](docs/SharesAPI.md#sharescreate) | **Post** /v0/drives/{drive_id}/shares | Create Share
+*SharesAPI* | [**SharesList**](docs/SharesAPI.md#shareslist) | **Get** /v0/drives/{drive_id}/shares | List Shares
+*SharesAPI* | [**SharesRead**](docs/SharesAPI.md#sharesread) | **Get** /v0/drives/{drive_id}/shares/{share_id} | Read Share
+*SharesAPI* | [**SharesRevoke**](docs/SharesAPI.md#sharesrevoke) | **Delete** /v0/drives/{drive_id}/shares/{share_id} | Revoke Share
+*SharesAPI* | [**SharesRotate**](docs/SharesAPI.md#sharesrotate) | **Post** /v0/drives/{drive_id}/shares/{share_id}/rotate | Rotate Share
+*SharesRedemptionAPI* | [**SharesRedeem**](docs/SharesRedemptionAPI.md#sharesredeem) | **Get** /s/{share_key} | Redeem Share
+*VersionsAPI* | [**VersionsAppend**](docs/VersionsAPI.md#versionsappend) | **Post** /v0/drives/{drive_id}/artifacts/{artifact_id}/versions | Append Version
+*VersionsAPI* | [**VersionsContent**](docs/VersionsAPI.md#versionscontent) | **Get** /v0/drives/{drive_id}/artifacts/{artifact_id}/versions/{version_id}/content | Read Version Content
+*VersionsAPI* | [**VersionsList**](docs/VersionsAPI.md#versionslist) | **Get** /v0/drives/{drive_id}/artifacts/{artifact_id}/versions | List Versions
+*VersionsAPI* | [**VersionsRead**](docs/VersionsAPI.md#versionsread) | **Get** /v0/drives/{drive_id}/artifacts/{artifact_id}/versions/{version_id} | Read Version
+*VersionsAPI* | [**VersionsRestore**](docs/VersionsAPI.md#versionsrestore) | **Post** /v0/drives/{drive_id}/artifacts/{artifact_id}/versions/{version_id}/restore | Restore Version
## Documentation For Models
- - [AgentAuthMetadataOut](docs/AgentAuthMetadataOut.md)
- - [AnonymousIdentityResponse](docs/AnonymousIdentityResponse.md)
- - [ArtifactDeleteOut](docs/ArtifactDeleteOut.md)
- - [ArtifactHeadOut](docs/ArtifactHeadOut.md)
- - [ArtifactMoveIn](docs/ArtifactMoveIn.md)
+ - [ArtifactCopyIn](docs/ArtifactCopyIn.md)
+ - [ArtifactListOut](docs/ArtifactListOut.md)
- [ArtifactOut](docs/ArtifactOut.md)
- - [ArtifactPatchIn](docs/ArtifactPatchIn.md)
- - [ArtifactSource](docs/ArtifactSource.md)
- - [AuthorizationServerMetadataOut](docs/AuthorizationServerMetadataOut.md)
- - [AuthorizeDecisionOauth2AuthorizePost403Response](docs/AuthorizeDecisionOauth2AuthorizePost403Response.md)
- - [ClaimInitRequest](docs/ClaimInitRequest.md)
- - [ClaimInitResponse](docs/ClaimInitResponse.md)
- - [ClaimMetadata](docs/ClaimMetadata.md)
- - [ClientRegistrationOut](docs/ClientRegistrationOut.md)
- - [CompileDiagnosticOut](docs/CompileDiagnosticOut.md)
- - [CompileJobIn](docs/CompileJobIn.md)
- - [CompileJobListOut](docs/CompileJobListOut.md)
- - [CompileJobOut](docs/CompileJobOut.md)
- - [CompileOptions](docs/CompileOptions.md)
- - [CompileProjectOut](docs/CompileProjectOut.md)
- - [CopyIn](docs/CopyIn.md)
- - [DatasetDescriptionOut](docs/DatasetDescriptionOut.md)
- - [DescribeIn](docs/DescribeIn.md)
- - [DownloadUrlOut](docs/DownloadUrlOut.md)
- - [DriveApiKeyCreateIn](docs/DriveApiKeyCreateIn.md)
- - [DriveApiKeyCreateOut](docs/DriveApiKeyCreateOut.md)
- - [DriveApiKeyListOut](docs/DriveApiKeyListOut.md)
- - [DriveApiKeyOut](docs/DriveApiKeyOut.md)
+ - [ArtifactUpdateIn](docs/ArtifactUpdateIn.md)
+ - [ChangeActorOut](docs/ChangeActorOut.md)
+ - [ChangeOut](docs/ChangeOut.md)
+ - [ChangePageOut](docs/ChangePageOut.md)
+ - [ChangeResourceOut](docs/ChangeResourceOut.md)
- [DriveCreateIn](docs/DriveCreateIn.md)
- - [DriveCreateOut](docs/DriveCreateOut.md)
- - [DriveDeleteOut](docs/DriveDeleteOut.md)
- - [DriveList](docs/DriveList.md)
+ - [DriveListOut](docs/DriveListOut.md)
- [DriveOut](docs/DriveOut.md)
- - [DriveReadOut](docs/DriveReadOut.md)
- - [DriveRenameIn](docs/DriveRenameIn.md)
- - [DriveRestoreOut](docs/DriveRestoreOut.md)
+ - [DriveUpdateIn](docs/DriveUpdateIn.md)
- [DriveUsageOut](docs/DriveUsageOut.md)
- - [ErrorBody](docs/ErrorBody.md)
- - [ErrorDetail](docs/ErrorDetail.md)
+ - [DrivesCreate400Response](docs/DrivesCreate400Response.md)
+ - [DrivesCreate400ResponseError](docs/DrivesCreate400ResponseError.md)
+ - [DrivesList400Response](docs/DrivesList400Response.md)
+ - [DrivesList400ResponseError](docs/DrivesList400ResponseError.md)
- [ErrorResponse](docs/ErrorResponse.md)
- - [EventOut](docs/EventOut.md)
- - [EventPage](docs/EventPage.md)
- - [ExtensionExchangeRequest](docs/ExtensionExchangeRequest.md)
- - [ExtensionExchangeResponse](docs/ExtensionExchangeResponse.md)
- - [FeedbackCreateOut](docs/FeedbackCreateOut.md)
- - [FeedbackStatusOut](docs/FeedbackStatusOut.md)
- - [FindHitOut](docs/FindHitOut.md)
- - [FindPage](docs/FindPage.md)
+ - [FolderCascadeOut](docs/FolderCascadeOut.md)
- [FolderCopyIn](docs/FolderCopyIn.md)
- - [FolderCopyOut](docs/FolderCopyOut.md)
- [FolderCreateIn](docs/FolderCreateIn.md)
- - [FolderDeleteOut](docs/FolderDeleteOut.md)
- - [FolderMoveIn](docs/FolderMoveIn.md)
+ - [FolderListOut](docs/FolderListOut.md)
- [FolderOut](docs/FolderOut.md)
- - [FolderPatchIn](docs/FolderPatchIn.md)
- - [FolderRestoreOut](docs/FolderRestoreOut.md)
+ - [FolderUpdateIn](docs/FolderUpdateIn.md)
- [GrantCreateIn](docs/GrantCreateIn.md)
- - [GrantList](docs/GrantList.md)
+ - [GrantListOut](docs/GrantListOut.md)
- [GrantOut](docs/GrantOut.md)
- - [GrantPatchIn](docs/GrantPatchIn.md)
- - [GrantPrincipalIn](docs/GrantPrincipalIn.md)
+ - [GrantUpdateIn](docs/GrantUpdateIn.md)
- [HealthDegradedDetail](docs/HealthDegradedDetail.md)
- [HealthDegradedResponse](docs/HealthDegradedResponse.md)
- [HealthOut](docs/HealthOut.md)
- - [HourlyUsageCounterOut](docs/HourlyUsageCounterOut.md)
- - [IdentityAssertionMetadataOut](docs/IdentityAssertionMetadataOut.md)
- - [InvitationList](docs/InvitationList.md)
- - [InvitationOut](docs/InvitationOut.md)
- - [InviteCreateOut](docs/InviteCreateOut.md)
- - [JwkOut](docs/JwkOut.md)
- - [JwksOut](docs/JwksOut.md)
- - [LookupValuesIn](docs/LookupValuesIn.md)
- - [LookupValuesOut](docs/LookupValuesOut.md)
- - [MemberInviteIn](docs/MemberInviteIn.md)
- - [MemberList](docs/MemberList.md)
- - [MemberOut](docs/MemberOut.md)
- - [MemberRemoveOut](docs/MemberRemoveOut.md)
- - [MemberRoleIn](docs/MemberRoleIn.md)
- - [OAuthProtocolErrorOut](docs/OAuthProtocolErrorOut.md)
- - [OperationUsageOut](docs/OperationUsageOut.md)
- - [Page](docs/Page.md)
- - [ProjectConfigIn](docs/ProjectConfigIn.md)
- - [ProtectedResourceMetadataOut](docs/ProtectedResourceMetadataOut.md)
- - [QueryColumnOut](docs/QueryColumnOut.md)
- - [QueryDryRunOut](docs/QueryDryRunOut.md)
- - [QueryIn](docs/QueryIn.md)
- - [QueryResultOut](docs/QueryResultOut.md)
- - [RegisterAgentIdentityAgentIdentityPost422Response](docs/RegisterAgentIdentityAgentIdentityPost422Response.md)
- - [ResponsePostQueryV0QueryPost](docs/ResponsePostQueryV0QueryPost.md)
- - [RevokeOut](docs/RevokeOut.md)
- [SearchHitOut](docs/SearchHitOut.md)
- - [SearchPage](docs/SearchPage.md)
+ - [SearchPageOut](docs/SearchPageOut.md)
- [ShareCreateIn](docs/ShareCreateIn.md)
- - [ShareErrorOut](docs/ShareErrorOut.md)
- - [ShareList](docs/ShareList.md)
- - [ShareMintOut](docs/ShareMintOut.md)
+ - [ShareCreateOut](docs/ShareCreateOut.md)
+ - [ShareListOut](docs/ShareListOut.md)
- [ShareOut](docs/ShareOut.md)
- - [ShareRedeemOut](docs/ShareRedeemOut.md)
- - [SourceRef](docs/SourceRef.md)
- - [StorageBreakdownOut](docs/StorageBreakdownOut.md)
- - [StorageFootprintOut](docs/StorageFootprintOut.md)
- - [TokenResponse](docs/TokenResponse.md)
- - [TokenUsageOut](docs/TokenUsageOut.md)
- - [TrashArtifactOut](docs/TrashArtifactOut.md)
- - [TrashDriveOut](docs/TrashDriveOut.md)
- - [TrashOut](docs/TrashOut.md)
- - [UploadAbortOut](docs/UploadAbortOut.md)
- - [UploadBeginIn](docs/UploadBeginIn.md)
- - [UploadBeginOut](docs/UploadBeginOut.md)
- - [UploadStatusOut](docs/UploadStatusOut.md)
- - [UsageCounterOut](docs/UsageCounterOut.md)
- - [UsagePeriodOut](docs/UsagePeriodOut.md)
- - [UserTokenList](docs/UserTokenList.md)
- - [UserTokenOut](docs/UserTokenOut.md)
- - [ValidationErrorBody](docs/ValidationErrorBody.md)
- - [ValidationErrorDetail](docs/ValidationErrorDetail.md)
+ - [V0ErrorEnvelope](docs/V0ErrorEnvelope.md)
- [ValidationErrorResponse](docs/ValidationErrorResponse.md)
- - [ValidationIssue](docs/ValidationIssue.md)
+ - [ValidationErrorResponseError](docs/ValidationErrorResponseError.md)
+ - [ValidationErrorResponseErrorDetails](docs/ValidationErrorResponseErrorDetails.md)
+ - [ValidationErrorResponseErrorDetailsFieldsInner](docs/ValidationErrorResponseErrorDetailsFieldsInner.md)
+ - [VersionCreatedOut](docs/VersionCreatedOut.md)
+ - [VersionListOut](docs/VersionListOut.md)
- [VersionOut](docs/VersionOut.md)
- - [VersionPage](docs/VersionPage.md)
- - [VersionRetentionOut](docs/VersionRetentionOut.md)
- - [WorkspaceCreateIn](docs/WorkspaceCreateIn.md)
- - [WorkspaceCreateOut](docs/WorkspaceCreateOut.md)
- - [WorkspaceList](docs/WorkspaceList.md)
- - [WorkspaceOut](docs/WorkspaceOut.md)
- - [WorkspaceRenameIn](docs/WorkspaceRenameIn.md)
## Documentation For Authorization
Authentication schemes defined for the API:
-### BearerAuth
+### bearerAuth
- **Type**: HTTP Bearer token authentication
diff --git a/sdk/go/api/openapi.yaml b/sdk/go/api/openapi.yaml
index c59863f..42ac796 100644
--- a/sdk/go/api/openapi.yaml
+++ b/sdk/go/api/openapi.yaml
@@ -1,151 +1,180 @@
openapi: 3.1.0
info:
- description: "AgentDrive is an agent-focused artifact store: upload by path, share\
- \ by rendered URL, address by stable permalink. The REST surface is documented\
- \ here; the rendered viewer + agent claim flow live under `agentdrive.run`."
+ description: "AgentDrive is an agent-focused artifact store: drive-scoped folders,\
+ \ artifacts, and immutable versions, with local grants, possession-based share\
+ \ links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated\
+ \ with Hub-issued product tokens (see /.well-known/oauth-protected-resource);\
+ \ every mutation takes an Idempotency-Key, and existing-state mutations take If-Match."
title: AgentDrive
version:
servers:
- description: AgentDrive public API
url: https://api.agentdrive.run
paths:
- /.well-known/jwks.json:
+ /.well-known/oauth-protected-resource:
get:
- description: Public half of the RSA signing key for identity_assertion + access_token
- JWTs issued by AgentDrive. RFC 7517 shape. Cache-friendly; key rotation publishes
- both kids during the overlap window.
- operationId: jwks__well_known_jwks_json_get
+ description: Names the reset v0 surface as a protected resource and points clients
+ at Hub — the only authorization server whose product tokens this deployment
+ accepts.
+ operationId: oauth_protected_resource
responses:
"200":
content:
application/json:
schema:
- $ref: "#/components/schemas/JwksOut"
+ additionalProperties:
+ nullable: true
+ title: Response Oauth Protected Resource
description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- summary: JSON Web Key Set — public keys for verifying AgentDrive JWTs
+ summary: Protected-resource metadata (RFC 9728)
tags:
- - agent-auth
- /.well-known/oauth-authorization-server:
+ - discovery
+ /health:
get:
- description: Discovery document for the auth.md protocol. Carries the standard
- RFC 8414 fields plus an `agent_auth` block per the auth.md spec — the latter
- is what an agent runtime keys off to find the identity + claim endpoints.
- operationId: oauth_authorization_server__well_known_oauth_authorization_server_get
+ description: |-
+ Liveness + DB-reachability probe. Used by Cloud Run / k8s healthchecks
+ and any uptime monitor. Returns 200 only if the DB pool can serve a
+ trivial query; 503 otherwise so the orchestrator can pull the instance
+ out of rotation.
+
+ NOTE: route is `/health`, NOT `/healthz`. Google's edge infrastructure
+ intercepts `/healthz` (legacy kubernetes-reserved path) and returns a
+ generic 404 before traffic reaches Cloud Run — discovered the hard way
+ during the first prod deploy. Don't rename back.
+ operationId: health
responses:
"200":
content:
application/json:
schema:
- $ref: "#/components/schemas/AuthorizationServerMetadataOut"
+ $ref: "#/components/schemas/HealthOut"
description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
+ "503":
+ content:
+ application/json:
schema:
- type: string
- style: simple
- summary: Authorization-server metadata (RFC 8414 + auth.md agent_auth block)
- tags:
- - agent-auth
- /.well-known/oauth-protected-resource:
+ $ref: "#/components/schemas/HealthDegradedResponse"
+ description: The database reachability probe failed.
+ summary: Health
+ /s/{share_key}:
get:
- description: Names this server as a protected resource and points clients at
- the authorization server they should obtain tokens from. In this design the
- resource server and authorization server are the same host.
- operationId: oauth_protected_resource__well_known_oauth_protected_resource_get
+ description: |-
+ The un-slashed form. Browsers are canonicalized onto `/s/{key}/`.
+
+ This inherits the published `shares_redeem` operation id from the route it
+ replaced, because for an API client it *is* that operation, unchanged:
+ same URL, same JSON `Accept`, same bytes, same uniform 404. Only the
+ browser arm is new. Dropping it from the spec would have described the
+ route as gone while it kept answering.
+
+ The page links its own sub-resources relatively (`content`), and relative
+ resolution replaces the last path segment: from `/s/KEY` that reaches
+ `/s/content`, from `/s/KEY/` it reaches `/s/KEY/content`. The trailing
+ slash is what makes an image on a share page load at all. Links already in
+ the wild have no slash, so this redirect is how they keep working.
+
+ It is unconditional and runs before any lookup — redirecting only for keys
+ that resolve would turn the status code into an existence oracle and undo
+ the anti-enumeration property the rest of this module maintains.
+
+ Only browsers are moved. JSON and byte clients are answered in place, so
+ the shipped v0 contract for this URL is unchanged, redirect included.
+ operationId: shares_redeem
+ parameters:
+ - explode: false
+ in: path
+ name: share_key
+ required: true
+ schema:
+ title: Share Key
+ type: string
+ style: simple
responses:
"200":
content:
application/json:
- schema:
- $ref: "#/components/schemas/ProtectedResourceMetadataOut"
+ schema: {}
description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- summary: Protected-resource metadata (auth.md / RFC 9728-like discovery)
- tags:
- - agent-auth
- /.well-known/oauth-protected-resource/mcp:
- get:
- description: "Path-inserted variant of the protected-resource document. MCP\
- \ clients derive this URL from the resource URL `{origin}/mcp` (RFC 9728 §\
- 3.1: insert the well-known segment between host and path) after reading the\
- \ WWW-Authenticate challenge on a 401 — it is the first hop of the client-side\
- \ OAuth flow."
- operationId: oauth_protected_resource_mcp__well_known_oauth_protected_resource_mcp_get
- responses:
- "200":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/ProtectedResourceMetadataOut"
- description: Successful Response
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
+ nullable: true
type: string
style: simple
- summary: Protected-resource metadata for the MCP endpoint (RFC 9728 §3.1)
+ summary: Redeem Share
tags:
- - agent-auth
- /a/{art_id}:
+ - shares-redemption
+ /v0/drives:
get:
description: |-
- Resolve a stable artifact ID to its path-URL and 302 there.
+ List the actor's workspace drives, newest-first (keyset paginated).
- Auth model matches the path URL: public artifacts redirect for
- anyone; private artifacts redirect only for the owner. Non-owners
- on private artifacts get 404 — same response as "doesn't exist",
- so the ID's existence isn't leaked. The forwarded query-param
- allowlist is `raw`, `download` (see _PERMALINK_FORWARDED_PARAMS).
- operationId: view_permalink_artifact_a__art_id__get
+ ``lifecycle`` (active|deleted|all) exposes soft-deleted drives so a
+ manager can read the post-delete revision as the If-Match source for a
+ restore. Unknown query parameters are rejected (§6.3).
+ operationId: drives_list
parameters:
+ - explode: true
+ in: query
+ name: lifecycle
+ required: false
+ schema:
+ default: active
+ title: Lifecycle
+ type: string
+ style: form
+ - explode: true
+ in: query
+ name: limit
+ required: false
+ schema:
+ nullable: true
+ type: integer
+ style: form
+ - explode: true
+ in: query
+ name: cursor
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: form
- explode: false
- in: path
- name: art_id
- required: true
+ in: header
+ name: authorization
+ required: false
schema:
- title: Art Id
+ nullable: true
type: string
style: simple
responses:
- "302":
- description: Redirect to the canonical or authentication URL.
- headers:
- Location:
- description: Redirect target.
- explode: false
+ "200":
+ content:
+ application/json:
schema:
- format: uri-reference
- type: string
- style: simple
+ $ref: "#/components/schemas/DriveListOut"
+ description: Successful Response
+ headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "404":
+ "400":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The artifact does not exist or is not readable.
+ $ref: "#/components/schemas/drives_list_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -153,66 +182,32 @@ paths:
schema:
type: string
style: simple
- "422":
+ "401":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_list_400_response"
+ description: Missing or invalid bearer token.
headers:
- X-Request-Id:
- description: Request correlation identifier.
+ WWW-Authenticate:
+ description: RFC 6750 bearer authentication challenge.
explode: false
schema:
+ nullable: true
type: string
style: simple
- summary: View Permalink Artifact
- /a/{art_id}/head:
- get:
- description: |-
- Return `{"version": }` for a readable artifact.
-
- Auth mirrors the permalink/viewer: the owner, or an `anyone:viewer`
- grant (a published artifact), reads. Two deliberate differences from
- the HTML viewer:
-
- * Never redirect to login. A poll is a background `fetch`, not a
- navigation — an HTML login page would be a useless body and a
- same-origin redirect the client can't act on. Anonymous callers
- on a private/absent artifact get a flat 404.
- * "Doesn't exist" and "exists but not readable" collapse to the
- same 404, so an anonymous poller can't use this as an existence
- oracle (matches the permalink/viewer leak guard).
- operationId: view_artifact_head_a__art_id__head_get
- parameters:
- - explode: false
- in: path
- name: art_id
- required: true
- schema:
- title: Art Id
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ArtifactHeadOut"
- description: Successful Response
- headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "422":
+ "403":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_list_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -220,31 +215,12 @@ paths:
schema:
type: string
style: simple
- summary: View Artifact Head
- /agent/identity:
- post:
- description: |-
- Two registration modes:
-
- **`type=anonymous`** — Provisions a brand-new agent identity bound to a fresh shadow-org drive. No human involved; returned `identity_assertion` carries `scope=pre_claim`. A human completes the claim ceremony later via /claim.
-
- **`type=identity_assertion`** — Agent provider (e.g. WorkOS) has already minted an ID-JAG asserting a user identity binding. We verify it against the provider's JWKS and provision a **claimed** identity immediately: scope=full, drive bound to the user, no claim ceremony needed.
- operationId: register_agent_identity_agent_identity_post
- requestBody:
- content:
- application/json:
- schema:
- additionalProperties:
- nullable: true
- title: Body
- required: true
- responses:
- "200":
+ "404":
content:
application/json:
schema:
- $ref: "#/components/schemas/AnonymousIdentityResponse"
- description: Successful Response
+ $ref: "#/components/schemas/drives_list_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -256,7 +232,7 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/register_agent_identity_agent_identity_post_422_response"
+ $ref: "#/components/schemas/ValidationErrorResponse"
description: Request validation failed.
headers:
X-Request-Id:
@@ -265,134 +241,98 @@ paths:
schema:
type: string
style: simple
- "503":
+ "429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Agent identity signing is not configured.
+ $ref: "#/components/schemas/drives_list_400_response"
+ description: Rate limited.
headers:
- X-Request-Id:
- description: Request correlation identifier.
+ Retry-After:
+ description: Seconds until the caller should retry.
explode: false
schema:
- type: string
+ minimum: 0
+ type: integer
style: simple
- summary: Register an agent identity (anonymous or ID-JAG)
- tags:
- - agent-auth
- /agent/identity/claim:
- post:
- description: "Returns a `user_code` and `verification_uri` (RFC 8628 device-code\
- \ idiom). The agent surfaces these to the human, who visits the URI, signs\
- \ in, and approves the claim. The agent then polls POST /oauth2/token (grant_type=claim)\
- \ with the same `claim_token` to learn when the claim completes."
- operationId: initiate_claim_agent_identity_claim_post
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ClaimInitRequest"
- required: true
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ClaimInitResponse"
- description: Successful Response
- headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "422":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_list_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- summary: Initiate the human-claim ceremony for an agent identity
+ security:
+ - bearerAuth: []
+ summary: List Drives
tags:
- - agent-auth
- /auth/callback:
- get:
+ - drives
+ post:
description: |-
- Complete a sign-in.
-
- Handles the auth provider's OAuth callback and shapes failures into
- user-readable errors:
- * an invalid or expired login flow — LOGIN_FLOW_INVALID (400);
- * an invalid or already-used authorization code — AUTH_CODE_INVALID (400);
- * the upstream auth provider being unavailable — WORKOS_UNAVAILABLE (502),
- returned with Retry-After.
- operationId: callback_auth_callback_get
+ Create a drive with its structural root folder and creator-manager
+ grant(s) in one transaction; idempotent under the ``Idempotency-Key``.
+ operationId: drives_create
parameters:
- - explode: true
- in: query
- name: code
- required: false
- schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- style: form
- - explode: true
- in: query
- name: state
- required: false
+ - explode: false
+ in: header
+ name: Idempotency-Key
+ required: true
schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
nullable: true
type: string
- style: form
- - explode: true
- in: query
- name: error
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
required: false
schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
nullable: true
type: string
- style: form
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/DriveCreateIn"
+ required: true
responses:
- "200":
+ "201":
content:
- text/html:
+ application/json:
schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- description: Extension authentication handoff page.
+ $ref: "#/components/schemas/DriveOut"
+ description: Successful Response
headers:
- X-Request-Id:
- description: Request correlation identifier.
+ ETag:
+ description: Current strong entity tag.
explode: false
schema:
+ nullable: true
type: string
style: simple
- "302":
- description: Redirect to the canonical or authentication URL.
- headers:
Location:
- description: Redirect target.
+ description: Canonical URL of the created resource.
explode: false
schema:
format: uri-reference
@@ -408,8 +348,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The login flow or authorization code is invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -417,33 +357,31 @@ paths:
schema:
type: string
style: simple
- "409":
+ "401":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- text/html:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
+ headers:
+ WWW-Authenticate:
+ description: RFC 6750 bearer authentication challenge.
+ explode: false
schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
type: string
- description: Account recovery is required or the Hub principal conflicts
- with the existing account link.
- headers:
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "422":
+ "403":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -451,90 +389,71 @@ paths:
schema:
type: string
style: simple
- "502":
+ "404":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The upstream identity provider is temporarily unavailable.
+ $ref: "#/components/schemas/drives_list_400_response"
+ description: The parent or target resource was not found or is not visible.
headers:
- Retry-After:
- description: Seconds until the caller should retry.
+ X-Request-Id:
+ description: Request correlation identifier.
explode: false
schema:
- minimum: 0
- type: integer
+ type: string
style: simple
+ "409":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_list_400_response"
+ description: "A sibling already occupies the name/path, or the idempotency\
+ \ key was reused for a different request."
+ headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "503":
+ "412":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Extension authentication is temporarily disabled.
+ $ref: "#/components/schemas/drives_list_400_response"
+ description: If-Match did not match (copy/restore preconditions).
headers:
- X-Request-Id:
- description: Request correlation identifier.
+ ETag:
+ description: Current strong entity tag.
explode: false
schema:
type: string
style: simple
- summary: Callback
- /auth/extension/start:
- get:
- description: |-
- Begin a sign-in flow on behalf of a Chrome extension.
-
- Provider follows AUTH_MODE (WorkOS AuthKit or the TokenCanopy hub),
- exactly like /auth/login. Stamps `for=ext` + `ext_id` into the
- signed OAuth state so the callback handler knows to render the
- extension handoff page instead of setting a session cookie.
-
- Three short-circuits, all surface as actionable errors:
- * EXTENSION_AUTH_DISABLED (503): kill switch flipped off.
- * UNKNOWN_EXTENSION (400): `ext_id` not on the allow-list.
- * Missing `ext_id` query string (400 INVALID_REQUEST).
- operationId: extension_start_auth_extension_start_get
- parameters:
- - explode: true
- in: query
- name: ext_id
- required: false
- schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- style: form
- responses:
- "302":
- description: Redirect to the canonical or authentication URL.
- headers:
- Location:
- description: Redirect target.
+ X-Request-Id:
+ description: Request correlation identifier.
explode: false
schema:
- format: uri-reference
type: string
style: simple
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
+ headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "400":
+ "428":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The extension ID is missing or not allowed.
+ $ref: "#/components/schemas/drives_list_400_response"
+ description: If-Match is required for this mutation.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -542,13 +461,20 @@ paths:
schema:
type: string
style: simple
- "422":
+ "429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -559,49 +485,80 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Extension authentication is temporarily disabled.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- summary: Extension Start
- /auth/login:
- get:
+ security:
+ - bearerAuth: []
+ summary: Create Drive
+ tags:
+ - drives
+ /v0/drives/{drive_id}:
+ delete:
description: |-
- Begin a WorkOS sign-in flow.
-
- Mints a pre-login state cookie (binds the OAuth flow to this
- browser — defense-in-depth against login-CSRF), signs a state
- payload, and redirects to AuthKit. The hosted AuthKit page lets
- the user pick Google OAuth, Microsoft OAuth, magic-link,
- password, or passkey; we don't care which — they all funnel
- back to /auth/callback with a `code` we exchange in D2.
- operationId: login_auth_login_get
+ Soft-delete a drive. Returns 200 with the deleted representation so the
+ client has the post-delete revision/ETag for a restore.
+ operationId: drives_delete
parameters:
- - explode: true
- in: query
- name: return_to
+ - explode: false
+ in: path
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: Idempotency-Key
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: If-Match
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
required: false
schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
nullable: true
type: string
- style: form
+ style: simple
responses:
- "302":
- description: Redirect to the canonical or authentication URL.
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/DriveOut"
+ description: Successful Response
headers:
- Location:
- description: Redirect target.
+ ETag:
+ description: Current strong entity tag.
explode: false
schema:
- format: uri-reference
type: string
style: simple
X-Request-Id:
@@ -610,12 +567,12 @@ paths:
schema:
type: string
style: simple
- "422":
+ "400":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -623,49 +580,17 @@ paths:
schema:
type: string
style: simple
- summary: Login
- /auth/logout:
- post:
- description: |-
- Terminate both the local session AND the upstream WorkOS session.
-
- Without the WorkOS-side termination, the next `/auth/login` flow
- silently re-authenticates the user through AuthKit's still-valid
- session cookie on `api.workos.com` — "Sign out" feels broken and
- a shared-browser user can't switch accounts. The recommended
- pattern (per https://workos.com/docs/authkit/sessions) is to
- redirect to the WorkOS logout endpoint with the `sid` we stashed
- during the callback; WorkOS clears its own session and returns
- the browser to our `return_to`.
-
- Failure modes handled:
- * No `workos_session_id` in the session (legacy v2 cookie issued
- before this slice landed): fall back to local-only logout. The
- upstream session lingers but the user's local state is cleared
- — same UX as before this slice; cookie rotation on next sign-in
- eventually overwrites it.
- * SDK raises during `get_logout_url`: pure string formatting at
- WorkOS's end, so the only realistic failure is a misconfigured
- WorkOS dashboard (no Sign-out redirect registered). We catch
- and fall back to local-only logout rather than 500ing — the
- user clicked "Sign out", they should land somewhere, not on an
- error page.
- operationId: logout_auth_logout_post
- requestBody:
- content:
- application/x-www-form-urlencoded:
- schema:
- $ref: "#/components/schemas/Body_logout_auth_logout_post"
- required: true
- responses:
- "302":
- description: Redirect to the canonical or authentication URL.
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
- Location:
- description: Redirect target.
+ WWW-Authenticate:
+ description: RFC 6750 bearer authentication challenge.
explode: false
schema:
- format: uri-reference
type: string
style: simple
X-Request-Id:
@@ -678,8 +603,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The browser CSRF check failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -687,12 +612,12 @@ paths:
schema:
type: string
style: simple
- "422":
+ "404":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -700,36 +625,30 @@ paths:
schema:
type: string
style: simple
- summary: Logout
- /f/{fld_id}:
- get:
- description: |-
- Resolve a stable folder ID to its current path-URL and 302.
-
- Auth model mirrors the artifact permalink: public folder = anon
- OK; private folder = owner only, otherwise 404 (no existence
- leak). "Public" is an `anyone:viewer` grant on the `fld_*` id
- resolved through `can_read` (§4.4); folders carry no visibility
- flag of their own.
- operationId: view_permalink_folder_f__fld_id__get
- parameters:
- - explode: false
- in: path
- name: fld_id
- required: true
- schema:
- title: Fld Id
- type: string
- style: simple
- responses:
- "302":
- description: Redirect to the canonical or authentication URL.
+ "409":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_list_400_response"
+ description: "The mutation conflicts with current state (name/path, lifecycle)."
headers:
- Location:
- description: Redirect target.
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "412":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_list_400_response"
+ description: If-Match did not match the resource's current revision.
+ headers:
+ ETag:
+ description: Current strong entity tag.
explode: false
schema:
- format: uri-reference
type: string
style: simple
X-Request-Id:
@@ -738,12 +657,12 @@ paths:
schema:
type: string
style: simple
- "404":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The folder does not exist or is not readable.
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -751,12 +670,12 @@ paths:
schema:
type: string
style: simple
- "422":
+ "428":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -764,28 +683,20 @@ paths:
schema:
type: string
style: simple
- summary: View Permalink Folder
- /health:
- get:
- description: |-
- Liveness + DB-reachability probe. Used by Cloud Run / k8s healthchecks
- and any uptime monitor. Returns 200 only if the DB pool can serve a
- trivial query; 503 otherwise so the orchestrator can pull the instance
- out of rotation.
-
- NOTE: route is `/health`, NOT `/healthz`. Google's edge infrastructure
- intercepts `/healthz` (legacy kubernetes-reserved path) and returns a
- generic 404 before traffic reaches Cloud Run — discovered the hard way
- during the first prod deploy. Don't rename back.
- operationId: health_health_get
- responses:
- "200":
+ "429":
content:
application/json:
schema:
- $ref: "#/components/schemas/HealthOut"
- description: Successful Response
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -796,45 +707,86 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/HealthDegradedResponse"
- description: The database reachability probe failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- summary: Health
- /oauth2/authorize:
+ security:
+ - bearerAuth: []
+ summary: Delete Drive
+ tags:
+ - drives
get:
- operationId: authorize_page_oauth2_authorize_get
+ description: |-
+ Read one active drive. ETag = quoted revision; matching
+ ``If-None-Match`` → 304. Deleted and cross-workspace drives are 404.
+ operationId: drives_read
+ parameters:
+ - explode: false
+ in: path
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: If-None-Match
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: simple
responses:
"200":
content:
- text/html:
+ application/json:
schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
+ $ref: "#/components/schemas/DriveOut"
description: Successful Response
headers:
+ ETag:
+ description: Current strong entity tag.
+ explode: false
+ schema:
+ type: string
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "302":
- description: Redirect to the canonical or authentication URL.
+ "304":
+ description: If-None-Match matched the current ETag.
headers:
- Location:
- description: Redirect target.
+ ETag:
+ description: Current strong entity tag.
explode: false
schema:
- format: uri-reference
type: string
style: simple
X-Request-Id:
@@ -847,8 +799,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/OAuthProtocolErrorOut"
- description: The authorization request is invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -856,19 +808,18 @@ paths:
schema:
type: string
style: simple
- "429":
+ "401":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Authorization rate limit exceeded.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
- Retry-After:
- description: Seconds until the caller should retry.
+ WWW-Authenticate:
+ description: RFC 6750 bearer authentication challenge.
explode: false
schema:
- minimum: 0.0
- type: integer
+ type: string
style: simple
X-Request-Id:
description: Request correlation identifier.
@@ -876,56 +827,12 @@ paths:
schema:
type: string
style: simple
- summary: Authorize Page
- tags:
- - mcp-oauth-ui
- post:
- operationId: authorize_decision_oauth2_authorize_post
- requestBody:
- content:
- application/x-www-form-urlencoded:
- schema:
- $ref: "#/components/schemas/Body_authorize_decision_oauth2_authorize_post"
- required: true
- responses:
- "302":
- description: Redirect to the canonical or authentication URL.
- headers:
- Location:
- description: Redirect target.
- explode: false
- schema:
- format: uri-reference
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "303":
- description: Continue after the form submission at the redirect target.
- headers:
- Location:
- description: Redirect target.
- explode: false
- schema:
- format: uri-reference
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
+ "403":
content:
application/json:
schema:
- $ref: "#/components/schemas/OAuthProtocolErrorOut"
- description: The authorization decision or request is invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -933,13 +840,12 @@ paths:
schema:
type: string
style: simple
- "403":
+ "404":
content:
application/json:
schema:
- $ref: "#/components/schemas/authorize_decision_oauth2_authorize_post_403_response"
- description: The selected drive is unavailable or the browser CSRF check
- failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -964,14 +870,14 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Authorization rate limit exceeded.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
Retry-After:
description: Seconds until the caller should retry.
explode: false
schema:
- minimum: 0.0
+ minimum: 0
type: integer
style: simple
X-Request-Id:
@@ -980,55 +886,20 @@ paths:
schema:
type: string
style: simple
- summary: Authorize Decision
- tags:
- - mcp-oauth-ui
- /oauth2/register:
- post:
- description: "Anonymous registration endpoint for MCP clients. Public clients\
- \ only (PKCE, no client_secret). Returns the registered metadata plus the\
- \ assigned `client_id`. Registration grants nothing by itself — every token\
- \ still requires a user consent ceremony at /oauth2/authorize."
- operationId: oauth2_register_oauth2_register_post
- responses:
- "201":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ClientRegistrationOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/OAuthProtocolErrorOut"
- description: Invalid client metadata.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Registration rate limit exceeded.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
explode: false
schema:
- minimum: 0.0
+ minimum: 0
type: integer
style: simple
X-Request-Id:
@@ -1037,49 +908,81 @@ paths:
schema:
type: string
style: simple
- summary: Dynamic Client Registration (RFC 7591)
+ security:
+ - bearerAuth: []
+ summary: Read Drive
tags:
- - mcp-oauth
- /oauth2/revoke:
- post:
- description: "Revokes an `adat_` access token (that token only) or an `adrt_`\
- \ refresh token (the whole rotation chain). Unknown tokens return 200 per\
- \ RFC 7009 §2.2 — existence is not revealed. Public-client endpoint auth (`client_id`\
- \ form param, no secret)."
- operationId: oauth2_revoke_oauth2_revoke_post
+ - drives
+ patch:
+ description: |-
+ Rename / update a drive's metadata. Requires ``Idempotency-Key`` and
+ ``If-Match`` (428 absent, 412 stale); bumps the revision.
+ operationId: drives_update
+ parameters:
+ - explode: false
+ in: path
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: Idempotency-Key
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: If-Match
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/DriveUpdateIn"
+ required: true
responses:
"200":
content:
application/json:
schema:
- $ref: "#/components/schemas/OAuthRevocationOut"
+ $ref: "#/components/schemas/DriveOut"
description: Successful Response
headers:
- X-Request-Id:
- description: Request correlation identifier.
+ ETag:
+ description: Current strong entity tag.
explode: false
schema:
type: string
style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/OAuthProtocolErrorOut"
- description: Invalid revocation request.
- headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "401":
+ "400":
content:
application/json:
schema:
- $ref: "#/components/schemas/OAuthProtocolErrorOut"
- description: Client authentication failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -1087,64 +990,31 @@ paths:
schema:
type: string
style: simple
- "403":
+ "401":
content:
application/json:
schema:
- $ref: "#/components/schemas/OAuthProtocolErrorOut"
- description: Token type is unsupported.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
- X-Request-Id:
- description: Request correlation identifier.
+ WWW-Authenticate:
+ description: RFC 6750 bearer authentication challenge.
explode: false
schema:
type: string
style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Revocation rate limit exceeded.
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0.0
- type: integer
- style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- summary: Token revocation (RFC 7009)
- tags:
- - mcp-oauth
- /oauth2/token:
- post:
- description: |-
- Two grant types:
-
- **`urn:ietf:params:oauth:grant-type:jwt-bearer`** (RFC 7523) — body `assertion=`. Returns a fresh 15-minute access_token with the same scope as the assertion.
-
- **`claim`** (custom) — body `claim_token=`. Polling endpoint for the claim ceremony. Returns one of: `authorization_pending` (400), `expired_token` (400), `access_denied` (400), or access_token + new identity_assertion + scope=full (200).
- operationId: oauth2_token_oauth2_token_post
- requestBody:
- content:
- application/x-www-form-urlencoded:
- schema:
- $ref: "#/components/schemas/Body_oauth2_token_oauth2_token_post"
- required: true
- responses:
- "200":
+ "403":
content:
application/json:
schema:
- $ref: "#/components/schemas/TokenResponse"
- description: Successful Response
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -1152,12 +1022,12 @@ paths:
schema:
type: string
style: simple
- "422":
+ "404":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -1165,92 +1035,32 @@ paths:
schema:
type: string
style: simple
- summary: Exchange a credential for an access_token
- tags:
- - agent-auth
- /s/{share_key}:
- get:
- operationId: redeem_share_s__share_key__get
- parameters:
- - explode: false
- in: path
- name: share_key
- required: true
- schema:
- title: Share Key
- type: string
- style: simple
- responses:
- "200":
+ "409":
content:
application/json:
schema:
- $ref: "#/components/schemas/ShareRedeemOut"
- text/html:
- schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- description: JSON capability response or browser password form.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "302":
- description: Browser redemption succeeded; continue to the canonical URL.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "The mutation conflicts with current state (name/path, lifecycle)."
headers:
- Location:
- description: Redirect target.
- explode: false
- schema:
- format: uri-reference
- type: string
- style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "401":
+ "412":
content:
application/json:
schema:
- $ref: "#/components/schemas/ShareErrorOut"
- text/html:
- schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- description: A password is required or the supplied password is invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match the resource's current revision.
headers:
- X-Request-Id:
- description: Request correlation identifier.
+ ETag:
+ description: Current strong entity tag.
explode: false
schema:
type: string
style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ShareErrorOut"
- text/html:
- schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- description: "The share is invalid, expired, or no longer authorized."
- headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -1270,37 +1080,12 @@ paths:
schema:
type: string
style: simple
- summary: Redeem Share
- post:
- operationId: redeem_share_with_password_s__share_key__post
- parameters:
- - explode: false
- in: path
- name: share_key
- required: true
- schema:
- title: Share Key
- type: string
- style: simple
- requestBody:
- content:
- application/x-www-form-urlencoded:
- schema:
- $ref: "#/components/schemas/Body_redeem_share_with_password_s__share_key__post"
- responses:
- "200":
+ "428":
content:
application/json:
schema:
- $ref: "#/components/schemas/ShareRedeemOut"
- text/html:
- schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- description: JSON capability response or browser password form.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -1308,15 +1093,19 @@ paths:
schema:
type: string
style: simple
- "302":
- description: Browser redemption succeeded; continue to the canonical URL.
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
- Location:
- description: Redirect target.
+ Retry-After:
+ description: Seconds until the caller should retry.
explode: false
schema:
- format: uri-reference
- type: string
+ minimum: 0
+ type: integer
style: simple
X-Request-Id:
description: Request correlation identifier.
@@ -1324,215 +1113,141 @@ paths:
schema:
type: string
style: simple
- "401":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/ShareErrorOut"
- text/html:
- schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- description: A password is required or the supplied password is invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
- X-Request-Id:
- description: Request correlation identifier.
+ Retry-After:
+ description: Seconds until the caller should retry.
explode: false
schema:
- type: string
+ minimum: 0
+ type: integer
style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ShareErrorOut"
- text/html:
- schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- description: "The share is invalid, expired, or no longer authorized."
- headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- summary: Redeem Share With Password
- /v/{art_id}/{version}:
+ security:
+ - bearerAuth: []
+ summary: Update Drive
+ tags:
+ - drives
+ /v0/drives/{drive_id}/artifacts:
get:
description: |-
- Render version `version` of an artifact, read-only.
+ List the drive's artifacts, newest-first (keyset paginated).
- Version history is owner-only. The drive-blind `can_read` gate still
- provides the same sign-in-or-404 masking as `/a/{art_id}`, but readable
- non-owners cannot browse snapshots. A pruned or never-existed version
- renders a friendly unavailable state, never a 500.
- `?raw=1` / `?download=1` stream the version's bytes (powering the bar's
- Raw / Download buttons) with the same sandbox+nosniff headers as the
- head raw path.
- operationId: view_artifact_version_v__art_id___version__get
+ ``lifecycle`` (active|deleted|all) exposes soft-deleted artifacts.
+ ``parent_id`` / ``name`` / ``content_type`` / ``label`` are exact-match
+ filters; ``updated_after`` / ``updated_before`` are inclusive bounds.
+ Unknown query parameters are rejected.
+ operationId: artifacts_list
parameters:
- explode: false
in: path
- name: art_id
+ name: drive_id
required: true
schema:
- title: Art Id
+ title: Drive Id
type: string
style: simple
- - explode: false
- in: path
- name: version
- required: true
+ - explode: true
+ in: query
+ name: lifecycle
+ required: false
schema:
- title: Version
- type: integer
- style: simple
+ default: active
+ title: Lifecycle
+ type: string
+ style: form
- explode: true
in: query
- name: raw
+ name: limit
required: false
schema:
- default: 0
- title: Raw
+ nullable: true
type: integer
style: form
- explode: true
in: query
- name: download
+ name: cursor
required: false
schema:
- default: 0
- title: Download
- type: integer
+ nullable: true
+ type: string
+ style: form
+ - explode: true
+ in: query
+ name: parent_id
+ required: false
+ schema:
+ nullable: true
+ type: string
style: form
- responses:
- "200":
- content:
- application/octet-stream:
- schema:
- format: binary
- type: string
- text/html:
- schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- description: Rendered HTML or raw artifact bytes.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- summary: View Artifact Version
- /v0/artifacts:
- get:
- description: |-
- Returns artifacts sorted by path. Filter by `prefix`, `label` (repeatable + AND-combined), and `file_type`.
-
- **Cursor pagination:** when more results exist, the response carries `next_cursor`. Pass it back as `?cursor=` to fetch the next page. `next_cursor` is `null` on the final page. Filters MUST stay consistent across pages — the cursor encodes only the keyset position, not the filter set, so the client is responsible for re-sending the same filter on each page.
- operationId: list_artifacts_v0_artifacts_get
- parameters:
- explode: true
in: query
- name: prefix
+ name: name
required: false
schema:
- default: ""
- title: Prefix
+ nullable: true
type: string
style: form
- explode: true
in: query
- name: label
+ name: content_type
required: false
schema:
- items:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- title: Label
- type: array
- default: null
+ nullable: true
+ type: string
style: form
- explode: true
in: query
- name: file_type
+ name: label
required: false
schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
nullable: true
type: string
style: form
- explode: true
in: query
- name: cursor
+ name: updated_after
required: false
schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
+ format: date-time
nullable: true
type: string
style: form
- explode: true
in: query
- name: limit
+ name: updated_before
required: false
schema:
- default: 50
- maximum: 100
- minimum: 1
- title: Limit
- type: integer
+ format: date-time
+ nullable: true
+ type: string
style: form
+ - explode: false
+ in: header
+ name: authorization
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: simple
responses:
"200":
content:
application/json:
schema:
- $ref: "#/components/schemas/Page"
+ $ref: "#/components/schemas/ArtifactListOut"
description: Successful Response
headers:
X-Request-Id:
@@ -1545,8 +1260,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The pagination cursor is invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -1558,17 +1273,13 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
explode: false
schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
type: string
style: simple
X-Request-Id:
@@ -1581,9 +1292,21 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -1608,8 +1331,30 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
+ headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "503":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -1625,53 +1370,80 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: List artifacts in the drive
- /v0/artifacts/{art_id}:
- delete:
+ - bearerAuth: []
+ summary: List Artifacts
+ tags:
+ - artifacts
+ post:
description: |-
- Soft-delete the artifact with this `art_…` ID. Same semantics + response shape as the path-based `DELETE /v0/artifacts/{path}` (reversible until the GC cron hard-deletes at `purge_at`; `restore_url` points at the by-id restore), but keys on the immutable id so a concurrent rename can't change the target.
+ Create one artifact with inline content — multipart only.
- Returns 404 ARTIFACT_NOT_FOUND if no live artifact has this id; 403 WIKI_RESERVED for `_wiki/` artifacts (system-managed); 412 if `If-Match` doesn't match the current version. Declared before the `{path:path}` family so the id convertor wins for DELETEs.
- operationId: delete_artifact_by_id_route_v0_artifacts__art_id__delete
+ Multipart only (415 for a JSON body). Parts: parent_id, name, metadata, content (bytes), content_type, sha256. parent_id, name, and content are required.
+ operationId: artifacts_create
parameters:
- explode: false
in: path
- name: art_id
+ name: drive_id
required: true
schema:
- title: Art Id
+ title: Drive Id
type: string
style: simple
- explode: false
in: header
- name: if-match
- required: false
+ name: Idempotency-Key
+ required: true
schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
nullable: true
type: string
style: simple
- explode: false
in: header
- name: x-agentdrive-actor
+ name: authorization
required: false
schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
nullable: true
type: string
style: simple
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ $ref: "#/components/schemas/artifacts_create_request"
+ required: true
responses:
- "200":
+ "201":
content:
application/json:
schema:
- $ref: "#/components/schemas/ArtifactDeleteOut"
+ $ref: "#/components/schemas/ArtifactOut"
description: Successful Response
+ headers:
+ ETag:
+ description: Current strong entity tag.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ Location:
+ description: Canonical URL of the created resource.
+ explode: false
+ schema:
+ format: uri-reference
+ type: string
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -1683,8 +1455,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -1702,9 +1474,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -1716,8 +1487,22 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: No live artifact with this ID exists.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The parent or target resource was not found or is not visible.
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "409":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "A sibling already occupies the name/path, or the idempotency\
+ \ key was reused for a different request."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -1729,8 +1514,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: If-Match does not match the current artifact.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match (copy/restore preconditions).
headers:
ETag:
description: Current strong entity tag.
@@ -1757,12 +1542,47 @@ paths:
schema:
type: string
style: simple
+ "428":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
"429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
+ headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "503":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -1778,17 +1598,53 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Soft-delete an artifact by its stable ID
- get:
- operationId: get_artifact_by_id_v0_artifacts__art_id__get
+ - bearerAuth: []
+ summary: Create Artifact
+ tags:
+ - artifacts
+ /v0/drives/{drive_id}/artifacts/{artifact_id}:
+ delete:
+ description: Soft-delete one artifact (its versions stay).
+ operationId: artifacts_delete
parameters:
- explode: false
in: path
- name: art_id
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
+ - explode: false
+ in: path
+ name: artifact_id
+ required: true
+ schema:
+ title: Artifact Id
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: Idempotency-Key
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: If-Match
required: true
schema:
- title: Art Id
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
+ required: false
+ schema:
+ nullable: true
type: string
style: simple
responses:
@@ -1803,10 +1659,6 @@ paths:
description: Current strong entity tag.
explode: false
schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
type: string
style: simple
X-Request-Id:
@@ -1815,15 +1667,13 @@ paths:
schema:
type: string
style: simple
- "304":
- description: The current entity tag or modification date matched.
- headers:
- ETag:
- description: Current strong entity tag.
- explode: false
+ "400":
+ content:
+ application/json:
schema:
- type: string
- style: simple
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
+ headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -1834,8 +1684,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -1853,9 +1703,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -1867,8 +1716,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: No such artifact exists in this drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -1876,12 +1725,12 @@ paths:
schema:
type: string
style: simple
- "422":
+ "409":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "The mutation conflicts with current state (name/path, lifecycle)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -1889,14 +1738,81 @@ paths:
schema:
type: string
style: simple
- "429":
+ "412":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match the resource's current revision.
headers:
- Retry-After:
+ ETag:
+ description: Current strong entity tag.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "428":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
+ headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "503":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
+ headers:
+ Retry-After:
description: Seconds until the caller should retry.
explode: false
schema:
@@ -1910,35 +1826,33 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Canonical lookup of an artifact by its stable ID
- patch:
- description: |-
- Metadata-only JSON-merge-patch update of a single artifact, keyed by its stable `art_…` ID. Every field in the body is optional; a field that is **omitted** is left unchanged, a field that is **present** is applied — with an explicit `null` / `[]` / `{}` meaning "clear". This mirrors the MCP `set_metadata` tool.
-
- Editable fields:
- * `labels` — replace the label set (`[]`/`null` clears).
- * `metadata` — replace the free-form metadata object (`{}`/`null` clears).
- * `source` — replace provenance refs (`null` clears).
-
- **To move/rename an artifact, use `POST /v0/artifacts/{art_id}/move`** — PATCH no longer accepts `path`. The body is `extra="forbid"`, so a stray field (notably a legacy `path`) is rejected with 422 rather than silently ignored.
-
- Metadata edits do NOT create a new content version (no `version_number` / generation bump, no `artifact_versions` row) but DO bump the artifact's `metageneration` and `updated_at`.
-
- Returns 400 BAD_LABELS / BAD_SOURCE for invalid metadata; 404 ARTIFACT_NOT_FOUND for an unknown id. Honors `If-Match`, which takes the composite ETag `".."` and is compared as a whole tuple: ANY concurrent content **or** metadata change (a bumped generation OR metageneration) → 412 PRECONDITION_FAILED. There is no last-writer-wins gap for metadata-only edits. Use `X-AgentDrive-Actor` to attach attribution to the emitted `artifact.metadata_updated` event.
- operationId: patch_artifact_route_v0_artifacts__art_id__patch
+ - bearerAuth: []
+ summary: Delete Artifact
+ tags:
+ - artifacts
+ get:
+ description: Read one active artifact. ``If-None-Match`` short-circuits to 304.
+ operationId: artifacts_read
parameters:
- explode: false
in: path
- name: art_id
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
+ - explode: false
+ in: path
+ name: artifact_id
required: true
schema:
- title: Art Id
+ title: Artifact Id
type: string
style: simple
- explode: false
in: header
- name: x-agentdrive-actor
+ name: If-None-Match
required: false
schema:
nullable: true
@@ -1946,18 +1860,12 @@ paths:
style: simple
- explode: false
in: header
- name: if-match
+ name: authorization
required: false
schema:
nullable: true
type: string
style: simple
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ArtifactPatchIn"
- required: true
responses:
"200":
content:
@@ -1978,12 +1886,27 @@ paths:
schema:
type: string
style: simple
+ "304":
+ description: If-None-Match matched the current ETag.
+ headers:
+ ETag:
+ description: Current strong entity tag.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
"400":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The labels or source metadata are invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -1995,8 +1918,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -2014,9 +1937,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2028,8 +1950,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: No such live artifact exists in this drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2037,44 +1959,47 @@ paths:
schema:
type: string
style: simple
- "412":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: A request precondition did not match.
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "422":
+ "429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "429":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -2090,44 +2015,51 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Edit artifact metadata (labels / metadata / source)
- /v0/artifacts/{art_id}/copy:
- post:
- description: |-
- Create a new artifact at `path` whose bytes are identical to the source artifact's. The copy reuses the source's CAS object (zero new storage) but gets a fresh `art_…` ID, a fresh version 1, and — by default — `source.refs = [{type: 'artifact', id: ''}]` so provenance is preserved.
-
- Quota: the copy's `size_bytes` is added to the drive's `storage_bytes` even though physical bytes are shared.
-
- Source-version pin: pass `from_generation` in the body to require the source's current content generation (`version_number`) to equal it (→ 412 SOURCE_VERSION_MISMATCH); a concurrent source *metadata* edit does NOT fail the copy. Destination create-only: `If-None-Match: *` returns 412 CREATE_CONFLICT (instead of 409 PATH_CONFLICT) when the target path is occupied.
-
- Returns 409 PATH_CONFLICT if the target path is already taken; 413 STORAGE_QUOTA_EXCEEDED if the copy would push the drive over its limit.
- operationId: copy_artifact_route_v0_artifacts__art_id__copy_post
+ - bearerAuth: []
+ summary: Read Artifact
+ tags:
+ - artifacts
+ patch:
+ description: Rename / move / set metadata or labels. At least one field required.
+ operationId: artifacts_update
parameters:
- explode: false
in: path
- name: art_id
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
+ - explode: false
+ in: path
+ name: artifact_id
required: true
schema:
- title: Art Id
+ title: Artifact Id
type: string
style: simple
- explode: false
in: header
- name: x-agentdrive-actor
- required: false
+ name: Idempotency-Key
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: If-Match
+ required: true
schema:
nullable: true
type: string
style: simple
- explode: false
in: header
- name: if-none-match
+ name: authorization
required: false
schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
nullable: true
type: string
style: simple
@@ -2135,10 +2067,10 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/CopyIn"
+ $ref: "#/components/schemas/ArtifactUpdateIn"
required: true
responses:
- "201":
+ "200":
content:
application/json:
schema:
@@ -2151,13 +2083,6 @@ paths:
schema:
type: string
style: simple
- Location:
- description: Canonical URL of the created resource.
- explode: false
- schema:
- format: uri-reference
- type: string
- style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -2168,8 +2093,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The destination path or source metadata is invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2181,8 +2106,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -2200,9 +2125,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2214,8 +2138,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The source artifact does not exist in this drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2227,8 +2151,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The destination path is already occupied.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "The mutation conflicts with current state (name/path, lifecycle)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2240,8 +2164,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: A request precondition did not match.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match the resource's current revision.
headers:
ETag:
description: Current strong entity tag.
@@ -2255,12 +2179,12 @@ paths:
schema:
type: string
style: simple
- "413":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The copy would exceed the drive storage limit.
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2268,12 +2192,12 @@ paths:
schema:
type: string
style: simple
- "422":
+ "428":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2285,8 +2209,30 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
+ headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "503":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -2302,18 +2248,45 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: "Duplicate an artifact to a new path (CAS-shared, new ID)"
- /v0/artifacts/{art_id}/download:
+ - bearerAuth: []
+ summary: Update Artifact
+ tags:
+ - artifacts
+ /v0/drives/{drive_id}/artifacts/{artifact_id}/content:
get:
- operationId: download_artifact_by_id_v0_artifacts__art_id__download_get
+ description: Download the head version's bytes — stream or 307 signed URL.
+ operationId: artifacts_content
parameters:
- explode: false
in: path
- name: art_id
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
+ - explode: false
+ in: path
+ name: artifact_id
required: true
schema:
- title: Art Id
+ title: Artifact Id
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: If-None-Match
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
+ required: false
+ schema:
+ nullable: true
type: string
style: simple
responses:
@@ -2323,7 +2296,51 @@ paths:
schema:
format: binary
type: string
- description: Raw artifact bytes.
+ description: Raw artifact bytes (streamed).
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "304":
+ description: If-None-Match matched the current ETag.
+ headers:
+ ETag:
+ description: Current strong entity tag.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "307":
+ description: Redirect to a short-lived signed URL.
+ headers:
+ Location:
+ description: Redirect target.
+ explode: false
+ schema:
+ format: uri-reference
+ type: string
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2335,8 +2352,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -2354,9 +2371,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2368,8 +2384,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: No live artifact with this ID exists.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2394,8 +2410,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -2410,51 +2426,110 @@ paths:
schema:
type: string
style: simple
- security:
- - BearerAuth: []
- summary: Stream the artifact bytes by stable ID (never rendered HTML)
- /v0/artifacts/{art_id}/download-url:
- get:
- description: "Returns a URL for the artifact's bytes. For large artifacts (>=\
- \ the signed-download threshold) when signing is available, it's a short-lived\
- \ **signed GCS URL** the client fetches directly (`direct:true`, `expires_at`\
- \ set); otherwise the **proxy** `/download` URL (`direct:false`). Treat the\
- \ URL as opaque. large-download-design.md §5.1."
- operationId: download_url_by_id_v0_artifacts__art_id__download_url_get
- parameters:
- - explode: false
- in: path
- name: art_id
- required: true
- schema:
- title: Art Id
- type: string
- style: simple
- responses:
- "200":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/DownloadUrlOut"
- description: Successful Response
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
schema:
type: string
style: simple
- "401":
+ security:
+ - bearerAuth: []
+ summary: Read Artifact Content
+ tags:
+ - artifacts
+ /v0/drives/{drive_id}/artifacts/{artifact_id}/copy:
+ post:
+ description: |-
+ Copy one artifact within the same drive.
+
+ Cross-drive copy is out of v0 scope and rejected (400 INVALID_ARGUMENT).
+ ``destination_drive_id`` must equal the source drive when present.
+ Materializes the artifact + its selected version synchronously → 201.
+ ``If-Match`` is optional; when present it is validated against the source
+ revision (412 stale).
+ operationId: artifacts_copy
+ parameters:
+ - explode: false
+ in: path
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
+ - explode: false
+ in: path
+ name: artifact_id
+ required: true
+ schema:
+ title: Artifact Id
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: Idempotency-Key
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: If-Match
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ArtifactCopyIn"
+ required: true
+ responses:
+ "201":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/ArtifactOut"
+ description: Successful Response
headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
+ ETag:
+ description: Current strong entity tag.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ Location:
+ description: Canonical URL of the created resource.
explode: false
schema:
+ format: uri-reference
type: string
style: simple
X-Request-Id:
@@ -2463,13 +2538,12 @@ paths:
schema:
type: string
style: simple
- "403":
+ "400":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2477,25 +2551,31 @@ paths:
schema:
type: string
style: simple
- "404":
+ "401":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The artifact does not exist in this drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
+ WWW-Authenticate:
+ description: RFC 6750 bearer authentication challenge.
+ explode: false
+ schema:
+ type: string
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "422":
+ "403":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2503,67 +2583,39 @@ paths:
schema:
type: string
style: simple
- "429":
+ "404":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The parent or target resource was not found or is not visible.
headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- security:
- - BearerAuth: []
- summary: Signed direct-from-GCS download URL by stable ID
- /v0/artifacts/{art_id}/meta:
- get:
- operationId: get_artifact_by_id_meta_v0_artifacts__art_id__meta_get
- parameters:
- - explode: false
- in: path
- name: art_id
- required: true
- schema:
- title: Art Id
- type: string
- style: simple
- responses:
- "200":
+ "409":
content:
application/json:
schema:
- $ref: "#/components/schemas/ArtifactOut"
- description: Successful Response
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "A sibling already occupies the name/path, or the idempotency\
+ \ key was reused for a different request."
headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "304":
- description: The current entity tag or modification date matched.
+ "412":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match (copy/restore preconditions).
headers:
ETag:
description: Current strong entity tag.
@@ -2577,32 +2629,25 @@ paths:
schema:
type: string
style: simple
- "401":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "403":
+ "428":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2610,38 +2655,34 @@ paths:
schema:
type: string
style: simple
- "404":
+ "429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: No such artifact exists in this drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
- X-Request-Id:
- description: Request correlation identifier.
+ Retry-After:
+ description: Seconds until the caller should retry.
explode: false
schema:
- type: string
+ minimum: 0
+ type: integer
style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "429":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -2657,48 +2698,55 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Artifact metadata by stable ID (same shape as path /meta)
- /v0/artifacts/{art_id}/move:
+ - bearerAuth: []
+ summary: Copy Artifact
+ tags:
+ - artifacts
+ /v0/drives/{drive_id}/artifacts/{artifact_id}/restore:
post:
- description: |-
- Canonical artifact move/rename, keyed by the stable `art_…` ID (the artifact analogue of `POST /v0/folders/{fld_id}/move`). Moves the artifact to a new `path` on the same drive; ID, version history, source refs, labels, metadata, and the underlying CAS blob are all preserved — only `path` and `updated_at` change, and the move does NOT bump `version_number`.
-
- The row UPDATE and the emitted `artifact.renamed` event commit in a SINGLE transaction — a failure leaves the artifact fully unchanged.
-
- Returns 409 PATH_CONFLICT if the target `path` is already taken; 404 ARTIFACT_NOT_FOUND for an unknown id; 403 WIKI_RESERVED for a `_wiki/` / `_compiled/` target. Honors `If-Match` (→ 412 PRECONDITION_FAILED). Use `X-AgentDrive-Actor` to attach attribution to the emitted `artifact.renamed` event.
- operationId: move_artifact_route_v0_artifacts__art_id__move_post
+ description: Restore a soft-deleted artifact atomically.
+ operationId: artifacts_restore
parameters:
- explode: false
in: path
- name: art_id
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
+ - explode: false
+ in: path
+ name: artifact_id
required: true
schema:
- title: Art Id
+ title: Artifact Id
type: string
style: simple
- explode: false
in: header
- name: x-agentdrive-actor
- required: false
+ name: Idempotency-Key
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: If-Match
+ required: true
schema:
nullable: true
type: string
style: simple
- explode: false
in: header
- name: if-match
+ name: authorization
required: false
schema:
nullable: true
type: string
style: simple
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ArtifactMoveIn"
- required: true
responses:
"200":
content:
@@ -2719,12 +2767,25 @@ paths:
schema:
type: string
style: simple
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
"401":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -2742,9 +2803,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2756,8 +2816,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: No such artifact exists in this drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2769,8 +2829,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The destination path is already occupied.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "The mutation conflicts with current state (name/path, lifecycle)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2782,8 +2842,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: A request precondition did not match.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match the resource's current revision.
headers:
ETag:
description: Current strong entity tag.
@@ -2810,12 +2870,47 @@ paths:
schema:
type: string
style: simple
+ "428":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
"429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
+ headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "503":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -2831,66 +2926,50 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Rename / move an artifact to a new path
- /v0/artifacts/{art_id}/restore:
- post:
- description: Clear `deleted_at` + `purge_at` on a soft-deleted artifact. Available
- only while the artifact is in trash (i.e. before the GC cleanup cron purges
- it). Returns 404 if the artifact is live or already hard-deleted; 409 PATH_CONFLICT
- if its path is now occupied by another live artifact. The 409 payload includes
- a `restore_options` block with `rename_to` and `force_overwrite` URLs the
- caller can follow to resolve the conflict — see deletion-design.md §5.4.
- operationId: restore_artifact_v0_artifacts__art_id__restore_post
+ - bearerAuth: []
+ summary: Restore Artifact
+ tags:
+ - artifacts
+ /v0/drives/{drive_id}/artifacts/{artifact_id}/versions:
+ get:
+ description: "List the artifact's version trail, newest first (ordinal DESC)."
+ operationId: versions_list
parameters:
- explode: false
in: path
- name: art_id
+ name: drive_id
required: true
schema:
- title: Art Id
+ title: Drive Id
type: string
style: simple
- - description: Restore at this path instead of the original. Soft-deletes the
- live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- explode: true
- in: query
- name: rename
- required: false
+ - explode: false
+ in: path
+ name: artifact_id
+ required: true
schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
+ title: Artifact Id
type: string
- style: form
- - description: Soft-delete the live occupant at the original path and restore
- there. Audit `metadata.cause='restore_conflict_overwrite'`. Mutually exclusive
- with `rename`.
- explode: true
+ style: simple
+ - explode: true
in: query
- name: overwrite
+ name: limit
required: false
schema:
- default: false
- description: Soft-delete the live occupant at the original path and restore
- there. Audit `metadata.cause='restore_conflict_overwrite'`. Mutually exclusive
- with `rename`.
- title: Overwrite
- type: boolean
+ nullable: true
+ type: integer
style: form
- - explode: false
- in: header
- name: x-agentdrive-actor
+ - explode: true
+ in: query
+ name: cursor
required: false
schema:
nullable: true
type: string
- style: simple
+ style: form
- explode: false
in: header
- name: if-match
+ name: authorization
required: false
schema:
nullable: true
@@ -2901,15 +2980,22 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ArtifactOut"
+ $ref: "#/components/schemas/VersionListOut"
description: Successful Response
headers:
- ETag:
- description: Current strong entity tag.
+ X-Request-Id:
+ description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
+ headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -2920,8 +3006,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -2939,9 +3025,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2953,8 +3038,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: No restorable artifact exists with this ID.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2962,12 +3047,12 @@ paths:
schema:
type: string
style: simple
- "409":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The original or requested restore path is occupied.
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -2975,44 +3060,34 @@ paths:
schema:
type: string
style: simple
- "412":
+ "429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: A request precondition did not match.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
+ Retry-After:
+ description: Seconds until the caller should retry.
explode: false
schema:
- type: string
+ minimum: 0
+ type: integer
style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "429":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -3028,50 +3103,84 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Restore a soft-deleted artifact
- /v0/artifacts/{art_id}/versions:
- get:
- description: Returns versions in descending `version_number` order. Cursor pagination
- via `?cursor=`; `next_cursor` is non-null when the page is full and
- more older versions may exist.
- operationId: list_artifact_versions_v0_artifacts__art_id__versions_get
+ - bearerAuth: []
+ summary: List Versions
+ tags:
+ - versions
+ post:
+ description: |-
+ Append one immutable version and rotate the artifact head.
+
+ Multipart only (415 for a JSON body). Parts: content (bytes), content_type, sha256. content is required; name, parent_id, and metadata are not accepted here.
+ operationId: versions_append
parameters:
- explode: false
in: path
- name: art_id
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
+ - explode: false
+ in: path
+ name: artifact_id
required: true
schema:
- title: Art Id
+ title: Artifact Id
type: string
style: simple
- - explode: true
- in: query
- name: cursor
- required: false
+ - explode: false
+ in: header
+ name: Idempotency-Key
+ required: true
schema:
nullable: true
type: string
- style: form
- - explode: true
- in: query
- name: limit
+ style: simple
+ - explode: false
+ in: header
+ name: If-Match
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
required: false
schema:
- default: 50
- maximum: 100
- minimum: 1
- title: Limit
- type: integer
- style: form
+ nullable: true
+ type: string
+ style: simple
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ $ref: "#/components/schemas/versions_append_request"
+ required: true
responses:
- "200":
+ "201":
content:
application/json:
schema:
- $ref: "#/components/schemas/VersionPage"
+ $ref: "#/components/schemas/VersionCreatedOut"
description: Successful Response
headers:
+ ETag:
+ description: Current strong entity tag.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ Location:
+ description: Canonical URL of the created resource.
+ explode: false
+ schema:
+ format: uri-reference
+ type: string
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -3082,8 +3191,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The pagination cursor is invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -3095,8 +3204,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -3114,9 +3223,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -3128,78 +3236,21 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The artifact does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- security:
- - BearerAuth: []
- summary: "List versions of an artifact, newest first"
- /v0/artifacts/{art_id}/versions/{version_number}:
- get:
- operationId: get_artifact_version_v0_artifacts__art_id__versions__version_number__get
- parameters:
- - explode: false
- in: path
- name: art_id
- required: true
- schema:
- title: Art Id
- type: string
- style: simple
- - explode: false
- in: path
- name: version_number
- required: true
- schema:
- title: Version Number
- type: integer
- style: simple
- responses:
- "200":
+ "409":
content:
application/json:
schema:
- $ref: "#/components/schemas/VersionOut"
- description: Successful Response
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "The mutation conflicts with current state (name/path, lifecycle)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -3207,15 +3258,15 @@ paths:
schema:
type: string
style: simple
- "401":
+ "412":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match the resource's current revision.
headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
+ ETag:
+ description: Current strong entity tag.
explode: false
schema:
type: string
@@ -3226,13 +3277,12 @@ paths:
schema:
type: string
style: simple
- "403":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -3240,12 +3290,12 @@ paths:
schema:
type: string
style: simple
- "404":
+ "428":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The artifact or version does not exist in this drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -3253,38 +3303,34 @@ paths:
schema:
type: string
style: simple
- "410":
+ "429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The requested version was pruned by retention.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
- X-Request-Id:
- description: Request correlation identifier.
+ Retry-After:
+ description: Seconds until the caller should retry.
explode: false
schema:
- type: string
+ minimum: 0
+ type: integer
style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "429":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -3300,36 +3346,96 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Metadata for a specific version of an artifact
- /v0/artifacts/{art_id}/versions/{version_number}/download:
+ - bearerAuth: []
+ summary: Append Version
+ tags:
+ - versions
+ /v0/drives/{drive_id}/artifacts/{artifact_id}/versions/{version_id}:
get:
- operationId: download_artifact_version_v0_artifacts__art_id__versions__version_number__download_get
+ description: Read one immutable version.
+ operationId: versions_read
parameters:
- explode: false
in: path
- name: art_id
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
+ - explode: false
+ in: path
+ name: artifact_id
required: true
schema:
- title: Art Id
+ title: Artifact Id
type: string
style: simple
- explode: false
in: path
- name: version_number
+ name: version_id
required: true
schema:
- title: Version Number
- type: integer
+ title: Version Id
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: If-None-Match
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
+ required: false
+ schema:
+ nullable: true
+ type: string
style: simple
responses:
"200":
content:
- application/octet-stream:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/VersionOut"
+ description: Successful Response
+ headers:
+ ETag:
+ description: Current strong entity tag.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "304":
+ description: If-None-Match matched the current ETag.
+ headers:
+ ETag:
+ description: Current strong entity tag.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
schema:
- format: binary
type: string
- description: Raw artifact bytes.
+ style: simple
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -3341,8 +3447,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -3360,9 +3466,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -3374,8 +3479,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The artifact or version does not exist.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -3383,12 +3488,12 @@ paths:
schema:
type: string
style: simple
- "410":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The requested version has been pruned.
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -3396,25 +3501,34 @@ paths:
schema:
type: string
style: simple
- "422":
+ "429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "429":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -3430,39 +3544,108 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Stream bytes for a specific version (machine surface)
- /v0/artifacts/{art_id}/versions/{version_number}/download-url:
+ - bearerAuth: []
+ summary: Read Version
+ tags:
+ - versions
+ /v0/drives/{drive_id}/artifacts/{artifact_id}/versions/{version_id}/content:
get:
- description: "Same as `/{art_id}/download-url` but for a specific version's\
- \ bytes (`direct:true` signed GCS URL when large + signing available, else\
- \ the proxy `/versions/{n}/download` URL). large-download-design.md §5.1."
- operationId: download_url_version_v0_artifacts__art_id__versions__version_number__download_url_get
+ description: Download one version's immutable bytes — stream or 307.
+ operationId: versions_content
parameters:
- explode: false
in: path
- name: art_id
+ name: drive_id
required: true
schema:
- title: Art Id
+ title: Drive Id
type: string
style: simple
- explode: false
in: path
- name: version_number
+ name: artifact_id
required: true
schema:
- title: Version Number
- type: integer
+ title: Artifact Id
+ type: string
style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/DownloadUrlOut"
- description: Successful Response
- headers:
+ - explode: false
+ in: path
+ name: version_id
+ required: true
+ schema:
+ title: Version Id
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: If-None-Match
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/octet-stream:
+ schema:
+ format: binary
+ type: string
+ description: Raw artifact bytes (streamed).
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "304":
+ description: If-None-Match matched the current ETag.
+ headers:
+ ETag:
+ description: Current strong entity tag.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "307":
+ description: Redirect to a short-lived signed URL.
+ headers:
+ Location:
+ description: Redirect target.
+ explode: false
+ schema:
+ format: uri-reference
+ type: string
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
+ headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -3473,8 +3656,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -3492,9 +3675,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -3506,8 +3688,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The artifact or version does not exist in this drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -3515,12 +3697,12 @@ paths:
schema:
type: string
style: simple
- "410":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The requested version was pruned by retention.
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -3528,25 +3710,34 @@ paths:
schema:
type: string
style: simple
- "422":
+ "429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "429":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -3562,58 +3753,69 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Signed direct-from-GCS download URL for a specific version
- /v0/artifacts/{art_id}/versions/{version_number}/restore:
+ - bearerAuth: []
+ summary: Read Version Content
+ tags:
+ - versions
+ /v0/drives/{drive_id}/artifacts/{artifact_id}/versions/{version_id}/restore:
post:
- description: |-
- Roll the artifact forward to the content of version `version_number` by creating a **new head version** with identical bytes. History is preserved — this never rewrites or deletes past versions. The prior version's content-addressed blob is reused, so no bytes are re-uploaded. A change summary of `Restored version N` is recorded on the new version; `X-AgentDrive-Actor` attributes it.
-
- Restoring a version whose content already matches the current head (including the head itself) is a **no-op**: it returns the current artifact unchanged, with no new version created.
-
- Honors `If-Match` on the current head (roll forward only if the head is unchanged → 412 PRECONDITION_FAILED).
-
- Errors: `404 ARTIFACT_NOT_FOUND`, `404 VERSION_NOT_FOUND`, and `410 VERSION_PRUNED` when the version existed but its bytes were retained out of existence.
- operationId: restore_artifact_version_v0_artifacts__art_id__versions__version_number__restore_post
+ description: Restore a historical version as a NEW head version (no byte copy).
+ operationId: versions_restore
parameters:
- explode: false
in: path
- name: art_id
+ name: drive_id
required: true
schema:
- title: Art Id
+ title: Drive Id
type: string
style: simple
- explode: false
in: path
- name: version_number
+ name: artifact_id
required: true
schema:
- title: Version Number
- type: integer
+ title: Artifact Id
+ type: string
+ style: simple
+ - explode: false
+ in: path
+ name: version_id
+ required: true
+ schema:
+ title: Version Id
+ type: string
style: simple
- explode: false
in: header
- name: x-agentdrive-actor
- required: false
+ name: Idempotency-Key
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: If-Match
+ required: true
schema:
nullable: true
type: string
style: simple
- explode: false
in: header
- name: if-match
+ name: authorization
required: false
schema:
nullable: true
type: string
style: simple
responses:
- "200":
+ "201":
content:
application/json:
schema:
- $ref: "#/components/schemas/ArtifactOut"
+ $ref: "#/components/schemas/VersionCreatedOut"
description: Successful Response
headers:
ETag:
@@ -3622,6 +3824,26 @@ paths:
schema:
type: string
style: simple
+ Location:
+ description: Canonical URL of the created resource.
+ explode: false
+ schema:
+ format: uri-reference
+ type: string
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
+ headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -3632,8 +3854,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -3651,9 +3873,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -3665,8 +3886,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The artifact or version does not exist in this drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -3674,12 +3895,12 @@ paths:
schema:
type: string
style: simple
- "410":
+ "409":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The requested version was pruned by retention.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "The mutation conflicts with current state (name/path, lifecycle)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -3691,8 +3912,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: A request precondition did not match.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match the resource's current revision.
headers:
ETag:
description: Current strong entity tag.
@@ -3719,12 +3940,47 @@ paths:
schema:
type: string
style: simple
+ "428":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
"429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
+ headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "503":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -3740,36 +3996,53 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Restore a previous version as a new head version
- /v0/artifacts/{path}:
- delete:
- description: |-
- Soft-delete the artifact at the given path.
-
- A delete WITHOUT an `If-Match` precondition is last-writer-wins and will
- silently remove a concurrently-modified artifact.
- operationId: delete_artifact_v0_artifacts__path__delete
+ - bearerAuth: []
+ summary: Restore Version
+ tags:
+ - versions
+ /v0/drives/{drive_id}/changes:
+ get:
+ description: Pull one page of changes. Exactly one of ``start`` or ``cursor``.
+ operationId: changes_list
parameters:
- explode: false
in: path
- name: path
+ name: drive_id
required: true
schema:
- title: Path
+ title: Drive Id
type: string
style: simple
- - explode: false
- in: header
- name: if-match
+ - explode: true
+ in: query
+ name: limit
+ required: false
+ schema:
+ nullable: true
+ type: integer
+ style: form
+ - explode: true
+ in: query
+ name: start
required: false
schema:
+ enum:
+ - now
+ - beginning
nullable: true
type: string
- style: simple
+ style: form
+ - explode: true
+ in: query
+ name: cursor
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: form
- explode: false
in: header
- name: x-agentdrive-actor
+ name: authorization
required: false
schema:
nullable: true
@@ -3780,7 +4053,7 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ArtifactDeleteOut"
+ $ref: "#/components/schemas/ChangePageOut"
description: Successful Response
headers:
X-Request-Id:
@@ -3789,12 +4062,27 @@ paths:
schema:
type: string
style: simple
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_list_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument).\
+ \ Pass exactly one of start or cursor (INVALID_REQUEST); a cursor not\
+ \ issued for this drive fails with INVALID_CURSOR."
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
"401":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -3812,9 +4100,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -3826,8 +4113,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: No such live artifact exists in this drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -3835,12 +4122,14 @@ paths:
schema:
type: string
style: simple
- "412":
+ "410":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: A request precondition did not match.
+ $ref: "#/components/schemas/drives_list_400_response"
+ description: "The change cursor is older than retained history. Recover\
+ \ with a full sync: capture start=now, enumerate current resources, then\
+ \ replay from the captured cursor."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -3865,8 +4154,30 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
+ headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "503":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -3882,127 +4193,73 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Delete Artifact
- put:
+ - bearerAuth: []
+ summary: List Changes
+ tags:
+ - changes
+ /v0/drives/{drive_id}/folders:
+ get:
description: |-
- Upload an artifact at the given path. The path is treated as the artifact's location in the drive — re-uploading the same path overwrites in place (idempotent). Returns 201 when the artifact is created (no prior live artifact at the path), 200 on overwrite — mirroring `PUT /v0/folders/{path}`.
+ List the drive's folders, newest-first (keyset paginated).
- **Limits:** request body must not exceed **50 MB**. Path must be non-empty, ≤256 chars, only `[A-Za-z0-9_./-]`, no `..` segments, no leading/trailing slash. Per-token write rate limit: 100/hour.
-
- **Optional headers.** Each preserves the existing artifact's value when omitted on an overwrite, and takes the create-default on a new path; send the header to replace it:
- - `X-AgentDrive-Labels`: comma-separated labels (e.g. `draft,report`); an empty value clears them. Each: lowercase `[a-z0-9_-]+`, ≤64 chars; ≤16 labels per artifact.
- - `X-AgentDrive-Metadata`: JSON object of agent-attached fields.
- - `X-AgentDrive-Source`: JSON `{"refs": [...]}` source provenance (present, including `{"refs": []}`, replaces).
- - `X-AgentDrive-Actor`: caller-supplied actor name (≤64 chars) for event-log attribution. Untrusted; never used for authz.
-
- **Preconditions.** `If-Match: ".."` makes the write conditional on the current composite ETag (→ 412 PRECONDITION_FAILED). `If-None-Match: *` is create-only: it succeeds only if no live artifact occupies the path (→ 412 CREATE_CONFLICT if one does). The two are mutually exclusive (→ 400 BAD_PRECONDITION).
-
- **Integrity (optional).** `X-AgentDrive-Checksum: :` (`sha256:` or `crc32c:`) or the standard `Content-MD5` (base64 MD5) is verified against the received bytes before they land (→ 400 CHECKSUM_MISMATCH on mismatch); no artifact is created on failure.
- operationId: put_artifact_v0_artifacts__path__put
+ ``lifecycle`` (active|deleted|all) exposes soft-deleted folders so the
+ post-delete revision can be read as the If-Match source for a restore.
+ ``parent_id`` / ``name`` are exact-match filters. Unknown query parameters
+ are rejected (§6.3).
+ operationId: folders_list
parameters:
- explode: false
in: path
- name: path
+ name: drive_id
required: true
schema:
- title: Path
+ title: Drive Id
type: string
style: simple
- - explode: false
- in: header
- name: content-type
+ - explode: true
+ in: query
+ name: lifecycle
required: false
schema:
- default: application/octet-stream
- title: Content-Type
+ default: active
+ title: Lifecycle
type: string
- style: simple
- - explode: false
- in: header
- name: x-agentdrive-labels
+ style: form
+ - explode: true
+ in: query
+ name: limit
required: false
schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
nullable: true
- type: string
- style: simple
- - explode: false
- in: header
- name: x-agentdrive-metadata
+ type: integer
+ style: form
+ - explode: true
+ in: query
+ name: cursor
required: false
schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
nullable: true
type: string
- style: simple
- - explode: false
- in: header
- name: x-agentdrive-source
+ style: form
+ - explode: true
+ in: query
+ name: parent_id
required: false
schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
nullable: true
type: string
- style: simple
- - explode: false
- in: header
- name: x-agentdrive-actor
- required: false
- schema:
- nullable: true
- type: string
- style: simple
- - explode: false
- in: header
- name: x-agentdrive-change-summary
- required: false
- schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- style: simple
- - explode: false
- in: header
- name: x-agentdrive-checksum
- required: false
- schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- style: simple
- - explode: false
- in: header
- name: content-md5
- required: false
- schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- style: simple
- - explode: false
- in: header
- name: if-match
+ style: form
+ - explode: true
+ in: query
+ name: name
required: false
schema:
nullable: true
type: string
- style: simple
+ style: form
- explode: false
in: header
- name: if-none-match
+ name: authorization
required: false
schema:
nullable: true
@@ -4013,41 +4270,9 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ArtifactOut"
+ $ref: "#/components/schemas/FolderListOut"
description: Successful Response
headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "201":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ArtifactOut"
- description: Artifact created at a previously unused path.
- headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- Location:
- description: Canonical URL of the created resource.
- explode: false
- schema:
- format: uri-reference
- type: string
- style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -4058,8 +4283,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "The path, metadata, source, or conditional headers are invalid."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -4071,8 +4296,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -4090,9 +4315,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -4100,13 +4324,12 @@ paths:
schema:
type: string
style: simple
- "409":
+ "404":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The path is occupied and overwrite semantics do not permit
- replacement.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -4114,57 +4337,47 @@ paths:
schema:
type: string
style: simple
- "412":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: A request precondition did not match.
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "413":
+ "429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The artifact or resulting drive storage exceeds its limit.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
- X-Request-Id:
- description: Request correlation identifier.
+ Retry-After:
+ description: Seconds until the caller should retry.
explode: false
schema:
- type: string
+ minimum: 0
+ type: integer
style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "429":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -4180,50 +4393,65 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Upload (or overwrite) an artifact
- /v0/artifacts/{path}/download:
- get:
- description: "Same bytes-only machine surface as `/{art_id}/download` but resolves\
- \ the artifact by path, so callers don't have to resolve path→id first. Applies\
- \ the identical CSP `sandbox` + `nosniff` posture (never serves HTML inline\
- \ as active content)."
- operationId: download_artifact_by_path_v0_artifacts__path__download_get
+ - bearerAuth: []
+ summary: List Folders
+ tags:
+ - folders
+ post:
+ description: |-
+ Create one folder under `parent_id`; idempotent under the
+ ``Idempotency-Key``.
+ operationId: folders_create
parameters:
- explode: false
in: path
- name: path
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: Idempotency-Key
required: true
schema:
- title: Path
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
+ required: false
+ schema:
+ nullable: true
type: string
style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/FolderCreateIn"
+ required: true
responses:
- "200":
+ "201":
content:
- application/octet-stream:
+ application/json:
schema:
- format: binary
- type: string
- description: Raw artifact bytes.
+ $ref: "#/components/schemas/FolderOut"
+ description: Successful Response
headers:
- X-Request-Id:
- description: Request correlation identifier.
+ ETag:
+ description: Current strong entity tag.
explode: false
schema:
type: string
style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
+ Location:
+ description: Canonical URL of the created resource.
explode: false
schema:
+ format: uri-reference
type: string
style: simple
X-Request-Id:
@@ -4232,13 +4460,12 @@ paths:
schema:
type: string
style: simple
- "403":
+ "400":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -4246,25 +4473,31 @@ paths:
schema:
type: string
style: simple
- "404":
+ "401":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: No live artifact exists at this path.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
+ WWW-Authenticate:
+ description: RFC 6750 bearer authentication challenge.
+ explode: false
+ schema:
+ type: string
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "422":
+ "403":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -4272,51 +4505,26 @@ paths:
schema:
type: string
style: simple
- "429":
+ "404":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The parent or target resource was not found or is not visible.
headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- security:
- - BearerAuth: []
- summary: Stream the artifact bytes by path (never rendered HTML)
- /v0/artifacts/{path}/download-url:
- get:
- description: "Same as `/{art_id}/download-url` but resolves the artifact by\
- \ path. The returned proxy URL (when `direct:false`) still points at the by-id\
- \ `/download` endpoint. large-download-design.md §5.1."
- operationId: download_url_by_path_v0_artifacts__path__download_url_get
- parameters:
- - explode: false
- in: path
- name: path
- required: true
- schema:
- title: Path
- type: string
- style: simple
- responses:
- "200":
+ "409":
content:
application/json:
schema:
- $ref: "#/components/schemas/DownloadUrlOut"
- description: Successful Response
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "A sibling already occupies the name/path, or the idempotency\
+ \ key was reused for a different request."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -4324,15 +4532,15 @@ paths:
schema:
type: string
style: simple
- "401":
+ "412":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match (copy/restore preconditions).
headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
+ ETag:
+ description: Current strong entity tag.
explode: false
schema:
type: string
@@ -4343,13 +4551,12 @@ paths:
schema:
type: string
style: simple
- "403":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -4357,12 +4564,12 @@ paths:
schema:
type: string
style: simple
- "404":
+ "428":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The artifact does not exist in this drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -4370,25 +4577,34 @@ paths:
schema:
type: string
style: simple
- "422":
+ "429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "429":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -4404,18 +4620,67 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Signed direct-from-GCS download URL by path
- /v0/artifacts/{path}/meta:
- get:
- operationId: get_artifact_meta_v0_artifacts__path__meta_get
+ - bearerAuth: []
+ summary: Create Folder
+ tags:
+ - folders
+ /v0/drives/{drive_id}/folders/{folder_id}:
+ delete:
+ description: |-
+ Soft-delete a folder and its full live subtree (folders + artifacts) in
+ one transaction. A non-empty subtree requires ``recursive=true`` (409
+ FOLDER_RECURSIVE_REQUIRED otherwise). Returns the deleted root
+ representation plus exact cascade counts and the post-delete
+ revision/ETag for a restore.
+ operationId: folders_delete
parameters:
- explode: false
in: path
- name: path
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
+ - explode: false
+ in: path
+ name: folder_id
+ required: true
+ schema:
+ title: Folder Id
+ type: string
+ style: simple
+ - explode: true
+ in: query
+ name: recursive
+ required: false
+ schema:
+ default: false
+ title: Recursive
+ type: boolean
+ style: form
+ - explode: false
+ in: header
+ name: Idempotency-Key
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: If-Match
required: true
schema:
- title: Path
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
+ required: false
+ schema:
+ nullable: true
type: string
style: simple
responses:
@@ -4423,7 +4688,7 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ArtifactOut"
+ $ref: "#/components/schemas/FolderCascadeOut"
description: Successful Response
headers:
ETag:
@@ -4438,17 +4703,15 @@ paths:
schema:
type: string
style: simple
- "304":
- description: The current entity tag or modification date matched.
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
+ X-Request-Id:
+ description: Request correlation identifier.
explode: false
schema:
type: string
@@ -4457,8 +4720,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -4476,9 +4739,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -4490,8 +4752,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The artifact does not exist in this drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -4499,12 +4761,12 @@ paths:
schema:
type: string
style: simple
- "422":
+ "409":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "The mutation conflicts with current state (name/path, lifecycle)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -4512,62 +4774,31 @@ paths:
schema:
type: string
style: simple
- "429":
+ "412":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match the resource's current revision.
headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
+ ETag:
+ description: Current strong entity tag.
explode: false
schema:
type: string
style: simple
- security:
- - BearerAuth: []
- summary: Get Artifact Meta
- /v0/auth/extension/exchange:
- post:
- description: Single-use opaque ticket → JWT pair. Called once by an extension's
- auth-complete.html after the OAuth handoff lands. Returns a 15-minute `access_token`
- (scope=extension) and a 90-day `identity_assertion` the extension stores and
- refreshes via POST /oauth2/token.
- operationId: extension_exchange_v0_auth_extension_exchange_post
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ExtensionExchangeRequest"
- required: true
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ExtensionExchangeResponse"
- description: Successful Response
- headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "400":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The extension ID or ticket is invalid.
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -4575,12 +4806,12 @@ paths:
schema:
type: string
style: simple
- "422":
+ "428":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -4592,14 +4823,14 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Too many extension sign-in attempts.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
Retry-After:
description: Seconds until the caller should retry.
explode: false
schema:
- minimum: 0.0
+ minimum: 0
type: integer
style: simple
X-Request-Id:
@@ -4612,49 +4843,108 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Extension authentication or token signing is unavailable.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- summary: Redeem an extension OAuth ticket for a JWT pair
+ security:
+ - bearerAuth: []
+ summary: Delete Folder
tags:
- - agent-auth
- /v0/drives:
+ - folders
get:
description: |-
- Returns drive **metadata** (workspaces-design §4.2): an **admin** sees the whole active workspace's drive inventory (every owner); a **member** sees only the drives they own. Metadata only — owner, size, timestamps — never a raw API key, and never an authorization to read a drive's contents. A `read`-scope token may call this; mutations require `full`.
-
- **Cursor pagination:** when more results exist, the response carries `next_cursor`. Pass it back as `?cursor=` to fetch the next page; `null` means the listing is complete. `limit` is clamped to [1, 100] (default 50), never rejected.
- operationId: list_drives_route_v0_drives_get
+ Read one active folder. ETag = quoted revision; matching
+ ``If-None-Match`` → 304. Deleted and cross-workspace folders are 404.
+ operationId: folders_read
parameters:
- - explode: true
- in: query
- name: cursor
+ - explode: false
+ in: path
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
+ - explode: false
+ in: path
+ name: folder_id
+ required: true
+ schema:
+ title: Folder Id
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: If-None-Match
required: false
schema:
nullable: true
type: string
- style: form
- - explode: true
- in: query
- name: limit
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
required: false
schema:
nullable: true
- type: integer
- style: form
+ type: string
+ style: simple
responses:
"200":
content:
application/json:
schema:
- $ref: "#/components/schemas/DriveList"
+ $ref: "#/components/schemas/FolderOut"
description: Successful Response
+ headers:
+ ETag:
+ description: Current strong entity tag.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "304":
+ description: If-None-Match matched the current ETag.
+ headers:
+ ETag:
+ description: Current strong entity tag.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -4666,8 +4956,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -4685,9 +4975,21 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -4712,8 +5014,30 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
+ headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "503":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -4729,39 +5053,90 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: List the drives you can see
+ - bearerAuth: []
+ summary: Read Folder
tags:
- - drives
- post:
+ - folders
+ patch:
description: |-
- Create a named drive. Any **member** of the space may create one; the creator becomes its **owner**. Requires a `full`-scope user token. The response carries the drive's `ad_live_` API key **once** (`api_key`) — store it now, it is never returned again (mint more keys via `POST /v0/drives/{id}/keys`).
-
- The target workspace is the user's active organization (`users.default_org`); cross-workspace creation names no other workspace in v0.
-
- A space may hold up to its plan's drive limit (workspaces-v2 §4.6; seat-aware for shared drives). A caller at the limit is blocked with `403 DRIVE_LIMIT_REACHED`; the limit is tier-governed, not a hard cap.
- operationId: create_drive_route_v0_drives_post
+ Rename / move / update a folder's metadata or inheritance. Requires
+ ``Idempotency-Key`` and ``If-Match`` (428 absent, 412 stale); bumps the
+ revision.
+ operationId: folders_update
+ parameters:
+ - explode: false
+ in: path
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
+ - explode: false
+ in: path
+ name: folder_id
+ required: true
+ schema:
+ title: Folder Id
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: Idempotency-Key
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: If-Match
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: simple
requestBody:
content:
application/json:
schema:
- $ref: "#/components/schemas/DriveCreateIn"
+ $ref: "#/components/schemas/FolderUpdateIn"
required: true
responses:
- "201":
+ "200":
content:
application/json:
schema:
- $ref: "#/components/schemas/DriveCreateOut"
+ $ref: "#/components/schemas/FolderOut"
description: Successful Response
headers:
- Location:
- description: Canonical URL of the created resource.
+ ETag:
+ description: Current strong entity tag.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
explode: false
schema:
- format: uri-reference
type: string
style: simple
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
+ headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -4772,8 +5147,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -4791,9 +5166,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -4801,12 +5175,12 @@ paths:
schema:
type: string
style: simple
- "422":
+ "404":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -4814,51 +5188,25 @@ paths:
schema:
type: string
style: simple
- "429":
+ "409":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "The mutation conflicts with current state (name/path, lifecycle)."
headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- security:
- - BearerAuth: []
- summary: Create a drive in your active space
- tags:
- - drives
- /v0/drives/me:
- get:
- description: |-
- Drive overview for the authenticated bearer token.
-
- Wire-protocol preservation (WorkOS integration §6): the `email` field
- is preserved in the response shape; its meaning is now "the drive's
- owner's email" (via `drives.owner_user_id` → `users.email`, joined
- in `auth.resolve_drive`). For solo signups this equals v0 behavior —
- the email the user signed up with. Returns null if the owner has
- been hard-purged. `organization_id` is a new additive field, as are
- `metageneration` / `etag` (also emitted as the `ETag` header).
- operationId: me_v0_drives_me_get
- responses:
- "200":
+ "412":
content:
application/json:
schema:
- $ref: "#/components/schemas/DriveReadOut"
- description: Successful Response
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match the resource's current revision.
headers:
ETag:
description: Current strong entity tag.
@@ -4872,32 +5220,25 @@ paths:
schema:
type: string
style: simple
- "401":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "403":
+ "428":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -4905,31 +5246,40 @@ paths:
schema:
type: string
style: simple
- "422":
+ "429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "429":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
explode: false
schema:
- minimum: 0.0
+ minimum: 0
type: integer
style: simple
X-Request-Id:
@@ -4939,110 +5289,21 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Me
- /v0/drives/me/usage:
- get:
- description: "Unified view of every metered dimension: storage (snapshot), writes\
- \ (current hour), indexing ops + retrieval queries (current calendar month\
- \ UTC). Each row carries `used` and `limit`; `limit: 0` means unlimited (the\
- \ v0 free-tier default for the two monthly counters). Reads are de-throttled\
- \ — there is no hourly read budget; the monthly read count appears under `ops_this_month.reads`."
- operationId: me_usage_v0_drives_me_usage_get
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/DriveUsageOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0.0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Current-period usage + caps for the authenticated drive
- /v0/drives/{drive_id}:
- delete:
+ - bearerAuth: []
+ summary: Update Folder
+ tags:
+ - folders
+ /v0/drives/{drive_id}/folders/{folder_id}/copy:
+ post:
description: |-
- Mark the drive for cleanup. All tenant data (artifacts, versions, wiki, embeddings, events) is hidden via the `live_*` views and CASCADE-removed by the GC cleanup cron at `purge_at`. Restore via `POST /v0/drives/{id}/restore` while the row is still in trash. The path-param `drive_id` MUST match the authenticated drive.
-
- Accepts either an `ad_live_` per-drive key (deletes that key's drive) or an `ad_user_` user token selecting an owned drive (workspaces-design §5.3); a `read`-scope user token is rejected with 403 `INSUFFICIENT_SCOPE`. **Guard (§8):** a workspace must retain at least one live drive — deleting the workspace's last live drive returns 409 `LAST_DRIVE`.
+ Copy a folder's subtree within the same drive.
- **Explicit confirmation required:** pass `?confirm=DELETE` or the request is rejected with 400 `CONFIRM_REQUIRED`. Tenant-level deletion is the largest-blast-radius operation on the API; the static token forces a deliberate act (soft-delete still gives a restore window on top).
-
- **Optimistic concurrency:** send `If-Match` with the drive's composite ETag (`".0."`, from a drive read) to make the delete conditional — a stale token returns 412 PRECONDITION_FAILED. A delete WITHOUT an `If-Match` precondition is last-writer-wins and will silently trash a concurrently-modified drive.
- operationId: delete_drive_route_v0_drives__drive_id__delete
+ Cross-drive copy is out of v0 scope and rejected (400 INVALID_ARGUMENT).
+ ``destination_drive_id`` must equal the source drive when present.
+ Materializes the subtree synchronously → 201 + the copied folder.
+ ``If-Match`` is optional; when present it is validated against the source
+ revision (412 stale).
+ operationId: folders_copy
parameters:
- explode: false
in: path
@@ -5052,20 +5313,25 @@ paths:
title: Drive Id
type: string
style: simple
- - explode: true
- in: query
- name: confirm
- required: false
+ - explode: false
+ in: path
+ name: folder_id
+ required: true
+ schema:
+ title: Folder Id
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: Idempotency-Key
+ required: true
schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
nullable: true
type: string
- style: form
+ style: simple
- explode: false
in: header
- name: x-agentdrive-actor
+ name: If-Match
required: false
schema:
nullable: true
@@ -5073,18 +5339,24 @@ paths:
style: simple
- explode: false
in: header
- name: if-match
+ name: authorization
required: false
schema:
nullable: true
type: string
style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/FolderCopyIn"
+ required: true
responses:
- "200":
+ "201":
content:
application/json:
schema:
- $ref: "#/components/schemas/DriveDeleteOut"
+ $ref: "#/components/schemas/FolderOut"
description: Successful Response
headers:
ETag:
@@ -5093,6 +5365,13 @@ paths:
schema:
type: string
style: simple
+ Location:
+ description: Canonical URL of the created resource.
+ explode: false
+ schema:
+ format: uri-reference
+ type: string
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -5103,8 +5382,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The explicit DELETE confirmation is missing.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5116,8 +5395,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -5135,9 +5414,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5149,8 +5427,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: No such drive exists for this principal.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The parent or target resource was not found or is not visible.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5162,8 +5440,9 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The workspace must retain at least one live drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "A sibling already occupies the name/path, or the idempotency\
+ \ key was reused for a different request."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5175,8 +5454,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: A request precondition did not match.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match (copy/restore preconditions).
headers:
ETag:
description: Current strong entity tag.
@@ -5203,12 +5482,47 @@ paths:
schema:
type: string
style: simple
+ "428":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
"429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
+ headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "503":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -5224,14 +5538,17 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Soft-delete a drive
- get:
- description: Identical to `GET /v0/drives/me` — the by-id singleton so `Location`-style
- URLs and scripted clients can address the drive canonically. The path-param
- `drive_id` MUST match the authenticated drive (mirrors the delete/trash routes'
- no-leak 404). Emits the drive's composite `ETag` header (`".0."`).
- operationId: get_drive_route_v0_drives__drive_id__get
+ - bearerAuth: []
+ summary: Copy Folder
+ tags:
+ - folders
+ /v0/drives/{drive_id}/folders/{folder_id}/restore:
+ post:
+ description: |-
+ Restore a soft-deleted folder and its deleted subtree atomically.
+ If-Match must carry the post-delete revision; restoring an already-active
+ folder is 409 CONFLICT.
+ operationId: folders_restore
parameters:
- explode: false
in: path
@@ -5241,12 +5558,44 @@ paths:
title: Drive Id
type: string
style: simple
+ - explode: false
+ in: path
+ name: folder_id
+ required: true
+ schema:
+ title: Folder Id
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: Idempotency-Key
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: If-Match
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: simple
responses:
"200":
content:
application/json:
schema:
- $ref: "#/components/schemas/DriveReadOut"
+ $ref: "#/components/schemas/FolderCascadeOut"
description: Successful Response
headers:
ETag:
@@ -5261,12 +5610,25 @@ paths:
schema:
type: string
style: simple
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
"401":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -5284,9 +5646,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5298,8 +5659,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: No matching authenticated drive exists.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5307,12 +5668,12 @@ paths:
schema:
type: string
style: simple
- "422":
+ "409":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "The mutation conflicts with current state (name/path, lifecycle)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5320,19 +5681,18 @@ paths:
schema:
type: string
style: simple
- "429":
+ "412":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match the resource's current revision.
headers:
- Retry-After:
- description: Seconds until the caller should retry.
+ ETag:
+ description: Current strong entity tag.
explode: false
schema:
- minimum: 0
- type: integer
+ type: string
style: simple
X-Request-Id:
description: Request correlation identifier.
@@ -5340,35 +5700,12 @@ paths:
schema:
type: string
style: simple
- security:
- - BearerAuth: []
- summary: Drive overview by id (same shape as /drives/me)
- patch:
- description: Rename a drive. **Owner only** — a drive id that isn't yours returns
- 404 (no-leak). Requires a `full`-scope user token.
- operationId: rename_drive_route_v0_drives__drive_id__patch
- parameters:
- - explode: false
- in: path
- name: drive_id
- required: true
- schema:
- title: Drive Id
- type: string
- style: simple
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/DriveRenameIn"
- required: true
- responses:
- "200":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/DriveOut"
- description: Successful Response
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5376,12 +5713,12 @@ paths:
schema:
type: string
style: simple
- "400":
+ "428":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The drive update is invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5389,91 +5726,41 @@ paths:
schema:
type: string
style: simple
- "401":
+ "429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
+ Retry-After:
+ description: Seconds until the caller should retry.
explode: false
schema:
- type: string
+ minimum: 0
+ type: integer
style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "404":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: No such drive exists for this principal.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
- X-Request-Id:
- description: Request correlation identifier.
+ Retry-After:
+ description: Seconds until the caller should retry.
explode: false
schema:
- type: string
- style: simple
- "409":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The drive update conflicts with current workspace state.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
+ minimum: 0
+ type: integer
style: simple
X-Request-Id:
description: Request correlation identifier.
@@ -5482,17 +5769,38 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Rename a drive you own
+ - bearerAuth: []
+ summary: Restore Folder
tags:
- - drives
- /v0/drives/{drive_id}/keys:
+ - folders
+ /v0/drives/{drive_id}/grants:
get:
description: |-
- List the `ad_live_` keys for a drive you manage (oldest first, including recently-revoked rows — filter on `revoked_at` for live only). **Manager only** (404 no-leak otherwise). A `read`-scope user token may list (metadata reveals no secret), mirroring `GET /v0/drives`. Metadata only — the raw key is never returned after mint.
+ List explicit grants in the drive, keyset paginated.
+
+ **What you see depends on your role (contract change).** A caller holding
+ ``manager`` on the drive lists EVERY grant in it. Any other caller lists
+ only the grants that name them — their own agent/user rows, ``workspace``
+ grants covering them, and ``public`` grants (which already expose the
+ resource to them anyway). Previously any drive ``viewer`` could page out
+ every principal id, role and expiry in the drive; that was an
+ access-graph disclosure, not a feature.
+
+ The operation is refused (404) only for a caller holding no live grant
+ anywhere in the drive — never for lack of ``manager``, because seeing
+ your own access is not a privilege. That admits folder-scoped
+ principals, who previously 404'd here despite having access to show. A
+ folder ``manager`` still sees only their own rows, not the roster of the
+ subtree they administer; scoping the listing by per-resource
+ administration authority is a follow-up this change does not claim.
- **Cursor pagination:** when more results exist, the response carries `next_cursor`. Pass it back as `?cursor=` to fetch the next page; `null` means the listing is complete. `limit` is clamped to [1, 100] (default 50), never rejected.
- operationId: list_drive_keys_route_v0_drives__drive_id__keys_get
+ ``resource_id`` filters to one resource's grants and REQUIRES
+ ``resource_type`` alongside it — a bare resource id is ambiguous across
+ the three resource kinds, and guessing the kind from the id prefix would
+ make the filter's meaning depend on an id format the contract does not
+ promise to keep. ``resource_type`` on its own remains a valid (and
+ pre-existing) filter.
+ operationId: grants_list
parameters:
- explode: false
in: path
@@ -5504,10 +5812,11 @@ paths:
style: simple
- explode: true
in: query
- name: cursor
+ name: lifecycle
required: false
schema:
- nullable: true
+ default: active
+ title: Lifecycle
type: string
style: form
- explode: true
@@ -5518,12 +5827,52 @@ paths:
nullable: true
type: integer
style: form
+ - explode: true
+ in: query
+ name: cursor
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: form
+ - explode: true
+ in: query
+ name: resource_type
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: form
+ - explode: true
+ in: query
+ name: resource_id
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: form
+ - explode: true
+ in: query
+ name: principal_type
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: form
+ - explode: false
+ in: header
+ name: authorization
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: simple
responses:
"200":
content:
application/json:
schema:
- $ref: "#/components/schemas/DriveApiKeyListOut"
+ $ref: "#/components/schemas/GrantListOut"
description: Successful Response
headers:
X-Request-Id:
@@ -5532,12 +5881,25 @@ paths:
schema:
type: string
style: simple
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
"401":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -5555,9 +5917,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5569,8 +5930,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The drive does not exist for this user.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5595,8 +5956,30 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
+ headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "503":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -5612,16 +5995,13 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: List a drive's API keys
+ - bearerAuth: []
+ summary: List Grants
tags:
- - drives
+ - grants
post:
- description: "Mint a new `ad_live_` key for a drive you manage — a drive may\
- \ hold several (one per agent/integration). A `label` (a name for the key)\
- \ is **required**. **Manager only** (404 no-leak otherwise), `full`-scope\
- \ user token. The raw key is returned **once** — store it now."
- operationId: create_drive_key_route_v0_drives__drive_id__keys_post
+ description: "Grant one principal a role on a drive, folder, or artifact."
+ operationId: grants_create
parameters:
- explode: false
in: path
@@ -5631,20 +6011,49 @@ paths:
title: Drive Id
type: string
style: simple
+ - explode: false
+ in: header
+ name: Idempotency-Key
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: simple
requestBody:
content:
application/json:
schema:
- $ref: "#/components/schemas/DriveApiKeyCreateIn"
+ $ref: "#/components/schemas/GrantCreateIn"
required: true
responses:
- "200":
+ "201":
content:
application/json:
schema:
- $ref: "#/components/schemas/DriveApiKeyCreateOut"
+ $ref: "#/components/schemas/GrantOut"
description: Successful Response
headers:
+ ETag:
+ description: Current strong entity tag.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ Location:
+ description: Canonical URL of the created resource.
+ explode: false
+ schema:
+ format: uri-reference
+ type: string
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -5655,8 +6064,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The key label or scope is invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5668,8 +6077,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -5687,9 +6096,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5701,8 +6109,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The drive does not exist for this user.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The parent or target resource was not found or is not visible.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5710,12 +6118,13 @@ paths:
schema:
type: string
style: simple
- "422":
+ "409":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "A sibling already occupies the name/path, or the idempotency\
+ \ key was reused for a different request."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5723,91 +6132,44 @@ paths:
schema:
type: string
style: simple
- "429":
+ "412":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match (copy/restore preconditions).
headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
+ ETag:
+ description: Current strong entity tag.
explode: false
schema:
type: string
style: simple
- security:
- - BearerAuth: []
- summary: Create a drive API key
- tags:
- - drives
- /v0/drives/{drive_id}/keys/{key_id}/revoke:
- post:
- description: "Revoke one `ad_live_` key of a drive you manage — anything using\
- \ it loses access immediately. **Manager only** (404 no-leak otherwise), `full`-scope\
- \ user token. Idempotent: revoking an unknown/already-revoked key returns\
- \ 204 too (no existence oracle)."
- operationId: revoke_drive_key_route_v0_drives__drive_id__keys__key_id__revoke_post
- parameters:
- - explode: false
- in: path
- name: drive_id
- required: true
- schema:
- title: Drive Id
- type: string
- style: simple
- - explode: false
- in: path
- name: key_id
- required: true
- schema:
- title: Key Id
- type: string
- style: simple
- responses:
- "204":
- description: Successful Response
- headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "401":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "403":
+ "428":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5815,38 +6177,34 @@ paths:
schema:
type: string
style: simple
- "404":
+ "429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The drive or key does not exist for this user.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
- X-Request-Id:
- description: Request correlation identifier.
+ Retry-After:
+ description: Seconds until the caller should retry.
explode: false
schema:
- type: string
+ minimum: 0
+ type: integer
style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "429":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -5862,18 +6220,14 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Revoke a drive API key
+ - bearerAuth: []
+ summary: Create Grant
tags:
- - drives
- /v0/drives/{drive_id}/keys/{key_id}/rotate:
- post:
- description: "Rotate a single `ad_live_` key: revoke `key_id` and mint a replacement\
- \ that inherits its label. **Only that key** is affected — the drive's other\
- \ keys keep working. **Manager only** (404 no-leak otherwise), `full`-scope\
- \ user token. The new key is returned **once** — store it now. A `key_id`\
- \ that isn't a live key of this drive is a 404."
- operationId: rotate_one_key_route_v0_drives__drive_id__keys__key_id__rotate_post
+ - grants
+ /v0/drives/{drive_id}/grants/{grant_id}:
+ delete:
+ description: "Revoke a grant (soft, sets revoked_at) under If-Match."
+ operationId: grants_revoke
parameters:
- explode: false
in: path
@@ -5885,10 +6239,34 @@ paths:
style: simple
- explode: false
in: path
- name: key_id
+ name: grant_id
+ required: true
+ schema:
+ title: Grant Id
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: Idempotency-Key
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: If-Match
required: true
schema:
- title: Key Id
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
+ required: false
+ schema:
+ nullable: true
type: string
style: simple
responses:
@@ -5896,8 +6274,27 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/DriveApiKeyCreateOut"
+ $ref: "#/components/schemas/GrantOut"
description: Successful Response
+ headers:
+ ETag:
+ description: Current strong entity tag.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5909,8 +6306,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -5928,9 +6325,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5942,8 +6338,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The drive or key does not exist for this user.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5951,12 +6347,12 @@ paths:
schema:
type: string
style: simple
- "422":
+ "409":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "The mutation conflicts with current state (name/path, lifecycle)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -5964,19 +6360,18 @@ paths:
schema:
type: string
style: simple
- "429":
+ "412":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match the resource's current revision.
headers:
- Retry-After:
- description: Seconds until the caller should retry.
+ ETag:
+ description: Current strong entity tag.
explode: false
schema:
- minimum: 0
- type: integer
+ type: string
style: simple
X-Request-Id:
description: Request correlation identifier.
@@ -5984,18 +6379,82 @@ paths:
schema:
type: string
style: simple
- security:
- - BearerAuth: []
- summary: Rotate one API key
- tags:
- - drives
- /v0/drives/{drive_id}/restore:
- post:
- description: |-
- Clear `deleted_at` + `purge_at` on a soft-deleted drive. Soft-deleted child artifacts get their retention window rebased to the drive-restore moment (see deletion-design.md §5.2). Available only while the drive is in trash. Returns 404 if the drive is live or already hard-deleted.
-
- **Optimistic concurrency:** send `If-Match` with the trashed drive's composite ETag (`".0."`, e.g. from the delete response's `ETag` header) to make the restore conditional — a stale token returns 412 PRECONDITION_FAILED. A restore WITHOUT an `If-Match` precondition is last-writer-wins.
- operationId: restore_drive_route_v0_drives__drive_id__restore_post
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "428":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
+ headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "503":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
+ headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ security:
+ - bearerAuth: []
+ summary: Revoke Grant
+ tags:
+ - grants
+ get:
+ description: Read one grant in the drive.
+ operationId: grants_read
parameters:
- explode: false
in: path
@@ -6005,9 +6464,17 @@ paths:
title: Drive Id
type: string
style: simple
+ - explode: false
+ in: path
+ name: grant_id
+ required: true
+ schema:
+ title: Grant Id
+ type: string
+ style: simple
- explode: false
in: header
- name: x-agentdrive-actor
+ name: If-None-Match
required: false
schema:
nullable: true
@@ -6015,7 +6482,7 @@ paths:
style: simple
- explode: false
in: header
- name: if-match
+ name: authorization
required: false
schema:
nullable: true
@@ -6026,7 +6493,7 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/DriveRestoreOut"
+ $ref: "#/components/schemas/GrantOut"
description: Successful Response
headers:
ETag:
@@ -6041,15 +6508,11 @@ paths:
schema:
type: string
style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ "304":
+ description: If-None-Match matched the current ETag.
headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
+ ETag:
+ description: Current strong entity tag.
explode: false
schema:
type: string
@@ -6060,13 +6523,12 @@ paths:
schema:
type: string
style: simple
- "403":
+ "400":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -6074,25 +6536,31 @@ paths:
schema:
type: string
style: simple
- "404":
+ "401":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The drive does not exist or is not in trash.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
+ WWW-Authenticate:
+ description: RFC 6750 bearer authentication challenge.
+ explode: false
+ schema:
+ type: string
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "409":
+ "403":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The drive cannot be restored into its current workspace state.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -6100,19 +6568,13 @@ paths:
schema:
type: string
style: simple
- "412":
+ "404":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: If-Match does not match the current drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -6136,8 +6598,30 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
+ headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "503":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -6153,15 +6637,13 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Restore a soft-deleted drive
- /v0/drives/{drive_id}/trash:
- get:
- description: |-
- Returns soft-deleted artifacts on the drive plus the drive's own soft-delete state (if applicable). The path-param `drive_id` MUST match the authenticated drive.
-
- **Compatibility window:** `limit` or `cursor` opts into cursor pagination. Unadorned requests retain the legacy complete result during the migration window. Paginated requests are clamped to 1–100 items (default 50 when only `cursor` is supplied). `items` is canonical; `artifacts` is a deprecated same-value alias.
- operationId: list_trash_route_v0_drives__drive_id__trash_get
+ - bearerAuth: []
+ summary: Read Grant
+ tags:
+ - grants
+ patch:
+ description: Change a grant's role or expiry under If-Match.
+ operationId: grants_update
parameters:
- explode: false
in: path
@@ -6171,30 +6653,58 @@ paths:
title: Drive Id
type: string
style: simple
- - explode: true
- in: query
- name: cursor
- required: false
+ - explode: false
+ in: path
+ name: grant_id
+ required: true
+ schema:
+ title: Grant Id
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: Idempotency-Key
+ required: true
schema:
nullable: true
type: string
- style: form
- - explode: true
- in: query
- name: limit
+ style: simple
+ - explode: false
+ in: header
+ name: If-Match
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
required: false
schema:
nullable: true
- type: integer
- style: form
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/GrantUpdateIn"
+ required: true
responses:
"200":
content:
application/json:
schema:
- $ref: "#/components/schemas/TrashOut"
+ $ref: "#/components/schemas/GrantOut"
description: Successful Response
headers:
+ ETag:
+ description: Current strong entity tag.
+ explode: false
+ schema:
+ type: string
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -6205,8 +6715,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The cursor is malformed (`BAD_CURSOR`).
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -6218,8 +6728,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -6237,9 +6747,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -6251,8 +6760,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: No matching authenticated drive exists.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -6260,12 +6769,12 @@ paths:
schema:
type: string
style: simple
- "422":
+ "409":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "The mutation conflicts with current state (name/path, lifecycle)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -6273,19 +6782,18 @@ paths:
schema:
type: string
style: simple
- "429":
+ "412":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match the resource's current revision.
headers:
- Retry-After:
- description: Seconds until the caller should retry.
+ ETag:
+ description: Current strong entity tag.
explode: false
schema:
- minimum: 0
- type: integer
+ type: string
style: simple
X-Request-Id:
description: Request correlation identifier.
@@ -6293,83 +6801,12 @@ paths:
schema:
type: string
style: simple
- security:
- - BearerAuth: []
- summary: List the authenticated drive's trash
- /v0/events:
- get:
- description: |-
- Returns events newest-first. Filters compose with AND.
-
- **Cursor pagination:** pass the oldest event's `created_at` from the previous page as `before` to fetch the next page back in time. Combine `since` + `before` to bound a window.
- operationId: list_events_route_v0_events_get
- parameters:
- - explode: true
- in: query
- name: art_id
- required: false
- schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- style: form
- - explode: true
- in: query
- name: action
- required: false
- schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- style: form
- - explode: true
- in: query
- name: since
- required: false
- schema:
- format: date-time
- nullable: true
- type: string
- style: form
- - explode: true
- in: query
- name: before
- required: false
- schema:
- format: date-time
- nullable: true
- type: string
- style: form
- - explode: true
- in: query
- name: cursor
- required: false
- schema:
- nullable: true
- type: string
- style: form
- - explode: true
- in: query
- name: limit
- required: false
- schema:
- default: 50
- maximum: 200
- minimum: 1
- title: Limit
- type: integer
- style: form
- responses:
- "200":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/EventPage"
- description: Successful Response
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -6377,12 +6814,12 @@ paths:
schema:
type: string
style: simple
- "400":
+ "428":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The pagination cursor is invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -6390,18 +6827,19 @@ paths:
schema:
type: string
style: simple
- "401":
+ "429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
+ Retry-After:
+ description: Seconds until the caller should retry.
explode: false
schema:
- type: string
+ minimum: 0
+ type: integer
style: simple
X-Request-Id:
description: Request correlation identifier.
@@ -6409,47 +6847,22 @@ paths:
schema:
type: string
style: simple
- "403":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -6457,28 +6870,61 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Read the append-only event log for the authenticated drive
- /v0/feedback:
+ - bearerAuth: []
+ summary: Update Grant
+ tags:
+ - grants
+ /v0/drives/{drive_id}/restore:
post:
description: |-
- File feedback. Body: `{kind, title, body, contact?,
- attachments?: [art_id, ...]}` — attachments are snapshotted from
- this drive's artifacts at submit time.
- operationId: post_feedback_v0_feedback_post
+ Restore a soft-deleted drive. If-Match must carry the post-delete
+ revision; restoring an already-active drive is 409 CONFLICT.
+ operationId: drives_restore
+ parameters:
+ - explode: false
+ in: path
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: Idempotency-Key
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: If-Match
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: simple
responses:
- "201":
+ "200":
content:
application/json:
schema:
- $ref: "#/components/schemas/FeedbackCreateOut"
+ $ref: "#/components/schemas/DriveOut"
description: Successful Response
headers:
- Location:
- description: Canonical URL of the created resource.
+ ETag:
+ description: Current strong entity tag.
explode: false
schema:
- format: uri-reference
type: string
style: simple
X-Request-Id:
@@ -6491,8 +6937,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The feedback body or attachment list is invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -6504,8 +6950,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -6523,9 +6969,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -6537,8 +6982,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: An attached artifact does not exist in this drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -6546,12 +6991,12 @@ paths:
schema:
type: string
style: simple
- "422":
+ "409":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "The mutation conflicts with current state (name/path, lifecycle)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -6559,85 +7004,44 @@ paths:
schema:
type: string
style: simple
- "429":
+ "412":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match the resource's current revision.
headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0.0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
+ ETag:
+ description: Current strong entity tag.
explode: false
schema:
type: string
style: simple
- security:
- - BearerAuth: []
- summary: Post Feedback
- x-stability-level: beta
- /v0/feedback/{fbk_id}:
- get:
- description: |-
- Lifecycle status of feedback THIS drive filed. Foreign tickets
- read as 404 — indistinguishable from absent.
- operationId: get_feedback_status_v0_feedback__fbk_id__get
- parameters:
- - explode: false
- in: path
- name: fbk_id
- required: true
- schema:
- title: Fbk Id
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/FeedbackStatusOut"
- description: Successful Response
- headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "401":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "403":
+ "428":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -6645,38 +7049,34 @@ paths:
schema:
type: string
style: simple
- "404":
+ "429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The feedback ticket does not exist in this drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
- X-Request-Id:
- description: Request correlation identifier.
+ Retry-After:
+ description: Seconds until the caller should retry.
explode: false
schema:
- type: string
+ minimum: 0
+ type: integer
style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "429":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -6692,36 +7092,38 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Get Feedback Status
- x-stability-level: beta
- /v0/find:
+ - bearerAuth: []
+ summary: Restore Drive
+ tags:
+ - drives
+ /v0/drives/{drive_id}/search:
get:
description: |-
- Passage-level chunk RAG over `embed_chunks`. Lexical (`chunk_tsv`, GIN) + semantic (HNSW over `embedding`) are run in parallel and fused via Reciprocal Rank Fusion (k=60). Unlike `/v0/search`, which only sees the first ~16 KB preview of each artifact, `/v0/find` reaches the full file body.
-
- **Modes:**
- - `hybrid` (default) — lexical + semantic, RRF-fused.
- - `lexical` — `chunk_tsv` only. Best for exact tokens, identifiers, code snippets.
- - `semantic` — embedding only. Best for conceptual queries where the surface terms differ from the query phrasing.
-
- **Granularity:** results are passages, not files. A long document with multiple matching regions returns multiple hits with distinct `ord` values; consecutive `ord`s overlap by ~400 tokens. Dedupe by `art_id` if you want one row per file.
-
- **Span citations:** `char_start`/`char_end` for text & code, `page_start`/`page_end` for PDFs, `time_start_ms`/`time_end_ms` for audio & video. Only the modality-relevant pair is populated.
-
- **Filters:** `label`, `file_type`, `prefix`, `modality` (repeatable), `updated_after` / `updated_before` (RFC 3339 timestamps, inclusive bounds on `updated_at`, applied to both legs).
+ Search the drive's live artifacts. ``q`` is required and must be
+ non-empty.
- **Wiki coverage:** `/v0/find` excludes `_wiki/` paths by default and — importantly — does NOT cover them even when the caller passes `prefix=_wiki/...`. Wiki pages are not embedded by the pipeline (they're system-generated output, not user input), so `embed_chunks` has no rows for them and the join returns empty. Use `wiki_search` (or `list`/`grep` with a `_wiki/` prefix) for the wiki layer.
+ ``mode`` selects the retrieval engine: ``lexical``, ``hybrid``, or
+ ``semantic``. This deployment enables ``lexical`` only; requesting a
+ disabled mode fails ``400 SEARCH_MODE_UNAVAILABLE``.
- **Embedding availability:** when `GEMINI_API_KEY` is not configured, `mode=semantic` returns 503; `mode=hybrid` logs a warning and falls back to lexical-only; `mode=lexical` is unaffected.
- operationId: find_v0_find_get
+ Each hit's ``snippet`` is HTML-safe by contract: artifact content is
+ entity-escaped and only the server's own ````/```` highlight
+ pair survives, so a client may render it as HTML.
+ operationId: drive_search
parameters:
+ - explode: false
+ in: path
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
- explode: true
in: query
name: q
required: true
schema:
- maxLength: 500
minLength: 1
title: Q
type: string
@@ -6731,28 +7133,25 @@ paths:
name: mode
required: false
schema:
- default: hybrid
+ default: lexical
enum:
- - hybrid
- lexical
+ - hybrid
- semantic
title: Mode
type: string
style: form
- explode: true
in: query
- name: label
+ name: limit
required: false
schema:
- items:
- type: string
- title: Label
- type: array
- default: null
+ nullable: true
+ type: integer
style: form
- explode: true
in: query
- name: file_type
+ name: cursor
required: false
schema:
nullable: true
@@ -6760,42 +7159,31 @@ paths:
style: form
- explode: true
in: query
- name: prefix
+ name: parent_id
required: false
schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
nullable: true
type: string
style: form
- explode: true
in: query
- name: modality
+ name: content_type
required: false
schema:
- items:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- title: Modality
- type: array
- default: null
+ nullable: true
+ type: string
style: form
- explode: true
in: query
- name: updated_after
+ name: label
required: false
schema:
- format: date-time
nullable: true
type: string
style: form
- explode: true
in: query
- name: updated_before
+ name: updated_after
required: false
schema:
format: date-time
@@ -6804,21 +7192,27 @@ paths:
style: form
- explode: true
in: query
- name: limit
+ name: updated_before
required: false
schema:
- default: 20
- maximum: 100
- minimum: 1
- title: Limit
- type: integer
+ format: date-time
+ nullable: true
+ type: string
style: form
+ - explode: false
+ in: header
+ name: authorization
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: simple
responses:
"200":
content:
application/json:
schema:
- $ref: "#/components/schemas/FindPage"
+ $ref: "#/components/schemas/SearchPageOut"
description: Successful Response
headers:
X-Request-Id:
@@ -6827,12 +7221,26 @@ paths:
schema:
type: string
style: simple
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_list_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument).\
+ \ Requesting a disabled search mode fails with SEARCH_MODE_UNAVAILABLE."
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
"401":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -6850,9 +7258,21 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -6877,8 +7297,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -6897,10 +7317,18 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Semantic embeddings are unavailable; use lexical or hybrid
- mode.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -6908,40 +7336,76 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Hybrid passage retrieval over the full file body
- /v0/folders/{fld_id}:
- delete:
- operationId: delete_folder_by_id_v0_folders__fld_id__delete
+ - bearerAuth: []
+ summary: Drive Search
+ tags:
+ - search
+ /v0/drives/{drive_id}/shares:
+ get:
+ description: |-
+ List the drive's shares (no secrets), keyset paginated.
+
+ ``resource_id`` narrows the page to one resource's links and REQUIRES
+ ``resource_type`` alongside it — a bare resource id is ambiguous across
+ ``artifact`` / ``artifact_version`` / ``folder``, and inferring the kind
+ from the id prefix would tie the filter's meaning to an id format the
+ contract does not promise to keep. ``resource_type`` alone is a valid
+ filter. Listing shares already requires drive ``manager``, so these
+ filters only narrow a page the caller could already read in full.
+ operationId: shares_list
parameters:
- explode: false
in: path
- name: fld_id
+ name: drive_id
required: true
schema:
- title: Fld Id
+ title: Drive Id
type: string
style: simple
- explode: true
in: query
- name: recursive
+ name: lifecycle
required: false
schema:
- default: false
- title: Recursive
- type: boolean
+ default: active
+ title: Lifecycle
+ type: string
style: form
- - explode: false
- in: header
- name: x-agentdrive-actor
+ - explode: true
+ in: query
+ name: limit
+ required: false
+ schema:
+ nullable: true
+ type: integer
+ style: form
+ - explode: true
+ in: query
+ name: cursor
required: false
schema:
nullable: true
type: string
- style: simple
+ style: form
+ - explode: true
+ in: query
+ name: resource_type
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: form
+ - explode: true
+ in: query
+ name: resource_id
+ required: false
+ schema:
+ nullable: true
+ type: string
+ style: form
- explode: false
in: header
- name: if-match
+ name: authorization
required: false
schema:
nullable: true
@@ -6952,7 +7416,7 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/FolderDeleteOut"
+ $ref: "#/components/schemas/ShareListOut"
description: Successful Response
headers:
X-Request-Id:
@@ -6961,20 +7425,33 @@ paths:
schema:
type: string
style: simple
- "401":
+ "400":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
+ X-Request-Id:
+ description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- X-Request-Id:
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
+ headers:
+ WWW-Authenticate:
+ description: RFC 6750 bearer authentication challenge.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
@@ -6984,9 +7461,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -6998,8 +7474,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The folder does not exist in this drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -7007,12 +7483,12 @@ paths:
schema:
type: string
style: simple
- "412":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: A request precondition did not match.
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -7020,25 +7496,34 @@ paths:
schema:
type: string
style: simple
- "422":
+ "429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "429":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -7054,25 +7539,52 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Soft-delete a folder by stable ID (cascade with ?recursive=true)
- get:
- operationId: get_folder_by_id_v0_folders__fld_id__get
+ - bearerAuth: []
+ summary: List Shares
+ tags:
+ - shares
+ post:
+ description: |-
+ Mint a read-only bearer link. The response carries the plaintext
+ secret — the only response that does.
+ operationId: shares_create
parameters:
- explode: false
in: path
- name: fld_id
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: Idempotency-Key
required: true
schema:
- title: Fld Id
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: authorization
+ required: false
+ schema:
+ nullable: true
type: string
style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ShareCreateIn"
+ required: true
responses:
- "200":
+ "201":
content:
application/json:
schema:
- $ref: "#/components/schemas/FolderOut"
+ $ref: "#/components/schemas/ShareCreateOut"
description: Successful Response
headers:
ETag:
@@ -7081,21 +7593,26 @@ paths:
schema:
type: string
style: simple
- X-Request-Id:
- description: Request correlation identifier.
+ Location:
+ description: Canonical URL of the created resource.
explode: false
schema:
+ format: uri-reference
type: string
style: simple
- "304":
- description: The current entity tag or modification date matched.
- headers:
- ETag:
- description: Current strong entity tag.
+ X-Request-Id:
+ description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
+ headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -7106,8 +7623,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -7125,9 +7642,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -7139,9 +7655,42 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The folder does not exist in this drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The parent or target resource was not found or is not visible.
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "409":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "A sibling already occupies the name/path, or the idempotency\
+ \ key was reused for a different request."
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "412":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match (copy/restore preconditions).
headers:
+ ETag:
+ description: Current strong entity tag.
+ explode: false
+ schema:
+ type: string
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -7161,12 +7710,47 @@ paths:
schema:
type: string
style: simple
+ "428":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
"429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
+ headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "503":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -7182,47 +7766,61 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Canonical lookup of a folder by its stable ID
- patch:
- operationId: patch_folder_by_id_v0_folders__fld_id__patch
+ - bearerAuth: []
+ summary: Create Share
+ tags:
+ - shares
+ /v0/drives/{drive_id}/shares/{share_id}:
+ delete:
+ description: "Revoke a share (soft, sets revoked_at) under If-Match."
+ operationId: shares_revoke
parameters:
- explode: false
in: path
- name: fld_id
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
+ - explode: false
+ in: path
+ name: share_id
required: true
schema:
- title: Fld Id
+ title: Share Id
type: string
style: simple
- explode: false
in: header
- name: x-agentdrive-actor
- required: false
+ name: Idempotency-Key
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: If-Match
+ required: true
schema:
nullable: true
type: string
style: simple
- explode: false
in: header
- name: if-match
+ name: authorization
required: false
schema:
nullable: true
type: string
style: simple
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/FolderPatchIn"
- required: true
responses:
"200":
content:
application/json:
schema:
- $ref: "#/components/schemas/FolderOut"
+ $ref: "#/components/schemas/ShareOut"
description: Successful Response
headers:
ETag:
@@ -7241,8 +7839,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The folder update is invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -7254,8 +7852,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -7273,9 +7871,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -7287,8 +7884,21 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The folder does not exist in this drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "409":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "The mutation conflicts with current state (name/path, lifecycle)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -7300,8 +7910,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: A request precondition did not match.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match the resource's current revision.
headers:
ETag:
description: Current strong entity tag.
@@ -7328,12 +7938,47 @@ paths:
schema:
type: string
style: simple
+ "428":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
"429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
+ headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "503":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -7349,33 +7994,33 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Update folder metadata by stable ID
- /v0/folders/{fld_id}/copy:
- post:
- description: |-
- Clone the folder identified by URL id — and every descendant folder + artifact — under the body's `path` (canonical, trailing slash). Each copied artifact reuses the source's CAS object (zero new storage) but gets a fresh `art_…` ID, a fresh version 1, and `source.refs = [{type: 'artifact', id: ''}]` provenance. The new folder gets a fresh `fld_…` ID and the source's description.
-
- The entire subtree is copied in a SINGLE transaction — either every row lands or none does.
-
- Quota: each copy's `size_bytes` counts against the drive's `storage_bytes` even though physical bytes are shared.
-
- Source-version pin: pass `from_metageneration` in the body to require the source folder's current `metageneration` to equal it (→ 412 SOURCE_VERSION_MISMATCH). Destination create-only: `If-None-Match: *` returns 412 CREATE_CONFLICT (instead of 409 FOLDER_PATH_CONFLICT) when the destination folder is occupied.
-
- Returns 409 `FOLDER_PATH_CONFLICT` if the destination collides with a live folder or artifact; 400 `FOLDER_PATH_INVALID` if `path` is non-canonical; 413 `SUBTREE_TOO_LARGE` if the source holds more than 5000 artifacts; 413 `STORAGE_QUOTA_EXCEEDED` if the copy would push the drive over its limit.
- operationId: copy_folder_by_id_v0_folders__fld_id__copy_post
+ - bearerAuth: []
+ summary: Revoke Share
+ tags:
+ - shares
+ get:
+ description: Read one share's management representation (no secret).
+ operationId: shares_read
parameters:
- explode: false
in: path
- name: fld_id
+ name: drive_id
+ required: true
+ schema:
+ title: Drive Id
+ type: string
+ style: simple
+ - explode: false
+ in: path
+ name: share_id
required: true
schema:
- title: Fld Id
+ title: Share Id
type: string
style: simple
- explode: false
in: header
- name: x-agentdrive-actor
+ name: If-None-Match
required: false
schema:
nullable: true
@@ -7383,24 +8028,18 @@ paths:
style: simple
- explode: false
in: header
- name: if-none-match
+ name: authorization
required: false
schema:
nullable: true
type: string
style: simple
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/FolderCopyIn"
- required: true
responses:
- "201":
+ "200":
content:
application/json:
schema:
- $ref: "#/components/schemas/FolderCopyOut"
+ $ref: "#/components/schemas/ShareOut"
description: Successful Response
headers:
ETag:
@@ -7409,11 +8048,19 @@ paths:
schema:
type: string
style: simple
- Location:
- description: Canonical URL of the created resource.
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "304":
+ description: If-None-Match matched the current ETag.
+ headers:
+ ETag:
+ description: Current strong entity tag.
explode: false
schema:
- format: uri-reference
type: string
style: simple
X-Request-Id:
@@ -7426,8 +8073,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The destination path is invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -7439,8 +8086,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -7458,9 +8105,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -7472,8 +8118,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The folder does not exist in this drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -7481,12 +8127,12 @@ paths:
schema:
type: string
style: simple
- "409":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The destination path is already occupied.
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -7494,18 +8140,19 @@ paths:
schema:
type: string
style: simple
- "412":
+ "429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: A request precondition did not match.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
- ETag:
- description: Current strong entity tag.
+ Retry-After:
+ description: Seconds until the caller should retry.
explode: false
schema:
- type: string
+ minimum: 0
+ type: integer
style: simple
X-Request-Id:
description: Request correlation identifier.
@@ -7513,46 +8160,22 @@ paths:
schema:
type: string
style: simple
- "413":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The copied subtree would exceed the drive storage limit.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -7560,177 +8183,63 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: "Duplicate a folder subtree to a new path (CAS-shared, new IDs)"
- /v0/folders/{fld_id}/meta:
- get:
- operationId: get_folder_by_id_meta_v0_folders__fld_id__meta_get
+ - bearerAuth: []
+ summary: Read Share
+ tags:
+ - shares
+ /v0/drives/{drive_id}/shares/{share_id}/rotate:
+ post:
+ description: |-
+ Rotate the secret in place (same id, no grace window). The response
+ carries the new plaintext secret.
+ operationId: shares_rotate
parameters:
- explode: false
in: path
- name: fld_id
+ name: drive_id
required: true
schema:
- title: Fld Id
+ title: Drive Id
type: string
style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/FolderOut"
- description: Successful Response
- headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "304":
- description: The current entity tag or modification date matched.
- headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The folder does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Folder metadata by stable ID (same shape as the bare id route)
- /v0/folders/{fld_id}/move:
- post:
- operationId: move_folder_by_id_v0_folders__fld_id__move_post
- parameters:
- explode: false
in: path
- name: fld_id
+ name: share_id
required: true
schema:
- title: Fld Id
+ title: Share Id
type: string
style: simple
- explode: false
in: header
- name: x-agentdrive-actor
- required: false
+ name: Idempotency-Key
+ required: true
+ schema:
+ nullable: true
+ type: string
+ style: simple
+ - explode: false
+ in: header
+ name: If-Match
+ required: true
schema:
nullable: true
type: string
style: simple
- explode: false
in: header
- name: if-match
+ name: authorization
required: false
schema:
nullable: true
type: string
style: simple
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/FolderMoveIn"
- required: true
responses:
"200":
content:
application/json:
schema:
- $ref: "#/components/schemas/FolderOut"
+ $ref: "#/components/schemas/ShareCreateOut"
description: Successful Response
headers:
ETag:
@@ -7749,8 +8258,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The destination path is invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -7762,8 +8271,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -7781,9 +8290,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -7795,8 +8303,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The folder does not exist in this drive.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -7808,8 +8316,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The destination path is already occupied.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "The mutation conflicts with current state (name/path, lifecycle)."
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -7821,8 +8329,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: A request precondition did not match.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match did not match the resource's current revision.
headers:
ETag:
description: Current strong entity tag.
@@ -7849,12 +8357,47 @@ paths:
schema:
type: string
style: simple
+ "428":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: If-Match is required for this mutation.
+ headers:
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
"429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
+ headers:
+ Retry-After:
+ description: Seconds until the caller should retry.
+ explode: false
+ schema:
+ minimum: 0
+ type: integer
+ style: simple
+ X-Request-Id:
+ description: Request correlation identifier.
+ explode: false
+ schema:
+ type: string
+ style: simple
+ "503":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -7870,37 +8413,29 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Rename / move a folder by stable ID (cascade descendants)
- /v0/folders/{fld_id}/restore:
- post:
+ - bearerAuth: []
+ summary: Rotate Share
+ tags:
+ - shares
+ /v0/drives/{drive_id}/usage:
+ get:
description: |-
- Mirrors `POST /v0/artifacts/{art_id}/restore` for folders: clear `deleted_at` + `purge_at` on a soft-deleted folder AND exactly the descendants soft-deleted in the same cascade (descendants trashed separately keep their trash state; restore those individually — the per-artifact restore remains for cherry-picking). Available only while the folder is in trash; returns 404 if it is live or already hard-purged.
-
- Returns 409 `PATH_CONFLICT` when a live folder/artifact now occupies a path this restore would reinstate (`colliding_path` + `kind` identify it). Unlike artifact restore there are NO `rename`/`overwrite` escape hatches — the whole cascade aborts; free the colliding path (or cherry-pick artifacts) and retry.
-
- `If-Match` (the trashed folder's composite ETag) makes the restore conditional → 412 PRECONDITION_FAILED on a stale token; omitted, the restore is last-writer-wins.
- operationId: restore_folder_by_id_v0_folders__fld_id__restore_post
+ Byte counters for one active drive: storage is the live sum of its
+ versions' sizes; retrieval reads the counter the content-read slice
+ maintains (0 until it lands).
+ operationId: drives_usage
parameters:
- explode: false
in: path
- name: fld_id
+ name: drive_id
required: true
schema:
- title: Fld Id
- type: string
- style: simple
- - explode: false
- in: header
- name: x-agentdrive-actor
- required: false
- schema:
- nullable: true
+ title: Drive Id
type: string
style: simple
- explode: false
in: header
- name: if-match
+ name: authorization
required: false
schema:
nullable: true
@@ -7911,15 +8446,22 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/FolderRestoreOut"
+ $ref: "#/components/schemas/DriveUsageOut"
description: Successful Response
headers:
- ETag:
- description: Current strong entity tag.
+ X-Request-Id:
+ description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Malformed request (invalid query parameter, cursor, or argument)."
+ headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
@@ -7930,8 +8472,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Missing or invalid bearer token.
headers:
WWW-Authenticate:
description: RFC 6750 bearer authentication challenge.
@@ -7949,9 +8491,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Token lacks a required scope.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -7963,8 +8504,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: No restorable folder exists with this ID.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: The resource was not found or is not visible to the caller.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -7972,12 +8513,12 @@ paths:
schema:
type: string
style: simple
- "409":
+ "422":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The restore destination is already occupied.
+ $ref: "#/components/schemas/ValidationErrorResponse"
+ description: Request validation failed.
headers:
X-Request-Id:
description: Request correlation identifier.
@@ -7985,44 +8526,34 @@ paths:
schema:
type: string
style: simple
- "412":
+ "429":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: A request precondition did not match.
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: Rate limited.
headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
+ Retry-After:
+ description: Seconds until the caller should retry.
explode: false
schema:
- type: string
+ minimum: 0
+ type: integer
style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
X-Request-Id:
description: Request correlation identifier.
explode: false
schema:
type: string
style: simple
- "429":
+ "503":
content:
application/json:
schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
+ $ref: "#/components/schemas/drives_create_400_response"
+ description: "Token verification is temporarily unavailable (the Hub JWKS\
+ \ could not be fetched). This is the API's unavailability, not a problem\
+ \ with the presented credential."
headers:
Retry-After:
description: Seconds until the caller should retry.
@@ -8038,8248 +8569,90 @@ paths:
type: string
style: simple
security:
- - BearerAuth: []
- summary: Restore a soft-deleted folder (cascade)
- /v0/folders/{path}:
- delete:
+ - bearerAuth: []
+ summary: Drive Usage
+ tags:
+ - drives
+components:
+ schemas:
+ ArtifactCopyIn:
+ additionalProperties: false
description: |-
- Soft-delete the folder. Refuses if the folder has live descendants unless `?recursive=true` is set, in which case ALL descendant folders + artifacts are soft-deleted in the same transaction.
+ POST /v0/drives/{id}/artifacts/{artifact_id}/copy body.
- Returns 409 `FOLDER_RECURSIVE_REQUIRED` (with descendant counts in `colliding_path`) when recursion is needed but the flag isn't set. Retention window is frozen on `purge_at` per deletion-design.md §5.1; mid-retention tier changes don't shift it.
- operationId: delete_folder_by_path_v0_folders__path__delete
- parameters:
- - explode: false
- in: path
- name: path
- required: true
- schema:
- title: Path
+ ``destination_drive_id`` must equal the source drive (or be absent) —
+ cross-drive copy is out of v0 scope and rejected.
+ example:
+ destination_drive_id: destination_drive_id
+ destination_name: destination_name
+ destination_parent_id: destination_parent_id
+ version_id: version_id
+ properties:
+ destination_drive_id:
+ nullable: true
+ pattern: "^drv_[a-f0-9]{16}$"
type: string
- style: simple
- - explode: true
- in: query
- name: recursive
- required: false
- schema:
- default: false
- title: Recursive
- type: boolean
- style: form
- - explode: false
- in: header
- name: x-agentdrive-actor
- required: false
- schema:
- nullable: true
- type: string
- style: simple
- - explode: false
- in: header
- name: if-match
- required: false
- schema:
- nullable: true
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/FolderDeleteOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The folder does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "412":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: A request precondition did not match.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Soft-delete a folder (cascade with ?recursive=true)
- get:
- operationId: get_folder_by_path_v0_folders__path__get
- parameters:
- - explode: false
- in: path
- name: path
- required: true
- schema:
- title: Path
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/FolderOut"
- description: Successful Response
- headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "304":
- description: The current entity tag or modification date matched.
- headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The folder does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Read folder metadata by path
- patch:
- description: Partial update — field absence leaves the value unchanged; explicit
- `null` clears the field. Use the by-id endpoint (slice 2) when you need stable
- addressing across renames.
- operationId: patch_folder_by_path_v0_folders__path__patch
- parameters:
- - explode: false
- in: path
- name: path
- required: true
- schema:
- title: Path
- type: string
- style: simple
- - explode: false
- in: header
- name: x-agentdrive-actor
- required: false
- schema:
- nullable: true
- type: string
- style: simple
- - explode: false
- in: header
- name: if-match
- required: false
- schema:
- nullable: true
- type: string
- style: simple
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/FolderPatchIn"
- required: true
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/FolderOut"
- description: Successful Response
- headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The folder update is invalid.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The folder does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "412":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: A request precondition did not match.
- headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Update folder metadata by path
- put:
- description: |-
- Create a folder at the URL path. Idempotent create-at-known-URI (mirrors `PUT /v0/artifacts/{path}`) — a second call for the same live path returns the existing row unchanged (metadata updates require PATCH). Returns 201 on create, 200 when the folder already exists.
-
- Send `If-None-Match: *` to make it strictly create-only: an existing folder then returns 412 CREATE_CONFLICT instead of the idempotent 200.
-
- Returns 409 `FOLDER_PATH_CONFLICT` if a live artifact occupies the file form of the path (e.g. mkdir `/foo/` when an artifact lives at `/foo`).
- operationId: create_folder_by_path_v0_folders__path__put
- parameters:
- - explode: false
- in: path
- name: path
- required: true
- schema:
- title: Path
- type: string
- style: simple
- - explode: false
- in: header
- name: x-agentdrive-actor
- required: false
- schema:
- nullable: true
- type: string
- style: simple
- - explode: false
- in: header
- name: if-none-match
- required: false
- schema:
- nullable: true
- type: string
- style: simple
- requestBody:
- content:
- application/json:
- schema:
- allOf:
- - $ref: "#/components/schemas/FolderCreateIn"
- nullable: true
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/FolderOut"
- description: The existing folder was returned unchanged.
- headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "201":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/FolderOut"
- description: Successful Response
- headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- Location:
- description: Canonical URL of the created resource.
- explode: false
- schema:
- format: uri-reference
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The folder path is invalid.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "409":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The folder conflicts with an existing path.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "412":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: A request precondition did not match.
- headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Create a folder (idempotent)
- /v0/folders/{path}/meta:
- get:
- operationId: get_folder_by_path_meta_v0_folders__path__meta_get
- parameters:
- - explode: false
- in: path
- name: path
- required: true
- schema:
- title: Path
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/FolderOut"
- description: Successful Response
- headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "304":
- description: The current entity tag or modification date matched.
- headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The folder does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Folder metadata by path (same shape as the bare path route)
- /v0/folders/{path}/move:
- post:
- description: |-
- Move the folder identified by URL path to the body's `path`. All descendant folders + artifacts are path-prefix-updated in the same transaction. The folder's `fld_*` ID stays stable.
-
- Returns 409 `FOLDER_PATH_CONFLICT` if the destination prefix collides with a live folder or artifact path.
- operationId: move_folder_by_path_v0_folders__path__move_post
- parameters:
- - explode: false
- in: path
- name: path
- required: true
- schema:
- title: Path
- type: string
- style: simple
- - explode: false
- in: header
- name: x-agentdrive-actor
- required: false
- schema:
- nullable: true
- type: string
- style: simple
- - explode: false
- in: header
- name: if-match
- required: false
- schema:
- nullable: true
- type: string
- style: simple
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/FolderMoveIn"
- required: true
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/FolderOut"
- description: Successful Response
- headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The source or destination path is invalid.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The source folder does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "409":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The destination path is already occupied.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "412":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: A request precondition did not match.
- headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Rename / move a folder (cascade-update descendants)
- /v0/grants:
- get:
- description: "**Cursor pagination:** when more results exist, the response carries\
- \ `next_cursor`. Pass it back as `?cursor=` to fetch the next page;\
- \ `null` means the listing is complete. `limit` is clamped to [1, 100] (default\
- \ 50), never rejected. The `resource` filter must be re-sent on every page\
- \ — the cursor encodes only the keyset position."
- operationId: list_grants_route_v0_grants_get
- parameters:
- - description: art_*/fld_* id or a path
- explode: true
- in: query
- name: resource
- required: true
- schema:
- description: art_*/fld_* id or a path
- title: Resource
- type: string
- style: form
- - explode: true
- in: query
- name: cursor
- required: false
- schema:
- nullable: true
- type: string
- style: form
- - explode: true
- in: query
- name: limit
- required: false
- schema:
- nullable: true
- type: integer
- style: form
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/GrantList"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The cursor or resource reference is invalid.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The target resource does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: List live grants on a resource (requires can_manage)
- post:
- operationId: create_grant_route_v0_grants_post
- parameters:
- - explode: false
- in: header
- name: x-agentdrive-actor
- required: false
- schema:
- nullable: true
- type: string
- style: simple
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/GrantCreateIn"
- required: true
- responses:
- "201":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/GrantOut"
- description: Successful Response
- headers:
- Location:
- description: Canonical URL of the created resource.
- explode: false
- schema:
- format: uri-reference
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The grant or expiry is invalid.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The target resource does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Create (or fetch) a per-principal grant on a resource
- /v0/grants/{grn_id}:
- delete:
- operationId: delete_grant_route_v0_grants__grn_id__delete
- parameters:
- - explode: false
- in: path
- name: grn_id
- required: true
- schema:
- title: Grn Id
- type: string
- style: simple
- - explode: false
- in: header
- name: x-agentdrive-actor
- required: false
- schema:
- nullable: true
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/RevokeOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The grant does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: "Revoke a grant (can_manage, or self-revoke own grant)"
- get:
- description: |-
- The `Location` target of `POST /v0/grants`. Authorization mirrors
- DELETE: `can_manage` on the granted resource, or the caller IS the
- grant's own principal (a grantee may read — like revoke — their own
- grant). A revoked grant reads as 404 (same no-leak shape as a
- foreign/absent id); DELETE stays idempotent on it.
- operationId: get_grant_route_v0_grants__grn_id__get
- parameters:
- - explode: false
- in: path
- name: grn_id
- required: true
- schema:
- title: Grn Id
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/GrantOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The grant does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: "Read a single grant (can_manage, or the grant's own principal)"
- patch:
- operationId: patch_grant_route_v0_grants__grn_id__patch
- parameters:
- - explode: false
- in: path
- name: grn_id
- required: true
- schema:
- title: Grn Id
- type: string
- style: simple
- - explode: false
- in: header
- name: x-agentdrive-actor
- required: false
- schema:
- nullable: true
- type: string
- style: simple
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/GrantPatchIn"
- required: true
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/GrantOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The grant update or expiry is invalid.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The grant does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Update a grant's role and/or expiry (requires can_manage)
- /v0/invitations:
- get:
- description: |-
- List the pending invitations for the caller's active workspace. **Admin only.** Metadata only — the raw invite token is never surfaced.
-
- Newest first (`created_at` descending, tie-broken by `id`). Paginated: `limit` is clamped to [1, 100] (default 50, never a 422); pass the response's `next_cursor` back as `cursor` for the next page (`null` when the listing is complete).
- operationId: list_invitations_v0_invitations_get
- parameters:
- - explode: true
- in: query
- name: cursor
- required: false
- schema:
- nullable: true
- type: string
- style: form
- - explode: true
- in: query
- name: limit
- required: false
- schema:
- nullable: true
- type: integer
- style: form
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/InvitationList"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: List pending invitations
- tags:
- - members
- /v0/invitations/{invitation_id}:
- delete:
- description: "Revoke a pending invitation in the caller's active workspace.\
- \ **Admin only**, `full` scope. Org-scoped + idempotent: `revoked` is a COUNT\
- \ — 1 when a live invite was revoked, 0 when it was already gone (a forged\
- \ id, an invite from another workspace, or an already-consumed invite all\
- \ return `revoked: 0`, no-leak)."
- operationId: revoke_invitation_v0_invitations__invitation_id__delete
- parameters:
- - explode: false
- in: path
- name: invitation_id
- required: true
- schema:
- title: Invitation Id
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/RevokeOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The invitation does not exist in this workspace.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Revoke a pending invitation
- tags:
- - members
- /v0/jobs/{job_id}:
- get:
- operationId: get_job_v0_jobs__job_id__get
- parameters:
- - explode: false
- in: path
- name: job_id
- required: true
- schema:
- title: Job Id
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/CompileJobOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: No such compile job exists in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Poll a job
- x-stability-level: beta
- /v0/jobs/{job_id}/cancel:
- post:
- operationId: cancel_job_v0_jobs__job_id__cancel_post
- parameters:
- - explode: false
- in: path
- name: job_id
- required: true
- schema:
- title: Job Id
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/CompileJobOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: No such compile job exists in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Cancel a queued/running job
- x-stability-level: beta
- /v0/jobs/{job_id}/logs:
- get:
- operationId: get_job_logs_v0_jobs__job_id__logs_get
- parameters:
- - explode: false
- in: path
- name: job_id
- required: true
- schema:
- title: Job Id
- type: string
- style: simple
- responses:
- "200":
- content:
- text/plain:
- schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- description: Raw compile log.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The job or its captured log does not exist.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Raw compile log (text/plain)
- x-stability-level: beta
- /v0/members:
- get:
- description: |-
- List live members (email, role, joined-at) of the caller's active workspace. Any **member** may list; a `read`-scope token is sufficient.
-
- Ordered by join time (`created_at`, tie-broken by `user_id`) — **no role grouping is promised**; a dashboard that wants admins-first sorts client-side. Paginated: `limit` is clamped to [1, 100] (default 50, never a 422); pass the response's `next_cursor` back as `cursor` for the next page (`null` when the listing is complete).
- operationId: list_members_v0_members_get
- parameters:
- - explode: true
- in: query
- name: cursor
- required: false
- schema:
- nullable: true
- type: string
- style: form
- - explode: true
- in: query
- name: limit
- required: false
- schema:
- nullable: true
- type: integer
- style: form
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/MemberList"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: List the members of your active workspace
- tags:
- - members
- /v0/members/invite:
- post:
- description: "Create a pending invitation in the caller's active workspace and\
- \ enqueue the invite email. **Admin only**, `full` scope. Inviting an existing\
- \ member is a no-op success (`already_member: true`). A duplicate pending\
- \ invite for the same email returns 409 `INVITE_PENDING` (resend it from the\
- \ members page). The raw invite token is delivered only by email — never in\
- \ this response."
- operationId: invite_member_v0_members_invite_post
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/MemberInviteIn"
- required: true
- responses:
- "201":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/InviteCreateOut"
- description: Successful Response
- headers:
- Location:
- description: Canonical URL of the created resource.
- explode: false
- schema:
- format: uri-reference
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The email or role is invalid.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "409":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The user is already a member or has a pending invitation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0.0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Invite a person to your workspace by email
- tags:
- - members
- /v0/members/{target_user_id}:
- delete:
- description: |-
- Remove a member from the caller's active workspace, soft-deleting every drive that member owns there (workspaces-design §4.4 — no ownership transfer in v0; their `ad_live_` keys then stop working). **Admin** may remove anyone; **any member** may remove themselves (self-leave). `full` scope. Removing the **last/sole admin** is rejected with 409 `LAST_ADMIN` (promote someone first, or delete the workspace).
-
- **Explicit confirmation required:** pass `?confirm=DELETE` or the request is rejected with 400 `CONFIRM_REQUIRED` — removal cascades a soft-delete of every drive the member owns, so it carries tenant-level blast radius (uniform with `DELETE /v0/drives/{id}`).
-
- Deliberately takes NO `If-Match`: membership rows carry no generation/metageneration axis to pin (there is no ETag to echo), so `?confirm=DELETE` is the sole mutation guard here.
- operationId: remove_member_v0_members__target_user_id__delete
- parameters:
- - explode: false
- in: path
- name: target_user_id
- required: true
- schema:
- title: Target User Id
- type: string
- style: simple
- - explode: true
- in: query
- name: confirm
- required: false
- schema:
- nullable: true
- type: string
- style: form
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/MemberRemoveOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The member does not exist in this workspace.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "409":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The removal would violate workspace ownership requirements.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Remove a member (or leave)
- tags:
- - members
- patch:
- description: "Promote/demote a member in the caller's active workspace. **Admin\
- \ only**, `full` scope. Demoting the workspace's **last admin** is rejected\
- \ with 409 `LAST_ADMIN` (promote someone first)."
- operationId: set_member_role_v0_members__target_user_id__patch
- parameters:
- - explode: false
- in: path
- name: target_user_id
- required: true
- schema:
- title: Target User Id
- type: string
- style: simple
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/MemberRoleIn"
- required: true
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/MemberOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The membership update is invalid.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The member does not exist in this workspace.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "409":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The update would violate workspace ownership requirements.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Change a member's role
- tags:
- - members
- /v0/projects/{fld_id}:
- get:
- operationId: get_project_v0_projects__fld_id__get
- parameters:
- - explode: false
- in: path
- name: fld_id
- required: true
- schema:
- title: Fld Id
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/CompileProjectOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The project folder does not exist or has no compile configuration.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Get a project's compile config
- x-stability-level: beta
- put:
- operationId: put_project_v0_projects__fld_id__put
- parameters:
- - explode: false
- in: path
- name: fld_id
- required: true
- schema:
- title: Fld Id
- type: string
- style: simple
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ProjectConfigIn"
- required: true
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/CompileProjectOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The compile engine or entrypoint is invalid.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The project folder does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Set a project's compile config (entrypoint/engine/auto_compile)
- x-stability-level: beta
- /v0/projects/{fld_id}/jobs:
- get:
- description: "List compile jobs newest first in stable `(created_at, job_id)`\
- \ descending order. Pass a non-null `next_cursor` back as `cursor` to continue;\
- \ malformed cursors return `400 BAD_CURSOR`. The cursor contains only the\
- \ keyset position, so a `status` filter must be re-sent unchanged on every\
- \ page. `limit` retains its existing default of 50 and validated range of\
- \ 1 through 200."
- operationId: list_project_jobs_v0_projects__fld_id__jobs_get
- parameters:
- - explode: false
- in: path
- name: fld_id
- required: true
- schema:
- title: Fld Id
- type: string
- style: simple
- - explode: true
- in: query
- name: status
- required: false
- schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- style: form
- - explode: true
- in: query
- name: limit
- required: false
- schema:
- default: 50
- maximum: 200
- minimum: 1
- title: Limit
- type: integer
- style: form
- - explode: true
- in: query
- name: cursor
- required: false
- schema:
- nullable: true
- type: string
- style: form
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/CompileJobListOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "The status filter is invalid, or the cursor is malformed (`BAD_CURSOR`)."
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The project folder does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: List a project's jobs
- x-stability-level: beta
- post:
- operationId: enqueue_job_v0_projects__fld_id__jobs_post
- parameters:
- - explode: false
- in: path
- name: fld_id
- required: true
- schema:
- title: Fld Id
- type: string
- style: simple
- - explode: false
- in: header
- name: x-agentdrive-actor
- required: false
- schema:
- nullable: true
- type: string
- style: simple
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/CompileJobIn"
- required: true
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/CompileJobOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "202":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/CompileJobOut"
- description: Compile accepted and queued or running.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "The task, engine, entrypoint, or project is invalid."
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "402":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The current plan does not permit this compile.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The project folder does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "413":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The compile project exceeds an input or storage limit.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Enqueue a compile job for a project (folder)
- x-stability-level: beta
- /v0/query:
- post:
- operationId: post_query_v0_query_post
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/QueryIn"
- required: true
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Response_Post_Query_V0_Query_Post"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The SQL or referenced dataset is invalid.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "402":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The current plan does not permit this query.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0.0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "503":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The configured query engine is unavailable.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Run a read-only SQL query over authorized datasets
- x-stability-level: beta
- /v0/query/describe:
- post:
- operationId: post_describe_v0_query_describe_post
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/DescribeIn"
- required: true
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/DatasetDescriptionOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The referenced dataset is invalid.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0.0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "503":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The configured query engine is unavailable.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Describe a dataset's column schema
- x-stability-level: beta
- /v0/query/lookup-values:
- post:
- operationId: post_lookup_values_v0_query_lookup_values_post
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/LookupValuesIn"
- required: true
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/LookupValuesOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "The dataset, column, or limit is invalid."
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "402":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The current plan does not permit this query.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0.0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "503":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The configured query engine is unavailable.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: List distinct values of a dataset column
- x-stability-level: beta
- /v0/search:
- get:
- description: |-
- Lexical (not semantic) full-text search powered by Postgres `websearch_to_tsquery`. Results are ranked by `ts_rank` over a weighted tsvector (path > content > metadata > labels).
-
- **Supported query syntax:**
- - Words: `kangaroo` (English stemming)
- - Phrases: `"exact phrase"`
- - Negation: `kangaroo -secret`
- - AND (implicit): `kangaroo secret`
- - OR: `kangaroo OR koala`
- - Paths & filenames: `reports/q3-summary.md` or `q3-summary.md` match by their path words (`/ . _ -` are word boundaries)
-
- **Not supported (v0):**
- - Semantic / embedding similarity
- - PDF and image content (only the path + metadata are searchable)
- - Non-English stemming
- - Fuzzy matching, regex
- - Boolean operator parentheses
-
- **Filters:** `label` (repeatable, AND), `file_type` (enum), `prefix` (path prefix), `updated_after` / `updated_before` (RFC 3339 timestamps, inclusive bounds on `updated_at`).
- operationId: search_v0_search_get
- parameters:
- - explode: true
- in: query
- name: q
- required: true
- schema:
- maxLength: 200
- minLength: 1
- title: Q
- type: string
- style: form
- - explode: true
- in: query
- name: label
- required: false
- schema:
- items:
- type: string
- title: Label
- type: array
- default: null
- style: form
- - explode: true
- in: query
- name: file_type
- required: false
- schema:
- nullable: true
- type: string
- style: form
- - explode: true
- in: query
- name: prefix
- required: false
- schema:
- nullable: true
- type: string
- style: form
- - explode: true
- in: query
- name: updated_after
- required: false
- schema:
- format: date-time
- nullable: true
- type: string
- style: form
- - explode: true
- in: query
- name: updated_before
- required: false
- schema:
- format: date-time
- nullable: true
- type: string
- style: form
- - explode: true
- in: query
- name: limit
- required: false
- schema:
- default: 20
- maximum: 100
- minimum: 1
- title: Limit
- type: integer
- style: form
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/SearchPage"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The search query or filter is invalid.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Full-text search over artifacts in the drive
- /v0/shares:
- get:
- description: "**Cursor pagination:** when more results exist, the response carries\
- \ `next_cursor`. Pass it back as `?cursor=` to fetch the next page;\
- \ `null` means the listing is complete. `limit` is clamped to [1, 100] (default\
- \ 50), never rejected. The `resource` filter must be re-sent on every page\
- \ — the cursor encodes only the keyset position."
- operationId: list_shares_route_v0_shares_get
- parameters:
- - description: art_*/fld_* id or a path
- explode: true
- in: query
- name: resource
- required: true
- schema:
- description: art_*/fld_* id or a path
- title: Resource
- type: string
- style: form
- - explode: true
- in: query
- name: cursor
- required: false
- schema:
- nullable: true
- type: string
- style: form
- - explode: true
- in: query
- name: limit
- required: false
- schema:
- nullable: true
- type: integer
- style: form
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ShareList"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The cursor or resource reference is invalid.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The target resource does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: List live share links on a resource (requires can_manage)
- post:
- operationId: create_share_route_v0_shares_post
- parameters:
- - explode: false
- in: header
- name: x-agentdrive-actor
- required: false
- schema:
- nullable: true
- type: string
- style: simple
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ShareCreateIn"
- required: true
- responses:
- "201":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ShareMintOut"
- description: Successful Response
- headers:
- Location:
- description: Canonical URL of the created resource.
- explode: false
- schema:
- format: uri-reference
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The share settings or expiry are invalid.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The target resource does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Mint a share link (returns the share_key once)
- /v0/shares/{shr_id}:
- delete:
- operationId: delete_share_route_v0_shares__shr_id__delete
- parameters:
- - explode: false
- in: path
- name: shr_id
- required: true
- schema:
- title: Shr Id
- type: string
- style: simple
- - explode: false
- in: header
- name: x-agentdrive-actor
- required: false
- schema:
- nullable: true
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/RevokeOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The share does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Revoke a share link (requires can_manage)
- get:
- description: |-
- The `Location` target of `POST /v0/shares`. Metadata ONLY —
- `ShareOut` never carries the raw `share_key`/URL (returned exactly
- once at mint/rotate, §4.5). Authorization mirrors DELETE:
- `can_manage` on the shared resource. A revoked share reads as 404
- (same no-leak shape as a foreign/absent id).
- operationId: get_share_route_v0_shares__shr_id__get
- parameters:
- - explode: false
- in: path
- name: shr_id
- required: true
- schema:
- title: Shr Id
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ShareOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The share does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Read a single share link's metadata (requires can_manage)
- /v0/shares/{shr_id}/rotate:
- post:
- operationId: rotate_share_route_v0_shares__shr_id__rotate_post
- parameters:
- - explode: false
- in: path
- name: shr_id
- required: true
- schema:
- title: Shr Id
- type: string
- style: simple
- - explode: false
- in: header
- name: x-agentdrive-actor
- required: false
- schema:
- nullable: true
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ShareMintOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The replacement password is invalid.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The share does not exist in this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Revoke + reissue a share link's key (requires can_share)
- /v0/tokens:
- get:
- description: |-
- List the `ad_user_` tokens belonging to the authenticated user. Metadata only — the raw token is shown once at mint (web only) and is never returned here. Includes recently-revoked tokens (with `revoked_at` set) so the caller can audit them; newest first.
-
- **Cursor pagination:** when more results exist, the response carries `next_cursor`. Pass it back as `?cursor=` to fetch the next page; `null` means the listing is complete. `limit` is clamped to [1, 100] (default 50), never rejected.
- operationId: list_tokens_v0_tokens_get
- parameters:
- - explode: true
- in: query
- name: cursor
- required: false
- schema:
- nullable: true
- type: string
- style: form
- - explode: true
- in: query
- name: limit
- required: false
- schema:
- nullable: true
- type: integer
- style: form
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/UserTokenList"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: List your user-identity tokens
- tags:
- - tokens
- /v0/tokens/{token_id}/revoke:
- post:
- description: "Revoke a single `ad_user_` token by id. Scoped to the authenticated\
- \ user: a token id that isn't yours returns 404 (no-leak). Idempotent — revoking\
- \ an already-revoked token also returns 404 (it is no longer a live token\
- \ of yours to revoke). On success the revoked token's metadata is returned\
- \ with `revoked_at` set."
- operationId: revoke_token_v0_tokens__token_id__revoke_post
- parameters:
- - explode: false
- in: path
- name: token_id
- required: true
- schema:
- title: Token Id
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/UserTokenOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The token does not exist for this user.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Revoke one of your user-identity tokens
- tags:
- - tokens
- /v0/uploads:
- post:
- description: "Reserve quota and open a resumable upload session for a file larger\
- \ than the buffered-upload limit. Returns a `upload_url` to PUT the raw bytes\
- \ to DIRECTLY (no Authorization header — the URL is the credential), then\
- \ call `/v0/uploads/{upload_id}/commit`. All artifact decisions (path, labels,\
- \ metadata, source, if_match) are frozen here."
- operationId: begin_upload_v0_uploads_post
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/UploadBeginIn"
- required: true
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/UploadBeginOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "Invalid path, labels, metadata, or source."
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Path reserved for the system (WIKI_RESERVED).
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "413":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: size_bytes exceeds the per-artifact cap or storage quota.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Drive's per-hour write budget exhausted.
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0.0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Begin a large (direct-to-GCS) upload
- /v0/uploads/{upload_id}:
- delete:
- description: "Release an open upload session: return its reserved quota to the\
- \ drive and mark it aborted. Idempotent — aborting an already-aborted or already-expired\
- \ session succeeds with `released_bytes: 0`. A committed session cannot be\
- \ aborted (409 ALREADY_COMMITTED). No write budget is charged — this frees\
- \ resources rather than consuming them."
- operationId: abort_upload_v0_uploads__upload_id__delete
- parameters:
- - explode: false
- in: path
- name: upload_id
- required: true
- schema:
- title: Upload Id
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/UploadAbortOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: No such upload for this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "409":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Upload already committed and cannot be aborted.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Abort a large (direct-to-GCS) upload session
- get:
- description: "Report the live state of an upload session begun at `/v0/uploads`.\
- \ `state` is derived: `initiated` (open — PUT the bytes then commit), `committed`\
- \ (artifact created), `aborted` (released via DELETE), or `expired` (past\
- \ `expires_at` without a commit). Read-only; charges the read budget."
- operationId: get_upload_status_v0_uploads__upload_id__get
- parameters:
- - explode: false
- in: path
- name: upload_id
- required: true
- schema:
- title: Upload Id
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/UploadStatusOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: No such upload for this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Get the status of a large (direct-to-GCS) upload session
- /v0/uploads/{upload_id}/commit:
- post:
- description: "Finalize the upload begun at `/v0/uploads`: AgentDrive verifies\
- \ the object that landed in GCS (size + checksum) and creates the artifact.\
- \ Idempotent — a retry after a successful commit returns the same artifact.\
- \ The write budget is charged when the upload session is created; commit retries\
- \ are not charged again."
- operationId: commit_upload_v0_uploads__upload_id__commit_post
- parameters:
- - explode: false
- in: path
- name: upload_id
- required: true
- schema:
- title: Upload Id
- type: string
- style: simple
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ArtifactOut"
- description: Successful Response
- headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: No such upload for this drive.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "409":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Uploaded object size differs from declared size_bytes.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "410":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Upload session expired.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "412":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: If-Match precondition failed or create-only conflict.
- headers:
- ETag:
- description: Current strong entity tag.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "413":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Committing the upload would exceed the storage quota.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Drive's per-hour write budget exhausted.
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Commit a large (direct-to-GCS) upload
- /v0/workspaces:
- get:
- description: |-
- Return every space the caller is a member of, each carrying the caller's `role` in it. Metadata only. A `read`-scope token is sufficient.
-
- **Cursor pagination:** when more results exist, the response carries `next_cursor`. Pass it back as `?cursor=` to fetch the next page; `null` means the listing is complete. `limit` is clamped to [1, 100] (default 50), never rejected.
- operationId: list_workspaces_route_v0_workspaces_get
- parameters:
- - explode: true
- in: query
- name: cursor
- required: false
- schema:
- nullable: true
- type: string
- style: form
- - explode: true
- in: query
- name: limit
- required: false
- schema:
- nullable: true
- type: integer
- style: form
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/WorkspaceList"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: List the spaces you belong to
- tags:
- - workspaces
- post:
- description: |-
- Create a new **shared drive** — a shared, multi-member space (the `workspaces` path is retained for API stability). You become its **admin** and get a starter drive; the starter drive's `ad_live_` key is returned **once** (`starter_drive_api_key`).
-
- A user may administer up to their plan's number of shared drives (workspaces-v2 §4.6). A caller at the limit is blocked with `403 WORKSPACE_LIMIT_REACHED`. Requires a `full`-scope user token.
- operationId: create_workspace_route_v0_workspaces_post
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/WorkspaceCreateIn"
- required: true
- responses:
- "201":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/WorkspaceCreateOut"
- description: Successful Response
- headers:
- Location:
- description: Canonical URL of the created resource.
- explode: false
- schema:
- format: uri-reference
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The workspace name or request is invalid.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "409":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The workspace conflicts with an existing organization.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Create a new shared drive
- tags:
- - workspaces
- /v0/workspaces/{org_id}:
- patch:
- description: Rename a shared drive. **Admin only** — one you don't administer
- (or aren't a member of) returns 404 (no-leak). Requires a `full`-scope user
- token.
- operationId: rename_workspace_route_v0_workspaces__org_id__patch
- parameters:
- - explode: false
- in: path
- name: org_id
- required: true
- schema:
- title: Org Id
- type: string
- style: simple
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/WorkspaceRenameIn"
- required: true
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/WorkspaceOut"
- description: Successful Response
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The workspace update is invalid.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "401":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: Bearer credential is missing or invalid.
- headers:
- WWW-Authenticate:
- description: RFC 6750 bearer authentication challenge.
- explode: false
- schema:
- type: string
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The authenticated principal is not allowed to perform this
- operation.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: The workspace does not exist for this user.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "429":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorResponse"
- description: "A request, operation, or quota rate limit was exceeded."
- headers:
- Retry-After:
- description: Seconds until the caller should retry.
- explode: false
- schema:
- minimum: 0
- type: integer
- style: simple
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- security:
- - BearerAuth: []
- summary: Rename a shared drive you administer
- tags:
- - workspaces
- /{drive_id}/{path}:
- get:
- operationId: view_file__drive_id___path__get
- parameters:
- - explode: false
- in: path
- name: drive_id
- required: true
- schema:
- title: Drive Id
- type: string
- style: simple
- - explode: false
- in: path
- name: path
- required: true
- schema:
- title: Path
- type: string
- style: simple
- - explode: true
- in: query
- name: raw
- required: false
- schema:
- default: 0
- title: Raw
- type: integer
- style: form
- - explode: true
- in: query
- name: download
- required: false
- schema:
- default: 0
- title: Download
- type: integer
- style: form
- responses:
- "200":
- content:
- application/octet-stream:
- schema:
- format: binary
- type: string
- text/html:
- schema:
- description: Restore at this path instead of the original. Soft-deletes
- the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`.
- Mutually exclusive with `overwrite`.
- nullable: true
- type: string
- description: Rendered HTML or raw artifact bytes.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- "422":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ValidationErrorResponse"
- description: Request validation failed.
- headers:
- X-Request-Id:
- description: Request correlation identifier.
- explode: false
- schema:
- type: string
- style: simple
- summary: View File
-components:
- schemas:
- AgentAuthMetadataOut:
- additionalProperties: true
- example:
- claim_endpoint: claim_endpoint
- events_endpoint: events_endpoint
- identity_assertion:
- alg: alg
- iss: iss
- version: 0
- identity_endpoint: identity_endpoint
- identity_types_supported:
- - identity_types_supported
- - identity_types_supported
- skill: skill
- spec_version: spec_version
- properties:
- claim_endpoint:
- title: Claim Endpoint
- type: string
- events_endpoint:
- nullable: true
- type: string
- identity_assertion:
- $ref: "#/components/schemas/IdentityAssertionMetadataOut"
- identity_endpoint:
- title: Identity Endpoint
- type: string
- identity_types_supported:
- items:
- type: string
- title: Identity Types Supported
- type: array
- default: null
- skill:
- title: Skill
- type: string
- spec_version:
- title: Spec Version
- type: string
- required:
- - claim_endpoint
- - events_endpoint
- - identity_assertion
- - identity_endpoint
- - identity_types_supported
- - skill
- - spec_version
- title: AgentAuthMetadataOut
- AnonymousIdentityResponse:
- description: |-
- `POST /agent/identity` response on the anonymous path.
-
- The agent stores `identity_assertion` as its long-lived credential
- and uses `claim_token` to initiate the claim ceremony when the
- human is ready.
- example:
- agent_identity_id: agent_identity_id
- claim_metadata:
- claim_endpoint: claim_endpoint
- supported_email_hints: true
- claim_token: claim_token
- drive_id: drive_id
- expires_at: 2000-01-23T04:56:07.000+00:00
- identity_assertion: identity_assertion
- properties:
- agent_identity_id:
- title: Agent Identity Id
- type: string
- claim_metadata:
- $ref: "#/components/schemas/ClaimMetadata"
- claim_token:
- description: Opaque server-issued secret. Present at POST /agent/identity/claim
- and at POST /oauth2/token (grant_type=claim).
- title: Claim Token
- type: string
- drive_id:
- title: Drive Id
- type: string
- expires_at:
- format: date-time
- title: Expires At
- type: string
- identity_assertion:
- description: "JWT signed by AgentDrive, scope=pre_claim. 30-day TTL."
- title: Identity Assertion
- type: string
- required:
- - agent_identity_id
- - claim_metadata
- - claim_token
- - drive_id
- - expires_at
- - identity_assertion
- title: AnonymousIdentityResponse
- ArtifactDeleteOut:
- description: |-
- DELETE /v0/artifacts/{art_id} response — the soft-delete receipt.
- Reversible until the GC cron hard-deletes at `purge_at`; `restore_url`
- points at the by-id restore endpoint (deletion-design.md §5.3).
- example:
- deleted_at: 2000-01-23T04:56:07.000+00:00
- id: id
- ok: true
- path: path
- purge_at: 2000-01-23T04:56:07.000+00:00
- restore_url: restore_url
- properties:
- deleted_at:
- format: date-time
- title: Deleted At
- type: string
- id:
- title: Id
- type: string
- ok:
- default: true
- title: Ok
- type: boolean
- path:
- title: Path
- type: string
- purge_at:
- format: date-time
- title: Purge At
- type: string
- restore_url:
- nullable: true
- type: string
- required:
- - deleted_at
- - id
- - path
- - purge_at
- title: ArtifactDeleteOut
- ArtifactHeadOut:
- example:
- version: 0
- properties:
- version:
- title: Version
- type: integer
- required:
- - version
- title: ArtifactHeadOut
- ArtifactMoveIn:
- description: |-
- POST /v0/artifacts/{art_id}/move body — rename / move to a new
- path on the same drive. Mirrors `FolderMoveIn`; its own schema (vs.
- reusing another body) keeps the move surface self-documenting in the
- OpenAPI spec.
- example:
- path: path
- properties:
- path:
- title: Path
- type: string
- required:
- - path
- title: ArtifactMoveIn
- ArtifactOut:
- example:
- content_type: content_type
- created_at: 2000-01-23T04:56:07.000+00:00
- drive_id: drive_id
- embedded_at: 2000-01-23T04:56:07.000+00:00
- etag: etag
- file_type: file_type
- hash: hash
- id: id
- indexed_at: 2000-01-23T04:56:07.000+00:00
- labels:
- - labels
- - labels
- llm_index:
- key: ""
- metadata:
- key: ""
- metageneration: 0
- path: path
- permalink: permalink
- size_bytes: 6
- source: ""
- updated_at: 2000-01-23T04:56:07.000+00:00
- url: url
- version_number: 1
- properties:
- content_type:
- title: Content Type
- type: string
- created_at:
- format: date-time
- title: Created At
- type: string
- drive_id:
- title: Drive Id
- type: string
- embedded_at:
- format: date-time
- nullable: true
- type: string
- etag:
- title: Etag
- type: string
- file_type:
- title: File Type
- type: string
- hash:
- title: Hash
- type: string
- id:
- title: Id
- type: string
- indexed_at:
- format: date-time
- nullable: true
- type: string
- labels:
- items:
- type: string
- title: Labels
- type: array
- default: null
- llm_index:
- additionalProperties: true
- nullable: true
- type: object
- metadata:
- additionalProperties: true
- title: Metadata
- type: object
- metageneration:
- default: 1
- title: Metageneration
- type: integer
- path:
- title: Path
- type: string
- permalink:
- title: Permalink
- type: string
- size_bytes:
- title: Size Bytes
- type: integer
- source:
- allOf:
- - $ref: "#/components/schemas/ArtifactSource"
- nullable: true
- updated_at:
- format: date-time
- title: Updated At
- type: string
- url:
- title: Url
- type: string
- version_number:
- default: 1
- title: Version Number
- type: integer
- required:
- - content_type
- - created_at
- - drive_id
- - etag
- - file_type
- - hash
- - id
- - path
- - permalink
- - size_bytes
- - updated_at
- - url
- title: ArtifactOut
- ArtifactPatchIn:
- additionalProperties: {}
- description: |-
- PATCH /v0/artifacts/{art_id} body — metadata-only partial
- (JSON-merge-patch) update.
-
- Every field is optional. Presence is what matters, not the value:
- a field left out of the body (per Pydantic `model_fields_set`) is
- left unchanged; a field that IS present is applied — with an explicit
- `null` / `[]` / `{}` meaning "clear it". This mirrors the MCP
- `set_metadata` tool and the core `patch_artifact_metadata` sentinel
- semantics (omitted = preserve, present = replace/clear).
-
- * `labels` — replace the label set; `[]` or `null` clears it.
- * `metadata` — replace the free-form metadata object; `{}` or `null`
- clears it.
- * `source` — replace provenance refs; `null` (or `{"refs": []}`)
- clears them.
-
- PATCH is metadata-only: to move/rename an artifact, use
- `POST /v0/artifacts/{art_id}/move`. `extra="forbid"` makes a stray
- field (notably a legacy `path`) a hard 422 rather than a silent
- no-op — a clean-break signal to migrate to the move verb.
- example:
- labels:
- - labels
- - labels
- metadata:
- key: ""
- source: ""
- properties:
- labels:
- items:
- type: string
- nullable: true
- type: array
- default: null
- metadata:
- additionalProperties: true
- nullable: true
- type: object
- source:
- allOf:
- - $ref: "#/components/schemas/ArtifactSource"
- nullable: true
- title: ArtifactPatchIn
- ArtifactSource:
- description: |-
- Caller-supplied provenance metadata, attached to an artifact.
-
- v0.6 model: a list of typed refs. The legacy v0.5 fields
- (`agent_id`, `run_id`, `prompt_hash`) were never validated and are
- superseded by the `refs` shape (an agent-id ref would be
- `{"type": "agent", "id": "..."}` in v0.6 vocabulary).
- properties:
- refs:
- items:
- $ref: "#/components/schemas/SourceRef"
- title: Refs
- type: array
- default: null
- title: ArtifactSource
- AuthorizationServerMetadataOut:
- additionalProperties: true
- example:
- agent_auth:
- claim_endpoint: claim_endpoint
- events_endpoint: events_endpoint
- identity_assertion:
- alg: alg
- iss: iss
- version: 0
- identity_endpoint: identity_endpoint
- identity_types_supported:
- - identity_types_supported
- - identity_types_supported
- skill: skill
- spec_version: spec_version
- authorization_endpoint: authorization_endpoint
- authorization_response_iss_parameter_supported: true
- code_challenge_methods_supported:
- - code_challenge_methods_supported
- - code_challenge_methods_supported
- grant_types_supported:
- - grant_types_supported
- - grant_types_supported
- issuer: issuer
- jwks_uri: jwks_uri
- registration_endpoint: registration_endpoint
- response_modes_supported:
- - response_modes_supported
- - response_modes_supported
- response_types_supported:
- - response_types_supported
- - response_types_supported
- revocation_endpoint: revocation_endpoint
- revocation_endpoint_auth_methods_supported:
- - revocation_endpoint_auth_methods_supported
- - revocation_endpoint_auth_methods_supported
- scopes_supported:
- - scopes_supported
- - scopes_supported
- token_endpoint: token_endpoint
- token_endpoint_auth_methods_supported:
- - token_endpoint_auth_methods_supported
- - token_endpoint_auth_methods_supported
- properties:
- agent_auth:
- $ref: "#/components/schemas/AgentAuthMetadataOut"
- authorization_endpoint:
- title: Authorization Endpoint
- type: string
- authorization_response_iss_parameter_supported:
- title: Authorization Response Iss Parameter Supported
- type: boolean
- code_challenge_methods_supported:
- items:
- type: string
- title: Code Challenge Methods Supported
- type: array
- default: null
- grant_types_supported:
- items:
- type: string
- title: Grant Types Supported
- type: array
- default: null
- issuer:
- title: Issuer
- type: string
- jwks_uri:
- title: Jwks Uri
- type: string
- registration_endpoint:
- title: Registration Endpoint
- type: string
- response_modes_supported:
- items:
- type: string
- title: Response Modes Supported
- type: array
- default: null
- response_types_supported:
- items:
- type: string
- title: Response Types Supported
- type: array
- default: null
- revocation_endpoint:
- title: Revocation Endpoint
- type: string
- revocation_endpoint_auth_methods_supported:
- items:
- type: string
- title: Revocation Endpoint Auth Methods Supported
- type: array
- default: null
- scopes_supported:
- items:
- type: string
- title: Scopes Supported
- type: array
- default: null
- token_endpoint:
- title: Token Endpoint
- type: string
- token_endpoint_auth_methods_supported:
- items:
- type: string
- title: Token Endpoint Auth Methods Supported
- type: array
- default: null
- required:
- - agent_auth
- - authorization_endpoint
- - authorization_response_iss_parameter_supported
- - code_challenge_methods_supported
- - grant_types_supported
- - issuer
- - jwks_uri
- - registration_endpoint
- - response_modes_supported
- - response_types_supported
- - revocation_endpoint
- - revocation_endpoint_auth_methods_supported
- - scopes_supported
- - token_endpoint
- - token_endpoint_auth_methods_supported
- title: AuthorizationServerMetadataOut
- Body_authorize_decision_oauth2_authorize_post:
- properties:
- csrf:
- title: Csrf
- type: string
- required:
- - csrf
- title: Body_authorize_decision_oauth2_authorize_post
- Body_logout_auth_logout_post:
- properties:
- csrf:
- title: Csrf
- type: string
- required:
- - csrf
- title: Body_logout_auth_logout_post
- Body_oauth2_token_oauth2_token_post:
- properties:
- assertion:
- nullable: true
- type: string
- claim_token:
- nullable: true
- type: string
- grant_type:
- title: Grant Type
- type: string
- required:
- - grant_type
- title: Body_oauth2_token_oauth2_token_post
- Body_redeem_share_with_password_s__share_key__post:
- properties:
- password:
- default: ""
- title: Password
- type: string
- title: Body_redeem_share_with_password_s__share_key__post
- ClaimInitRequest:
- description: '`POST /agent/identity/claim` body.'
- example:
- claim_token: claim_token
- email: email
- properties:
- claim_token:
- description: The per-identity claim_token returned by POST /agent/identity.
- title: Claim Token
- type: string
- email:
- description: "Optional hint to display on the /claim page so the human knows\
- \ which account the agent expected. Not enforced (design §14 question\
- \ #3)."
- nullable: true
- type: string
- required:
- - claim_token
- title: ClaimInitRequest
- ClaimInitResponse:
- example:
- claim_attempt_token: claim_attempt_token
- expires_at: 2000-01-23T04:56:07.000+00:00
- user_code: user_code
- verification_uri: verification_uri
- verification_uri_complete: verification_uri_complete
- properties:
- claim_attempt_token:
- description: Per-attempt opaque token; the agent does not need to present
- it.
- title: Claim Attempt Token
- type: string
- expires_at:
- format: date-time
- title: Expires At
- type: string
- user_code:
- description: Human-readable code the user types/sees on /claim.
- title: User Code
- type: string
- verification_uri:
- description: URL to direct the human to.
- title: Verification Uri
- type: string
- verification_uri_complete:
- description: "Convenience: same as `verification_uri` but with the user_code\
- \ pre-baked so the human doesn't have to type it. RFC 8628 idiom."
- title: Verification Uri Complete
- type: string
- required:
- - claim_attempt_token
- - expires_at
- - user_code
- - verification_uri
- - verification_uri_complete
- title: ClaimInitResponse
- ClaimMetadata:
- description: |-
- Hints the agent's UI/CLI can use when initiating the claim
- ceremony. Decoupled from the `claim_token` itself so future
- additions don't change the token's shape.
- example:
- claim_endpoint: claim_endpoint
- supported_email_hints: true
- properties:
- claim_endpoint:
- title: Claim Endpoint
- type: string
- supported_email_hints:
- default: true
- title: Supported Email Hints
- type: boolean
- required:
- - claim_endpoint
- title: ClaimMetadata
- ClientRegistrationOut:
- additionalProperties: true
- example:
- client_id: client_id
- client_id_issued_at: 0
- client_name: client_name
- grant_types:
- - grant_types
- - grant_types
- redirect_uris:
- - redirect_uris
- - redirect_uris
- response_types:
- - response_types
- - response_types
- scope: scope
- token_endpoint_auth_method: token_endpoint_auth_method
- properties:
- client_id:
- title: Client Id
- type: string
- client_id_issued_at:
- title: Client Id Issued At
- type: integer
- client_name:
- title: Client Name
- type: string
- grant_types:
- items:
- type: string
- title: Grant Types
- type: array
- default: null
- redirect_uris:
- items:
- type: string
- title: Redirect Uris
- type: array
- default: null
- response_types:
- items:
- type: string
- title: Response Types
- type: array
- default: null
- scope:
- title: Scope
- type: string
- token_endpoint_auth_method:
- title: Token Endpoint Auth Method
- type: string
- required:
- - client_id
- - client_id_issued_at
- - client_name
- - grant_types
- - redirect_uris
- - response_types
- - scope
- - token_endpoint_auth_method
- title: ClientRegistrationOut
- CompileDiagnosticOut:
- additionalProperties: true
- example:
- category: category
- file: file
- line: 0
- message: message
- severity: severity
- suggestion: suggestion
- properties:
- category:
- nullable: true
- type: string
- file:
- nullable: true
- type: string
- line:
- nullable: true
- type: integer
- message:
- title: Message
- type: string
- severity:
- title: Severity
- type: string
- suggestion:
- nullable: true
- type: string
- required:
- - message
- - severity
- title: CompileDiagnosticOut
- CompileJobIn:
- example:
- options:
- engine: engine
- entrypoint: entrypoint
- wait: false
- task: latex.compile
- properties:
- options:
- $ref: "#/components/schemas/CompileOptions"
- task:
- default: latex.compile
- title: Task
- type: string
- title: CompileJobIn
- CompileJobListOut:
- example:
- items:
- - cache_hit: true
- diagnostics:
- - category: category
- file: file
- line: 0
- message: message
- severity: severity
- suggestion: suggestion
- - category: category
- file: file
- line: 0
- message: message
- severity: severity
- suggestion: suggestion
- duration_ms: 6
- engine: engine
- job_id: job_id
- logs_url: logs_url
- output:
- key: ""
- status: status
- task: task
- - cache_hit: true
- diagnostics:
- - category: category
- file: file
- line: 0
- message: message
- severity: severity
- suggestion: suggestion
- - category: category
- file: file
- line: 0
- message: message
- severity: severity
- suggestion: suggestion
- duration_ms: 6
- engine: engine
- job_id: job_id
- logs_url: logs_url
- output:
- key: ""
- status: status
- task: task
- jobs:
- - cache_hit: true
- diagnostics:
- - category: category
- file: file
- line: 0
- message: message
- severity: severity
- suggestion: suggestion
- - category: category
- file: file
- line: 0
- message: message
- severity: severity
- suggestion: suggestion
- duration_ms: 6
- engine: engine
- job_id: job_id
- logs_url: logs_url
- output:
- key: ""
- status: status
- task: task
- - cache_hit: true
- diagnostics:
- - category: category
- file: file
- line: 0
- message: message
- severity: severity
- suggestion: suggestion
- - category: category
- file: file
- line: 0
- message: message
- severity: severity
- suggestion: suggestion
- duration_ms: 6
- engine: engine
- job_id: job_id
- logs_url: logs_url
- output:
- key: ""
- status: status
- task: task
- next_cursor: next_cursor
- properties:
- items:
- items:
- $ref: "#/components/schemas/CompileJobOut"
- title: Items
- type: array
- default: null
- jobs:
- deprecated: true
- description: Deprecated same-value alias for `items`; retained for compatibility.
- items:
- $ref: "#/components/schemas/CompileJobOut"
- title: Jobs
- type: array
- default: null
- next_cursor:
- description: "Opaque continuation token, or null when the listing is complete."
- nullable: true
- type: string
- required:
- - items
- - jobs
- title: CompileJobListOut
- CompileJobOut:
- additionalProperties: {}
- example:
- cache_hit: true
- diagnostics:
- - category: category
- file: file
- line: 0
- message: message
- severity: severity
- suggestion: suggestion
- - category: category
- file: file
- line: 0
- message: message
- severity: severity
- suggestion: suggestion
- duration_ms: 6
- engine: engine
- job_id: job_id
- logs_url: logs_url
- output:
- key: ""
- status: status
- task: task
- properties:
- cache_hit:
- title: Cache Hit
- type: boolean
- diagnostics:
- items:
- $ref: "#/components/schemas/CompileDiagnosticOut"
- title: Diagnostics
- type: array
- default: null
- duration_ms:
- nullable: true
- type: integer
- engine:
- title: Engine
- type: string
- job_id:
- title: Job Id
- type: string
- logs_url:
- nullable: true
- type: string
- output:
- additionalProperties: true
- nullable: true
- type: object
- status:
- title: Status
- type: string
- task:
- title: Task
- type: string
- required:
- - cache_hit
- - engine
- - job_id
- - status
- - task
- title: CompileJobOut
- CompileOptions:
- example:
- engine: engine
- entrypoint: entrypoint
- wait: false
- properties:
- engine:
- nullable: true
- type: string
- entrypoint:
- nullable: true
- type: string
- wait:
- default: false
- title: Wait
- type: boolean
- title: CompileOptions
- CompileProjectOut:
- example:
- auto_compile: true
- engine: engine
- entrypoint: entrypoint
- fld_id: fld_id
- properties:
- auto_compile:
- title: Auto Compile
- type: boolean
- engine:
- title: Engine
- type: string
- entrypoint:
- title: Entrypoint
- type: string
- fld_id:
- title: Fld Id
- type: string
- required:
- - auto_compile
- - engine
- - entrypoint
- - fld_id
- title: CompileProjectOut
- CopyIn:
- description: "POST /v0/artifacts/{art_id}/copy body — duplicate to new path."
- example:
- from_generation: 0
- path: path
- source: ""
- properties:
- from_generation:
- nullable: true
- type: integer
- path:
- title: Path
- type: string
- source:
- allOf:
- - $ref: "#/components/schemas/ArtifactSource"
- nullable: true
- required:
- - path
- title: CopyIn
- DatasetDescriptionOut:
- example:
- columns:
- - name: name
- type: type
- - name: name
- type: type
- dataset: dataset
- properties:
- columns:
- items:
- $ref: "#/components/schemas/QueryColumnOut"
- title: Columns
- type: array
- default: null
- dataset:
- title: Dataset
- type: string
- required:
- - columns
- - dataset
- title: DatasetDescriptionOut
- DescribeIn:
- example:
- dataset: dataset
- properties:
- dataset:
- title: Dataset
- type: string
- required:
- - dataset
- title: DescribeIn
- DownloadUrlOut:
- description: |-
- A URL the caller can GET to fetch the artifact's bytes.
-
- `direct=True` ⇒ a short-lived signed GCS URL on `storage.googleapis.com`
- (client downloads straight from GCS; `expires_at` is set). `direct=False`
- ⇒ the proxy `/download` endpoint on the API host (no expiry) — returned for
- sub-threshold artifacts or when signing is unavailable. The URL is opaque:
- callers should not parse it. See large-download-design.md §5.1.
- example:
- content_type: content_type
- direct: true
- download_url: download_url
- expires_at: 2000-01-23T04:56:07.000+00:00
- filename: filename
- size_bytes: 0
- properties:
- content_type:
- title: Content Type
- type: string
- direct:
- title: Direct
- type: boolean
- download_url:
- title: Download Url
- type: string
- expires_at:
- format: date-time
- nullable: true
- type: string
- filename:
- title: Filename
- type: string
- size_bytes:
- title: Size Bytes
- type: integer
- required:
- - content_type
- - direct
- - download_url
- - filename
- - size_bytes
- title: DownloadUrlOut
- DriveApiKeyCreateIn:
- description: |-
- `POST /v0/drives/{id}/keys` body — a required human label (a name for
- the key, e.g. the agent/integration it's for).
- example:
- label: label
- properties:
- label:
- maxLength: 80
- minLength: 1
- title: Label
- type: string
- required:
- - label
- title: DriveApiKeyCreateIn
- DriveApiKeyCreateOut:
- description: |-
- `POST /v0/drives/{id}/keys` response — the new key's metadata PLUS the
- raw `ad_live_` value, returned **once**. Store `api_key` now; only its hash
- is persisted.
- example:
- api_key: api_key
- created_at: 2000-01-23T04:56:07.000+00:00
- id: id
- label: label
- prefix: prefix
- properties:
- api_key:
- title: Api Key
- type: string
- created_at:
- format: date-time
- title: Created At
- type: string
- id:
- title: Id
- type: string
- label:
- nullable: true
- type: string
- prefix:
- title: Prefix
- type: string
- required:
- - api_key
- - created_at
- - id
- - prefix
- title: DriveApiKeyCreateOut
- DriveApiKeyListOut:
- description: |-
- `GET /v0/drives/{id}/keys` response — the drive's keys, oldest first
- (keyset order, design §3), including recently-revoked rows (filter on
- `revoked_at` for live only).
-
- `items` is the canonical list field (B-3: one envelope key everywhere);
- `keys` is a deprecated same-value alias kept for one release — the REST
- twin of the grep `matches` / compile `jobs` aliases.
- example:
- items:
- - created_at: 2000-01-23T04:56:07.000+00:00
- id: id
- label: label
- last_used_at: 2000-01-23T04:56:07.000+00:00
- prefix: prefix
- revoked_at: 2000-01-23T04:56:07.000+00:00
- - created_at: 2000-01-23T04:56:07.000+00:00
- id: id
- label: label
- last_used_at: 2000-01-23T04:56:07.000+00:00
- prefix: prefix
- revoked_at: 2000-01-23T04:56:07.000+00:00
- keys:
- - created_at: 2000-01-23T04:56:07.000+00:00
- id: id
- label: label
- last_used_at: 2000-01-23T04:56:07.000+00:00
- prefix: prefix
- revoked_at: 2000-01-23T04:56:07.000+00:00
- - created_at: 2000-01-23T04:56:07.000+00:00
- id: id
- label: label
- last_used_at: 2000-01-23T04:56:07.000+00:00
- prefix: prefix
- revoked_at: 2000-01-23T04:56:07.000+00:00
- next_cursor: next_cursor
- properties:
- items:
- items:
- $ref: "#/components/schemas/DriveApiKeyOut"
- title: Items
- type: array
- default: null
- keys:
- items:
- $ref: "#/components/schemas/DriveApiKeyOut"
- title: Keys
- type: array
- default: null
- next_cursor:
- nullable: true
- type: string
- required:
- - items
- - keys
- title: DriveApiKeyListOut
- DriveApiKeyOut:
- description: |-
- One per-drive `ad_live_` key — metadata only (never the raw key or hash).
- Item shape for `GET /v0/drives/{id}/keys`.
- example:
- created_at: 2000-01-23T04:56:07.000+00:00
- id: id
- label: label
- last_used_at: 2000-01-23T04:56:07.000+00:00
- prefix: prefix
- revoked_at: 2000-01-23T04:56:07.000+00:00
- properties:
- created_at:
- format: date-time
- title: Created At
- type: string
- id:
- title: Id
- type: string
- label:
- nullable: true
- type: string
- last_used_at:
- format: date-time
- nullable: true
- type: string
- prefix:
- title: Prefix
- type: string
- revoked_at:
- format: date-time
- nullable: true
- type: string
- required:
- - created_at
- - id
- - prefix
- title: DriveApiKeyOut
- DriveCreateIn:
- description: |-
- POST /v0/drives body. `name` is the user-facing drive label; the
- creator becomes the owner.
- example:
- name: name
- properties:
- name:
- maxLength: 120
- minLength: 1
- title: Name
- type: string
- required:
- - name
- title: DriveCreateIn
- DriveCreateOut:
- description: |-
- The create response — the ONLY place (besides key-rotate) a raw
- `ad_live_` key is returned, reveal-once.
- example:
- api_key: api_key
- created_at: 2000-01-23T04:56:07.000+00:00
- id: id
- name: name
- organization_id: organization_id
- owner_email: owner_email
- owner_user_id: owner_user_id
- storage_bytes: 0
- properties:
- api_key:
- title: Api Key
- type: string
- created_at:
- format: date-time
- title: Created At
- type: string
- id:
- title: Id
- type: string
- name:
- title: Name
- type: string
- organization_id:
- title: Organization Id
- type: string
- owner_email:
- nullable: true
- type: string
- owner_user_id:
- nullable: true
- type: string
- storage_bytes:
- title: Storage Bytes
- type: integer
- required:
- - api_key
- - created_at
- - id
- - name
- - organization_id
- - storage_bytes
- title: DriveCreateOut
- DriveDeleteOut:
- description: |-
- DELETE /v0/drives/{drive_id} response — the drive soft-delete receipt.
- Reversible until the GC cron hard-deletes at `purge_at`; `restore_url`
- points at the drive restore endpoint (deletion-design.md §5.2).
- example:
- deleted_at: 2000-01-23T04:56:07.000+00:00
- id: id
- ok: true
- purge_at: 2000-01-23T04:56:07.000+00:00
- restore_url: restore_url
- properties:
- deleted_at:
- format: date-time
- title: Deleted At
- type: string
- id:
- title: Id
- type: string
- ok:
- default: true
- title: Ok
- type: boolean
- purge_at:
- format: date-time
- title: Purge At
- type: string
- restore_url:
- nullable: true
- type: string
- required:
- - deleted_at
- - id
- - purge_at
- title: DriveDeleteOut
- DriveList:
- example:
- items:
- - created_at: 2000-01-23T04:56:07.000+00:00
- id: id
- name: name
- organization_id: organization_id
- owner_email: owner_email
- owner_user_id: owner_user_id
- storage_bytes: 0
- - created_at: 2000-01-23T04:56:07.000+00:00
- id: id
- name: name
- organization_id: organization_id
- owner_email: owner_email
- owner_user_id: owner_user_id
- storage_bytes: 0
- next_cursor: next_cursor
- properties:
- items:
- items:
- $ref: "#/components/schemas/DriveOut"
- title: Items
- type: array
- default: null
- next_cursor:
- nullable: true
- type: string
- required:
- - items
- title: DriveList
- DriveOut:
- description: |-
- One drive in a listing — metadata only (workspaces-design §4.2).
- Carries NO capability and NEVER a raw key. An admin's inventory and a
- member's owned list both serialize to this shape; `owner_email` is the
- only owner-identifying field surfaced.
- example:
- created_at: 2000-01-23T04:56:07.000+00:00
- id: id
- name: name
- organization_id: organization_id
- owner_email: owner_email
- owner_user_id: owner_user_id
- storage_bytes: 0
- properties:
- created_at:
- format: date-time
- title: Created At
- type: string
- id:
- title: Id
- type: string
- name:
- title: Name
- type: string
- organization_id:
- title: Organization Id
- type: string
- owner_email:
- nullable: true
- type: string
- owner_user_id:
- nullable: true
- type: string
- storage_bytes:
- title: Storage Bytes
- type: integer
- required:
- - created_at
- - id
- - name
- - organization_id
- - storage_bytes
- title: DriveOut
- DriveReadOut:
- description: Drive singleton shape returned by both data-plane read routes.
- example:
- created_at: 2000-01-23T04:56:07.000+00:00
- email: email
- etag: etag
- id: id
- metageneration: 0
- organization_id: organization_id
- storage_bytes: 6
- storage_limit: 1
- properties:
- created_at:
- format: date-time
- title: Created At
- type: string
- email:
- nullable: true
- type: string
- etag:
- title: Etag
- type: string
- id:
- title: Id
- type: string
- metageneration:
- title: Metageneration
- type: integer
- organization_id:
- title: Organization Id
- type: string
- storage_bytes:
- title: Storage Bytes
- type: integer
- storage_limit:
- title: Storage Limit
- type: integer
- required:
- - created_at
- - etag
- - id
- - metageneration
- - organization_id
- - storage_bytes
- - storage_limit
- title: DriveReadOut
- DriveRenameIn:
- description: "PATCH /v0/drives/{id} body — rename a drive the caller owns."
- example:
- name: name
- properties:
- name:
- maxLength: 120
- minLength: 1
- title: Name
- type: string
- required:
- - name
- title: DriveRenameIn
- DriveRestoreOut:
- example:
- id: id
- rebased_artifact_count: 0
- restored_at: 2000-01-23T04:56:07.000+00:00
- properties:
- id:
- title: Id
- type: string
- rebased_artifact_count:
- title: Rebased Artifact Count
- type: integer
- restored_at:
- format: date-time
- title: Restored At
- type: string
- required:
- - id
- - rebased_artifact_count
- - restored_at
- title: DriveRestoreOut
- DriveUsageOut:
- example:
- account_footprint:
- as_of: 2000-01-23
- live_bytes: 0
- total_bytes: 6
- trash_bytes: 1
- version_bytes: 5
- egress_bytes:
- limit: 5
- used: 2
- footprint:
- as_of: 2000-01-23
- live_bytes: 0
- total_bytes: 6
- trash_bytes: 1
- version_bytes: 5
- indexed_bytes:
- limit: 5
- used: 2
- indexing_ops:
- limit: 5
- used: 2
- ops_this_month:
- reads: 7
- writes: 9
- period:
- ends: 2000-01-23T04:56:07.000+00:00
- starts: 2000-01-23T04:56:07.000+00:00
- year_month: year_month
- retrieval_queries:
- limit: 5
- used: 2
- storage:
- limit: 5
- used: 2
- storage_breakdown: ""
- tokens_this_month:
- embed: 3
- llm_cached: 2
- llm_input: 4
- llm_output: 7
- version_retention:
- versions_max: 1
- writes_this_hour:
- limit: 1
- reset_at: 2000-01-23T04:56:07.000+00:00
- used: 1
- properties:
- account_footprint:
- $ref: "#/components/schemas/StorageFootprintOut"
- egress_bytes:
- $ref: "#/components/schemas/UsageCounterOut"
- footprint:
- $ref: "#/components/schemas/StorageFootprintOut"
- indexed_bytes:
- $ref: "#/components/schemas/UsageCounterOut"
- indexing_ops:
- $ref: "#/components/schemas/UsageCounterOut"
- ops_this_month:
- $ref: "#/components/schemas/OperationUsageOut"
- period:
- $ref: "#/components/schemas/UsagePeriodOut"
- retrieval_queries:
- $ref: "#/components/schemas/UsageCounterOut"
- storage:
- $ref: "#/components/schemas/UsageCounterOut"
- storage_breakdown:
- allOf:
- - $ref: "#/components/schemas/StorageBreakdownOut"
- nullable: true
- tokens_this_month:
- $ref: "#/components/schemas/TokenUsageOut"
- version_retention:
- $ref: "#/components/schemas/VersionRetentionOut"
- writes_this_hour:
- $ref: "#/components/schemas/HourlyUsageCounterOut"
- required:
- - account_footprint
- - egress_bytes
- - footprint
- - indexed_bytes
- - indexing_ops
- - ops_this_month
- - period
- - retrieval_queries
- - storage
- - tokens_this_month
- - version_retention
- - writes_this_hour
- title: DriveUsageOut
- ErrorBody:
- additionalProperties: true
- description: |-
- Machine-readable API error.
-
- Error-code-specific context (for example `limit`, `current_etag`, or
- `retry_after_s`) is intentionally additive.
- example:
- code: code
- message: message
- properties:
- code:
- title: Code
- type: string
- message:
- title: Message
- type: string
- required:
- - code
- - message
- title: ErrorBody
- ErrorDetail:
- additionalProperties: true
- example:
- error:
- code: code
- message: message
- properties:
- error:
- $ref: "#/components/schemas/ErrorBody"
- required:
- - error
- title: ErrorDetail
- ErrorResponse:
- additionalProperties: true
- description: Canonical non-validation error envelope emitted by AgentDrive.
- example:
- detail:
- error:
- code: code
- message: message
- properties:
- detail:
- $ref: "#/components/schemas/ErrorDetail"
- required:
- - detail
- title: ErrorResponse
- EventOut:
- example:
- action: action
- actor_name: actor_name
- art_id: art_id
- created_at: 2000-01-23T04:56:07.000+00:00
- drive_id: drive_id
- id: id
- metadata:
- key: ""
- properties:
- action:
- title: Action
- type: string
- actor_name:
- maxLength: 64
- nullable: true
- type: string
- art_id:
- nullable: true
- type: string
- created_at:
- format: date-time
- title: Created At
- type: string
- drive_id:
- title: Drive Id
- type: string
- id:
- title: Id
- type: string
- metadata:
- additionalProperties: true
- title: Metadata
- type: object
- required:
- - action
- - created_at
- - drive_id
- - id
- title: EventOut
- EventPage:
- example:
- items:
- - action: action
- actor_name: actor_name
- art_id: art_id
- created_at: 2000-01-23T04:56:07.000+00:00
- drive_id: drive_id
- id: id
- metadata:
- key: ""
- - action: action
- actor_name: actor_name
- art_id: art_id
- created_at: 2000-01-23T04:56:07.000+00:00
- drive_id: drive_id
- id: id
- metadata:
- key: ""
- next_cursor: next_cursor
- properties:
- items:
- items:
- $ref: "#/components/schemas/EventOut"
- title: Items
- type: array
- default: null
- next_cursor:
- nullable: true
- type: string
- required:
- - items
- title: EventPage
- ExtensionExchangeRequest:
- description: |-
- Single-use ticket → JWT pair. Called by `auth-complete.html`
- inside the SnipIt extension. No `Authorization` header — the
- ticket itself is the credential.
- example:
- ext_id: ext_id
- ticket: ticket
- properties:
- ext_id:
- description: The extension's ID (Chrome Web Store ID or unpacked dev ID).
- title: Ext Id
- type: string
- ticket:
- description: The opaque ticket from the /auth/callback handoff.
- title: Ticket
- type: string
- required:
- - ext_id
- - ticket
- title: ExtensionExchangeRequest
- ExtensionExchangeResponse:
- example:
- access_token: access_token
- drive_id: drive_id
- expires_in: 0
- identity_assertion: identity_assertion
- scope: extension
- token_type: Bearer
- properties:
- access_token:
- description: 15-minute access_token (scope=extension).
- title: Access Token
- type: string
- drive_id:
- description: The drive these credentials are scoped to.
- title: Drive Id
- type: string
- expires_in:
- description: Seconds until access_token expiry.
- title: Expires In
- type: integer
- identity_assertion:
- description: 90-day identity_assertion. Refresh via POST /oauth2/token.
- title: Identity Assertion
- type: string
- scope:
- default: extension
- enum:
- - extension
- title: Scope
- type: string
- token_type:
- default: Bearer
- title: Token Type
- type: string
- required:
- - access_token
- - drive_id
- - expires_in
- - identity_assertion
- title: ExtensionExchangeResponse
- FeedbackCreateOut:
- example:
- contact: true
- id: id
- note: note
- status: status
- properties:
- contact:
- title: Contact
- type: boolean
- id:
- title: Id
- type: string
- note:
- nullable: true
- type: string
- status:
- title: Status
- type: string
- required:
- - contact
- - id
- - status
- title: FeedbackCreateOut
- FeedbackStatusOut:
- description: |-
- GET /v0/feedback/{fbk_id} response — lifecycle status of feedback THIS
- drive filed.
- example:
- contact: true
- created_at: 2000-01-23T04:56:07.000+00:00
- duplicate_of: duplicate_of
- id: id
- kind: kind
- status: status
- status_changed_at: 2000-01-23T04:56:07.000+00:00
- title: title
- properties:
- contact:
- title: Contact
- type: boolean
- created_at:
- format: date-time
- title: Created At
- type: string
- duplicate_of:
- nullable: true
- type: string
- id:
- title: Id
- type: string
- kind:
- title: Kind
- type: string
- status:
- title: Status
- type: string
- status_changed_at:
- format: date-time
- title: Status Changed At
- type: string
- title:
- title: Title
- type: string
- required:
- - contact
- - created_at
- - id
- - kind
- - status
- - status_changed_at
- - title
- title: FeedbackStatusOut
- FindHitOut:
- description: |-
- One passage-level hit from `/v0/find` (hybrid chunk RAG over
- `embed_chunks`). The unit is a passage, not a file — consecutive
- `ord` values from the same `art_id` are normal because chunks
- overlap by ~400 tokens. Span fields are modality-aware: only the
- pair matching `modality` is populated, the others stay None.
- example:
- art_id: art_id
- char_end: 0
- char_start: 6
- content_type: content_type
- drive_id: drive_id
- file_type: file_type
- labels:
- - labels
- - labels
- modality: text
- ord: 1
- page_end: 5
- page_start: 5
- path: path
- rank_lexical: 2
- rank_semantic: 7
- score: 9.301444243932576
- snippet: snippet
- text: text
- time_end_ms: 3
- time_start_ms: 2
- updated_at: 2000-01-23T04:56:07.000+00:00
- url: url
- version_number: 4
- properties:
- art_id:
- title: Art Id
- type: string
- char_end:
- nullable: true
- type: integer
- char_start:
- nullable: true
- type: integer
- content_type:
- title: Content Type
- type: string
- drive_id:
- title: Drive Id
- type: string
- file_type:
- title: File Type
- type: string
- labels:
- items:
- type: string
- title: Labels
- type: array
- default: null
- modality:
- enum:
- - text
- - code
- - pdf
- - image
- - audio
- - video
- title: Modality
- type: string
- ord:
- title: Ord
- type: integer
- page_end:
- nullable: true
- type: integer
- page_start:
- nullable: true
- type: integer
- path:
- title: Path
- type: string
- rank_lexical:
- nullable: true
- type: integer
- rank_semantic:
- nullable: true
- type: integer
- score:
- title: Score
- type: number
- snippet:
- title: Snippet
- type: string
- text:
- title: Text
- type: string
- time_end_ms:
- nullable: true
- type: integer
- time_start_ms:
- nullable: true
- type: integer
- updated_at:
- format: date-time
- title: Updated At
- type: string
- url:
- title: Url
- type: string
- version_number:
- title: Version Number
- type: integer
- required:
- - art_id
- - content_type
- - drive_id
- - file_type
- - modality
- - ord
- - path
- - score
- - snippet
- - text
- - updated_at
- - url
- - version_number
- title: FindHitOut
- FindPage:
- description: |-
- `/v0/find` response — single-shot top-N, deliberately unpaginated
- (same contract + rationale as `SearchPage`).
- example:
- items:
- - art_id: art_id
- char_end: 0
- char_start: 6
- content_type: content_type
- drive_id: drive_id
- file_type: file_type
- labels:
- - labels
- - labels
- modality: text
- ord: 1
- page_end: 5
- page_start: 5
- path: path
- rank_lexical: 2
- rank_semantic: 7
- score: 9.301444243932576
- snippet: snippet
- text: text
- time_end_ms: 3
- time_start_ms: 2
- updated_at: 2000-01-23T04:56:07.000+00:00
- url: url
- version_number: 4
- - art_id: art_id
- char_end: 0
- char_start: 6
- content_type: content_type
- drive_id: drive_id
- file_type: file_type
- labels:
- - labels
- - labels
- modality: text
- ord: 1
- page_end: 5
- page_start: 5
- path: path
- rank_lexical: 2
- rank_semantic: 7
- score: 9.301444243932576
- snippet: snippet
- text: text
- time_end_ms: 3
- time_start_ms: 2
- updated_at: 2000-01-23T04:56:07.000+00:00
- url: url
- version_number: 4
- properties:
- items:
- items:
- $ref: "#/components/schemas/FindHitOut"
- title: Items
- type: array
- default: null
- required:
- - items
- title: FindPage
- FolderCopyIn:
- description: |-
- POST /v0/folders/{fld_id}/copy body — duplicate the subtree to a
- new path. `path` is the target folder path (canonical, trailing
- slash). Its own schema (vs. reusing `FolderMoveIn`) keeps the copy
- surface self-documenting in the OpenAPI spec.
- example:
- from_metageneration: 0
- path: path
- properties:
- from_metageneration:
- nullable: true
- type: integer
- path:
- title: Path
- type: string
- required:
- - path
- title: FolderCopyIn
- FolderCopyOut:
- description: |-
- POST /v0/folders/{fld_id}/copy response — the newly-created folder
- resource (same shape as `FolderOut`) plus copy-provenance fields:
- `from_fld_id` is the source folder and `n_artifacts_copied` is the
- number of descendant artifacts cloned into the new subtree. Mirrors
- the MCP `copy` folder route's conceptual shape.
- example:
- created_at: 2000-01-23T04:56:07.000+00:00
- deleted_at: 2000-01-23T04:56:07.000+00:00
- description: description
- drive_id: drive_id
- etag: etag
- from_fld_id: from_fld_id
- id: id
- inherit_grants: true
- metageneration: 0
- n_artifacts_copied: 6
- path: path
- purge_at: 2000-01-23T04:56:07.000+00:00
- updated_at: 2000-01-23T04:56:07.000+00:00
- properties:
- created_at:
- format: date-time
- title: Created At
- type: string
- deleted_at:
- format: date-time
- nullable: true
- type: string
- description:
- nullable: true
- type: string
- drive_id:
- title: Drive Id
- type: string
- etag:
- title: Etag
- type: string
- from_fld_id:
- title: From Fld Id
- type: string
- id:
- title: Id
- type: string
- inherit_grants:
- default: true
- title: Inherit Grants
- type: boolean
- metageneration:
- default: 1
- title: Metageneration
- type: integer
- n_artifacts_copied:
- title: N Artifacts Copied
- type: integer
- path:
- title: Path
- type: string
- purge_at:
- format: date-time
- nullable: true
- type: string
- updated_at:
- format: date-time
- title: Updated At
- type: string
- required:
- - created_at
- - drive_id
- - etag
- - from_fld_id
- - id
- - n_artifacts_copied
- - path
- - updated_at
- title: FolderCopyOut
- FolderCreateIn:
- description: |-
- PUT /v0/folders/{path} body for the optional metadata params.
- Empty body is fine — `mkdir` with no description just creates the
- folder row.
- example:
- description: description
- properties:
- description:
- nullable: true
- type: string
- title: FolderCreateIn
- FolderDeleteOut:
- description: |-
- DELETE response — surfaces cascade counts so the caller can
- confirm scope of an rmdir before the client retries with
- `?recursive=true`.
- example:
- deleted_at: 2000-01-23T04:56:07.000+00:00
- id: id
- n_artifacts_deleted: 0
- n_subfolders_deleted: 6
- ok: true
- path: path
- purge_at: 2000-01-23T04:56:07.000+00:00
- retention_days: 1
- properties:
- deleted_at:
- format: date-time
- title: Deleted At
- type: string
- id:
- title: Id
- type: string
- n_artifacts_deleted:
- title: N Artifacts Deleted
- type: integer
- n_subfolders_deleted:
- title: N Subfolders Deleted
- type: integer
- ok:
- default: true
- title: Ok
- type: boolean
- path:
- title: Path
- type: string
- purge_at:
- format: date-time
- title: Purge At
- type: string
- retention_days:
- title: Retention Days
- type: integer
- required:
- - deleted_at
- - id
- - n_artifacts_deleted
- - n_subfolders_deleted
- - path
- - purge_at
- - retention_days
- title: FolderDeleteOut
- FolderMoveIn:
- description: "POST /v0/folders/{fld_id}/move body — rename / move."
- example:
- path: path
- properties:
- path:
- title: Path
- type: string
- required:
- - path
- title: FolderMoveIn
- FolderOut:
- description: |-
- Folder resource (folders+permalinks design §13). `path` is the
- canonical leading+trailing-slash form. Access is expressed through
- grants (permission-sharing-design §4.4), not a folder-level flag.
- example:
- created_at: 2000-01-23T04:56:07.000+00:00
- deleted_at: 2000-01-23T04:56:07.000+00:00
- description: description
- drive_id: drive_id
- etag: etag
- id: id
- inherit_grants: true
- metageneration: 0
- path: path
- purge_at: 2000-01-23T04:56:07.000+00:00
- updated_at: 2000-01-23T04:56:07.000+00:00
- properties:
- created_at:
- format: date-time
- title: Created At
- type: string
- deleted_at:
- format: date-time
- nullable: true
- type: string
- description:
- nullable: true
- type: string
- drive_id:
- title: Drive Id
- type: string
- etag:
- title: Etag
- type: string
- id:
- title: Id
- type: string
- inherit_grants:
- default: true
- title: Inherit Grants
- type: boolean
- metageneration:
- default: 1
- title: Metageneration
- type: integer
- path:
- title: Path
- type: string
- purge_at:
- format: date-time
- nullable: true
- type: string
- updated_at:
- format: date-time
- title: Updated At
- type: string
- required:
- - created_at
- - drive_id
- - etag
- - id
- - path
- - updated_at
- title: FolderOut
- FolderPatchIn:
- description: |-
- PATCH /v0/folders/{fld_id} body — partial update. Field absence =
- unchanged. `description`: explicit null = clear. `inherit_grants`:
- non-nullable — null/absent = unchanged (it cannot be cleared, only
- flipped true/false).
- example:
- description: description
- inherit_grants: true
- properties:
- description:
- nullable: true
- type: string
- inherit_grants:
- nullable: true
- type: boolean
- title: FolderPatchIn
- FolderRestoreOut:
- description: |-
- POST /v0/folders/{fld_id}/restore response — the restored (live)
- folder resource (same shape as `FolderOut`) plus the cascade counts
- from `core.folders.restore_cascade` (dashboard-file-operations-design
- §4.5), so the caller can confirm the scope of what came back with
- the root.
- example:
- created_at: 2000-01-23T04:56:07.000+00:00
- deleted_at: 2000-01-23T04:56:07.000+00:00
- description: description
- drive_id: drive_id
- etag: etag
- id: id
- inherit_grants: true
- metageneration: 0
- n_artifacts_restored: 6
- n_subfolders_restored: 1
- path: path
- purge_at: 2000-01-23T04:56:07.000+00:00
- updated_at: 2000-01-23T04:56:07.000+00:00
- properties:
- created_at:
- format: date-time
- title: Created At
- type: string
- deleted_at:
- format: date-time
- nullable: true
- type: string
- description:
- nullable: true
- type: string
- drive_id:
- title: Drive Id
- type: string
- etag:
- title: Etag
- type: string
- id:
- title: Id
- type: string
- inherit_grants:
- default: true
- title: Inherit Grants
- type: boolean
- metageneration:
- default: 1
- title: Metageneration
- type: integer
- n_artifacts_restored:
- title: N Artifacts Restored
- type: integer
- n_subfolders_restored:
- title: N Subfolders Restored
- type: integer
- path:
- title: Path
- type: string
- purge_at:
- format: date-time
- nullable: true
- type: string
- updated_at:
- format: date-time
- title: Updated At
- type: string
- required:
- - created_at
- - drive_id
- - etag
- - id
- - n_artifacts_restored
- - n_subfolders_restored
- - path
- - updated_at
- title: FolderRestoreOut
- GrantCreateIn:
- description: |-
- POST /v0/grants body. `resource` is an `art_*`/`fld_*` id or a path
- (resolved within the caller's drive). `expires_in` is seconds from now
- (omit for a permanent grant).
- example:
- expires_in: 0
- principal:
- email: email
- id: id
- type: user
- resource: resource
- role: viewer
- properties:
- expires_in:
- nullable: true
- type: integer
- principal:
- $ref: "#/components/schemas/GrantPrincipalIn"
- resource:
- title: Resource
- type: string
- role:
- enum:
- - viewer
- - commenter
- - editor
- - manager
- title: Role
- type: string
- required:
- - principal
- - resource
- - role
- title: GrantCreateIn
- GrantList:
- example:
- items:
- - artifacts_affected: 0
- created_at: 2000-01-23T04:56:07.000+00:00
- expires_at: 2000-01-23T04:56:07.000+00:00
- granted_by_id: granted_by_id
- granted_by_type: granted_by_type
- id: id
- on_behalf_of: on_behalf_of
- principal_email: principal_email
- principal_id: principal_id
- principal_type: user
- resource_id: resource_id
- resource_type: artifact
- role: viewer
- - artifacts_affected: 0
- created_at: 2000-01-23T04:56:07.000+00:00
- expires_at: 2000-01-23T04:56:07.000+00:00
- granted_by_id: granted_by_id
- granted_by_type: granted_by_type
- id: id
- on_behalf_of: on_behalf_of
- principal_email: principal_email
- principal_id: principal_id
- principal_type: user
- resource_id: resource_id
- resource_type: artifact
- role: viewer
- next_cursor: next_cursor
- properties:
- items:
- items:
- $ref: "#/components/schemas/GrantOut"
- title: Items
- type: array
- default: null
- next_cursor:
- nullable: true
- type: string
- required:
- - items
- title: GrantList
- GrantOut:
- description: |-
- A live grant. Audit fields (`granted_by_*`, `on_behalf_of`) are
- surfaced so a manager can see who shared what.
- example:
- artifacts_affected: 0
- created_at: 2000-01-23T04:56:07.000+00:00
- expires_at: 2000-01-23T04:56:07.000+00:00
- granted_by_id: granted_by_id
- granted_by_type: granted_by_type
- id: id
- on_behalf_of: on_behalf_of
- principal_email: principal_email
- principal_id: principal_id
- principal_type: user
- resource_id: resource_id
- resource_type: artifact
- role: viewer
- properties:
- artifacts_affected:
- nullable: true
- type: integer
- created_at:
- format: date-time
- title: Created At
- type: string
- expires_at:
- format: date-time
- nullable: true
- type: string
- granted_by_id:
- title: Granted By Id
- type: string
- granted_by_type:
- title: Granted By Type
- type: string
- id:
- title: Id
- type: string
- on_behalf_of:
- nullable: true
- type: string
- principal_email:
- nullable: true
- type: string
- principal_id:
- nullable: true
- type: string
- principal_type:
- enum:
- - user
- - agent
- - org
- - anyone
- title: Principal Type
- type: string
- resource_id:
- title: Resource Id
- type: string
- resource_type:
- enum:
- - artifact
- - folder
- title: Resource Type
- type: string
- role:
- enum:
- - viewer
- - commenter
- - editor
- - manager
- title: Role
- type: string
- required:
- - created_at
- - granted_by_id
- - granted_by_type
- - id
- - principal_type
- - resource_id
- - resource_type
- - role
- title: GrantOut
- GrantPatchIn:
- description: |-
- PATCH /v0/grants/{grn_id} body. Field absence = unchanged; explicit
- `expires_in: null` clears the expiry (makes the grant permanent).
- example:
- expires_in: 0
- role: viewer
- properties:
- expires_in:
- nullable: true
- type: integer
- role:
- enum:
- - viewer
- - commenter
- - editor
- - manager
- nullable: true
- type: string
- title: GrantPatchIn
- GrantPrincipalIn:
- description: |-
- Who a grant is for. `anyone` carries no id/email; `org`/`agent`
- require `id`; `user` requires exactly one of `id` / `email` (an email
- with no account becomes a pending-email invite resolved on sign-in).
- example:
- email: email
- id: id
- type: user
- properties:
- email:
- maxLength: 320
- nullable: true
- type: string
- id:
- maxLength: 128
- nullable: true
- type: string
- type:
- enum:
- - user
- - agent
- - org
- - anyone
- title: Type
- type: string
- required:
- - type
- title: GrantPrincipalIn
- HealthDegradedDetail:
- example:
- error: error
- status: degraded
- properties:
- error:
- title: Error
- type: string
- status:
- enum:
- - degraded
- title: Status
- type: string
- required:
- - error
- - status
- title: HealthDegradedDetail
- HealthDegradedResponse:
- description: |-
- Legacy health-probe failure shape.
-
- Health predates the `/v0` error envelope and is consumed by load
- balancers. PR 1 documents the wire shape without changing it; convergence
- on the canonical API envelope is a separately reviewed compatibility
- decision.
- example:
- detail:
- error: error
- status: degraded
- properties:
- detail:
- $ref: "#/components/schemas/HealthDegradedDetail"
- required:
- - detail
- title: HealthDegradedResponse
- HealthOut:
- example:
- status: ok
- properties:
- status:
- enum:
- - ok
- title: Status
- type: string
- required:
- - status
- title: HealthOut
- HourlyUsageCounterOut:
- example:
- limit: 1
- reset_at: 2000-01-23T04:56:07.000+00:00
- used: 1
- properties:
- limit:
- title: Limit
- type: integer
- reset_at:
- format: date-time
- title: Reset At
+ destination_name:
+ maxLength: 255
+ minLength: 1
+ title: Destination Name
type: string
- used:
- title: Used
- type: integer
- required:
- - limit
- - reset_at
- - used
- title: HourlyUsageCounterOut
- IdentityAssertionMetadataOut:
- additionalProperties: true
- example:
- alg: alg
- iss: iss
- version: 0
- properties:
- alg:
- title: Alg
+ destination_parent_id:
+ pattern: "^fld_[a-f0-9]{16}$"
+ title: Destination Parent Id
type: string
- iss:
- title: Iss
+ version_id:
+ nullable: true
+ pattern: "^ver_[a-f0-9]{16}$"
type: string
- version:
- title: Version
- type: integer
required:
- - alg
- - iss
- - version
- title: IdentityAssertionMetadataOut
- InvitationList:
+ - destination_name
+ - destination_parent_id
+ title: ArtifactCopyIn
+ ArtifactListOut:
example:
items:
- - created_at: 2000-01-23T04:56:07.000+00:00
- email: email
- expires_at: 2000-01-23T04:56:07.000+00:00
+ - content_preview: content_preview
+ content_type: content_type
+ created_at: 2000-01-23T04:56:07.000+00:00
+ deleted_at: 2000-01-23T04:56:07.000+00:00
+ drive_id: drive_id
+ effective_visibility: public
+ head_version_id: head_version_id
id: id
- invited_by: invited_by
- organization_id: organization_id
- role: admin
- status: pending
- - created_at: 2000-01-23T04:56:07.000+00:00
- email: email
- expires_at: 2000-01-23T04:56:07.000+00:00
+ labels:
+ - labels
+ - labels
+ metadata:
+ key: ""
+ name: name
+ parent_id: parent_id
+ revision: revision
+ state: active
+ updated_at: 2000-01-23T04:56:07.000+00:00
+ - content_preview: content_preview
+ content_type: content_type
+ created_at: 2000-01-23T04:56:07.000+00:00
+ deleted_at: 2000-01-23T04:56:07.000+00:00
+ drive_id: drive_id
+ effective_visibility: public
+ head_version_id: head_version_id
id: id
- invited_by: invited_by
- organization_id: organization_id
- role: admin
- status: pending
+ labels:
+ - labels
+ - labels
+ metadata:
+ key: ""
+ name: name
+ parent_id: parent_id
+ revision: revision
+ state: active
+ updated_at: 2000-01-23T04:56:07.000+00:00
next_cursor: next_cursor
properties:
items:
items:
- $ref: "#/components/schemas/InvitationOut"
+ $ref: "#/components/schemas/ArtifactOut"
title: Items
type: array
default: null
@@ -16288,236 +8661,357 @@ components:
type: string
required:
- items
- title: InvitationList
- InvitationOut:
- description: |-
- One workspace invitation — metadata only; the raw token is never
- surfaced over the API (it lives only in the invite email).
+ - next_cursor
+ title: ArtifactListOut
+ ArtifactOut:
example:
+ content_preview: content_preview
+ content_type: content_type
created_at: 2000-01-23T04:56:07.000+00:00
- email: email
- expires_at: 2000-01-23T04:56:07.000+00:00
+ deleted_at: 2000-01-23T04:56:07.000+00:00
+ drive_id: drive_id
+ effective_visibility: public
+ head_version_id: head_version_id
id: id
- invited_by: invited_by
- organization_id: organization_id
- role: admin
- status: pending
+ labels:
+ - labels
+ - labels
+ metadata:
+ key: ""
+ name: name
+ parent_id: parent_id
+ revision: revision
+ state: active
+ updated_at: 2000-01-23T04:56:07.000+00:00
properties:
+ content_preview:
+ nullable: true
+ type: string
+ content_type:
+ nullable: true
+ type: string
created_at:
format: date-time
title: Created At
type: string
- email:
- title: Email
- type: string
- expires_at:
+ deleted_at:
format: date-time
- title: Expires At
+ nullable: true
+ type: string
+ drive_id:
+ pattern: "^drv_[a-f0-9]{16}$"
+ title: Drive Id
+ type: string
+ effective_visibility:
+ description: "Server-computed exposure summary, resolved over the artifact's\
+ \ live grants, its folder ancestry (bounded by the nearest sealed folder),\
+ \ and the drive. 'public' when any live grant has principal_type 'public';\
+ \ otherwise 'shared' when a live grant names a principal other than the\
+ \ drive's creator; otherwise 'private'. Describes exposure, NOT the caller's\
+ \ own access."
+ enum:
+ - public
+ - shared
+ - private
+ title: Effective Visibility
+ type: string
+ head_version_id:
+ nullable: true
type: string
id:
+ pattern: "^art_[a-f0-9]{16}$"
title: Id
type: string
- invited_by:
- nullable: true
+ labels:
+ items:
+ type: string
+ title: Labels
+ type: array
+ default: null
+ metadata:
+ additionalProperties: true
+ title: Metadata
+ type: object
+ name:
+ title: Name
type: string
- organization_id:
- title: Organization Id
+ parent_id:
+ pattern: "^fld_[a-f0-9]{16}$"
+ title: Parent Id
type: string
- role:
- enum:
- - admin
- - member
- title: Role
+ revision:
+ pattern: "^rev_[a-f0-9]{16}$"
+ title: Revision
type: string
- status:
+ state:
enum:
- - pending
- - accepted
- - revoked
- - expired
- title: Status
+ - active
+ - deleted
+ title: State
+ type: string
+ updated_at:
+ format: date-time
+ title: Updated At
type: string
required:
+ - content_preview
+ - content_type
- created_at
- - email
- - expires_at
+ - deleted_at
+ - drive_id
+ - effective_visibility
+ - head_version_id
- id
- - organization_id
- - role
- - status
- title: InvitationOut
- InviteCreateOut:
+ - labels
+ - metadata
+ - name
+ - parent_id
+ - revision
+ - state
+ - updated_at
+ title: ArtifactOut
+ ArtifactUpdateIn:
+ additionalProperties: {}
description: |-
- POST /v0/members/invite response. `already_member` is True when the
- email was already a live member (no invite created — a no-op success).
- `email_delivered` is False when the invite row was created but the
- notification email failed to send — the invite is still valid and can be
- resent, but the invitee has not yet received a link.
+ PATCH /v0/drives/{id}/artifacts/{artifact_id} body — at least one
+ field is required.
example:
- already_member: false
- email_delivered: true
- invitation: ""
+ labels:
+ - labels
+ - labels
+ metadata:
+ key: ""
+ name: name
+ parent_id: parent_id
properties:
- already_member:
- default: false
- title: Already Member
- type: boolean
- email_delivered:
- default: true
- title: Email Delivered
- type: boolean
- invitation:
- allOf:
- - $ref: "#/components/schemas/InvitationOut"
+ labels:
+ items:
+ type: string
nullable: true
- title: InviteCreateOut
- JwkOut:
- additionalProperties: true
+ type: array
+ default: null
+ metadata:
+ additionalProperties: true
+ nullable: true
+ type: object
+ name:
+ maxLength: 255
+ minLength: 1
+ nullable: true
+ type: string
+ parent_id:
+ nullable: true
+ pattern: "^fld_[a-f0-9]{16}$"
+ type: string
+ title: ArtifactUpdateIn
+ ChangeActorOut:
+ example:
+ id: id
+ type: agent
+ properties:
+ id:
+ nullable: true
+ type: string
+ type:
+ enum:
+ - agent
+ - user
+ - system
+ title: Type
+ type: string
+ required:
+ - id
+ - type
+ title: ChangeActorOut
+ ChangeOut:
example:
- alg: alg
- e: e
- kid: kid
- kty: kty
- "n": "n"
- use: use
+ actor:
+ id: id
+ type: agent
+ change_set_id: change_set_id
+ data:
+ key: ""
+ drive_id: drive_id
+ id: id
+ occurred_at: 2000-01-23T04:56:07.000+00:00
+ previous_revision: previous_revision
+ resource:
+ id: id
+ type: drive
+ revision: revision
+ type: type
properties:
- alg:
- title: Alg
+ actor:
+ $ref: "#/components/schemas/ChangeActorOut"
+ change_set_id:
+ title: Change Set Id
+ type: string
+ data:
+ additionalProperties: true
+ title: Data
+ type: object
+ drive_id:
+ pattern: "^drv_[a-f0-9]{16}$"
+ title: Drive Id
type: string
- e:
- title: E
+ id:
+ pattern: "^chg_[a-f0-9]{16}$"
+ title: Id
type: string
- kid:
- title: Kid
+ occurred_at:
+ format: date-time
+ title: Occurred At
type: string
- kty:
- title: Kty
+ previous_revision:
+ nullable: true
type: string
- "n":
- title: "N"
+ resource:
+ $ref: "#/components/schemas/ChangeResourceOut"
+ revision:
+ nullable: true
type: string
- use:
- title: Use
+ type:
+ title: Type
type: string
required:
- - alg
- - e
- - kid
- - kty
- - "n"
- - use
- title: JwkOut
- JwksOut:
- additionalProperties: true
+ - actor
+ - change_set_id
+ - data
+ - drive_id
+ - id
+ - occurred_at
+ - previous_revision
+ - resource
+ - revision
+ - type
+ title: ChangeOut
+ ChangePageOut:
example:
- keys:
- - alg: alg
- e: e
- kid: kid
- kty: kty
- "n": "n"
- use: use
- - alg: alg
- e: e
- kid: kid
- kty: kty
- "n": "n"
- use: use
+ has_more: true
+ items:
+ - actor:
+ id: id
+ type: agent
+ change_set_id: change_set_id
+ data:
+ key: ""
+ drive_id: drive_id
+ id: id
+ occurred_at: 2000-01-23T04:56:07.000+00:00
+ previous_revision: previous_revision
+ resource:
+ id: id
+ type: drive
+ revision: revision
+ type: type
+ - actor:
+ id: id
+ type: agent
+ change_set_id: change_set_id
+ data:
+ key: ""
+ drive_id: drive_id
+ id: id
+ occurred_at: 2000-01-23T04:56:07.000+00:00
+ previous_revision: previous_revision
+ resource:
+ id: id
+ type: drive
+ revision: revision
+ type: type
+ next_cursor: next_cursor
properties:
- keys:
+ has_more:
+ title: Has More
+ type: boolean
+ items:
items:
- $ref: "#/components/schemas/JwkOut"
- title: Keys
+ $ref: "#/components/schemas/ChangeOut"
+ title: Items
type: array
default: null
- required:
- - keys
- title: JwksOut
- LookupValuesIn:
- example:
- column: column
- dataset: dataset
- limit: 0
- properties:
- column:
- title: Column
- type: string
- dataset:
- title: Dataset
+ next_cursor:
+ title: Next Cursor
type: string
- limit:
- default: 50
- title: Limit
- type: integer
required:
- - column
- - dataset
- title: LookupValuesIn
- LookupValuesOut:
+ - has_more
+ - items
+ - next_cursor
+ title: ChangePageOut
+ ChangeResourceOut:
example:
- column: column
- dataset: dataset
- values:
- - ""
- - ""
+ id: id
+ type: drive
properties:
- column:
- title: Column
+ id:
+ title: Id
type: string
- dataset:
- title: Dataset
+ type:
+ enum:
+ - drive
+ - folder
+ - artifact
+ title: Type
type: string
- values:
- items: {}
- title: Values
- type: array
- default: null
required:
- - column
- - dataset
- - values
- title: LookupValuesOut
- MemberInviteIn:
- description: POST /v0/members/invite body — invite a person by email.
+ - id
+ - type
+ title: ChangeResourceOut
+ DriveCreateIn:
+ additionalProperties: {}
+ description: POST /v0/drives body.
example:
- email: email
- role: member
+ metadata:
+ key: ""
+ name: name
properties:
- email:
- maxLength: 320
- minLength: 3
- title: Email
- type: string
- role:
- default: member
- enum:
- - admin
- - member
- title: Role
+ metadata:
+ additionalProperties: true
+ title: Metadata
+ type: object
+ name:
+ minLength: 1
+ title: Name
type: string
required:
- - email
- title: MemberInviteIn
- MemberList:
+ - name
+ title: DriveCreateIn
+ DriveListOut:
example:
items:
- created_at: 2000-01-23T04:56:07.000+00:00
- email: email
- first_name: first_name
- last_name: last_name
- role: admin
- user_id: user_id
+ created_by: created_by
+ deleted_at: 2000-01-23T04:56:07.000+00:00
+ id: id
+ metadata:
+ key: ""
+ name: name
+ retrieval_bytes: 0
+ revision: revision
+ root_folder_id: root_folder_id
+ state: active
+ storage_bytes: 6
+ updated_at: 2000-01-23T04:56:07.000+00:00
+ workspace_id: workspace_id
- created_at: 2000-01-23T04:56:07.000+00:00
- email: email
- first_name: first_name
- last_name: last_name
- role: admin
- user_id: user_id
+ created_by: created_by
+ deleted_at: 2000-01-23T04:56:07.000+00:00
+ id: id
+ metadata:
+ key: ""
+ name: name
+ retrieval_bytes: 0
+ revision: revision
+ root_folder_id: root_folder_id
+ state: active
+ storage_bytes: 6
+ updated_at: 2000-01-23T04:56:07.000+00:00
+ workspace_id: workspace_id
next_cursor: next_cursor
properties:
items:
items:
- $ref: "#/components/schemas/MemberOut"
+ $ref: "#/components/schemas/DriveOut"
title: Items
type: array
default: null
@@ -16526,573 +9020,447 @@ components:
type: string
required:
- items
- title: MemberList
- MemberOut:
- description: |-
- One live member of a workspace — metadata for the members page /
- `GET /v0/members`.
+ - next_cursor
+ title: DriveListOut
+ DriveOut:
example:
created_at: 2000-01-23T04:56:07.000+00:00
- email: email
- first_name: first_name
- last_name: last_name
- role: admin
- user_id: user_id
+ created_by: created_by
+ deleted_at: 2000-01-23T04:56:07.000+00:00
+ id: id
+ metadata:
+ key: ""
+ name: name
+ retrieval_bytes: 0
+ revision: revision
+ root_folder_id: root_folder_id
+ state: active
+ storage_bytes: 6
+ updated_at: 2000-01-23T04:56:07.000+00:00
+ workspace_id: workspace_id
properties:
created_at:
format: date-time
title: Created At
type: string
- email:
- title: Email
- type: string
- first_name:
+ created_by:
nullable: true
type: string
- last_name:
+ deleted_at:
+ format: date-time
nullable: true
type: string
- role:
- enum:
- - admin
- - member
- title: Role
- type: string
- user_id:
- title: User Id
- type: string
- required:
- - created_at
- - email
- - role
- - user_id
- title: MemberOut
- MemberRemoveOut:
- description: |-
- DELETE /v0/members/{user_id} response — the member-removal receipt.
- `id` is the removed user's id (replaces the ad-hoc `removed` key).
- example:
- id: id
- ok: true
- organization_id: organization_id
- properties:
id:
+ pattern: "^drv_[a-f0-9]{16}$"
title: Id
type: string
- ok:
- default: true
- title: Ok
- type: boolean
- organization_id:
- title: Organization Id
+ metadata:
+ additionalProperties: true
+ title: Metadata
+ type: object
+ name:
+ title: Name
type: string
- required:
- - id
- - organization_id
- title: MemberRemoveOut
- MemberRoleIn:
- description: "PATCH /v0/members/{user} body — promote/demote a member."
- example:
- role: admin
- properties:
- role:
+ retrieval_bytes:
+ title: Retrieval Bytes
+ type: integer
+ revision:
+ pattern: "^rev_[a-f0-9]{16}$"
+ title: Revision
+ type: string
+ root_folder_id:
+ title: Root Folder Id
+ type: string
+ state:
enum:
- - admin
- - member
- title: Role
+ - active
+ - deleted
+ title: State
+ type: string
+ storage_bytes:
+ title: Storage Bytes
+ type: integer
+ updated_at:
+ format: date-time
+ title: Updated At
+ type: string
+ workspace_id:
+ title: Workspace Id
type: string
required:
- - role
- title: MemberRoleIn
- OAuthProtocolErrorOut:
- additionalProperties: true
- description: RFC OAuth error shape used by public protocol endpoints.
+ - created_at
+ - created_by
+ - deleted_at
+ - id
+ - metadata
+ - name
+ - retrieval_bytes
+ - revision
+ - root_folder_id
+ - state
+ - storage_bytes
+ - updated_at
+ - workspace_id
+ title: DriveOut
+ DriveUpdateIn:
+ additionalProperties: {}
+ description: "PATCH /v0/drives/{id} body — at least one field is required."
example:
- error: error
- error_description: error_description
+ metadata:
+ key: ""
+ name: name
properties:
- error:
- title: Error
- type: string
- error_description:
+ metadata:
+ additionalProperties: true
+ nullable: true
+ type: object
+ name:
+ minLength: 1
nullable: true
type: string
- required:
- - error
- title: OAuthProtocolErrorOut
- OAuthRevocationOut:
- description: RFC 7009 successful revocation has an empty JSON object.
- properties: {}
- title: OAuthRevocationOut
- type: object
- OperationUsageOut:
+ title: DriveUpdateIn
+ DriveUsageOut:
example:
- reads: 7
- writes: 9
+ retrieval_bytes: 0
+ storage_bytes: 6
properties:
- reads:
- title: Reads
+ retrieval_bytes:
+ title: Retrieval Bytes
type: integer
- writes:
- title: Writes
+ storage_bytes:
+ title: Storage Bytes
type: integer
required:
- - reads
- - writes
- title: OperationUsageOut
- Page:
+ - retrieval_bytes
+ - storage_bytes
+ title: DriveUsageOut
+ ErrorResponse:
+ properties:
+ error:
+ $ref: "#/components/schemas/drives_create_400_response_error"
+ required:
+ - error
+ FolderCascadeOut:
example:
- items:
- - content_type: content_type
- created_at: 2000-01-23T04:56:07.000+00:00
- drive_id: drive_id
- embedded_at: 2000-01-23T04:56:07.000+00:00
- etag: etag
- file_type: file_type
- hash: hash
- id: id
- indexed_at: 2000-01-23T04:56:07.000+00:00
- labels:
- - labels
- - labels
- llm_index:
- key: ""
- metadata:
- key: ""
- metageneration: 0
- path: path
- permalink: permalink
- size_bytes: 6
- source: ""
- updated_at: 2000-01-23T04:56:07.000+00:00
- url: url
- version_number: 1
- - content_type: content_type
+ cascade:
+ key: 0
+ folder:
created_at: 2000-01-23T04:56:07.000+00:00
+ deleted_at: 2000-01-23T04:56:07.000+00:00
drive_id: drive_id
- embedded_at: 2000-01-23T04:56:07.000+00:00
- etag: etag
- file_type: file_type
- hash: hash
+ grant_inheritance: inherit
id: id
- indexed_at: 2000-01-23T04:56:07.000+00:00
- labels:
- - labels
- - labels
- llm_index:
- key: ""
metadata:
key: ""
- metageneration: 0
- path: path
- permalink: permalink
- size_bytes: 6
- source: ""
+ name: name
+ parent_id: parent_id
+ revision: revision
+ state: active
updated_at: 2000-01-23T04:56:07.000+00:00
- url: url
- version_number: 1
- next_cursor: next_cursor
properties:
- items:
- items:
- $ref: "#/components/schemas/ArtifactOut"
- title: Items
- type: array
- default: null
- next_cursor:
- nullable: true
- type: string
+ cascade:
+ additionalProperties:
+ type: integer
+ title: Cascade
+ folder:
+ $ref: "#/components/schemas/FolderOut"
required:
- - items
- title: Page
- ProjectConfigIn:
+ - cascade
+ - folder
+ title: FolderCascadeOut
+ FolderCopyIn:
+ additionalProperties: false
+ description: |-
+ POST /v0/drives/{id}/folders/{folder_id}/copy body.
+
+ ``destination_drive_id`` must equal the source drive (or be absent) —
+ cross-drive copy is out of v0 scope and rejected.
example:
- auto_compile: false
- engine: engine
- entrypoint: entrypoint
+ destination_drive_id: destination_drive_id
+ destination_name: destination_name
+ destination_parent_id: destination_parent_id
properties:
- auto_compile:
- default: false
- title: Auto Compile
- type: boolean
- engine:
+ destination_drive_id:
nullable: true
+ pattern: "^drv_[a-f0-9]{16}$"
type: string
- entrypoint:
- title: Entrypoint
+ destination_name:
+ maxLength: 255
+ minLength: 1
+ title: Destination Name
type: string
- required:
- - entrypoint
- title: ProjectConfigIn
- ProtectedResourceMetadataOut:
- additionalProperties: true
- example:
- authorization_servers:
- - authorization_servers
- - authorization_servers
- bearer_methods_supported:
- - bearer_methods_supported
- - bearer_methods_supported
- resource: resource
- scopes_supported:
- - scopes_supported
- - scopes_supported
- properties:
- authorization_servers:
- items:
- type: string
- title: Authorization Servers
- type: array
- default: null
- bearer_methods_supported:
- items:
- type: string
- title: Bearer Methods Supported
- type: array
- default: null
- resource:
- title: Resource
+ destination_parent_id:
+ pattern: "^fld_[a-f0-9]{16}$"
+ title: Destination Parent Id
type: string
- scopes_supported:
- items:
- type: string
- title: Scopes Supported
- type: array
- default: null
required:
- - authorization_servers
- - bearer_methods_supported
- - resource
- - scopes_supported
- title: ProtectedResourceMetadataOut
- QueryColumnOut:
- additionalProperties: true
+ - destination_name
+ - destination_parent_id
+ title: FolderCopyIn
+ FolderCreateIn:
+ additionalProperties: {}
+ description: "POST /v0/drives/{id}/folders body."
example:
+ grant_inheritance: inherit
+ metadata:
+ key: ""
name: name
- type: type
+ parent_id: parent_id
properties:
+ grant_inheritance:
+ default: inherit
+ enum:
+ - inherit
+ - sealed
+ title: Grant Inheritance
+ type: string
+ metadata:
+ additionalProperties: true
+ title: Metadata
+ type: object
name:
+ maxLength: 255
+ minLength: 1
title: Name
type: string
- type:
- nullable: true
+ parent_id:
+ pattern: "^fld_[a-f0-9]{16}$"
+ title: Parent Id
type: string
required:
- name
- title: QueryColumnOut
- QueryDryRunOut:
- additionalProperties: true
- example:
- dry_run: true
- engine: engine
- estimated_bytes_processed: 0
- result_schema:
- - name: name
- type: type
- - name: name
- type: type
- valid: true
- properties:
- dry_run:
- enum:
- - true
- title: Dry Run
- type: boolean
- engine:
- title: Engine
- type: string
- estimated_bytes_processed:
- title: Estimated Bytes Processed
- type: integer
- result_schema:
- items:
- $ref: "#/components/schemas/QueryColumnOut"
- title: Result Schema
- type: array
- default: null
- valid:
- title: Valid
- type: boolean
- required:
- - dry_run
- - engine
- - estimated_bytes_processed
- - result_schema
- - valid
- title: QueryDryRunOut
- QueryIn:
+ - parent_id
+ title: FolderCreateIn
+ FolderListOut:
example:
- dry_run: false
- inputs:
- key: inputs
- sql: sql
- properties:
- dry_run:
- default: false
- title: Dry Run
- type: boolean
- inputs:
- additionalProperties:
- type: string
- title: Inputs
- sql:
- title: Sql
- type: string
- required:
- - sql
- title: QueryIn
- QueryResultOut:
- additionalProperties: {}
+ items:
+ - created_at: 2000-01-23T04:56:07.000+00:00
+ deleted_at: 2000-01-23T04:56:07.000+00:00
+ drive_id: drive_id
+ grant_inheritance: inherit
+ id: id
+ metadata:
+ key: ""
+ name: name
+ parent_id: parent_id
+ revision: revision
+ state: active
+ updated_at: 2000-01-23T04:56:07.000+00:00
+ - created_at: 2000-01-23T04:56:07.000+00:00
+ deleted_at: 2000-01-23T04:56:07.000+00:00
+ drive_id: drive_id
+ grant_inheritance: inherit
+ id: id
+ metadata:
+ key: ""
+ name: name
+ parent_id: parent_id
+ revision: revision
+ state: active
+ updated_at: 2000-01-23T04:56:07.000+00:00
+ next_cursor: next_cursor
properties:
- bytes_processed:
- title: Bytes Processed
- type: integer
- cache_hit:
- title: Cache Hit
- type: boolean
- engine:
- title: Engine
- type: string
- preview:
- items:
- additionalProperties: true
- nullable: true
- type: object
- title: Preview
- type: array
- default: null
- result_art_id:
- title: Result Art Id
- type: string
- result_schema:
+ items:
items:
- $ref: "#/components/schemas/QueryColumnOut"
- title: Result Schema
+ $ref: "#/components/schemas/FolderOut"
+ title: Items
type: array
default: null
- row_count:
- title: Row Count
- type: integer
- required:
- - bytes_processed
- - cache_hit
- - engine
- - preview
- - result_art_id
- - result_schema
- - row_count
- title: QueryResultOut
- RevokeOut:
- description: |-
- DELETE /v0/grants/{grn_id}, DELETE /v0/shares/{shr_id},
- DELETE /v0/invitations/{invitation_id} response — the unified
- revoke receipt. `revoked` is a COUNT: 1 when a live row was revoked,
- 0 when it was already gone (DELETE is idempotent).
- example:
- id: id
- ok: true
- revoked: 0
- properties:
- id:
- title: Id
+ next_cursor:
+ nullable: true
type: string
- ok:
- default: true
- title: Ok
- type: boolean
- revoked:
- title: Revoked
- type: integer
required:
- - id
- - revoked
- title: RevokeOut
- SearchHitOut:
+ - items
+ - next_cursor
+ title: FolderListOut
+ FolderOut:
example:
- art_id: art_id
- content_type: content_type
+ created_at: 2000-01-23T04:56:07.000+00:00
+ deleted_at: 2000-01-23T04:56:07.000+00:00
drive_id: drive_id
- file_type: file_type
- labels:
- - labels
- - labels
- path: path
- score: 0.8008281904610115
- snippet: snippet
+ grant_inheritance: inherit
+ id: id
+ metadata:
+ key: ""
+ name: name
+ parent_id: parent_id
+ revision: revision
+ state: active
updated_at: 2000-01-23T04:56:07.000+00:00
- url: url
- version_number: 6
properties:
- art_id:
- title: Art Id
- type: string
- content_type:
- title: Content Type
+ created_at:
+ format: date-time
+ title: Created At
+ type: string
+ deleted_at:
+ format: date-time
+ nullable: true
type: string
drive_id:
+ pattern: "^drv_[a-f0-9]{16}$"
title: Drive Id
type: string
- file_type:
- title: File Type
+ grant_inheritance:
+ enum:
+ - inherit
+ - sealed
+ title: Grant Inheritance
type: string
- labels:
- items:
- type: string
- title: Labels
- type: array
- default: null
- path:
- title: Path
+ id:
+ pattern: "^fld_[a-f0-9]{16}$"
+ title: Id
type: string
- score:
- title: Score
- type: number
- snippet:
- title: Snippet
+ metadata:
+ additionalProperties: true
+ title: Metadata
+ type: object
+ name:
+ nullable: true
+ type: string
+ parent_id:
+ nullable: true
+ type: string
+ revision:
+ pattern: "^rev_[a-f0-9]{16}$"
+ title: Revision
+ type: string
+ state:
+ enum:
+ - active
+ - deleted
+ title: State
type: string
updated_at:
format: date-time
title: Updated At
type: string
- url:
- title: Url
- type: string
- version_number:
- title: Version Number
- type: integer
required:
- - art_id
- - content_type
+ - created_at
+ - deleted_at
- drive_id
- - file_type
- - path
- - score
- - snippet
+ - grant_inheritance
+ - id
+ - metadata
+ - name
+ - parent_id
+ - revision
+ - state
- updated_at
- - url
- - version_number
- title: SearchHitOut
- SearchPage:
+ title: FolderOut
+ FolderUpdateIn:
+ additionalProperties: {}
description: |-
- `/v0/search` response — single-shot top-N, deliberately unpaginated.
-
- Ranked retrieval doesn't paginate meaningfully (the industry norm:
- vector/RAG APIs are pure top-K; Algolia/GitHub cap ranked results
- outright) — the correct "next page" of a relevance-ranked list is a
- narrower query. Raise `limit` (≤100) for more hits. A `next_cursor`
- field advertised here in the past was structurally always null and
- was dropped; if deep retrieval is ever needed, an ES-`search_after`
- style `(score, id)` keyset can be re-added additively.
+ PATCH /v0/drives/{id}/folders/{folder_id} body — at least one field is
+ required.
example:
- items:
- - art_id: art_id
- content_type: content_type
- drive_id: drive_id
- file_type: file_type
- labels:
- - labels
- - labels
- path: path
- score: 0.8008281904610115
- snippet: snippet
- updated_at: 2000-01-23T04:56:07.000+00:00
- url: url
- version_number: 6
- - art_id: art_id
- content_type: content_type
- drive_id: drive_id
- file_type: file_type
- labels:
- - labels
- - labels
- path: path
- score: 0.8008281904610115
- snippet: snippet
- updated_at: 2000-01-23T04:56:07.000+00:00
- url: url
- version_number: 6
+ grant_inheritance: inherit
+ metadata:
+ key: ""
+ name: name
+ parent_id: parent_id
properties:
- items:
- items:
- $ref: "#/components/schemas/SearchHitOut"
- title: Items
- type: array
- default: null
- required:
- - items
- title: SearchPage
- ShareCreateIn:
- description: |-
- POST /v0/shares body. `resource` is an `art_*`/`fld_*` id or a path.
- `expires_in` is seconds from now (omit for the default: none for a human
- creator, a short TTL for an agent). `password` (optional) gates redemption.
+ grant_inheritance:
+ enum:
+ - inherit
+ - sealed
+ nullable: true
+ type: string
+ metadata:
+ additionalProperties: true
+ nullable: true
+ type: object
+ name:
+ maxLength: 255
+ minLength: 1
+ nullable: true
+ type: string
+ parent_id:
+ nullable: true
+ pattern: "^fld_[a-f0-9]{16}$"
+ type: string
+ title: FolderUpdateIn
+ GrantCreateIn:
+ additionalProperties: false
+ description: "POST /v0/drives/{id}/grants body."
example:
- expires_in: 0
- password: password
- resource: resource
+ expires_at: 2000-01-23T04:56:07.000+00:00
+ principal_id: principal_id
+ principal_type: agent
+ resource_id: resource_id
+ resource_type: drive
role: viewer
properties:
- expires_in:
+ expires_at:
+ format: date-time
nullable: true
- type: integer
- password:
- maxLength: 1024
+ type: string
+ principal_id:
nullable: true
type: string
- resource:
- title: Resource
+ principal_type:
+ enum:
+ - agent
+ - user
+ - workspace
+ - public
+ title: Principal Type
+ type: string
+ resource_id:
+ minLength: 1
+ title: Resource Id
+ type: string
+ resource_type:
+ enum:
+ - drive
+ - folder
+ - artifact
+ title: Resource Type
type: string
role:
- default: viewer
enum:
- viewer
- - commenter
- editor
+ - manager
title: Role
type: string
required:
- - resource
- title: ShareCreateIn
- ShareErrorOut:
- description: Negotiated JSON error shape for the public share protocol.
- example:
- error:
- code: code
- message: message
- properties:
- error:
- $ref: "#/components/schemas/ErrorBody"
- required:
- - error
- title: ShareErrorOut
- ShareList:
+ - principal_type
+ - resource_id
+ - resource_type
+ - role
+ title: GrantCreateIn
+ GrantListOut:
example:
items:
- - access_count: 0
- audience: audience
- created_at: 2000-01-23T04:56:07.000+00:00
+ - created_at: 2000-01-23T04:56:07.000+00:00
+ drive_id: drive_id
expires_at: 2000-01-23T04:56:07.000+00:00
- has_password: true
id: id
- last_accessed_at: 2000-01-23T04:56:07.000+00:00
+ principal_id: principal_id
+ principal_type: agent
resource_id: resource_id
- resource_type: artifact
+ resource_type: drive
+ revision: revision
+ revoked_at: 2000-01-23T04:56:07.000+00:00
role: viewer
- - access_count: 0
- audience: audience
- created_at: 2000-01-23T04:56:07.000+00:00
+ state: active
+ - created_at: 2000-01-23T04:56:07.000+00:00
+ drive_id: drive_id
expires_at: 2000-01-23T04:56:07.000+00:00
- has_password: true
id: id
- last_accessed_at: 2000-01-23T04:56:07.000+00:00
+ principal_id: principal_id
+ principal_type: agent
resource_id: resource_id
- resource_type: artifact
+ resource_type: drive
+ revision: revision
+ revoked_at: 2000-01-23T04:56:07.000+00:00
role: viewer
+ state: active
next_cursor: next_cursor
properties:
items:
items:
- $ref: "#/components/schemas/ShareOut"
+ $ref: "#/components/schemas/GrantOut"
title: Items
type: array
default: null
@@ -17101,404 +9469,247 @@ components:
type: string
required:
- items
- title: ShareList
- ShareMintOut:
- description: |-
- The create/rotate response — the ONLY place the `share_key` and its
- redemption `url` are exposed.
+ - next_cursor
+ title: GrantListOut
+ GrantOut:
example:
- access_count: 0
- audience: audience
created_at: 2000-01-23T04:56:07.000+00:00
+ drive_id: drive_id
expires_at: 2000-01-23T04:56:07.000+00:00
- has_password: true
id: id
- last_accessed_at: 2000-01-23T04:56:07.000+00:00
+ principal_id: principal_id
+ principal_type: agent
resource_id: resource_id
- resource_type: artifact
+ resource_type: drive
+ revision: revision
+ revoked_at: 2000-01-23T04:56:07.000+00:00
role: viewer
- share_key: share_key
- url: url
+ state: active
properties:
- access_count:
- default: 0
- title: Access Count
- type: integer
- audience:
- title: Audience
- type: string
created_at:
format: date-time
title: Created At
type: string
+ drive_id:
+ pattern: "^drv_[a-f0-9]{16}$"
+ title: Drive Id
+ type: string
expires_at:
format: date-time
nullable: true
type: string
- has_password:
- title: Has Password
- type: boolean
id:
+ pattern: "^grn_[a-f0-9]{16}$"
title: Id
type: string
- last_accessed_at:
- format: date-time
+ principal_id:
nullable: true
type: string
+ principal_type:
+ enum:
+ - agent
+ - user
+ - workspace
+ - public
+ title: Principal Type
+ type: string
resource_id:
title: Resource Id
type: string
resource_type:
enum:
- - artifact
+ - drive
- folder
+ - artifact
title: Resource Type
type: string
+ revision:
+ pattern: "^rev_[a-f0-9]{16}$"
+ title: Revision
+ type: string
+ revoked_at:
+ format: date-time
+ nullable: true
+ type: string
role:
enum:
- viewer
- - commenter
- editor
+ - manager
title: Role
type: string
- share_key:
- title: Share Key
- type: string
- url:
- title: Url
+ state:
+ enum:
+ - active
+ - revoked
+ - expired
+ title: State
type: string
required:
- - audience
- created_at
- - has_password
+ - drive_id
+ - expires_at
- id
+ - principal_id
+ - principal_type
- resource_id
- resource_type
+ - revision
+ - revoked_at
- role
- - share_key
- - url
- title: ShareMintOut
- ShareOut:
+ - state
+ title: GrantOut
+ GrantUpdateIn:
+ additionalProperties: false
description: |-
- A live share link as seen on list/management — NEVER carries the
- `share_key` (that is the credential, returned only at mint/rotate).
+ PATCH /v0/drives/{id}/grants/{grant_id} body — at least one field is
+ required. An explicit ``expires_at: null`` clears the expiry; omitting it
+ leaves it unchanged.
example:
- access_count: 0
- audience: audience
- created_at: 2000-01-23T04:56:07.000+00:00
expires_at: 2000-01-23T04:56:07.000+00:00
- has_password: true
- id: id
- last_accessed_at: 2000-01-23T04:56:07.000+00:00
- resource_id: resource_id
- resource_type: artifact
role: viewer
properties:
- access_count:
- default: 0
- title: Access Count
- type: integer
- audience:
- title: Audience
- type: string
- created_at:
- format: date-time
- title: Created At
- type: string
expires_at:
format: date-time
nullable: true
type: string
- has_password:
- title: Has Password
- type: boolean
- id:
- title: Id
- type: string
- last_accessed_at:
- format: date-time
- nullable: true
- type: string
- resource_id:
- title: Resource Id
- type: string
- resource_type:
- enum:
- - artifact
- - folder
- title: Resource Type
- type: string
role:
enum:
- viewer
- - commenter
- editor
- title: Role
- type: string
- required:
- - audience
- - created_at
- - has_password
- - id
- - resource_id
- - resource_type
- - role
- title: ShareOut
- ShareRedeemOut:
- example:
- expires_at: 2000-01-23T04:56:07.000+00:00
- role: role
- token: token
- url: url
- properties:
- expires_at:
- format: date-time
- title: Expires At
- type: string
- role:
- title: Role
- type: string
- token:
- title: Token
- type: string
- url:
- title: Url
- type: string
- required:
- - expires_at
- - role
- - token
- - url
- title: ShareRedeemOut
- SourceRef:
- description: |-
- One typed provenance ref. `type` is open-vocabulary (server
- validates only length, not the value), so callers can declare new
- types as their integrations evolve. `id` is the type-specific
- identifier — for `type='artifact'` this is an `art_…` ID.
- properties:
- id:
- title: Id
- type: string
- metadata:
- additionalProperties: true
+ - manager
nullable: true
- type: object
- type:
- title: Type
- type: string
- required:
- - id
- - type
- title: SourceRef
- StorageBreakdownOut:
- properties:
- as_of:
- format: date
- title: As Of
type: string
- live_bytes:
- title: Live Bytes
- type: integer
- trash_bytes:
- title: Trash Bytes
- type: integer
- version_bytes:
- title: Version Bytes
- type: integer
- required:
- - as_of
- - live_bytes
- - trash_bytes
- - version_bytes
- title: StorageBreakdownOut
- StorageFootprintOut:
+ title: GrantUpdateIn
+ HealthDegradedDetail:
example:
- as_of: 2000-01-23
- live_bytes: 0
- total_bytes: 6
- trash_bytes: 1
- version_bytes: 5
+ error: error
+ status: degraded
properties:
- as_of:
- format: date
- nullable: true
+ error:
+ title: Error
+ type: string
+ status:
+ enum:
+ - degraded
+ title: Status
type: string
- live_bytes:
- title: Live Bytes
- type: integer
- total_bytes:
- title: Total Bytes
- type: integer
- trash_bytes:
- title: Trash Bytes
- type: integer
- version_bytes:
- title: Version Bytes
- type: integer
required:
- - live_bytes
- - total_bytes
- - trash_bytes
- - version_bytes
- title: StorageFootprintOut
- TokenResponse:
+ - error
+ - status
+ title: HealthDegradedDetail
+ HealthDegradedResponse:
description: |-
- `POST /oauth2/token` success response. Mirrors RFC 6749 with
- an optional `identity_assertion` field for the claim grant path
- (where a fresh post-claim assertion supersedes the pre-claim
- one).
+ Legacy health-probe failure shape.
+
+ Health predates the `/v0` error envelope and is consumed by load
+ balancers. PR 1 documents the wire shape without changing it; convergence
+ on the canonical API envelope is a separately reviewed compatibility
+ decision.
example:
- access_token: access_token
- expires_in: 0
- identity_assertion: identity_assertion
- scope: scope
- token_type: Bearer
+ detail:
+ error: error
+ status: degraded
properties:
- access_token:
- title: Access Token
- type: string
- expires_in:
- description: Seconds until access_token expiry.
- title: Expires In
- type: integer
- identity_assertion:
- nullable: true
- type: string
- scope:
- title: Scope
- type: string
- token_type:
- default: Bearer
- title: Token Type
- type: string
+ detail:
+ $ref: "#/components/schemas/HealthDegradedDetail"
required:
- - access_token
- - expires_in
- - scope
- title: TokenResponse
- TokenUsageOut:
+ - detail
+ title: HealthDegradedResponse
+ HealthOut:
example:
- embed: 3
- llm_cached: 2
- llm_input: 4
- llm_output: 7
+ status: ok
properties:
- embed:
- title: Embed
- type: integer
- llm_cached:
- title: Llm Cached
- type: integer
- llm_input:
- title: Llm Input
- type: integer
- llm_output:
- title: Llm Output
- type: integer
+ status:
+ enum:
+ - ok
+ title: Status
+ type: string
required:
- - embed
- - llm_cached
- - llm_input
- - llm_output
- title: TokenUsageOut
- TrashArtifactOut:
+ - status
+ title: HealthOut
+ SearchHitOut:
example:
- deleted_at: 2000-01-23T04:56:07.000+00:00
+ content_type: content_type
+ drive_id: drive_id
id: id
- path: path
- purge_at: 2000-01-23T04:56:07.000+00:00
- restore_url: restore_url
- size_bytes: 0
+ name: name
+ parent_id: parent_id
+ rank: 0.8008281904610115
+ snippet: snippet
+ updated_at: 2000-01-23T04:56:07.000+00:00
+ version_id: version_id
properties:
- deleted_at:
- format: date-time
+ content_type:
nullable: true
type: string
+ drive_id:
+ pattern: "^drv_[a-f0-9]{16}$"
+ title: Drive Id
+ type: string
id:
+ pattern: "^art_[a-f0-9]{16}$"
title: Id
type: string
- path:
- title: Path
+ name:
+ title: Name
type: string
- purge_at:
- format: date-time
+ parent_id:
nullable: true
type: string
- restore_url:
- title: Restore Url
+ rank:
+ title: Rank
+ type: number
+ snippet:
+ description: "HTML-safe highlighted excerpt. The ONLY markup it may contain\
+ \ is the server's own ... highlight pair; artifact content\
+ \ is entity-escaped, so this may be rendered as HTML."
+ title: Snippet
type: string
- size_bytes:
- title: Size Bytes
- type: integer
- required:
- - id
- - path
- - restore_url
- - size_bytes
- title: TrashArtifactOut
- TrashDriveOut:
- example:
- deleted_at: 2000-01-23T04:56:07.000+00:00
- id: id
- properties:
- deleted_at:
+ updated_at:
format: date-time
- nullable: true
+ title: Updated At
type: string
- id:
- title: Id
+ version_id:
+ nullable: true
type: string
required:
+ - content_type
+ - drive_id
- id
- title: TrashDriveOut
- TrashOut:
- description: Trash collection with a compatibility-preserving pagination opt-in.
+ - name
+ - parent_id
+ - rank
+ - snippet
+ - updated_at
+ - version_id
+ title: SearchHitOut
+ SearchPageOut:
example:
- artifacts:
- - deleted_at: 2000-01-23T04:56:07.000+00:00
- id: id
- path: path
- purge_at: 2000-01-23T04:56:07.000+00:00
- restore_url: restore_url
- size_bytes: 0
- - deleted_at: 2000-01-23T04:56:07.000+00:00
- id: id
- path: path
- purge_at: 2000-01-23T04:56:07.000+00:00
- restore_url: restore_url
- size_bytes: 0
- drive:
- deleted_at: 2000-01-23T04:56:07.000+00:00
- id: id
items:
- - deleted_at: 2000-01-23T04:56:07.000+00:00
+ - content_type: content_type
+ drive_id: drive_id
id: id
- path: path
- purge_at: 2000-01-23T04:56:07.000+00:00
- restore_url: restore_url
- size_bytes: 0
- - deleted_at: 2000-01-23T04:56:07.000+00:00
+ name: name
+ parent_id: parent_id
+ rank: 0.8008281904610115
+ snippet: snippet
+ updated_at: 2000-01-23T04:56:07.000+00:00
+ version_id: version_id
+ - content_type: content_type
+ drive_id: drive_id
id: id
- path: path
- purge_at: 2000-01-23T04:56:07.000+00:00
- restore_url: restore_url
- size_bytes: 0
+ name: name
+ parent_id: parent_id
+ rank: 0.8008281904610115
+ snippet: snippet
+ updated_at: 2000-01-23T04:56:07.000+00:00
+ version_id: version_id
next_cursor: next_cursor
properties:
- artifacts:
- deprecated: true
- description: Deprecated alias of items.
- items:
- $ref: "#/components/schemas/TrashArtifactOut"
- title: Artifacts
- type: array
- default: null
- drive:
- $ref: "#/components/schemas/TrashDriveOut"
items:
items:
- $ref: "#/components/schemas/TrashArtifactOut"
+ $ref: "#/components/schemas/SearchHitOut"
title: Items
type: array
default: null
@@ -17506,297 +9717,150 @@ components:
nullable: true
type: string
required:
- - artifacts
- - drive
- items
- title: TrashOut
- UploadAbortOut:
- description: |-
- Response of `DELETE /v0/uploads/{upload_id}` — the session is released.
- `released_bytes` is the reservation returned to the drive's quota (the
- session's `size_bytes` for a live `initiated` session; `0` when the
- session was already aborted or already expired — the GC sweep owns an
- expired session's release).
+ - next_cursor
+ title: SearchPageOut
+ ShareCreateIn:
+ additionalProperties: false
+ description: "POST /v0/drives/{id}/shares body."
example:
- released_bytes: 0
- state: aborted
- upload_id: upload_id
+ expires_at: 2000-01-23T04:56:07.000+00:00
+ resource_id: resource_id
+ resource_type: artifact
properties:
- released_bytes:
- title: Released Bytes
- type: integer
- state:
- default: aborted
- enum:
- - aborted
- - expired
- title: State
+ expires_at:
+ format: date-time
+ nullable: true
+ type: string
+ resource_id:
+ minLength: 1
+ title: Resource Id
type: string
- upload_id:
- title: Upload Id
+ resource_type:
+ enum:
+ - artifact
+ - artifact_version
+ - folder
+ title: Resource Type
type: string
required:
- - released_bytes
- - upload_id
- title: UploadAbortOut
- UploadBeginIn:
+ - resource_id
+ - resource_type
+ title: ShareCreateIn
+ ShareCreateOut:
description: |-
- Body of `POST /v0/uploads` — the large-upload begin call (large-upload-
- design.md §5.1). All artifact decisions are frozen here; the subsequent
- GCS PUT carries only bytes, and `commit` carries only the `upload_id`.
-
- `labels`/`metadata`/`source` omitted (null) ⇒ preserve the existing
- artifact's value at commit; present (incl. empty) ⇒ replace.
+ The create/rotate response — the ONLY response carrying the plaintext
+ secret.
example:
- actor_name: actor_name
- change_summary: change_summary
- content_type: application/octet-stream
- cors_origin: cors_origin
- crc32c: crc32c
- if_match: 171976544
- if_none_match: false
- labels:
- - labels
- - labels
- metadata:
- key: ""
- path: path
- size_bytes: 1
- source: ""
+ created_at: 2000-01-23T04:56:07.000+00:00
+ created_by: created_by
+ drive_id: drive_id
+ expires_at: 2000-01-23T04:56:07.000+00:00
+ id: id
+ resource_id: resource_id
+ resource_type: artifact
+ revision: revision
+ revoked_at: 2000-01-23T04:56:07.000+00:00
+ rotated_at: 2000-01-23T04:56:07.000+00:00
+ secret: secret
+ state: active
properties:
- actor_name:
- maxLength: 64
- nullable: true
+ created_at:
+ format: date-time
+ title: Created At
type: string
- change_summary:
+ created_by:
nullable: true
type: string
- content_type:
- default: application/octet-stream
- title: Content Type
- type: string
- cors_origin:
- description: "Web origin (scheme://host[:port]) of the browser that will\
- \ PUT the bytes, e.g. `https://app.example.com`. Set this when the `upload_url`\
- \ is handed to browser code: GCS binds CORS at session initiate, so the\
- \ returned session only echoes `Access-Control-Allow-Origin` (and is thus\
- \ PUT-able from a browser) when opened with the caller's origin. A trusted\
- \ backend relaying a browser upload forwards the browser's `Origin` here.\
- \ Omit for server/desktop uploads (no CORS enforcement)."
- nullable: true
+ drive_id:
+ pattern: "^drv_[a-f0-9]{16}$"
+ title: Drive Id
type: string
- crc32c:
+ expires_at:
+ format: date-time
nullable: true
type: string
- if_match:
- maximum: 2147483647
- minimum: 0.0
- nullable: true
- type: integer
- if_none_match:
- default: false
- title: If None Match
- type: boolean
- labels:
- items:
- type: string
- nullable: true
- type: array
- default: null
- metadata:
- additionalProperties: true
- nullable: true
- type: object
- path:
- title: Path
+ id:
+ pattern: "^shr_[a-f0-9]{16}$"
+ title: Id
type: string
- size_bytes:
- minimum: 1.0
- title: Size Bytes
- type: integer
- source:
- allOf:
- - $ref: "#/components/schemas/ArtifactSource"
- nullable: true
- required:
- - path
- - size_bytes
- title: UploadBeginIn
- UploadBeginOut:
- description: |-
- Response of `POST /v0/uploads`. PUT the bytes to `upload_url` (no auth
- header — the URL is the credential), then `POST .../commit`.
- example:
- expires_at: 2000-01-23T04:56:07.000+00:00
- headers:
- key: headers
- max_bytes: 0
- method: PUT
- upload_id: upload_id
- upload_url: upload_url
- properties:
- expires_at:
- format: date-time
- title: Expires At
+ resource_id:
+ title: Resource Id
type: string
- headers:
- additionalProperties:
- type: string
- title: Headers
- max_bytes:
- title: Max Bytes
- type: integer
- method:
- default: PUT
+ resource_type:
enum:
- - PUT
- title: Method
- type: string
- upload_id:
- title: Upload Id
+ - artifact
+ - artifact_version
+ - folder
+ title: Resource Type
type: string
- upload_url:
- title: Upload Url
+ revision:
+ pattern: "^rev_[a-f0-9]{16}$"
+ title: Revision
type: string
- required:
- - expires_at
- - headers
- - max_bytes
- - upload_id
- - upload_url
- title: UploadBeginOut
- UploadStatusOut:
- description: |-
- Response of `GET /v0/uploads/{upload_id}` — the live state of a
- direct-to-GCS upload session (large-upload-design.md §5).
-
- `state` is derived, not a stored column:
- * `initiated` — session open; PUT the bytes to the `upload_url`, then
- `POST /v0/uploads/{upload_id}/commit`.
- * `committed` — the bytes landed and the artifact was created
- (`committed_at` is set).
- * `aborted` — released via `DELETE /v0/uploads/{upload_id}`.
- * `expired` — past `expires_at` without a commit; the reservation is
- reclaimed by the GC sweep.
- example:
- committed_at: 2000-01-23T04:56:07.000+00:00
- content_type: content_type
- created_at: 2000-01-23T04:56:07.000+00:00
- expires_at: 2000-01-23T04:56:07.000+00:00
- max_bytes: 0
- path: path
- size_bytes: 6
- state: initiated
- upload_id: upload_id
- properties:
- committed_at:
+ revoked_at:
format: date-time
nullable: true
type: string
- content_type:
- title: Content Type
- type: string
- created_at:
- format: date-time
- title: Created At
- type: string
- expires_at:
+ rotated_at:
format: date-time
- title: Expires At
+ nullable: true
type: string
- max_bytes:
- title: Max Bytes
- type: integer
- path:
- title: Path
+ secret:
+ description: Plaintext share secret. Present only on first execution of
+ a create or rotate; null on idempotent replay — rotate to obtain a new
+ secret.
+ nullable: true
type: string
- size_bytes:
- title: Size Bytes
- type: integer
state:
enum:
- - initiated
- - committed
- - aborted
- - expired
+ - active
+ - revoked
title: State
type: string
- upload_id:
- title: Upload Id
- type: string
required:
- - content_type
- created_at
+ - created_by
+ - drive_id
- expires_at
- - max_bytes
- - path
- - size_bytes
+ - id
+ - resource_id
+ - resource_type
+ - revision
+ - revoked_at
+ - rotated_at
- state
- - upload_id
- title: UploadStatusOut
- UsageCounterOut:
- example:
- limit: 5
- used: 2
- properties:
- limit:
- title: Limit
- type: integer
- used:
- title: Used
- type: integer
- required:
- - limit
- - used
- title: UsageCounterOut
- UsagePeriodOut:
- example:
- ends: 2000-01-23T04:56:07.000+00:00
- starts: 2000-01-23T04:56:07.000+00:00
- year_month: year_month
- properties:
- ends:
- format: date-time
- title: Ends
- type: string
- starts:
- format: date-time
- title: Starts
- type: string
- year_month:
- title: Year Month
- type: string
- required:
- - ends
- - starts
- - year_month
- title: UsagePeriodOut
- UserTokenList:
+ title: ShareCreateOut
+ ShareListOut:
example:
items:
- created_at: 2000-01-23T04:56:07.000+00:00
- default_drive_id: default_drive_id
+ created_by: created_by
+ drive_id: drive_id
expires_at: 2000-01-23T04:56:07.000+00:00
id: id
- label: label
- last_used_at: 2000-01-23T04:56:07.000+00:00
- prefix: prefix
+ resource_id: resource_id
+ resource_type: artifact
+ revision: revision
revoked_at: 2000-01-23T04:56:07.000+00:00
- scope: read
+ rotated_at: 2000-01-23T04:56:07.000+00:00
+ state: active
- created_at: 2000-01-23T04:56:07.000+00:00
- default_drive_id: default_drive_id
+ created_by: created_by
+ drive_id: drive_id
expires_at: 2000-01-23T04:56:07.000+00:00
id: id
- label: label
- last_used_at: 2000-01-23T04:56:07.000+00:00
- prefix: prefix
+ resource_id: resource_id
+ resource_type: artifact
+ revision: revision
revoked_at: 2000-01-23T04:56:07.000+00:00
- scope: read
+ rotated_at: 2000-01-23T04:56:07.000+00:00
+ state: active
next_cursor: next_cursor
properties:
items:
items:
- $ref: "#/components/schemas/UserTokenOut"
+ $ref: "#/components/schemas/ShareOut"
title: Items
type: array
default: null
@@ -17805,218 +9869,129 @@ components:
type: string
required:
- items
- title: UserTokenList
- UserTokenOut:
- description: |-
- One `ad_user_` token — metadata only. The raw token is NEVER
- exposed over the API (minting is web-only, reveal-once); this shape
- omits both the raw value and the stored hash by construction.
+ - next_cursor
+ title: ShareListOut
+ ShareOut:
example:
created_at: 2000-01-23T04:56:07.000+00:00
- default_drive_id: default_drive_id
+ created_by: created_by
+ drive_id: drive_id
expires_at: 2000-01-23T04:56:07.000+00:00
id: id
- label: label
- last_used_at: 2000-01-23T04:56:07.000+00:00
- prefix: prefix
+ resource_id: resource_id
+ resource_type: artifact
+ revision: revision
revoked_at: 2000-01-23T04:56:07.000+00:00
- scope: read
+ rotated_at: 2000-01-23T04:56:07.000+00:00
+ state: active
properties:
created_at:
format: date-time
title: Created At
type: string
- default_drive_id:
+ created_by:
nullable: true
type: string
+ drive_id:
+ pattern: "^drv_[a-f0-9]{16}$"
+ title: Drive Id
+ type: string
expires_at:
format: date-time
nullable: true
type: string
id:
+ pattern: "^shr_[a-f0-9]{16}$"
title: Id
type: string
- label:
- nullable: true
+ resource_id:
+ title: Resource Id
type: string
- last_used_at:
- format: date-time
- nullable: true
+ resource_type:
+ enum:
+ - artifact
+ - artifact_version
+ - folder
+ title: Resource Type
type: string
- prefix:
- title: Prefix
+ revision:
+ pattern: "^rev_[a-f0-9]{16}$"
+ title: Revision
type: string
revoked_at:
format: date-time
nullable: true
type: string
- scope:
+ rotated_at:
+ format: date-time
+ nullable: true
+ type: string
+ state:
enum:
- - read
- - full
- title: Scope
+ - active
+ - revoked
+ title: State
type: string
required:
- created_at
+ - created_by
+ - drive_id
+ - expires_at
- id
- - prefix
- - scope
- title: UserTokenOut
- ValidationErrorBody:
- additionalProperties: true
- example:
- code: code
- fields:
- - ctx:
- key: ""
- input: ""
- loc:
- - ""
- - ""
- msg: msg
- type: type
- - ctx:
- key: ""
- input: ""
- loc:
- - ""
- - ""
- msg: msg
- type: type
- message: message
+ - resource_id
+ - resource_type
+ - revision
+ - revoked_at
+ - rotated_at
+ - state
+ title: ShareOut
+ V0ErrorEnvelope:
properties:
- code:
- title: Code
- type: string
- fields:
- items:
- $ref: "#/components/schemas/ValidationIssue"
- title: Fields
- type: array
- default: null
- message:
- title: Message
- type: string
+ error:
+ $ref: "#/components/schemas/drives_create_400_response_error"
required:
- - code
- - fields
- - message
- title: ValidationErrorBody
- ValidationErrorDetail:
- additionalProperties: true
+ - error
+ ValidationErrorResponse:
example:
error:
code: code
- fields:
- - ctx:
- key: ""
- input: ""
- loc:
- - ""
- - ""
- msg: msg
- type: type
- - ctx:
- key: ""
- input: ""
- loc:
- - ""
- - ""
- msg: msg
- type: type
+ details:
+ fields:
+ - location: location
+ reason: reason
+ - location: location
+ reason: reason
message: message
properties:
error:
- $ref: "#/components/schemas/ValidationErrorBody"
+ $ref: "#/components/schemas/ValidationErrorResponse_error"
required:
- error
- title: ValidationErrorDetail
- ValidationErrorResponse:
- additionalProperties: true
- description: The runtime `VALIDATION_ERROR` response for request parsing failures.
- example:
- detail:
- error:
- code: code
- fields:
- - ctx:
- key: ""
- input: ""
- loc:
- - ""
- - ""
- msg: msg
- type: type
- - ctx:
- key: ""
- input: ""
- loc:
- - ""
- - ""
- msg: msg
- type: type
- message: message
- properties:
- detail:
- $ref: "#/components/schemas/ValidationErrorDetail"
- required:
- - detail
- title: ValidationErrorResponse
- ValidationIssue:
- additionalProperties: {}
- description: One Pydantic/FastAPI validation issue.
- example:
- ctx:
- key: ""
- input: ""
- loc:
- - ""
- - ""
- msg: msg
- type: type
- properties:
- ctx:
- additionalProperties: true
- nullable: true
- type: object
- input:
- title: Input
- loc:
- items: {}
- title: Loc
- type: array
- default: null
- msg:
- title: Msg
- type: string
- type:
- title: Type
- type: string
- required:
- - loc
- - msg
- - type
- title: ValidationIssue
- VersionOut:
+ VersionCreatedOut:
+ description: |-
+ The append/restore response — a version plus the artifact's new
+ revision, which the version-creating 201 rotates.
example:
- actor_name: actor_name
- art_id: art_id
- change_summary: change_summary
+ artifact_id: artifact_id
+ artifact_revision: artifact_revision
content_type: content_type
created_at: 2000-01-23T04:56:07.000+00:00
+ created_by: created_by
hash: hash
+ id: id
+ parent_version_id: parent_version_id
size_bytes: 0
- version_number: 6
+ version_number: 1
properties:
- actor_name:
- maxLength: 64
- nullable: true
+ artifact_id:
+ pattern: "^art_[a-f0-9]{16}$"
+ title: Artifact Id
type: string
- art_id:
- title: Art Id
- type: string
- change_summary:
- nullable: true
+ artifact_revision:
+ description: The artifact's revision after this version became head — the
+ If-Match value for the next mutation.
+ pattern: "^rev_[a-f0-9]{16}$"
+ title: Artifact Revision
type: string
content_type:
title: Content Type
@@ -18025,44 +10000,61 @@ components:
format: date-time
title: Created At
type: string
+ created_by:
+ nullable: true
+ type: string
hash:
title: Hash
type: string
+ id:
+ pattern: "^ver_[a-f0-9]{16}$"
+ title: Id
+ type: string
+ parent_version_id:
+ nullable: true
+ type: string
size_bytes:
+ minimum: 0.0
title: Size Bytes
type: integer
version_number:
+ minimum: 1.0
title: Version Number
type: integer
required:
- - art_id
+ - artifact_id
+ - artifact_revision
- content_type
- created_at
+ - created_by
- hash
+ - id
+ - parent_version_id
- size_bytes
- version_number
- title: VersionOut
- VersionPage:
+ title: VersionCreatedOut
+ VersionListOut:
example:
items:
- - actor_name: actor_name
- art_id: art_id
- change_summary: change_summary
+ - artifact_id: artifact_id
content_type: content_type
created_at: 2000-01-23T04:56:07.000+00:00
+ created_by: created_by
hash: hash
+ id: id
+ parent_version_id: parent_version_id
size_bytes: 0
- version_number: 6
- - actor_name: actor_name
- art_id: art_id
- change_summary: change_summary
+ version_number: 1
+ - artifact_id: artifact_id
content_type: content_type
created_at: 2000-01-23T04:56:07.000+00:00
+ created_by: created_by
hash: hash
+ id: id
+ parent_version_id: parent_version_id
size_bytes: 0
- version_number: 6
+ version_number: 1
next_cursor: next_cursor
- pruned_before: 1
properties:
items:
items:
@@ -18073,165 +10065,214 @@ components:
next_cursor:
nullable: true
type: string
- pruned_before:
- nullable: true
- type: integer
required:
- items
- title: VersionPage
- VersionRetentionOut:
+ - next_cursor
+ title: VersionListOut
+ VersionOut:
example:
- versions_max: 1
+ artifact_id: artifact_id
+ content_type: content_type
+ created_at: 2000-01-23T04:56:07.000+00:00
+ created_by: created_by
+ hash: hash
+ id: id
+ parent_version_id: parent_version_id
+ size_bytes: 0
+ version_number: 1
properties:
- versions_max:
- title: Versions Max
+ artifact_id:
+ pattern: "^art_[a-f0-9]{16}$"
+ title: Artifact Id
+ type: string
+ content_type:
+ title: Content Type
+ type: string
+ created_at:
+ format: date-time
+ title: Created At
+ type: string
+ created_by:
+ nullable: true
+ type: string
+ hash:
+ title: Hash
+ type: string
+ id:
+ pattern: "^ver_[a-f0-9]{16}$"
+ title: Id
+ type: string
+ parent_version_id:
+ nullable: true
+ type: string
+ size_bytes:
+ minimum: 0.0
+ title: Size Bytes
+ type: integer
+ version_number:
+ minimum: 1.0
+ title: Version Number
type: integer
required:
- - versions_max
- title: VersionRetentionOut
- WorkspaceCreateIn:
- description: |-
- POST /v0/workspaces body. `name` is the user-facing workspace label;
- the creator becomes its admin and gets a starter drive.
+ - artifact_id
+ - content_type
+ - created_at
+ - created_by
+ - hash
+ - id
+ - parent_version_id
+ - size_bytes
+ - version_number
+ title: VersionOut
+ drives_list_400_response_error:
+ additionalProperties: {}
example:
- name: name
+ code: code
+ details: "{}"
+ message: message
properties:
- name:
- maxLength: 120
- minLength: 1
- title: Name
+ code:
+ description: Stable machine-readable error code (see the error-catalog).
+ type: string
+ details:
+ description: Error-code-specific context (optional).
+ type: object
+ message:
+ nullable: true
type: string
required:
- - name
- title: WorkspaceCreateIn
- WorkspaceCreateOut:
- description: |-
- POST /v0/workspaces response. Carries the new workspace + its starter
- drive's `ad_live_` key **once** (`starter_drive_api_key`) — reveal-once,
- store it now (mint more keys via `POST /v0/drives/{id}/keys`).
+ - code
+ - message
+ drives_list_400_response:
example:
- starter_drive_api_key: starter_drive_api_key
- starter_drive_id: starter_drive_id
- workspace:
- created_at: 2000-01-23T04:56:07.000+00:00
- id: id
- name: name
- role: admin
- tier_id: tier_id
+ error:
+ code: code
+ details: "{}"
+ message: message
properties:
- starter_drive_api_key:
- title: Starter Drive Api Key
- type: string
- starter_drive_id:
- title: Starter Drive Id
- type: string
- workspace:
- $ref: "#/components/schemas/WorkspaceOut"
+ error:
+ $ref: "#/components/schemas/drives_list_400_response_error"
required:
- - starter_drive_api_key
- - starter_drive_id
- - workspace
- title: WorkspaceCreateOut
- WorkspaceList:
+ - error
+ drives_create_400_response_error:
+ additionalProperties: true
example:
- items:
- - created_at: 2000-01-23T04:56:07.000+00:00
- id: id
- name: name
- role: admin
- tier_id: tier_id
- - created_at: 2000-01-23T04:56:07.000+00:00
- id: id
- name: name
- role: admin
- tier_id: tier_id
- next_cursor: next_cursor
+ code: code
+ details: "{}"
+ message: message
properties:
- items:
- items:
- $ref: "#/components/schemas/WorkspaceOut"
- title: Items
- type: array
- default: null
- next_cursor:
- nullable: true
+ code:
+ description: Stable machine-readable error code (see the error-catalog).
+ type: string
+ details:
+ description: Error-code-specific context (optional).
+ type: object
+ message:
type: string
required:
- - items
- title: WorkspaceList
- WorkspaceOut:
- description: |-
- One workspace in a listing — metadata only. `role` is the CALLER's
- role in it (admin/member), so a client can render management affordances
- without a second round-trip.
+ - code
+ - message
+ drives_create_400_response:
example:
- created_at: 2000-01-23T04:56:07.000+00:00
- id: id
- name: name
- role: admin
- tier_id: tier_id
+ error:
+ code: code
+ details: "{}"
+ message: message
properties:
- created_at:
- format: date-time
- title: Created At
+ error:
+ $ref: "#/components/schemas/drives_create_400_response_error"
+ required:
+ - error
+ artifacts_create_request:
+ properties:
+ content:
+ description: The artifact bytes.
+ format: binary
type: string
- id:
- title: Id
+ content_type:
+ description: Declared media type.
type: string
+ metadata:
+ description: Free-form JSON metadata.
+ type: object
name:
- title: Name
+ description: Artifact name.
type: string
- role:
- enum:
- - admin
- - member
- title: Role
+ parent_id:
+ description: Destination folder id (fld_*).
type: string
- tier_id:
- title: Tier Id
+ sha256:
+ description: Optional content sha256 for verification.
type: string
required:
- - created_at
- - id
+ - content
- name
- - role
- - tier_id
- title: WorkspaceOut
- WorkspaceRenameIn:
- description: |-
- PATCH /v0/workspaces/{org} body — rename a workspace the caller
- administers.
+ - parent_id
+ versions_append_request:
+ properties:
+ content:
+ description: The artifact bytes.
+ format: binary
+ type: string
+ content_type:
+ description: Declared media type.
+ type: string
+ sha256:
+ description: Optional content sha256 for verification.
+ type: string
+ required:
+ - content
+ ValidationErrorResponse_error_details_fields_inner:
example:
- name: name
+ location: location
+ reason: reason
properties:
- name:
- maxLength: 120
- minLength: 1
- title: Name
+ location:
+ type: string
+ reason:
+ type: string
+ ValidationErrorResponse_error_details:
+ example:
+ fields:
+ - location: location
+ reason: reason
+ - location: location
+ reason: reason
+ properties:
+ fields:
+ items:
+ $ref: "#/components/schemas/ValidationErrorResponse_error_details_fields_inner"
+ type: array
+ default: null
+ ValidationErrorResponse_error:
+ additionalProperties: true
+ example:
+ code: code
+ details:
+ fields:
+ - location: location
+ reason: reason
+ - location: location
+ reason: reason
+ message: message
+ properties:
+ code:
+ nullable: true
+ type: string
+ details:
+ $ref: "#/components/schemas/ValidationErrorResponse_error_details"
+ message:
+ nullable: true
type: string
required:
- - name
- title: WorkspaceRenameIn
- register_agent_identity_agent_identity_post_422_response:
- oneOf:
- - $ref: "#/components/schemas/ValidationErrorResponse"
- - $ref: "#/components/schemas/ErrorResponse"
- authorize_decision_oauth2_authorize_post_403_response:
- oneOf:
- - $ref: "#/components/schemas/OAuthProtocolErrorOut"
- - $ref: "#/components/schemas/ErrorResponse"
- Response_Post_Query_V0_Query_Post:
- anyOf:
- - $ref: "#/components/schemas/QueryDryRunOut"
- - $ref: "#/components/schemas/QueryResultOut"
- title: Response Post Query V0 Query Post
+ - code
+ - message
securitySchemes:
- BearerAuth:
- bearerFormat: ad_live_ | ad_user_ | JWT
- description: "AgentDrive bearer credential. Data-plane operations accept an\
- \ `ad_live_` drive key, an `ad_user_` user token, or a supported short-lived\
- \ JWT access token. User-control-plane operations accept `ad_user_` tokens.\
- \ MCP `adat_` credentials are not valid on `/v0`."
+ bearerAuth:
+ bearerFormat: JWT
+ description: "Hub-issued bearer token. Scopes: drives:*, content:*, sharing:*,\
+ \ changes:read, usage:read. See the OAuth-protected-resource discovery document\
+ \ (RFC 9728)."
scheme: bearer
type: http
x-agentdrive-compatibility-policy: 1
diff --git a/sdk/go/api_agent_auth.go b/sdk/go/api_agent_auth.go
deleted file mode 100644
index 26a15ea..0000000
--- a/sdk/go/api_agent_auth.go
+++ /dev/null
@@ -1,968 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "bytes"
- "context"
- "io"
- "net/http"
- "net/url"
-)
-
-
-// AgentAuthAPIService AgentAuthAPI service
-type AgentAuthAPIService service
-
-type ApiExtensionExchangeV0AuthExtensionExchangePostRequest struct {
- ctx context.Context
- ApiService *AgentAuthAPIService
- extensionExchangeRequest *ExtensionExchangeRequest
-}
-
-func (r ApiExtensionExchangeV0AuthExtensionExchangePostRequest) ExtensionExchangeRequest(extensionExchangeRequest ExtensionExchangeRequest) ApiExtensionExchangeV0AuthExtensionExchangePostRequest {
- r.extensionExchangeRequest = &extensionExchangeRequest
- return r
-}
-
-func (r ApiExtensionExchangeV0AuthExtensionExchangePostRequest) Execute() (*ExtensionExchangeResponse, *http.Response, error) {
- return r.ApiService.ExtensionExchangeV0AuthExtensionExchangePostExecute(r)
-}
-
-/*
-ExtensionExchangeV0AuthExtensionExchangePost Redeem an extension OAuth ticket for a JWT pair
-
-Single-use opaque ticket → JWT pair. Called once by an extension's auth-complete.html after the OAuth handoff lands. Returns a 15-minute `access_token` (scope=extension) and a 90-day `identity_assertion` the extension stores and refreshes via POST /oauth2/token.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiExtensionExchangeV0AuthExtensionExchangePostRequest
-*/
-func (a *AgentAuthAPIService) ExtensionExchangeV0AuthExtensionExchangePost(ctx context.Context) ApiExtensionExchangeV0AuthExtensionExchangePostRequest {
- return ApiExtensionExchangeV0AuthExtensionExchangePostRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return ExtensionExchangeResponse
-func (a *AgentAuthAPIService) ExtensionExchangeV0AuthExtensionExchangePostExecute(r ApiExtensionExchangeV0AuthExtensionExchangePostRequest) (*ExtensionExchangeResponse, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ExtensionExchangeResponse
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "AgentAuthAPIService.ExtensionExchangeV0AuthExtensionExchangePost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/auth/extension/exchange"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.extensionExchangeRequest == nil {
- return localVarReturnValue, nil, reportError("extensionExchangeRequest is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- // body params
- localVarPostBody = r.extensionExchangeRequest
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 503 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiInitiateClaimAgentIdentityClaimPostRequest struct {
- ctx context.Context
- ApiService *AgentAuthAPIService
- claimInitRequest *ClaimInitRequest
-}
-
-func (r ApiInitiateClaimAgentIdentityClaimPostRequest) ClaimInitRequest(claimInitRequest ClaimInitRequest) ApiInitiateClaimAgentIdentityClaimPostRequest {
- r.claimInitRequest = &claimInitRequest
- return r
-}
-
-func (r ApiInitiateClaimAgentIdentityClaimPostRequest) Execute() (*ClaimInitResponse, *http.Response, error) {
- return r.ApiService.InitiateClaimAgentIdentityClaimPostExecute(r)
-}
-
-/*
-InitiateClaimAgentIdentityClaimPost Initiate the human-claim ceremony for an agent identity
-
-Returns a `user_code` and `verification_uri` (RFC 8628 device-code idiom). The agent surfaces these to the human, who visits the URI, signs in, and approves the claim. The agent then polls POST /oauth2/token (grant_type=claim) with the same `claim_token` to learn when the claim completes.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiInitiateClaimAgentIdentityClaimPostRequest
-*/
-func (a *AgentAuthAPIService) InitiateClaimAgentIdentityClaimPost(ctx context.Context) ApiInitiateClaimAgentIdentityClaimPostRequest {
- return ApiInitiateClaimAgentIdentityClaimPostRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return ClaimInitResponse
-func (a *AgentAuthAPIService) InitiateClaimAgentIdentityClaimPostExecute(r ApiInitiateClaimAgentIdentityClaimPostRequest) (*ClaimInitResponse, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ClaimInitResponse
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "AgentAuthAPIService.InitiateClaimAgentIdentityClaimPost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/agent/identity/claim"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.claimInitRequest == nil {
- return localVarReturnValue, nil, reportError("claimInitRequest is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- // body params
- localVarPostBody = r.claimInitRequest
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiJwksWellKnownJwksJsonGetRequest struct {
- ctx context.Context
- ApiService *AgentAuthAPIService
-}
-
-func (r ApiJwksWellKnownJwksJsonGetRequest) Execute() (*JwksOut, *http.Response, error) {
- return r.ApiService.JwksWellKnownJwksJsonGetExecute(r)
-}
-
-/*
-JwksWellKnownJwksJsonGet JSON Web Key Set — public keys for verifying AgentDrive JWTs
-
-Public half of the RSA signing key for identity_assertion + access_token JWTs issued by AgentDrive. RFC 7517 shape. Cache-friendly; key rotation publishes both kids during the overlap window.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiJwksWellKnownJwksJsonGetRequest
-*/
-func (a *AgentAuthAPIService) JwksWellKnownJwksJsonGet(ctx context.Context) ApiJwksWellKnownJwksJsonGetRequest {
- return ApiJwksWellKnownJwksJsonGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return JwksOut
-func (a *AgentAuthAPIService) JwksWellKnownJwksJsonGetExecute(r ApiJwksWellKnownJwksJsonGetRequest) (*JwksOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *JwksOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "AgentAuthAPIService.JwksWellKnownJwksJsonGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/.well-known/jwks.json"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiOauth2TokenOauth2TokenPostRequest struct {
- ctx context.Context
- ApiService *AgentAuthAPIService
- grantType *string
- assertion *string
- claimToken *string
-}
-
-func (r ApiOauth2TokenOauth2TokenPostRequest) GrantType(grantType string) ApiOauth2TokenOauth2TokenPostRequest {
- r.grantType = &grantType
- return r
-}
-
-func (r ApiOauth2TokenOauth2TokenPostRequest) Assertion(assertion string) ApiOauth2TokenOauth2TokenPostRequest {
- r.assertion = &assertion
- return r
-}
-
-func (r ApiOauth2TokenOauth2TokenPostRequest) ClaimToken(claimToken string) ApiOauth2TokenOauth2TokenPostRequest {
- r.claimToken = &claimToken
- return r
-}
-
-func (r ApiOauth2TokenOauth2TokenPostRequest) Execute() (*TokenResponse, *http.Response, error) {
- return r.ApiService.Oauth2TokenOauth2TokenPostExecute(r)
-}
-
-/*
-Oauth2TokenOauth2TokenPost Exchange a credential for an access_token
-
-Two grant types:
-
-**`urn:ietf:params:oauth:grant-type:jwt-bearer`** (RFC 7523) — body `assertion=`. Returns a fresh 15-minute access_token with the same scope as the assertion.
-
-**`claim`** (custom) — body `claim_token=`. Polling endpoint for the claim ceremony. Returns one of: `authorization_pending` (400), `expired_token` (400), `access_denied` (400), or access_token + new identity_assertion + scope=full (200).
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiOauth2TokenOauth2TokenPostRequest
-*/
-func (a *AgentAuthAPIService) Oauth2TokenOauth2TokenPost(ctx context.Context) ApiOauth2TokenOauth2TokenPostRequest {
- return ApiOauth2TokenOauth2TokenPostRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return TokenResponse
-func (a *AgentAuthAPIService) Oauth2TokenOauth2TokenPostExecute(r ApiOauth2TokenOauth2TokenPostRequest) (*TokenResponse, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *TokenResponse
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "AgentAuthAPIService.Oauth2TokenOauth2TokenPost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/oauth2/token"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.grantType == nil {
- return localVarReturnValue, nil, reportError("grantType is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/x-www-form-urlencoded"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.assertion != nil {
- parameterAddToHeaderOrQuery(localVarFormParams, "assertion", r.assertion, "", "")
- }
- if r.claimToken != nil {
- parameterAddToHeaderOrQuery(localVarFormParams, "claim_token", r.claimToken, "", "")
- }
- parameterAddToHeaderOrQuery(localVarFormParams, "grant_type", r.grantType, "", "")
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiOauthAuthorizationServerWellKnownOauthAuthorizationServerGetRequest struct {
- ctx context.Context
- ApiService *AgentAuthAPIService
-}
-
-func (r ApiOauthAuthorizationServerWellKnownOauthAuthorizationServerGetRequest) Execute() (*AuthorizationServerMetadataOut, *http.Response, error) {
- return r.ApiService.OauthAuthorizationServerWellKnownOauthAuthorizationServerGetExecute(r)
-}
-
-/*
-OauthAuthorizationServerWellKnownOauthAuthorizationServerGet Authorization-server metadata (RFC 8414 + auth.md agent_auth block)
-
-Discovery document for the auth.md protocol. Carries the standard RFC 8414 fields plus an `agent_auth` block per the auth.md spec — the latter is what an agent runtime keys off to find the identity + claim endpoints.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiOauthAuthorizationServerWellKnownOauthAuthorizationServerGetRequest
-*/
-func (a *AgentAuthAPIService) OauthAuthorizationServerWellKnownOauthAuthorizationServerGet(ctx context.Context) ApiOauthAuthorizationServerWellKnownOauthAuthorizationServerGetRequest {
- return ApiOauthAuthorizationServerWellKnownOauthAuthorizationServerGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return AuthorizationServerMetadataOut
-func (a *AgentAuthAPIService) OauthAuthorizationServerWellKnownOauthAuthorizationServerGetExecute(r ApiOauthAuthorizationServerWellKnownOauthAuthorizationServerGetRequest) (*AuthorizationServerMetadataOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *AuthorizationServerMetadataOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "AgentAuthAPIService.OauthAuthorizationServerWellKnownOauthAuthorizationServerGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/.well-known/oauth-authorization-server"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiOauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGetRequest struct {
- ctx context.Context
- ApiService *AgentAuthAPIService
-}
-
-func (r ApiOauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGetRequest) Execute() (*ProtectedResourceMetadataOut, *http.Response, error) {
- return r.ApiService.OauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGetExecute(r)
-}
-
-/*
-OauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGet Protected-resource metadata for the MCP endpoint (RFC 9728 §3.1)
-
-Path-inserted variant of the protected-resource document. MCP clients derive this URL from the resource URL `{origin}/mcp` (RFC 9728 §3.1: insert the well-known segment between host and path) after reading the WWW-Authenticate challenge on a 401 — it is the first hop of the client-side OAuth flow.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiOauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGetRequest
-*/
-func (a *AgentAuthAPIService) OauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGet(ctx context.Context) ApiOauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGetRequest {
- return ApiOauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return ProtectedResourceMetadataOut
-func (a *AgentAuthAPIService) OauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGetExecute(r ApiOauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGetRequest) (*ProtectedResourceMetadataOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ProtectedResourceMetadataOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "AgentAuthAPIService.OauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/.well-known/oauth-protected-resource/mcp"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiOauthProtectedResourceWellKnownOauthProtectedResourceGetRequest struct {
- ctx context.Context
- ApiService *AgentAuthAPIService
-}
-
-func (r ApiOauthProtectedResourceWellKnownOauthProtectedResourceGetRequest) Execute() (*ProtectedResourceMetadataOut, *http.Response, error) {
- return r.ApiService.OauthProtectedResourceWellKnownOauthProtectedResourceGetExecute(r)
-}
-
-/*
-OauthProtectedResourceWellKnownOauthProtectedResourceGet Protected-resource metadata (auth.md / RFC 9728-like discovery)
-
-Names this server as a protected resource and points clients at the authorization server they should obtain tokens from. In this design the resource server and authorization server are the same host.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiOauthProtectedResourceWellKnownOauthProtectedResourceGetRequest
-*/
-func (a *AgentAuthAPIService) OauthProtectedResourceWellKnownOauthProtectedResourceGet(ctx context.Context) ApiOauthProtectedResourceWellKnownOauthProtectedResourceGetRequest {
- return ApiOauthProtectedResourceWellKnownOauthProtectedResourceGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return ProtectedResourceMetadataOut
-func (a *AgentAuthAPIService) OauthProtectedResourceWellKnownOauthProtectedResourceGetExecute(r ApiOauthProtectedResourceWellKnownOauthProtectedResourceGetRequest) (*ProtectedResourceMetadataOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ProtectedResourceMetadataOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "AgentAuthAPIService.OauthProtectedResourceWellKnownOauthProtectedResourceGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/.well-known/oauth-protected-resource"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiRegisterAgentIdentityAgentIdentityPostRequest struct {
- ctx context.Context
- ApiService *AgentAuthAPIService
- requestBody *map[string]*interface{}
-}
-
-func (r ApiRegisterAgentIdentityAgentIdentityPostRequest) RequestBody(requestBody map[string]*interface{}) ApiRegisterAgentIdentityAgentIdentityPostRequest {
- r.requestBody = &requestBody
- return r
-}
-
-func (r ApiRegisterAgentIdentityAgentIdentityPostRequest) Execute() (*AnonymousIdentityResponse, *http.Response, error) {
- return r.ApiService.RegisterAgentIdentityAgentIdentityPostExecute(r)
-}
-
-/*
-RegisterAgentIdentityAgentIdentityPost Register an agent identity (anonymous or ID-JAG)
-
-Two registration modes:
-
-**`type=anonymous`** — Provisions a brand-new agent identity bound to a fresh shadow-org drive. No human involved; returned `identity_assertion` carries `scope=pre_claim`. A human completes the claim ceremony later via /claim.
-
-**`type=identity_assertion`** — Agent provider (e.g. WorkOS) has already minted an ID-JAG asserting a user identity binding. We verify it against the provider's JWKS and provision a **claimed** identity immediately: scope=full, drive bound to the user, no claim ceremony needed.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiRegisterAgentIdentityAgentIdentityPostRequest
-*/
-func (a *AgentAuthAPIService) RegisterAgentIdentityAgentIdentityPost(ctx context.Context) ApiRegisterAgentIdentityAgentIdentityPostRequest {
- return ApiRegisterAgentIdentityAgentIdentityPostRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return AnonymousIdentityResponse
-func (a *AgentAuthAPIService) RegisterAgentIdentityAgentIdentityPostExecute(r ApiRegisterAgentIdentityAgentIdentityPostRequest) (*AnonymousIdentityResponse, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *AnonymousIdentityResponse
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "AgentAuthAPIService.RegisterAgentIdentityAgentIdentityPost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/agent/identity"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.requestBody == nil {
- return localVarReturnValue, nil, reportError("requestBody is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- // body params
- localVarPostBody = r.requestBody
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v RegisterAgentIdentityAgentIdentityPost422Response
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 503 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
diff --git a/sdk/go/api_artifacts.go b/sdk/go/api_artifacts.go
new file mode 100644
index 0000000..16b326b
--- /dev/null
+++ b/sdk/go/api_artifacts.go
@@ -0,0 +1,2023 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "bytes"
+ "context"
+ "io"
+ "net/http"
+ "net/url"
+ "strings"
+ "os"
+ "time"
+)
+
+
+// ArtifactsAPIService ArtifactsAPI service
+type ArtifactsAPIService service
+
+type ApiArtifactsContentRequest struct {
+ ctx context.Context
+ ApiService *ArtifactsAPIService
+ driveId string
+ artifactId string
+ ifNoneMatch *string
+ authorization *string
+}
+
+func (r ApiArtifactsContentRequest) IfNoneMatch(ifNoneMatch string) ApiArtifactsContentRequest {
+ r.ifNoneMatch = &ifNoneMatch
+ return r
+}
+
+func (r ApiArtifactsContentRequest) Authorization(authorization string) ApiArtifactsContentRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiArtifactsContentRequest) Execute() (*os.File, *http.Response, error) {
+ return r.ApiService.ArtifactsContentExecute(r)
+}
+
+/*
+ArtifactsContent Read Artifact Content
+
+Download the head version's bytes — stream or 307 signed URL.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param artifactId
+ @return ApiArtifactsContentRequest
+*/
+func (a *ArtifactsAPIService) ArtifactsContent(ctx context.Context, driveId string, artifactId string) ApiArtifactsContentRequest {
+ return ApiArtifactsContentRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ artifactId: artifactId,
+ }
+}
+
+// Execute executes the request
+// @return *os.File
+func (a *ArtifactsAPIService) ArtifactsContentExecute(r ApiArtifactsContentRequest) (*os.File, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodGet
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *os.File
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ArtifactsAPIService.ArtifactsContent")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/artifacts/{artifact_id}/content"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"artifact_id"+"}", url.PathEscape(parameterValueToString(r.artifactId, "artifactId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/octet-stream", "application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ if r.ifNoneMatch != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-None-Match", r.ifNoneMatch, "simple", "")
+ }
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiArtifactsCopyRequest struct {
+ ctx context.Context
+ ApiService *ArtifactsAPIService
+ driveId string
+ artifactId string
+ idempotencyKey *string
+ artifactCopyIn *ArtifactCopyIn
+ ifMatch *string
+ authorization *string
+}
+
+func (r ApiArtifactsCopyRequest) IdempotencyKey(idempotencyKey string) ApiArtifactsCopyRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
+}
+
+func (r ApiArtifactsCopyRequest) ArtifactCopyIn(artifactCopyIn ArtifactCopyIn) ApiArtifactsCopyRequest {
+ r.artifactCopyIn = &artifactCopyIn
+ return r
+}
+
+func (r ApiArtifactsCopyRequest) IfMatch(ifMatch string) ApiArtifactsCopyRequest {
+ r.ifMatch = &ifMatch
+ return r
+}
+
+func (r ApiArtifactsCopyRequest) Authorization(authorization string) ApiArtifactsCopyRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiArtifactsCopyRequest) Execute() (*ArtifactOut, *http.Response, error) {
+ return r.ApiService.ArtifactsCopyExecute(r)
+}
+
+/*
+ArtifactsCopy Copy Artifact
+
+Copy one artifact within the same drive.
+
+Cross-drive copy is out of v0 scope and rejected (400 INVALID_ARGUMENT).
+``destination_drive_id`` must equal the source drive when present.
+Materializes the artifact + its selected version synchronously → 201.
+``If-Match`` is optional; when present it is validated against the source
+revision (412 stale).
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param artifactId
+ @return ApiArtifactsCopyRequest
+*/
+func (a *ArtifactsAPIService) ArtifactsCopy(ctx context.Context, driveId string, artifactId string) ApiArtifactsCopyRequest {
+ return ApiArtifactsCopyRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ artifactId: artifactId,
+ }
+}
+
+// Execute executes the request
+// @return ArtifactOut
+func (a *ArtifactsAPIService) ArtifactsCopyExecute(r ApiArtifactsCopyRequest) (*ArtifactOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodPost
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *ArtifactOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ArtifactsAPIService.ArtifactsCopy")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/artifacts/{artifact_id}/copy"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"artifact_id"+"}", url.PathEscape(parameterValueToString(r.artifactId, "artifactId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.artifactCopyIn == nil {
+ return localVarReturnValue, nil, reportError("artifactCopyIn is required and must be specified")
+ }
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{"application/json"}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ if r.ifMatch != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-Match", r.ifMatch, "simple", "")
+ }
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ // body params
+ localVarPostBody = r.artifactCopyIn
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiArtifactsCreateRequest struct {
+ ctx context.Context
+ ApiService *ArtifactsAPIService
+ driveId string
+ idempotencyKey *string
+ content *os.File
+ name *string
+ parentId *string
+ authorization *string
+ contentType *string
+ metadata *map[string]interface{}
+ sha256 *string
+}
+
+func (r ApiArtifactsCreateRequest) IdempotencyKey(idempotencyKey string) ApiArtifactsCreateRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
+}
+
+// The artifact bytes.
+func (r ApiArtifactsCreateRequest) Content(content *os.File) ApiArtifactsCreateRequest {
+ r.content = content
+ return r
+}
+
+// Artifact name.
+func (r ApiArtifactsCreateRequest) Name(name string) ApiArtifactsCreateRequest {
+ r.name = &name
+ return r
+}
+
+// Destination folder id (fld_*).
+func (r ApiArtifactsCreateRequest) ParentId(parentId string) ApiArtifactsCreateRequest {
+ r.parentId = &parentId
+ return r
+}
+
+func (r ApiArtifactsCreateRequest) Authorization(authorization string) ApiArtifactsCreateRequest {
+ r.authorization = &authorization
+ return r
+}
+
+// Declared media type.
+func (r ApiArtifactsCreateRequest) ContentType(contentType string) ApiArtifactsCreateRequest {
+ r.contentType = &contentType
+ return r
+}
+
+// Free-form JSON metadata.
+func (r ApiArtifactsCreateRequest) Metadata(metadata map[string]interface{}) ApiArtifactsCreateRequest {
+ r.metadata = &metadata
+ return r
+}
+
+// Optional content sha256 for verification.
+func (r ApiArtifactsCreateRequest) Sha256(sha256 string) ApiArtifactsCreateRequest {
+ r.sha256 = &sha256
+ return r
+}
+
+func (r ApiArtifactsCreateRequest) Execute() (*ArtifactOut, *http.Response, error) {
+ return r.ApiService.ArtifactsCreateExecute(r)
+}
+
+/*
+ArtifactsCreate Create Artifact
+
+Create one artifact with inline content — multipart only.
+
+Multipart only (415 for a JSON body). Parts: parent_id, name, metadata, content (bytes), content_type, sha256. parent_id, name, and content are required.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @return ApiArtifactsCreateRequest
+*/
+func (a *ArtifactsAPIService) ArtifactsCreate(ctx context.Context, driveId string) ApiArtifactsCreateRequest {
+ return ApiArtifactsCreateRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ }
+}
+
+// Execute executes the request
+// @return ArtifactOut
+func (a *ArtifactsAPIService) ArtifactsCreateExecute(r ApiArtifactsCreateRequest) (*ArtifactOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodPost
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *ArtifactOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ArtifactsAPIService.ArtifactsCreate")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/artifacts"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.content == nil {
+ return localVarReturnValue, nil, reportError("content is required and must be specified")
+ }
+ if r.name == nil {
+ return localVarReturnValue, nil, reportError("name is required and must be specified")
+ }
+ if r.parentId == nil {
+ return localVarReturnValue, nil, reportError("parentId is required and must be specified")
+ }
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{"multipart/form-data"}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ var contentLocalVarFormFileName string
+ var contentLocalVarFileName string
+ var contentLocalVarFileBytes []byte
+
+ contentLocalVarFormFileName = "content"
+ contentLocalVarFile := r.content
+
+ if contentLocalVarFile != nil {
+ fbs, _ := io.ReadAll(contentLocalVarFile)
+
+ contentLocalVarFileBytes = fbs
+ contentLocalVarFileName = contentLocalVarFile.Name()
+ contentLocalVarFile.Close()
+ formFiles = append(formFiles, formFile{fileBytes: contentLocalVarFileBytes, fileName: contentLocalVarFileName, formFileName: contentLocalVarFormFileName})
+ }
+ if r.contentType != nil {
+ parameterAddToHeaderOrQuery(localVarFormParams, "content_type", r.contentType, "", "")
+ }
+ if r.metadata != nil {
+ parameterAddToHeaderOrQuery(localVarFormParams, "metadata", r.metadata, "", "")
+ }
+ parameterAddToHeaderOrQuery(localVarFormParams, "name", r.name, "", "")
+ parameterAddToHeaderOrQuery(localVarFormParams, "parent_id", r.parentId, "", "")
+ if r.sha256 != nil {
+ parameterAddToHeaderOrQuery(localVarFormParams, "sha256", r.sha256, "", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiArtifactsDeleteRequest struct {
+ ctx context.Context
+ ApiService *ArtifactsAPIService
+ driveId string
+ artifactId string
+ idempotencyKey *string
+ ifMatch *string
+ authorization *string
+}
+
+func (r ApiArtifactsDeleteRequest) IdempotencyKey(idempotencyKey string) ApiArtifactsDeleteRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
+}
+
+func (r ApiArtifactsDeleteRequest) IfMatch(ifMatch string) ApiArtifactsDeleteRequest {
+ r.ifMatch = &ifMatch
+ return r
+}
+
+func (r ApiArtifactsDeleteRequest) Authorization(authorization string) ApiArtifactsDeleteRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiArtifactsDeleteRequest) Execute() (*ArtifactOut, *http.Response, error) {
+ return r.ApiService.ArtifactsDeleteExecute(r)
+}
+
+/*
+ArtifactsDelete Delete Artifact
+
+Soft-delete one artifact (its versions stay).
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param artifactId
+ @return ApiArtifactsDeleteRequest
+*/
+func (a *ArtifactsAPIService) ArtifactsDelete(ctx context.Context, driveId string, artifactId string) ApiArtifactsDeleteRequest {
+ return ApiArtifactsDeleteRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ artifactId: artifactId,
+ }
+}
+
+// Execute executes the request
+// @return ArtifactOut
+func (a *ArtifactsAPIService) ArtifactsDeleteExecute(r ApiArtifactsDeleteRequest) (*ArtifactOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodDelete
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *ArtifactOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ArtifactsAPIService.ArtifactsDelete")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/artifacts/{artifact_id}"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"artifact_id"+"}", url.PathEscape(parameterValueToString(r.artifactId, "artifactId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.ifMatch == nil {
+ return localVarReturnValue, nil, reportError("ifMatch is required and must be specified")
+ }
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-Match", r.ifMatch, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiArtifactsListRequest struct {
+ ctx context.Context
+ ApiService *ArtifactsAPIService
+ driveId string
+ lifecycle *string
+ limit *int32
+ cursor *string
+ parentId *string
+ name *string
+ contentType *string
+ label *string
+ updatedAfter *time.Time
+ updatedBefore *time.Time
+ authorization *string
+}
+
+func (r ApiArtifactsListRequest) Lifecycle(lifecycle string) ApiArtifactsListRequest {
+ r.lifecycle = &lifecycle
+ return r
+}
+
+func (r ApiArtifactsListRequest) Limit(limit int32) ApiArtifactsListRequest {
+ r.limit = &limit
+ return r
+}
+
+func (r ApiArtifactsListRequest) Cursor(cursor string) ApiArtifactsListRequest {
+ r.cursor = &cursor
+ return r
+}
+
+func (r ApiArtifactsListRequest) ParentId(parentId string) ApiArtifactsListRequest {
+ r.parentId = &parentId
+ return r
+}
+
+func (r ApiArtifactsListRequest) Name(name string) ApiArtifactsListRequest {
+ r.name = &name
+ return r
+}
+
+func (r ApiArtifactsListRequest) ContentType(contentType string) ApiArtifactsListRequest {
+ r.contentType = &contentType
+ return r
+}
+
+func (r ApiArtifactsListRequest) Label(label string) ApiArtifactsListRequest {
+ r.label = &label
+ return r
+}
+
+func (r ApiArtifactsListRequest) UpdatedAfter(updatedAfter time.Time) ApiArtifactsListRequest {
+ r.updatedAfter = &updatedAfter
+ return r
+}
+
+func (r ApiArtifactsListRequest) UpdatedBefore(updatedBefore time.Time) ApiArtifactsListRequest {
+ r.updatedBefore = &updatedBefore
+ return r
+}
+
+func (r ApiArtifactsListRequest) Authorization(authorization string) ApiArtifactsListRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiArtifactsListRequest) Execute() (*ArtifactListOut, *http.Response, error) {
+ return r.ApiService.ArtifactsListExecute(r)
+}
+
+/*
+ArtifactsList List Artifacts
+
+List the drive's artifacts, newest-first (keyset paginated).
+
+``lifecycle`` (active|deleted|all) exposes soft-deleted artifacts.
+``parent_id`` / ``name`` / ``content_type`` / ``label`` are exact-match
+filters; ``updated_after`` / ``updated_before`` are inclusive bounds.
+Unknown query parameters are rejected.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @return ApiArtifactsListRequest
+*/
+func (a *ArtifactsAPIService) ArtifactsList(ctx context.Context, driveId string) ApiArtifactsListRequest {
+ return ApiArtifactsListRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ }
+}
+
+// Execute executes the request
+// @return ArtifactListOut
+func (a *ArtifactsAPIService) ArtifactsListExecute(r ApiArtifactsListRequest) (*ArtifactListOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodGet
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *ArtifactListOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ArtifactsAPIService.ArtifactsList")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/artifacts"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ if r.lifecycle != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "lifecycle", r.lifecycle, "form", "")
+ } else {
+ var defaultValue string = "active"
+ parameterAddToHeaderOrQuery(localVarQueryParams, "lifecycle", defaultValue, "form", "")
+ r.lifecycle = &defaultValue
+ }
+ if r.limit != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
+ }
+ if r.cursor != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
+ }
+ if r.parentId != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "parent_id", r.parentId, "form", "")
+ }
+ if r.name != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "name", r.name, "form", "")
+ }
+ if r.contentType != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "content_type", r.contentType, "form", "")
+ }
+ if r.label != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "label", r.label, "form", "")
+ }
+ if r.updatedAfter != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "updated_after", r.updatedAfter, "form", "")
+ }
+ if r.updatedBefore != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "updated_before", r.updatedBefore, "form", "")
+ }
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiArtifactsReadRequest struct {
+ ctx context.Context
+ ApiService *ArtifactsAPIService
+ driveId string
+ artifactId string
+ ifNoneMatch *string
+ authorization *string
+}
+
+func (r ApiArtifactsReadRequest) IfNoneMatch(ifNoneMatch string) ApiArtifactsReadRequest {
+ r.ifNoneMatch = &ifNoneMatch
+ return r
+}
+
+func (r ApiArtifactsReadRequest) Authorization(authorization string) ApiArtifactsReadRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiArtifactsReadRequest) Execute() (*ArtifactOut, *http.Response, error) {
+ return r.ApiService.ArtifactsReadExecute(r)
+}
+
+/*
+ArtifactsRead Read Artifact
+
+Read one active artifact. ``If-None-Match`` short-circuits to 304.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param artifactId
+ @return ApiArtifactsReadRequest
+*/
+func (a *ArtifactsAPIService) ArtifactsRead(ctx context.Context, driveId string, artifactId string) ApiArtifactsReadRequest {
+ return ApiArtifactsReadRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ artifactId: artifactId,
+ }
+}
+
+// Execute executes the request
+// @return ArtifactOut
+func (a *ArtifactsAPIService) ArtifactsReadExecute(r ApiArtifactsReadRequest) (*ArtifactOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodGet
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *ArtifactOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ArtifactsAPIService.ArtifactsRead")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/artifacts/{artifact_id}"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"artifact_id"+"}", url.PathEscape(parameterValueToString(r.artifactId, "artifactId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ if r.ifNoneMatch != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-None-Match", r.ifNoneMatch, "simple", "")
+ }
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiArtifactsRestoreRequest struct {
+ ctx context.Context
+ ApiService *ArtifactsAPIService
+ driveId string
+ artifactId string
+ idempotencyKey *string
+ ifMatch *string
+ authorization *string
+}
+
+func (r ApiArtifactsRestoreRequest) IdempotencyKey(idempotencyKey string) ApiArtifactsRestoreRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
+}
+
+func (r ApiArtifactsRestoreRequest) IfMatch(ifMatch string) ApiArtifactsRestoreRequest {
+ r.ifMatch = &ifMatch
+ return r
+}
+
+func (r ApiArtifactsRestoreRequest) Authorization(authorization string) ApiArtifactsRestoreRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiArtifactsRestoreRequest) Execute() (*ArtifactOut, *http.Response, error) {
+ return r.ApiService.ArtifactsRestoreExecute(r)
+}
+
+/*
+ArtifactsRestore Restore Artifact
+
+Restore a soft-deleted artifact atomically.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param artifactId
+ @return ApiArtifactsRestoreRequest
+*/
+func (a *ArtifactsAPIService) ArtifactsRestore(ctx context.Context, driveId string, artifactId string) ApiArtifactsRestoreRequest {
+ return ApiArtifactsRestoreRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ artifactId: artifactId,
+ }
+}
+
+// Execute executes the request
+// @return ArtifactOut
+func (a *ArtifactsAPIService) ArtifactsRestoreExecute(r ApiArtifactsRestoreRequest) (*ArtifactOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodPost
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *ArtifactOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ArtifactsAPIService.ArtifactsRestore")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/artifacts/{artifact_id}/restore"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"artifact_id"+"}", url.PathEscape(parameterValueToString(r.artifactId, "artifactId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.ifMatch == nil {
+ return localVarReturnValue, nil, reportError("ifMatch is required and must be specified")
+ }
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-Match", r.ifMatch, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiArtifactsUpdateRequest struct {
+ ctx context.Context
+ ApiService *ArtifactsAPIService
+ driveId string
+ artifactId string
+ idempotencyKey *string
+ ifMatch *string
+ artifactUpdateIn *ArtifactUpdateIn
+ authorization *string
+}
+
+func (r ApiArtifactsUpdateRequest) IdempotencyKey(idempotencyKey string) ApiArtifactsUpdateRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
+}
+
+func (r ApiArtifactsUpdateRequest) IfMatch(ifMatch string) ApiArtifactsUpdateRequest {
+ r.ifMatch = &ifMatch
+ return r
+}
+
+func (r ApiArtifactsUpdateRequest) ArtifactUpdateIn(artifactUpdateIn ArtifactUpdateIn) ApiArtifactsUpdateRequest {
+ r.artifactUpdateIn = &artifactUpdateIn
+ return r
+}
+
+func (r ApiArtifactsUpdateRequest) Authorization(authorization string) ApiArtifactsUpdateRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiArtifactsUpdateRequest) Execute() (*ArtifactOut, *http.Response, error) {
+ return r.ApiService.ArtifactsUpdateExecute(r)
+}
+
+/*
+ArtifactsUpdate Update Artifact
+
+Rename / move / set metadata or labels. At least one field required.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param artifactId
+ @return ApiArtifactsUpdateRequest
+*/
+func (a *ArtifactsAPIService) ArtifactsUpdate(ctx context.Context, driveId string, artifactId string) ApiArtifactsUpdateRequest {
+ return ApiArtifactsUpdateRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ artifactId: artifactId,
+ }
+}
+
+// Execute executes the request
+// @return ArtifactOut
+func (a *ArtifactsAPIService) ArtifactsUpdateExecute(r ApiArtifactsUpdateRequest) (*ArtifactOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodPatch
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *ArtifactOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ArtifactsAPIService.ArtifactsUpdate")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/artifacts/{artifact_id}"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"artifact_id"+"}", url.PathEscape(parameterValueToString(r.artifactId, "artifactId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.ifMatch == nil {
+ return localVarReturnValue, nil, reportError("ifMatch is required and must be specified")
+ }
+ if r.artifactUpdateIn == nil {
+ return localVarReturnValue, nil, reportError("artifactUpdateIn is required and must be specified")
+ }
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{"application/json"}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-Match", r.ifMatch, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ // body params
+ localVarPostBody = r.artifactUpdateIn
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
diff --git a/sdk/go/api_changes.go b/sdk/go/api_changes.go
new file mode 100644
index 0000000..0b107f0
--- /dev/null
+++ b/sdk/go/api_changes.go
@@ -0,0 +1,250 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "bytes"
+ "context"
+ "io"
+ "net/http"
+ "net/url"
+ "strings"
+)
+
+
+// ChangesAPIService ChangesAPI service
+type ChangesAPIService service
+
+type ApiChangesListRequest struct {
+ ctx context.Context
+ ApiService *ChangesAPIService
+ driveId string
+ limit *int32
+ start *string
+ cursor *string
+ authorization *string
+}
+
+func (r ApiChangesListRequest) Limit(limit int32) ApiChangesListRequest {
+ r.limit = &limit
+ return r
+}
+
+func (r ApiChangesListRequest) Start(start string) ApiChangesListRequest {
+ r.start = &start
+ return r
+}
+
+func (r ApiChangesListRequest) Cursor(cursor string) ApiChangesListRequest {
+ r.cursor = &cursor
+ return r
+}
+
+func (r ApiChangesListRequest) Authorization(authorization string) ApiChangesListRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiChangesListRequest) Execute() (*ChangePageOut, *http.Response, error) {
+ return r.ApiService.ChangesListExecute(r)
+}
+
+/*
+ChangesList List Changes
+
+Pull one page of changes. Exactly one of ``start`` or ``cursor``.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @return ApiChangesListRequest
+*/
+func (a *ChangesAPIService) ChangesList(ctx context.Context, driveId string) ApiChangesListRequest {
+ return ApiChangesListRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ }
+}
+
+// Execute executes the request
+// @return ChangePageOut
+func (a *ChangesAPIService) ChangesListExecute(r ApiChangesListRequest) (*ChangePageOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodGet
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *ChangePageOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ChangesAPIService.ChangesList")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/changes"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ if r.limit != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
+ }
+ if r.start != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "start", r.start, "form", "")
+ }
+ if r.cursor != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
+ }
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesList400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 410 {
+ var v DrivesList400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
diff --git a/sdk/go/api_default.go b/sdk/go/api_default.go
index dde87be..8bcc409 100644
--- a/sdk/go/api_default.go
+++ b/sdk/go/api_default.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
@@ -16,13968 +16,65 @@ import (
"io"
"net/http"
"net/url"
- "strings"
- "os"
- "time"
- "reflect"
)
// DefaultAPIService DefaultAPI service
type DefaultAPIService service
-type ApiAbortUploadV0UploadsUploadIdDeleteRequest struct {
+type ApiHealthRequest struct {
ctx context.Context
ApiService *DefaultAPIService
- uploadId string
}
-func (r ApiAbortUploadV0UploadsUploadIdDeleteRequest) Execute() (*UploadAbortOut, *http.Response, error) {
- return r.ApiService.AbortUploadV0UploadsUploadIdDeleteExecute(r)
+func (r ApiHealthRequest) Execute() (*HealthOut, *http.Response, error) {
+ return r.ApiService.HealthExecute(r)
}
/*
-AbortUploadV0UploadsUploadIdDelete Abort a large (direct-to-GCS) upload session
+Health Health
-Release an open upload session: return its reserved quota to the drive and mark it aborted. Idempotent — aborting an already-aborted or already-expired session succeeds with `released_bytes: 0`. A committed session cannot be aborted (409 ALREADY_COMMITTED). No write budget is charged — this frees resources rather than consuming them.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param uploadId
- @return ApiAbortUploadV0UploadsUploadIdDeleteRequest
-*/
-func (a *DefaultAPIService) AbortUploadV0UploadsUploadIdDelete(ctx context.Context, uploadId string) ApiAbortUploadV0UploadsUploadIdDeleteRequest {
- return ApiAbortUploadV0UploadsUploadIdDeleteRequest{
- ApiService: a,
- ctx: ctx,
- uploadId: uploadId,
- }
-}
-
-// Execute executes the request
-// @return UploadAbortOut
-func (a *DefaultAPIService) AbortUploadV0UploadsUploadIdDeleteExecute(r ApiAbortUploadV0UploadsUploadIdDeleteRequest) (*UploadAbortOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodDelete
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *UploadAbortOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.AbortUploadV0UploadsUploadIdDelete")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/uploads/{upload_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"upload_id"+"}", url.PathEscape(parameterValueToString(r.uploadId, "uploadId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 409 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiBeginUploadV0UploadsPostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- uploadBeginIn *UploadBeginIn
-}
-
-func (r ApiBeginUploadV0UploadsPostRequest) UploadBeginIn(uploadBeginIn UploadBeginIn) ApiBeginUploadV0UploadsPostRequest {
- r.uploadBeginIn = &uploadBeginIn
- return r
-}
-
-func (r ApiBeginUploadV0UploadsPostRequest) Execute() (*UploadBeginOut, *http.Response, error) {
- return r.ApiService.BeginUploadV0UploadsPostExecute(r)
-}
-
-/*
-BeginUploadV0UploadsPost Begin a large (direct-to-GCS) upload
-
-Reserve quota and open a resumable upload session for a file larger than the buffered-upload limit. Returns a `upload_url` to PUT the raw bytes to DIRECTLY (no Authorization header — the URL is the credential), then call `/v0/uploads/{upload_id}/commit`. All artifact decisions (path, labels, metadata, source, if_match) are frozen here.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiBeginUploadV0UploadsPostRequest
-*/
-func (a *DefaultAPIService) BeginUploadV0UploadsPost(ctx context.Context) ApiBeginUploadV0UploadsPostRequest {
- return ApiBeginUploadV0UploadsPostRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return UploadBeginOut
-func (a *DefaultAPIService) BeginUploadV0UploadsPostExecute(r ApiBeginUploadV0UploadsPostRequest) (*UploadBeginOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *UploadBeginOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.BeginUploadV0UploadsPost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/uploads"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.uploadBeginIn == nil {
- return localVarReturnValue, nil, reportError("uploadBeginIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- // body params
- localVarPostBody = r.uploadBeginIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 413 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiCallbackAuthCallbackGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- code *string
- state *string
- error_ *string
-}
-
-func (r ApiCallbackAuthCallbackGetRequest) Code(code string) ApiCallbackAuthCallbackGetRequest {
- r.code = &code
- return r
-}
-
-func (r ApiCallbackAuthCallbackGetRequest) State(state string) ApiCallbackAuthCallbackGetRequest {
- r.state = &state
- return r
-}
-
-func (r ApiCallbackAuthCallbackGetRequest) Error_(error_ string) ApiCallbackAuthCallbackGetRequest {
- r.error_ = &error_
- return r
-}
-
-func (r ApiCallbackAuthCallbackGetRequest) Execute() (string, *http.Response, error) {
- return r.ApiService.CallbackAuthCallbackGetExecute(r)
-}
-
-/*
-CallbackAuthCallbackGet Callback
-
-Complete a sign-in.
-
-Handles the auth provider's OAuth callback and shapes failures into
-user-readable errors:
- * an invalid or expired login flow — LOGIN_FLOW_INVALID (400);
- * an invalid or already-used authorization code — AUTH_CODE_INVALID (400);
- * the upstream auth provider being unavailable — WORKOS_UNAVAILABLE (502),
- returned with Retry-After.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiCallbackAuthCallbackGetRequest
-*/
-func (a *DefaultAPIService) CallbackAuthCallbackGet(ctx context.Context) ApiCallbackAuthCallbackGetRequest {
- return ApiCallbackAuthCallbackGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return string
-func (a *DefaultAPIService) CallbackAuthCallbackGetExecute(r ApiCallbackAuthCallbackGetRequest) (string, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue string
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.CallbackAuthCallbackGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/auth/callback"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- if r.code != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "code", r.code, "form", "")
- }
- if r.state != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "state", r.state, "form", "")
- }
- if r.error_ != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "error", r.error_, "form", "")
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"text/html", "application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 409 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 502 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 503 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiCancelJobV0JobsJobIdCancelPostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- jobId string
-}
-
-func (r ApiCancelJobV0JobsJobIdCancelPostRequest) Execute() (*CompileJobOut, *http.Response, error) {
- return r.ApiService.CancelJobV0JobsJobIdCancelPostExecute(r)
-}
-
-/*
-CancelJobV0JobsJobIdCancelPost Cancel a queued/running job
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param jobId
- @return ApiCancelJobV0JobsJobIdCancelPostRequest
-*/
-func (a *DefaultAPIService) CancelJobV0JobsJobIdCancelPost(ctx context.Context, jobId string) ApiCancelJobV0JobsJobIdCancelPostRequest {
- return ApiCancelJobV0JobsJobIdCancelPostRequest{
- ApiService: a,
- ctx: ctx,
- jobId: jobId,
- }
-}
-
-// Execute executes the request
-// @return CompileJobOut
-func (a *DefaultAPIService) CancelJobV0JobsJobIdCancelPostExecute(r ApiCancelJobV0JobsJobIdCancelPostRequest) (*CompileJobOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *CompileJobOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.CancelJobV0JobsJobIdCancelPost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/jobs/{job_id}/cancel"
- localVarPath = strings.Replace(localVarPath, "{"+"job_id"+"}", url.PathEscape(parameterValueToString(r.jobId, "jobId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiCommitUploadV0UploadsUploadIdCommitPostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- uploadId string
-}
-
-func (r ApiCommitUploadV0UploadsUploadIdCommitPostRequest) Execute() (*ArtifactOut, *http.Response, error) {
- return r.ApiService.CommitUploadV0UploadsUploadIdCommitPostExecute(r)
-}
-
-/*
-CommitUploadV0UploadsUploadIdCommitPost Commit a large (direct-to-GCS) upload
-
-Finalize the upload begun at `/v0/uploads`: AgentDrive verifies the object that landed in GCS (size + checksum) and creates the artifact. Idempotent — a retry after a successful commit returns the same artifact. The write budget is charged when the upload session is created; commit retries are not charged again.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param uploadId
- @return ApiCommitUploadV0UploadsUploadIdCommitPostRequest
-*/
-func (a *DefaultAPIService) CommitUploadV0UploadsUploadIdCommitPost(ctx context.Context, uploadId string) ApiCommitUploadV0UploadsUploadIdCommitPostRequest {
- return ApiCommitUploadV0UploadsUploadIdCommitPostRequest{
- ApiService: a,
- ctx: ctx,
- uploadId: uploadId,
- }
-}
-
-// Execute executes the request
-// @return ArtifactOut
-func (a *DefaultAPIService) CommitUploadV0UploadsUploadIdCommitPostExecute(r ApiCommitUploadV0UploadsUploadIdCommitPostRequest) (*ArtifactOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ArtifactOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.CommitUploadV0UploadsUploadIdCommitPost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/uploads/{upload_id}/commit"
- localVarPath = strings.Replace(localVarPath, "{"+"upload_id"+"}", url.PathEscape(parameterValueToString(r.uploadId, "uploadId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 409 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 410 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 413 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiCopyArtifactRouteV0ArtifactsArtIdCopyPostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- artId string
- copyIn *CopyIn
- xAgentdriveActor *string
- ifNoneMatch *string
-}
-
-func (r ApiCopyArtifactRouteV0ArtifactsArtIdCopyPostRequest) CopyIn(copyIn CopyIn) ApiCopyArtifactRouteV0ArtifactsArtIdCopyPostRequest {
- r.copyIn = ©In
- return r
-}
-
-func (r ApiCopyArtifactRouteV0ArtifactsArtIdCopyPostRequest) XAgentdriveActor(xAgentdriveActor string) ApiCopyArtifactRouteV0ArtifactsArtIdCopyPostRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiCopyArtifactRouteV0ArtifactsArtIdCopyPostRequest) IfNoneMatch(ifNoneMatch string) ApiCopyArtifactRouteV0ArtifactsArtIdCopyPostRequest {
- r.ifNoneMatch = &ifNoneMatch
- return r
-}
-
-func (r ApiCopyArtifactRouteV0ArtifactsArtIdCopyPostRequest) Execute() (*ArtifactOut, *http.Response, error) {
- return r.ApiService.CopyArtifactRouteV0ArtifactsArtIdCopyPostExecute(r)
-}
-
-/*
-CopyArtifactRouteV0ArtifactsArtIdCopyPost Duplicate an artifact to a new path (CAS-shared, new ID)
-
-Create a new artifact at `path` whose bytes are identical to the source artifact's. The copy reuses the source's CAS object (zero new storage) but gets a fresh `art_…` ID, a fresh version 1, and — by default — `source.refs = [{type: 'artifact', id: ''}]` so provenance is preserved.
-
-Quota: the copy's `size_bytes` is added to the drive's `storage_bytes` even though physical bytes are shared.
-
-Source-version pin: pass `from_generation` in the body to require the source's current content generation (`version_number`) to equal it (→ 412 SOURCE_VERSION_MISMATCH); a concurrent source *metadata* edit does NOT fail the copy. Destination create-only: `If-None-Match: *` returns 412 CREATE_CONFLICT (instead of 409 PATH_CONFLICT) when the target path is occupied.
-
-Returns 409 PATH_CONFLICT if the target path is already taken; 413 STORAGE_QUOTA_EXCEEDED if the copy would push the drive over its limit.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param artId
- @return ApiCopyArtifactRouteV0ArtifactsArtIdCopyPostRequest
-*/
-func (a *DefaultAPIService) CopyArtifactRouteV0ArtifactsArtIdCopyPost(ctx context.Context, artId string) ApiCopyArtifactRouteV0ArtifactsArtIdCopyPostRequest {
- return ApiCopyArtifactRouteV0ArtifactsArtIdCopyPostRequest{
- ApiService: a,
- ctx: ctx,
- artId: artId,
- }
-}
-
-// Execute executes the request
-// @return ArtifactOut
-func (a *DefaultAPIService) CopyArtifactRouteV0ArtifactsArtIdCopyPostExecute(r ApiCopyArtifactRouteV0ArtifactsArtIdCopyPostRequest) (*ArtifactOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ArtifactOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.CopyArtifactRouteV0ArtifactsArtIdCopyPost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts/{art_id}/copy"
- localVarPath = strings.Replace(localVarPath, "{"+"art_id"+"}", url.PathEscape(parameterValueToString(r.artId, "artId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.copyIn == nil {
- return localVarReturnValue, nil, reportError("copyIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- if r.ifNoneMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-none-match", r.ifNoneMatch, "simple", "")
- }
- // body params
- localVarPostBody = r.copyIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 409 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 413 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiCopyFolderByIdV0FoldersFldIdCopyPostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- fldId string
- folderCopyIn *FolderCopyIn
- xAgentdriveActor *string
- ifNoneMatch *string
-}
-
-func (r ApiCopyFolderByIdV0FoldersFldIdCopyPostRequest) FolderCopyIn(folderCopyIn FolderCopyIn) ApiCopyFolderByIdV0FoldersFldIdCopyPostRequest {
- r.folderCopyIn = &folderCopyIn
- return r
-}
-
-func (r ApiCopyFolderByIdV0FoldersFldIdCopyPostRequest) XAgentdriveActor(xAgentdriveActor string) ApiCopyFolderByIdV0FoldersFldIdCopyPostRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiCopyFolderByIdV0FoldersFldIdCopyPostRequest) IfNoneMatch(ifNoneMatch string) ApiCopyFolderByIdV0FoldersFldIdCopyPostRequest {
- r.ifNoneMatch = &ifNoneMatch
- return r
-}
-
-func (r ApiCopyFolderByIdV0FoldersFldIdCopyPostRequest) Execute() (*FolderCopyOut, *http.Response, error) {
- return r.ApiService.CopyFolderByIdV0FoldersFldIdCopyPostExecute(r)
-}
-
-/*
-CopyFolderByIdV0FoldersFldIdCopyPost Duplicate a folder subtree to a new path (CAS-shared, new IDs)
-
-Clone the folder identified by URL id — and every descendant folder + artifact — under the body's `path` (canonical, trailing slash). Each copied artifact reuses the source's CAS object (zero new storage) but gets a fresh `art_…` ID, a fresh version 1, and `source.refs = [{type: 'artifact', id: ''}]` provenance. The new folder gets a fresh `fld_…` ID and the source's description.
-
-The entire subtree is copied in a SINGLE transaction — either every row lands or none does.
-
-Quota: each copy's `size_bytes` counts against the drive's `storage_bytes` even though physical bytes are shared.
-
-Source-version pin: pass `from_metageneration` in the body to require the source folder's current `metageneration` to equal it (→ 412 SOURCE_VERSION_MISMATCH). Destination create-only: `If-None-Match: *` returns 412 CREATE_CONFLICT (instead of 409 FOLDER_PATH_CONFLICT) when the destination folder is occupied.
-
-Returns 409 `FOLDER_PATH_CONFLICT` if the destination collides with a live folder or artifact; 400 `FOLDER_PATH_INVALID` if `path` is non-canonical; 413 `SUBTREE_TOO_LARGE` if the source holds more than 5000 artifacts; 413 `STORAGE_QUOTA_EXCEEDED` if the copy would push the drive over its limit.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param fldId
- @return ApiCopyFolderByIdV0FoldersFldIdCopyPostRequest
-*/
-func (a *DefaultAPIService) CopyFolderByIdV0FoldersFldIdCopyPost(ctx context.Context, fldId string) ApiCopyFolderByIdV0FoldersFldIdCopyPostRequest {
- return ApiCopyFolderByIdV0FoldersFldIdCopyPostRequest{
- ApiService: a,
- ctx: ctx,
- fldId: fldId,
- }
-}
-
-// Execute executes the request
-// @return FolderCopyOut
-func (a *DefaultAPIService) CopyFolderByIdV0FoldersFldIdCopyPostExecute(r ApiCopyFolderByIdV0FoldersFldIdCopyPostRequest) (*FolderCopyOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *FolderCopyOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.CopyFolderByIdV0FoldersFldIdCopyPost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/folders/{fld_id}/copy"
- localVarPath = strings.Replace(localVarPath, "{"+"fld_id"+"}", url.PathEscape(parameterValueToString(r.fldId, "fldId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.folderCopyIn == nil {
- return localVarReturnValue, nil, reportError("folderCopyIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- if r.ifNoneMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-none-match", r.ifNoneMatch, "simple", "")
- }
- // body params
- localVarPostBody = r.folderCopyIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 409 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 413 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiCreateFolderByPathV0FoldersPathPutRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- path string
- xAgentdriveActor *string
- ifNoneMatch *string
- folderCreateIn *FolderCreateIn
-}
-
-func (r ApiCreateFolderByPathV0FoldersPathPutRequest) XAgentdriveActor(xAgentdriveActor string) ApiCreateFolderByPathV0FoldersPathPutRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiCreateFolderByPathV0FoldersPathPutRequest) IfNoneMatch(ifNoneMatch string) ApiCreateFolderByPathV0FoldersPathPutRequest {
- r.ifNoneMatch = &ifNoneMatch
- return r
-}
-
-func (r ApiCreateFolderByPathV0FoldersPathPutRequest) FolderCreateIn(folderCreateIn FolderCreateIn) ApiCreateFolderByPathV0FoldersPathPutRequest {
- r.folderCreateIn = &folderCreateIn
- return r
-}
-
-func (r ApiCreateFolderByPathV0FoldersPathPutRequest) Execute() (*FolderOut, *http.Response, error) {
- return r.ApiService.CreateFolderByPathV0FoldersPathPutExecute(r)
-}
-
-/*
-CreateFolderByPathV0FoldersPathPut Create a folder (idempotent)
-
-Create a folder at the URL path. Idempotent create-at-known-URI (mirrors `PUT /v0/artifacts/{path}`) — a second call for the same live path returns the existing row unchanged (metadata updates require PATCH). Returns 201 on create, 200 when the folder already exists.
-
-Send `If-None-Match: *` to make it strictly create-only: an existing folder then returns 412 CREATE_CONFLICT instead of the idempotent 200.
-
-Returns 409 `FOLDER_PATH_CONFLICT` if a live artifact occupies the file form of the path (e.g. mkdir `/foo/` when an artifact lives at `/foo`).
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param path
- @return ApiCreateFolderByPathV0FoldersPathPutRequest
-*/
-func (a *DefaultAPIService) CreateFolderByPathV0FoldersPathPut(ctx context.Context, path string) ApiCreateFolderByPathV0FoldersPathPutRequest {
- return ApiCreateFolderByPathV0FoldersPathPutRequest{
- ApiService: a,
- ctx: ctx,
- path: path,
- }
-}
-
-// Execute executes the request
-// @return FolderOut
-func (a *DefaultAPIService) CreateFolderByPathV0FoldersPathPutExecute(r ApiCreateFolderByPathV0FoldersPathPutRequest) (*FolderOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPut
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *FolderOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.CreateFolderByPathV0FoldersPathPut")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/folders/{path}"
- localVarPath = strings.Replace(localVarPath, "{"+"path"+"}", url.PathEscape(parameterValueToString(r.path, "path")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- if r.ifNoneMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-none-match", r.ifNoneMatch, "simple", "")
- }
- // body params
- localVarPostBody = r.folderCreateIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 409 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiCreateGrantRouteV0GrantsPostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- grantCreateIn *GrantCreateIn
- xAgentdriveActor *string
-}
-
-func (r ApiCreateGrantRouteV0GrantsPostRequest) GrantCreateIn(grantCreateIn GrantCreateIn) ApiCreateGrantRouteV0GrantsPostRequest {
- r.grantCreateIn = &grantCreateIn
- return r
-}
-
-func (r ApiCreateGrantRouteV0GrantsPostRequest) XAgentdriveActor(xAgentdriveActor string) ApiCreateGrantRouteV0GrantsPostRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiCreateGrantRouteV0GrantsPostRequest) Execute() (*GrantOut, *http.Response, error) {
- return r.ApiService.CreateGrantRouteV0GrantsPostExecute(r)
-}
-
-/*
-CreateGrantRouteV0GrantsPost Create (or fetch) a per-principal grant on a resource
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiCreateGrantRouteV0GrantsPostRequest
-*/
-func (a *DefaultAPIService) CreateGrantRouteV0GrantsPost(ctx context.Context) ApiCreateGrantRouteV0GrantsPostRequest {
- return ApiCreateGrantRouteV0GrantsPostRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return GrantOut
-func (a *DefaultAPIService) CreateGrantRouteV0GrantsPostExecute(r ApiCreateGrantRouteV0GrantsPostRequest) (*GrantOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *GrantOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.CreateGrantRouteV0GrantsPost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/grants"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.grantCreateIn == nil {
- return localVarReturnValue, nil, reportError("grantCreateIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- // body params
- localVarPostBody = r.grantCreateIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiCreateShareRouteV0SharesPostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- shareCreateIn *ShareCreateIn
- xAgentdriveActor *string
-}
-
-func (r ApiCreateShareRouteV0SharesPostRequest) ShareCreateIn(shareCreateIn ShareCreateIn) ApiCreateShareRouteV0SharesPostRequest {
- r.shareCreateIn = &shareCreateIn
- return r
-}
-
-func (r ApiCreateShareRouteV0SharesPostRequest) XAgentdriveActor(xAgentdriveActor string) ApiCreateShareRouteV0SharesPostRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiCreateShareRouteV0SharesPostRequest) Execute() (*ShareMintOut, *http.Response, error) {
- return r.ApiService.CreateShareRouteV0SharesPostExecute(r)
-}
-
-/*
-CreateShareRouteV0SharesPost Mint a share link (returns the share_key once)
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiCreateShareRouteV0SharesPostRequest
-*/
-func (a *DefaultAPIService) CreateShareRouteV0SharesPost(ctx context.Context) ApiCreateShareRouteV0SharesPostRequest {
- return ApiCreateShareRouteV0SharesPostRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return ShareMintOut
-func (a *DefaultAPIService) CreateShareRouteV0SharesPostExecute(r ApiCreateShareRouteV0SharesPostRequest) (*ShareMintOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ShareMintOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.CreateShareRouteV0SharesPost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/shares"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.shareCreateIn == nil {
- return localVarReturnValue, nil, reportError("shareCreateIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- // body params
- localVarPostBody = r.shareCreateIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiDeleteArtifactByIdRouteV0ArtifactsArtIdDeleteRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- artId string
- ifMatch *string
- xAgentdriveActor *string
-}
-
-func (r ApiDeleteArtifactByIdRouteV0ArtifactsArtIdDeleteRequest) IfMatch(ifMatch string) ApiDeleteArtifactByIdRouteV0ArtifactsArtIdDeleteRequest {
- r.ifMatch = &ifMatch
- return r
-}
-
-func (r ApiDeleteArtifactByIdRouteV0ArtifactsArtIdDeleteRequest) XAgentdriveActor(xAgentdriveActor string) ApiDeleteArtifactByIdRouteV0ArtifactsArtIdDeleteRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiDeleteArtifactByIdRouteV0ArtifactsArtIdDeleteRequest) Execute() (*ArtifactDeleteOut, *http.Response, error) {
- return r.ApiService.DeleteArtifactByIdRouteV0ArtifactsArtIdDeleteExecute(r)
-}
-
-/*
-DeleteArtifactByIdRouteV0ArtifactsArtIdDelete Soft-delete an artifact by its stable ID
-
-Soft-delete the artifact with this `art_…` ID. Same semantics + response shape as the path-based `DELETE /v0/artifacts/{path}` (reversible until the GC cron hard-deletes at `purge_at`; `restore_url` points at the by-id restore), but keys on the immutable id so a concurrent rename can't change the target.
-
-Returns 404 ARTIFACT_NOT_FOUND if no live artifact has this id; 403 WIKI_RESERVED for `_wiki/` artifacts (system-managed); 412 if `If-Match` doesn't match the current version. Declared before the `{path:path}` family so the id convertor wins for DELETEs.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param artId
- @return ApiDeleteArtifactByIdRouteV0ArtifactsArtIdDeleteRequest
-*/
-func (a *DefaultAPIService) DeleteArtifactByIdRouteV0ArtifactsArtIdDelete(ctx context.Context, artId string) ApiDeleteArtifactByIdRouteV0ArtifactsArtIdDeleteRequest {
- return ApiDeleteArtifactByIdRouteV0ArtifactsArtIdDeleteRequest{
- ApiService: a,
- ctx: ctx,
- artId: artId,
- }
-}
-
-// Execute executes the request
-// @return ArtifactDeleteOut
-func (a *DefaultAPIService) DeleteArtifactByIdRouteV0ArtifactsArtIdDeleteExecute(r ApiDeleteArtifactByIdRouteV0ArtifactsArtIdDeleteRequest) (*ArtifactDeleteOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodDelete
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ArtifactDeleteOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.DeleteArtifactByIdRouteV0ArtifactsArtIdDelete")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts/{art_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"art_id"+"}", url.PathEscape(parameterValueToString(r.artId, "artId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.ifMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-match", r.ifMatch, "simple", "")
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiDeleteArtifactV0ArtifactsPathDeleteRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- path string
- ifMatch *string
- xAgentdriveActor *string
-}
-
-func (r ApiDeleteArtifactV0ArtifactsPathDeleteRequest) IfMatch(ifMatch string) ApiDeleteArtifactV0ArtifactsPathDeleteRequest {
- r.ifMatch = &ifMatch
- return r
-}
-
-func (r ApiDeleteArtifactV0ArtifactsPathDeleteRequest) XAgentdriveActor(xAgentdriveActor string) ApiDeleteArtifactV0ArtifactsPathDeleteRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiDeleteArtifactV0ArtifactsPathDeleteRequest) Execute() (*ArtifactDeleteOut, *http.Response, error) {
- return r.ApiService.DeleteArtifactV0ArtifactsPathDeleteExecute(r)
-}
-
-/*
-DeleteArtifactV0ArtifactsPathDelete Delete Artifact
-
-Soft-delete the artifact at the given path.
-
-A delete WITHOUT an `If-Match` precondition is last-writer-wins and will
-silently remove a concurrently-modified artifact.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param path
- @return ApiDeleteArtifactV0ArtifactsPathDeleteRequest
-*/
-func (a *DefaultAPIService) DeleteArtifactV0ArtifactsPathDelete(ctx context.Context, path string) ApiDeleteArtifactV0ArtifactsPathDeleteRequest {
- return ApiDeleteArtifactV0ArtifactsPathDeleteRequest{
- ApiService: a,
- ctx: ctx,
- path: path,
- }
-}
-
-// Execute executes the request
-// @return ArtifactDeleteOut
-func (a *DefaultAPIService) DeleteArtifactV0ArtifactsPathDeleteExecute(r ApiDeleteArtifactV0ArtifactsPathDeleteRequest) (*ArtifactDeleteOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodDelete
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ArtifactDeleteOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.DeleteArtifactV0ArtifactsPathDelete")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts/{path}"
- localVarPath = strings.Replace(localVarPath, "{"+"path"+"}", url.PathEscape(parameterValueToString(r.path, "path")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.ifMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-match", r.ifMatch, "simple", "")
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiDeleteDriveRouteV0DrivesDriveIdDeleteRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- driveId string
- confirm *string
- xAgentdriveActor *string
- ifMatch *string
-}
-
-func (r ApiDeleteDriveRouteV0DrivesDriveIdDeleteRequest) Confirm(confirm string) ApiDeleteDriveRouteV0DrivesDriveIdDeleteRequest {
- r.confirm = &confirm
- return r
-}
-
-func (r ApiDeleteDriveRouteV0DrivesDriveIdDeleteRequest) XAgentdriveActor(xAgentdriveActor string) ApiDeleteDriveRouteV0DrivesDriveIdDeleteRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiDeleteDriveRouteV0DrivesDriveIdDeleteRequest) IfMatch(ifMatch string) ApiDeleteDriveRouteV0DrivesDriveIdDeleteRequest {
- r.ifMatch = &ifMatch
- return r
-}
-
-func (r ApiDeleteDriveRouteV0DrivesDriveIdDeleteRequest) Execute() (*DriveDeleteOut, *http.Response, error) {
- return r.ApiService.DeleteDriveRouteV0DrivesDriveIdDeleteExecute(r)
-}
-
-/*
-DeleteDriveRouteV0DrivesDriveIdDelete Soft-delete a drive
-
-Mark the drive for cleanup. All tenant data (artifacts, versions, wiki, embeddings, events) is hidden via the `live_*` views and CASCADE-removed by the GC cleanup cron at `purge_at`. Restore via `POST /v0/drives/{id}/restore` while the row is still in trash. The path-param `drive_id` MUST match the authenticated drive.
-
-Accepts either an `ad_live_` per-drive key (deletes that key's drive) or an `ad_user_` user token selecting an owned drive (workspaces-design §5.3); a `read`-scope user token is rejected with 403 `INSUFFICIENT_SCOPE`. **Guard (§8):** a workspace must retain at least one live drive — deleting the workspace's last live drive returns 409 `LAST_DRIVE`.
-
-**Explicit confirmation required:** pass `?confirm=DELETE` or the request is rejected with 400 `CONFIRM_REQUIRED`. Tenant-level deletion is the largest-blast-radius operation on the API; the static token forces a deliberate act (soft-delete still gives a restore window on top).
-
-**Optimistic concurrency:** send `If-Match` with the drive's composite ETag (`".0."`, from a drive read) to make the delete conditional — a stale token returns 412 PRECONDITION_FAILED. A delete WITHOUT an `If-Match` precondition is last-writer-wins and will silently trash a concurrently-modified drive.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param driveId
- @return ApiDeleteDriveRouteV0DrivesDriveIdDeleteRequest
-*/
-func (a *DefaultAPIService) DeleteDriveRouteV0DrivesDriveIdDelete(ctx context.Context, driveId string) ApiDeleteDriveRouteV0DrivesDriveIdDeleteRequest {
- return ApiDeleteDriveRouteV0DrivesDriveIdDeleteRequest{
- ApiService: a,
- ctx: ctx,
- driveId: driveId,
- }
-}
-
-// Execute executes the request
-// @return DriveDeleteOut
-func (a *DefaultAPIService) DeleteDriveRouteV0DrivesDriveIdDeleteExecute(r ApiDeleteDriveRouteV0DrivesDriveIdDeleteRequest) (*DriveDeleteOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodDelete
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *DriveDeleteOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.DeleteDriveRouteV0DrivesDriveIdDelete")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/drives/{drive_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- if r.confirm != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "confirm", r.confirm, "form", "")
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- if r.ifMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-match", r.ifMatch, "simple", "")
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 409 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiDeleteFolderByIdV0FoldersFldIdDeleteRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- fldId string
- recursive *bool
- xAgentdriveActor *string
- ifMatch *string
-}
-
-func (r ApiDeleteFolderByIdV0FoldersFldIdDeleteRequest) Recursive(recursive bool) ApiDeleteFolderByIdV0FoldersFldIdDeleteRequest {
- r.recursive = &recursive
- return r
-}
-
-func (r ApiDeleteFolderByIdV0FoldersFldIdDeleteRequest) XAgentdriveActor(xAgentdriveActor string) ApiDeleteFolderByIdV0FoldersFldIdDeleteRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiDeleteFolderByIdV0FoldersFldIdDeleteRequest) IfMatch(ifMatch string) ApiDeleteFolderByIdV0FoldersFldIdDeleteRequest {
- r.ifMatch = &ifMatch
- return r
-}
-
-func (r ApiDeleteFolderByIdV0FoldersFldIdDeleteRequest) Execute() (*FolderDeleteOut, *http.Response, error) {
- return r.ApiService.DeleteFolderByIdV0FoldersFldIdDeleteExecute(r)
-}
-
-/*
-DeleteFolderByIdV0FoldersFldIdDelete Soft-delete a folder by stable ID (cascade with ?recursive=true)
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param fldId
- @return ApiDeleteFolderByIdV0FoldersFldIdDeleteRequest
-*/
-func (a *DefaultAPIService) DeleteFolderByIdV0FoldersFldIdDelete(ctx context.Context, fldId string) ApiDeleteFolderByIdV0FoldersFldIdDeleteRequest {
- return ApiDeleteFolderByIdV0FoldersFldIdDeleteRequest{
- ApiService: a,
- ctx: ctx,
- fldId: fldId,
- }
-}
-
-// Execute executes the request
-// @return FolderDeleteOut
-func (a *DefaultAPIService) DeleteFolderByIdV0FoldersFldIdDeleteExecute(r ApiDeleteFolderByIdV0FoldersFldIdDeleteRequest) (*FolderDeleteOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodDelete
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *FolderDeleteOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.DeleteFolderByIdV0FoldersFldIdDelete")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/folders/{fld_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"fld_id"+"}", url.PathEscape(parameterValueToString(r.fldId, "fldId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- if r.recursive != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "recursive", r.recursive, "form", "")
- } else {
- var defaultValue bool = false
- parameterAddToHeaderOrQuery(localVarQueryParams, "recursive", defaultValue, "form", "")
- r.recursive = &defaultValue
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- if r.ifMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-match", r.ifMatch, "simple", "")
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiDeleteFolderByPathV0FoldersPathDeleteRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- path string
- recursive *bool
- xAgentdriveActor *string
- ifMatch *string
-}
-
-func (r ApiDeleteFolderByPathV0FoldersPathDeleteRequest) Recursive(recursive bool) ApiDeleteFolderByPathV0FoldersPathDeleteRequest {
- r.recursive = &recursive
- return r
-}
-
-func (r ApiDeleteFolderByPathV0FoldersPathDeleteRequest) XAgentdriveActor(xAgentdriveActor string) ApiDeleteFolderByPathV0FoldersPathDeleteRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiDeleteFolderByPathV0FoldersPathDeleteRequest) IfMatch(ifMatch string) ApiDeleteFolderByPathV0FoldersPathDeleteRequest {
- r.ifMatch = &ifMatch
- return r
-}
-
-func (r ApiDeleteFolderByPathV0FoldersPathDeleteRequest) Execute() (*FolderDeleteOut, *http.Response, error) {
- return r.ApiService.DeleteFolderByPathV0FoldersPathDeleteExecute(r)
-}
-
-/*
-DeleteFolderByPathV0FoldersPathDelete Soft-delete a folder (cascade with ?recursive=true)
-
-Soft-delete the folder. Refuses if the folder has live descendants unless `?recursive=true` is set, in which case ALL descendant folders + artifacts are soft-deleted in the same transaction.
-
-Returns 409 `FOLDER_RECURSIVE_REQUIRED` (with descendant counts in `colliding_path`) when recursion is needed but the flag isn't set. Retention window is frozen on `purge_at` per deletion-design.md §5.1; mid-retention tier changes don't shift it.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param path
- @return ApiDeleteFolderByPathV0FoldersPathDeleteRequest
-*/
-func (a *DefaultAPIService) DeleteFolderByPathV0FoldersPathDelete(ctx context.Context, path string) ApiDeleteFolderByPathV0FoldersPathDeleteRequest {
- return ApiDeleteFolderByPathV0FoldersPathDeleteRequest{
- ApiService: a,
- ctx: ctx,
- path: path,
- }
-}
-
-// Execute executes the request
-// @return FolderDeleteOut
-func (a *DefaultAPIService) DeleteFolderByPathV0FoldersPathDeleteExecute(r ApiDeleteFolderByPathV0FoldersPathDeleteRequest) (*FolderDeleteOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodDelete
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *FolderDeleteOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.DeleteFolderByPathV0FoldersPathDelete")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/folders/{path}"
- localVarPath = strings.Replace(localVarPath, "{"+"path"+"}", url.PathEscape(parameterValueToString(r.path, "path")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- if r.recursive != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "recursive", r.recursive, "form", "")
- } else {
- var defaultValue bool = false
- parameterAddToHeaderOrQuery(localVarQueryParams, "recursive", defaultValue, "form", "")
- r.recursive = &defaultValue
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- if r.ifMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-match", r.ifMatch, "simple", "")
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiDeleteGrantRouteV0GrantsGrnIdDeleteRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- grnId string
- xAgentdriveActor *string
-}
-
-func (r ApiDeleteGrantRouteV0GrantsGrnIdDeleteRequest) XAgentdriveActor(xAgentdriveActor string) ApiDeleteGrantRouteV0GrantsGrnIdDeleteRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiDeleteGrantRouteV0GrantsGrnIdDeleteRequest) Execute() (*RevokeOut, *http.Response, error) {
- return r.ApiService.DeleteGrantRouteV0GrantsGrnIdDeleteExecute(r)
-}
-
-/*
-DeleteGrantRouteV0GrantsGrnIdDelete Revoke a grant (can_manage, or self-revoke own grant)
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param grnId
- @return ApiDeleteGrantRouteV0GrantsGrnIdDeleteRequest
-*/
-func (a *DefaultAPIService) DeleteGrantRouteV0GrantsGrnIdDelete(ctx context.Context, grnId string) ApiDeleteGrantRouteV0GrantsGrnIdDeleteRequest {
- return ApiDeleteGrantRouteV0GrantsGrnIdDeleteRequest{
- ApiService: a,
- ctx: ctx,
- grnId: grnId,
- }
-}
-
-// Execute executes the request
-// @return RevokeOut
-func (a *DefaultAPIService) DeleteGrantRouteV0GrantsGrnIdDeleteExecute(r ApiDeleteGrantRouteV0GrantsGrnIdDeleteRequest) (*RevokeOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodDelete
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *RevokeOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.DeleteGrantRouteV0GrantsGrnIdDelete")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/grants/{grn_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"grn_id"+"}", url.PathEscape(parameterValueToString(r.grnId, "grnId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiDeleteShareRouteV0SharesShrIdDeleteRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- shrId string
- xAgentdriveActor *string
-}
-
-func (r ApiDeleteShareRouteV0SharesShrIdDeleteRequest) XAgentdriveActor(xAgentdriveActor string) ApiDeleteShareRouteV0SharesShrIdDeleteRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiDeleteShareRouteV0SharesShrIdDeleteRequest) Execute() (*RevokeOut, *http.Response, error) {
- return r.ApiService.DeleteShareRouteV0SharesShrIdDeleteExecute(r)
-}
-
-/*
-DeleteShareRouteV0SharesShrIdDelete Revoke a share link (requires can_manage)
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param shrId
- @return ApiDeleteShareRouteV0SharesShrIdDeleteRequest
-*/
-func (a *DefaultAPIService) DeleteShareRouteV0SharesShrIdDelete(ctx context.Context, shrId string) ApiDeleteShareRouteV0SharesShrIdDeleteRequest {
- return ApiDeleteShareRouteV0SharesShrIdDeleteRequest{
- ApiService: a,
- ctx: ctx,
- shrId: shrId,
- }
-}
-
-// Execute executes the request
-// @return RevokeOut
-func (a *DefaultAPIService) DeleteShareRouteV0SharesShrIdDeleteExecute(r ApiDeleteShareRouteV0SharesShrIdDeleteRequest) (*RevokeOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodDelete
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *RevokeOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.DeleteShareRouteV0SharesShrIdDelete")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/shares/{shr_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"shr_id"+"}", url.PathEscape(parameterValueToString(r.shrId, "shrId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiDownloadArtifactByIdV0ArtifactsArtIdDownloadGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- artId string
-}
-
-func (r ApiDownloadArtifactByIdV0ArtifactsArtIdDownloadGetRequest) Execute() (*os.File, *http.Response, error) {
- return r.ApiService.DownloadArtifactByIdV0ArtifactsArtIdDownloadGetExecute(r)
-}
-
-/*
-DownloadArtifactByIdV0ArtifactsArtIdDownloadGet Stream the artifact bytes by stable ID (never rendered HTML)
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param artId
- @return ApiDownloadArtifactByIdV0ArtifactsArtIdDownloadGetRequest
-*/
-func (a *DefaultAPIService) DownloadArtifactByIdV0ArtifactsArtIdDownloadGet(ctx context.Context, artId string) ApiDownloadArtifactByIdV0ArtifactsArtIdDownloadGetRequest {
- return ApiDownloadArtifactByIdV0ArtifactsArtIdDownloadGetRequest{
- ApiService: a,
- ctx: ctx,
- artId: artId,
- }
-}
-
-// Execute executes the request
-// @return *os.File
-func (a *DefaultAPIService) DownloadArtifactByIdV0ArtifactsArtIdDownloadGetExecute(r ApiDownloadArtifactByIdV0ArtifactsArtIdDownloadGetRequest) (*os.File, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *os.File
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.DownloadArtifactByIdV0ArtifactsArtIdDownloadGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts/{art_id}/download"
- localVarPath = strings.Replace(localVarPath, "{"+"art_id"+"}", url.PathEscape(parameterValueToString(r.artId, "artId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/octet-stream", "application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiDownloadArtifactByPathV0ArtifactsPathDownloadGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- path string
-}
-
-func (r ApiDownloadArtifactByPathV0ArtifactsPathDownloadGetRequest) Execute() (*os.File, *http.Response, error) {
- return r.ApiService.DownloadArtifactByPathV0ArtifactsPathDownloadGetExecute(r)
-}
-
-/*
-DownloadArtifactByPathV0ArtifactsPathDownloadGet Stream the artifact bytes by path (never rendered HTML)
-
-Same bytes-only machine surface as `/{art_id}/download` but resolves the artifact by path, so callers don't have to resolve path→id first. Applies the identical CSP `sandbox` + `nosniff` posture (never serves HTML inline as active content).
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param path
- @return ApiDownloadArtifactByPathV0ArtifactsPathDownloadGetRequest
-*/
-func (a *DefaultAPIService) DownloadArtifactByPathV0ArtifactsPathDownloadGet(ctx context.Context, path string) ApiDownloadArtifactByPathV0ArtifactsPathDownloadGetRequest {
- return ApiDownloadArtifactByPathV0ArtifactsPathDownloadGetRequest{
- ApiService: a,
- ctx: ctx,
- path: path,
- }
-}
-
-// Execute executes the request
-// @return *os.File
-func (a *DefaultAPIService) DownloadArtifactByPathV0ArtifactsPathDownloadGetExecute(r ApiDownloadArtifactByPathV0ArtifactsPathDownloadGetRequest) (*os.File, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *os.File
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.DownloadArtifactByPathV0ArtifactsPathDownloadGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts/{path}/download"
- localVarPath = strings.Replace(localVarPath, "{"+"path"+"}", url.PathEscape(parameterValueToString(r.path, "path")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/octet-stream", "application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiDownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- artId string
- versionNumber int32
-}
-
-func (r ApiDownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGetRequest) Execute() (*os.File, *http.Response, error) {
- return r.ApiService.DownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGetExecute(r)
-}
-
-/*
-DownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGet Stream bytes for a specific version (machine surface)
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param artId
- @param versionNumber
- @return ApiDownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGetRequest
-*/
-func (a *DefaultAPIService) DownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGet(ctx context.Context, artId string, versionNumber int32) ApiDownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGetRequest {
- return ApiDownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGetRequest{
- ApiService: a,
- ctx: ctx,
- artId: artId,
- versionNumber: versionNumber,
- }
-}
-
-// Execute executes the request
-// @return *os.File
-func (a *DefaultAPIService) DownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGetExecute(r ApiDownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGetRequest) (*os.File, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *os.File
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.DownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts/{art_id}/versions/{version_number}/download"
- localVarPath = strings.Replace(localVarPath, "{"+"art_id"+"}", url.PathEscape(parameterValueToString(r.artId, "artId")), -1)
- localVarPath = strings.Replace(localVarPath, "{"+"version_number"+"}", url.PathEscape(parameterValueToString(r.versionNumber, "versionNumber")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/octet-stream", "application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 410 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiDownloadUrlByIdV0ArtifactsArtIdDownloadUrlGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- artId string
-}
-
-func (r ApiDownloadUrlByIdV0ArtifactsArtIdDownloadUrlGetRequest) Execute() (*DownloadUrlOut, *http.Response, error) {
- return r.ApiService.DownloadUrlByIdV0ArtifactsArtIdDownloadUrlGetExecute(r)
-}
-
-/*
-DownloadUrlByIdV0ArtifactsArtIdDownloadUrlGet Signed direct-from-GCS download URL by stable ID
-
-Returns a URL for the artifact's bytes. For large artifacts (>= the signed-download threshold) when signing is available, it's a short-lived **signed GCS URL** the client fetches directly (`direct:true`, `expires_at` set); otherwise the **proxy** `/download` URL (`direct:false`). Treat the URL as opaque. large-download-design.md §5.1.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param artId
- @return ApiDownloadUrlByIdV0ArtifactsArtIdDownloadUrlGetRequest
-*/
-func (a *DefaultAPIService) DownloadUrlByIdV0ArtifactsArtIdDownloadUrlGet(ctx context.Context, artId string) ApiDownloadUrlByIdV0ArtifactsArtIdDownloadUrlGetRequest {
- return ApiDownloadUrlByIdV0ArtifactsArtIdDownloadUrlGetRequest{
- ApiService: a,
- ctx: ctx,
- artId: artId,
- }
-}
-
-// Execute executes the request
-// @return DownloadUrlOut
-func (a *DefaultAPIService) DownloadUrlByIdV0ArtifactsArtIdDownloadUrlGetExecute(r ApiDownloadUrlByIdV0ArtifactsArtIdDownloadUrlGetRequest) (*DownloadUrlOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *DownloadUrlOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.DownloadUrlByIdV0ArtifactsArtIdDownloadUrlGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts/{art_id}/download-url"
- localVarPath = strings.Replace(localVarPath, "{"+"art_id"+"}", url.PathEscape(parameterValueToString(r.artId, "artId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiDownloadUrlByPathV0ArtifactsPathDownloadUrlGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- path string
-}
-
-func (r ApiDownloadUrlByPathV0ArtifactsPathDownloadUrlGetRequest) Execute() (*DownloadUrlOut, *http.Response, error) {
- return r.ApiService.DownloadUrlByPathV0ArtifactsPathDownloadUrlGetExecute(r)
-}
-
-/*
-DownloadUrlByPathV0ArtifactsPathDownloadUrlGet Signed direct-from-GCS download URL by path
-
-Same as `/{art_id}/download-url` but resolves the artifact by path. The returned proxy URL (when `direct:false`) still points at the by-id `/download` endpoint. large-download-design.md §5.1.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param path
- @return ApiDownloadUrlByPathV0ArtifactsPathDownloadUrlGetRequest
-*/
-func (a *DefaultAPIService) DownloadUrlByPathV0ArtifactsPathDownloadUrlGet(ctx context.Context, path string) ApiDownloadUrlByPathV0ArtifactsPathDownloadUrlGetRequest {
- return ApiDownloadUrlByPathV0ArtifactsPathDownloadUrlGetRequest{
- ApiService: a,
- ctx: ctx,
- path: path,
- }
-}
-
-// Execute executes the request
-// @return DownloadUrlOut
-func (a *DefaultAPIService) DownloadUrlByPathV0ArtifactsPathDownloadUrlGetExecute(r ApiDownloadUrlByPathV0ArtifactsPathDownloadUrlGetRequest) (*DownloadUrlOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *DownloadUrlOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.DownloadUrlByPathV0ArtifactsPathDownloadUrlGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts/{path}/download-url"
- localVarPath = strings.Replace(localVarPath, "{"+"path"+"}", url.PathEscape(parameterValueToString(r.path, "path")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiDownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- artId string
- versionNumber int32
-}
-
-func (r ApiDownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGetRequest) Execute() (*DownloadUrlOut, *http.Response, error) {
- return r.ApiService.DownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGetExecute(r)
-}
-
-/*
-DownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGet Signed direct-from-GCS download URL for a specific version
-
-Same as `/{art_id}/download-url` but for a specific version's bytes (`direct:true` signed GCS URL when large + signing available, else the proxy `/versions/{n}/download` URL). large-download-design.md §5.1.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param artId
- @param versionNumber
- @return ApiDownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGetRequest
-*/
-func (a *DefaultAPIService) DownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGet(ctx context.Context, artId string, versionNumber int32) ApiDownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGetRequest {
- return ApiDownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGetRequest{
- ApiService: a,
- ctx: ctx,
- artId: artId,
- versionNumber: versionNumber,
- }
-}
-
-// Execute executes the request
-// @return DownloadUrlOut
-func (a *DefaultAPIService) DownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGetExecute(r ApiDownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGetRequest) (*DownloadUrlOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *DownloadUrlOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.DownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts/{art_id}/versions/{version_number}/download-url"
- localVarPath = strings.Replace(localVarPath, "{"+"art_id"+"}", url.PathEscape(parameterValueToString(r.artId, "artId")), -1)
- localVarPath = strings.Replace(localVarPath, "{"+"version_number"+"}", url.PathEscape(parameterValueToString(r.versionNumber, "versionNumber")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 410 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiEnqueueJobV0ProjectsFldIdJobsPostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- fldId string
- compileJobIn *CompileJobIn
- xAgentdriveActor *string
-}
-
-func (r ApiEnqueueJobV0ProjectsFldIdJobsPostRequest) CompileJobIn(compileJobIn CompileJobIn) ApiEnqueueJobV0ProjectsFldIdJobsPostRequest {
- r.compileJobIn = &compileJobIn
- return r
-}
-
-func (r ApiEnqueueJobV0ProjectsFldIdJobsPostRequest) XAgentdriveActor(xAgentdriveActor string) ApiEnqueueJobV0ProjectsFldIdJobsPostRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiEnqueueJobV0ProjectsFldIdJobsPostRequest) Execute() (*CompileJobOut, *http.Response, error) {
- return r.ApiService.EnqueueJobV0ProjectsFldIdJobsPostExecute(r)
-}
-
-/*
-EnqueueJobV0ProjectsFldIdJobsPost Enqueue a compile job for a project (folder)
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param fldId
- @return ApiEnqueueJobV0ProjectsFldIdJobsPostRequest
-*/
-func (a *DefaultAPIService) EnqueueJobV0ProjectsFldIdJobsPost(ctx context.Context, fldId string) ApiEnqueueJobV0ProjectsFldIdJobsPostRequest {
- return ApiEnqueueJobV0ProjectsFldIdJobsPostRequest{
- ApiService: a,
- ctx: ctx,
- fldId: fldId,
- }
-}
-
-// Execute executes the request
-// @return CompileJobOut
-func (a *DefaultAPIService) EnqueueJobV0ProjectsFldIdJobsPostExecute(r ApiEnqueueJobV0ProjectsFldIdJobsPostRequest) (*CompileJobOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *CompileJobOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.EnqueueJobV0ProjectsFldIdJobsPost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/projects/{fld_id}/jobs"
- localVarPath = strings.Replace(localVarPath, "{"+"fld_id"+"}", url.PathEscape(parameterValueToString(r.fldId, "fldId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.compileJobIn == nil {
- return localVarReturnValue, nil, reportError("compileJobIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- // body params
- localVarPostBody = r.compileJobIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 402 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 413 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiExtensionStartAuthExtensionStartGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- extId *string
-}
-
-func (r ApiExtensionStartAuthExtensionStartGetRequest) ExtId(extId string) ApiExtensionStartAuthExtensionStartGetRequest {
- r.extId = &extId
- return r
-}
-
-func (r ApiExtensionStartAuthExtensionStartGetRequest) Execute() (*http.Response, error) {
- return r.ApiService.ExtensionStartAuthExtensionStartGetExecute(r)
-}
-
-/*
-ExtensionStartAuthExtensionStartGet Extension Start
-
-Begin a sign-in flow on behalf of a Chrome extension.
-
-Provider follows AUTH_MODE (WorkOS AuthKit or the TokenCanopy hub),
-exactly like /auth/login. Stamps `for=ext` + `ext_id` into the
-signed OAuth state so the callback handler knows to render the
-extension handoff page instead of setting a session cookie.
-
-Three short-circuits, all surface as actionable errors:
- * EXTENSION_AUTH_DISABLED (503): kill switch flipped off.
- * UNKNOWN_EXTENSION (400): `ext_id` not on the allow-list.
- * Missing `ext_id` query string (400 INVALID_REQUEST).
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiExtensionStartAuthExtensionStartGetRequest
-*/
-func (a *DefaultAPIService) ExtensionStartAuthExtensionStartGet(ctx context.Context) ApiExtensionStartAuthExtensionStartGetRequest {
- return ApiExtensionStartAuthExtensionStartGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-func (a *DefaultAPIService) ExtensionStartAuthExtensionStartGetExecute(r ApiExtensionStartAuthExtensionStartGetRequest) (*http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.ExtensionStartAuthExtensionStartGet")
- if err != nil {
- return nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/auth/extension/start"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- if r.extId != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "ext_id", r.extId, "form", "")
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 503 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarHTTPResponse, newErr
- }
-
- return localVarHTTPResponse, nil
-}
-
-type ApiFindV0FindGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- q *string
- mode *string
- label *[]string
- fileType *string
- prefix *string
- modality *[]*string
- updatedAfter *time.Time
- updatedBefore *time.Time
- limit *int32
-}
-
-func (r ApiFindV0FindGetRequest) Q(q string) ApiFindV0FindGetRequest {
- r.q = &q
- return r
-}
-
-func (r ApiFindV0FindGetRequest) Mode(mode string) ApiFindV0FindGetRequest {
- r.mode = &mode
- return r
-}
-
-func (r ApiFindV0FindGetRequest) Label(label []string) ApiFindV0FindGetRequest {
- r.label = &label
- return r
-}
-
-func (r ApiFindV0FindGetRequest) FileType(fileType string) ApiFindV0FindGetRequest {
- r.fileType = &fileType
- return r
-}
-
-func (r ApiFindV0FindGetRequest) Prefix(prefix string) ApiFindV0FindGetRequest {
- r.prefix = &prefix
- return r
-}
-
-func (r ApiFindV0FindGetRequest) Modality(modality []*string) ApiFindV0FindGetRequest {
- r.modality = &modality
- return r
-}
-
-func (r ApiFindV0FindGetRequest) UpdatedAfter(updatedAfter time.Time) ApiFindV0FindGetRequest {
- r.updatedAfter = &updatedAfter
- return r
-}
-
-func (r ApiFindV0FindGetRequest) UpdatedBefore(updatedBefore time.Time) ApiFindV0FindGetRequest {
- r.updatedBefore = &updatedBefore
- return r
-}
-
-func (r ApiFindV0FindGetRequest) Limit(limit int32) ApiFindV0FindGetRequest {
- r.limit = &limit
- return r
-}
-
-func (r ApiFindV0FindGetRequest) Execute() (*FindPage, *http.Response, error) {
- return r.ApiService.FindV0FindGetExecute(r)
-}
-
-/*
-FindV0FindGet Hybrid passage retrieval over the full file body
-
-Passage-level chunk RAG over `embed_chunks`. Lexical (`chunk_tsv`, GIN) + semantic (HNSW over `embedding`) are run in parallel and fused via Reciprocal Rank Fusion (k=60). Unlike `/v0/search`, which only sees the first ~16 KB preview of each artifact, `/v0/find` reaches the full file body.
-
-**Modes:**
-- `hybrid` (default) — lexical + semantic, RRF-fused.
-- `lexical` — `chunk_tsv` only. Best for exact tokens, identifiers, code snippets.
-- `semantic` — embedding only. Best for conceptual queries where the surface terms differ from the query phrasing.
-
-**Granularity:** results are passages, not files. A long document with multiple matching regions returns multiple hits with distinct `ord` values; consecutive `ord`s overlap by ~400 tokens. Dedupe by `art_id` if you want one row per file.
-
-**Span citations:** `char_start`/`char_end` for text & code, `page_start`/`page_end` for PDFs, `time_start_ms`/`time_end_ms` for audio & video. Only the modality-relevant pair is populated.
-
-**Filters:** `label`, `file_type`, `prefix`, `modality` (repeatable), `updated_after` / `updated_before` (RFC 3339 timestamps, inclusive bounds on `updated_at`, applied to both legs).
-
-**Wiki coverage:** `/v0/find` excludes `_wiki/` paths by default and — importantly — does NOT cover them even when the caller passes `prefix=_wiki/...`. Wiki pages are not embedded by the pipeline (they're system-generated output, not user input), so `embed_chunks` has no rows for them and the join returns empty. Use `wiki_search` (or `list`/`grep` with a `_wiki/` prefix) for the wiki layer.
-
-**Embedding availability:** when `GEMINI_API_KEY` is not configured, `mode=semantic` returns 503; `mode=hybrid` logs a warning and falls back to lexical-only; `mode=lexical` is unaffected.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiFindV0FindGetRequest
-*/
-func (a *DefaultAPIService) FindV0FindGet(ctx context.Context) ApiFindV0FindGetRequest {
- return ApiFindV0FindGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return FindPage
-func (a *DefaultAPIService) FindV0FindGetExecute(r ApiFindV0FindGetRequest) (*FindPage, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *FindPage
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.FindV0FindGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/find"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.q == nil {
- return localVarReturnValue, nil, reportError("q is required and must be specified")
- }
- if strlen(*r.q) < 1 {
- return localVarReturnValue, nil, reportError("q must have at least 1 elements")
- }
- if strlen(*r.q) > 500 {
- return localVarReturnValue, nil, reportError("q must have less than 500 elements")
- }
-
- parameterAddToHeaderOrQuery(localVarQueryParams, "q", r.q, "form", "")
- if r.mode != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "mode", r.mode, "form", "")
- } else {
- var defaultValue string = "hybrid"
- parameterAddToHeaderOrQuery(localVarQueryParams, "mode", defaultValue, "form", "")
- r.mode = &defaultValue
- }
- if r.label != nil {
- t := *r.label
- if reflect.TypeOf(t).Kind() == reflect.Slice {
- s := reflect.ValueOf(t)
- for i := 0; i < s.Len(); i++ {
- parameterAddToHeaderOrQuery(localVarQueryParams, "label", s.Index(i).Interface(), "form", "multi")
- }
- } else {
- parameterAddToHeaderOrQuery(localVarQueryParams, "label", t, "form", "multi")
- }
- }
- if r.fileType != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "file_type", r.fileType, "form", "")
- }
- if r.prefix != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "prefix", r.prefix, "form", "")
- }
- if r.modality != nil {
- t := *r.modality
- if reflect.TypeOf(t).Kind() == reflect.Slice {
- s := reflect.ValueOf(t)
- for i := 0; i < s.Len(); i++ {
- parameterAddToHeaderOrQuery(localVarQueryParams, "modality", s.Index(i).Interface(), "form", "multi")
- }
- } else {
- parameterAddToHeaderOrQuery(localVarQueryParams, "modality", t, "form", "multi")
- }
- }
- if r.updatedAfter != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "updated_after", r.updatedAfter, "form", "")
- }
- if r.updatedBefore != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "updated_before", r.updatedBefore, "form", "")
- }
- if r.limit != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
- } else {
- var defaultValue int32 = 20
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", defaultValue, "form", "")
- r.limit = &defaultValue
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 503 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiGetArtifactByIdMetaV0ArtifactsArtIdMetaGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- artId string
-}
-
-func (r ApiGetArtifactByIdMetaV0ArtifactsArtIdMetaGetRequest) Execute() (*ArtifactOut, *http.Response, error) {
- return r.ApiService.GetArtifactByIdMetaV0ArtifactsArtIdMetaGetExecute(r)
-}
-
-/*
-GetArtifactByIdMetaV0ArtifactsArtIdMetaGet Artifact metadata by stable ID (same shape as path /meta)
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param artId
- @return ApiGetArtifactByIdMetaV0ArtifactsArtIdMetaGetRequest
-*/
-func (a *DefaultAPIService) GetArtifactByIdMetaV0ArtifactsArtIdMetaGet(ctx context.Context, artId string) ApiGetArtifactByIdMetaV0ArtifactsArtIdMetaGetRequest {
- return ApiGetArtifactByIdMetaV0ArtifactsArtIdMetaGetRequest{
- ApiService: a,
- ctx: ctx,
- artId: artId,
- }
-}
-
-// Execute executes the request
-// @return ArtifactOut
-func (a *DefaultAPIService) GetArtifactByIdMetaV0ArtifactsArtIdMetaGetExecute(r ApiGetArtifactByIdMetaV0ArtifactsArtIdMetaGetRequest) (*ArtifactOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ArtifactOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.GetArtifactByIdMetaV0ArtifactsArtIdMetaGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts/{art_id}/meta"
- localVarPath = strings.Replace(localVarPath, "{"+"art_id"+"}", url.PathEscape(parameterValueToString(r.artId, "artId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiGetArtifactByIdV0ArtifactsArtIdGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- artId string
-}
-
-func (r ApiGetArtifactByIdV0ArtifactsArtIdGetRequest) Execute() (*ArtifactOut, *http.Response, error) {
- return r.ApiService.GetArtifactByIdV0ArtifactsArtIdGetExecute(r)
-}
-
-/*
-GetArtifactByIdV0ArtifactsArtIdGet Canonical lookup of an artifact by its stable ID
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param artId
- @return ApiGetArtifactByIdV0ArtifactsArtIdGetRequest
-*/
-func (a *DefaultAPIService) GetArtifactByIdV0ArtifactsArtIdGet(ctx context.Context, artId string) ApiGetArtifactByIdV0ArtifactsArtIdGetRequest {
- return ApiGetArtifactByIdV0ArtifactsArtIdGetRequest{
- ApiService: a,
- ctx: ctx,
- artId: artId,
- }
-}
-
-// Execute executes the request
-// @return ArtifactOut
-func (a *DefaultAPIService) GetArtifactByIdV0ArtifactsArtIdGetExecute(r ApiGetArtifactByIdV0ArtifactsArtIdGetRequest) (*ArtifactOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ArtifactOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.GetArtifactByIdV0ArtifactsArtIdGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts/{art_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"art_id"+"}", url.PathEscape(parameterValueToString(r.artId, "artId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiGetArtifactMetaV0ArtifactsPathMetaGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- path string
-}
-
-func (r ApiGetArtifactMetaV0ArtifactsPathMetaGetRequest) Execute() (*ArtifactOut, *http.Response, error) {
- return r.ApiService.GetArtifactMetaV0ArtifactsPathMetaGetExecute(r)
-}
-
-/*
-GetArtifactMetaV0ArtifactsPathMetaGet Get Artifact Meta
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param path
- @return ApiGetArtifactMetaV0ArtifactsPathMetaGetRequest
-*/
-func (a *DefaultAPIService) GetArtifactMetaV0ArtifactsPathMetaGet(ctx context.Context, path string) ApiGetArtifactMetaV0ArtifactsPathMetaGetRequest {
- return ApiGetArtifactMetaV0ArtifactsPathMetaGetRequest{
- ApiService: a,
- ctx: ctx,
- path: path,
- }
-}
-
-// Execute executes the request
-// @return ArtifactOut
-func (a *DefaultAPIService) GetArtifactMetaV0ArtifactsPathMetaGetExecute(r ApiGetArtifactMetaV0ArtifactsPathMetaGetRequest) (*ArtifactOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ArtifactOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.GetArtifactMetaV0ArtifactsPathMetaGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts/{path}/meta"
- localVarPath = strings.Replace(localVarPath, "{"+"path"+"}", url.PathEscape(parameterValueToString(r.path, "path")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiGetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- artId string
- versionNumber int32
-}
-
-func (r ApiGetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGetRequest) Execute() (*VersionOut, *http.Response, error) {
- return r.ApiService.GetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGetExecute(r)
-}
-
-/*
-GetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGet Metadata for a specific version of an artifact
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param artId
- @param versionNumber
- @return ApiGetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGetRequest
-*/
-func (a *DefaultAPIService) GetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGet(ctx context.Context, artId string, versionNumber int32) ApiGetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGetRequest {
- return ApiGetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGetRequest{
- ApiService: a,
- ctx: ctx,
- artId: artId,
- versionNumber: versionNumber,
- }
-}
-
-// Execute executes the request
-// @return VersionOut
-func (a *DefaultAPIService) GetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGetExecute(r ApiGetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGetRequest) (*VersionOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *VersionOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.GetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts/{art_id}/versions/{version_number}"
- localVarPath = strings.Replace(localVarPath, "{"+"art_id"+"}", url.PathEscape(parameterValueToString(r.artId, "artId")), -1)
- localVarPath = strings.Replace(localVarPath, "{"+"version_number"+"}", url.PathEscape(parameterValueToString(r.versionNumber, "versionNumber")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 410 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiGetDriveRouteV0DrivesDriveIdGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- driveId string
-}
-
-func (r ApiGetDriveRouteV0DrivesDriveIdGetRequest) Execute() (*DriveReadOut, *http.Response, error) {
- return r.ApiService.GetDriveRouteV0DrivesDriveIdGetExecute(r)
-}
-
-/*
-GetDriveRouteV0DrivesDriveIdGet Drive overview by id (same shape as /drives/me)
-
-Identical to `GET /v0/drives/me` — the by-id singleton so `Location`-style URLs and scripted clients can address the drive canonically. The path-param `drive_id` MUST match the authenticated drive (mirrors the delete/trash routes' no-leak 404). Emits the drive's composite `ETag` header (`".0."`).
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param driveId
- @return ApiGetDriveRouteV0DrivesDriveIdGetRequest
-*/
-func (a *DefaultAPIService) GetDriveRouteV0DrivesDriveIdGet(ctx context.Context, driveId string) ApiGetDriveRouteV0DrivesDriveIdGetRequest {
- return ApiGetDriveRouteV0DrivesDriveIdGetRequest{
- ApiService: a,
- ctx: ctx,
- driveId: driveId,
- }
-}
-
-// Execute executes the request
-// @return DriveReadOut
-func (a *DefaultAPIService) GetDriveRouteV0DrivesDriveIdGetExecute(r ApiGetDriveRouteV0DrivesDriveIdGetRequest) (*DriveReadOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *DriveReadOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.GetDriveRouteV0DrivesDriveIdGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/drives/{drive_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiGetFeedbackStatusV0FeedbackFbkIdGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- fbkId string
-}
-
-func (r ApiGetFeedbackStatusV0FeedbackFbkIdGetRequest) Execute() (*FeedbackStatusOut, *http.Response, error) {
- return r.ApiService.GetFeedbackStatusV0FeedbackFbkIdGetExecute(r)
-}
-
-/*
-GetFeedbackStatusV0FeedbackFbkIdGet Get Feedback Status
-
-Lifecycle status of feedback THIS drive filed. Foreign tickets
-read as 404 — indistinguishable from absent.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param fbkId
- @return ApiGetFeedbackStatusV0FeedbackFbkIdGetRequest
-*/
-func (a *DefaultAPIService) GetFeedbackStatusV0FeedbackFbkIdGet(ctx context.Context, fbkId string) ApiGetFeedbackStatusV0FeedbackFbkIdGetRequest {
- return ApiGetFeedbackStatusV0FeedbackFbkIdGetRequest{
- ApiService: a,
- ctx: ctx,
- fbkId: fbkId,
- }
-}
-
-// Execute executes the request
-// @return FeedbackStatusOut
-func (a *DefaultAPIService) GetFeedbackStatusV0FeedbackFbkIdGetExecute(r ApiGetFeedbackStatusV0FeedbackFbkIdGetRequest) (*FeedbackStatusOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *FeedbackStatusOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.GetFeedbackStatusV0FeedbackFbkIdGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/feedback/{fbk_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"fbk_id"+"}", url.PathEscape(parameterValueToString(r.fbkId, "fbkId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiGetFolderByIdMetaV0FoldersFldIdMetaGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- fldId string
-}
-
-func (r ApiGetFolderByIdMetaV0FoldersFldIdMetaGetRequest) Execute() (*FolderOut, *http.Response, error) {
- return r.ApiService.GetFolderByIdMetaV0FoldersFldIdMetaGetExecute(r)
-}
-
-/*
-GetFolderByIdMetaV0FoldersFldIdMetaGet Folder metadata by stable ID (same shape as the bare id route)
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param fldId
- @return ApiGetFolderByIdMetaV0FoldersFldIdMetaGetRequest
-*/
-func (a *DefaultAPIService) GetFolderByIdMetaV0FoldersFldIdMetaGet(ctx context.Context, fldId string) ApiGetFolderByIdMetaV0FoldersFldIdMetaGetRequest {
- return ApiGetFolderByIdMetaV0FoldersFldIdMetaGetRequest{
- ApiService: a,
- ctx: ctx,
- fldId: fldId,
- }
-}
-
-// Execute executes the request
-// @return FolderOut
-func (a *DefaultAPIService) GetFolderByIdMetaV0FoldersFldIdMetaGetExecute(r ApiGetFolderByIdMetaV0FoldersFldIdMetaGetRequest) (*FolderOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *FolderOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.GetFolderByIdMetaV0FoldersFldIdMetaGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/folders/{fld_id}/meta"
- localVarPath = strings.Replace(localVarPath, "{"+"fld_id"+"}", url.PathEscape(parameterValueToString(r.fldId, "fldId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiGetFolderByIdV0FoldersFldIdGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- fldId string
-}
-
-func (r ApiGetFolderByIdV0FoldersFldIdGetRequest) Execute() (*FolderOut, *http.Response, error) {
- return r.ApiService.GetFolderByIdV0FoldersFldIdGetExecute(r)
-}
-
-/*
-GetFolderByIdV0FoldersFldIdGet Canonical lookup of a folder by its stable ID
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param fldId
- @return ApiGetFolderByIdV0FoldersFldIdGetRequest
-*/
-func (a *DefaultAPIService) GetFolderByIdV0FoldersFldIdGet(ctx context.Context, fldId string) ApiGetFolderByIdV0FoldersFldIdGetRequest {
- return ApiGetFolderByIdV0FoldersFldIdGetRequest{
- ApiService: a,
- ctx: ctx,
- fldId: fldId,
- }
-}
-
-// Execute executes the request
-// @return FolderOut
-func (a *DefaultAPIService) GetFolderByIdV0FoldersFldIdGetExecute(r ApiGetFolderByIdV0FoldersFldIdGetRequest) (*FolderOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *FolderOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.GetFolderByIdV0FoldersFldIdGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/folders/{fld_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"fld_id"+"}", url.PathEscape(parameterValueToString(r.fldId, "fldId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiGetFolderByPathMetaV0FoldersPathMetaGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- path string
-}
-
-func (r ApiGetFolderByPathMetaV0FoldersPathMetaGetRequest) Execute() (*FolderOut, *http.Response, error) {
- return r.ApiService.GetFolderByPathMetaV0FoldersPathMetaGetExecute(r)
-}
-
-/*
-GetFolderByPathMetaV0FoldersPathMetaGet Folder metadata by path (same shape as the bare path route)
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param path
- @return ApiGetFolderByPathMetaV0FoldersPathMetaGetRequest
-*/
-func (a *DefaultAPIService) GetFolderByPathMetaV0FoldersPathMetaGet(ctx context.Context, path string) ApiGetFolderByPathMetaV0FoldersPathMetaGetRequest {
- return ApiGetFolderByPathMetaV0FoldersPathMetaGetRequest{
- ApiService: a,
- ctx: ctx,
- path: path,
- }
-}
-
-// Execute executes the request
-// @return FolderOut
-func (a *DefaultAPIService) GetFolderByPathMetaV0FoldersPathMetaGetExecute(r ApiGetFolderByPathMetaV0FoldersPathMetaGetRequest) (*FolderOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *FolderOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.GetFolderByPathMetaV0FoldersPathMetaGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/folders/{path}/meta"
- localVarPath = strings.Replace(localVarPath, "{"+"path"+"}", url.PathEscape(parameterValueToString(r.path, "path")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiGetFolderByPathV0FoldersPathGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- path string
-}
-
-func (r ApiGetFolderByPathV0FoldersPathGetRequest) Execute() (*FolderOut, *http.Response, error) {
- return r.ApiService.GetFolderByPathV0FoldersPathGetExecute(r)
-}
-
-/*
-GetFolderByPathV0FoldersPathGet Read folder metadata by path
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param path
- @return ApiGetFolderByPathV0FoldersPathGetRequest
-*/
-func (a *DefaultAPIService) GetFolderByPathV0FoldersPathGet(ctx context.Context, path string) ApiGetFolderByPathV0FoldersPathGetRequest {
- return ApiGetFolderByPathV0FoldersPathGetRequest{
- ApiService: a,
- ctx: ctx,
- path: path,
- }
-}
-
-// Execute executes the request
-// @return FolderOut
-func (a *DefaultAPIService) GetFolderByPathV0FoldersPathGetExecute(r ApiGetFolderByPathV0FoldersPathGetRequest) (*FolderOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *FolderOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.GetFolderByPathV0FoldersPathGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/folders/{path}"
- localVarPath = strings.Replace(localVarPath, "{"+"path"+"}", url.PathEscape(parameterValueToString(r.path, "path")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiGetGrantRouteV0GrantsGrnIdGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- grnId string
-}
-
-func (r ApiGetGrantRouteV0GrantsGrnIdGetRequest) Execute() (*GrantOut, *http.Response, error) {
- return r.ApiService.GetGrantRouteV0GrantsGrnIdGetExecute(r)
-}
-
-/*
-GetGrantRouteV0GrantsGrnIdGet Read a single grant (can_manage, or the grant's own principal)
-
-The `Location` target of `POST /v0/grants`. Authorization mirrors
-DELETE: `can_manage` on the granted resource, or the caller IS the
-grant's own principal (a grantee may read — like revoke — their own
-grant). A revoked grant reads as 404 (same no-leak shape as a
-foreign/absent id); DELETE stays idempotent on it.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param grnId
- @return ApiGetGrantRouteV0GrantsGrnIdGetRequest
-*/
-func (a *DefaultAPIService) GetGrantRouteV0GrantsGrnIdGet(ctx context.Context, grnId string) ApiGetGrantRouteV0GrantsGrnIdGetRequest {
- return ApiGetGrantRouteV0GrantsGrnIdGetRequest{
- ApiService: a,
- ctx: ctx,
- grnId: grnId,
- }
-}
-
-// Execute executes the request
-// @return GrantOut
-func (a *DefaultAPIService) GetGrantRouteV0GrantsGrnIdGetExecute(r ApiGetGrantRouteV0GrantsGrnIdGetRequest) (*GrantOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *GrantOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.GetGrantRouteV0GrantsGrnIdGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/grants/{grn_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"grn_id"+"}", url.PathEscape(parameterValueToString(r.grnId, "grnId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiGetJobLogsV0JobsJobIdLogsGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- jobId string
-}
-
-func (r ApiGetJobLogsV0JobsJobIdLogsGetRequest) Execute() (string, *http.Response, error) {
- return r.ApiService.GetJobLogsV0JobsJobIdLogsGetExecute(r)
-}
-
-/*
-GetJobLogsV0JobsJobIdLogsGet Raw compile log (text/plain)
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param jobId
- @return ApiGetJobLogsV0JobsJobIdLogsGetRequest
-*/
-func (a *DefaultAPIService) GetJobLogsV0JobsJobIdLogsGet(ctx context.Context, jobId string) ApiGetJobLogsV0JobsJobIdLogsGetRequest {
- return ApiGetJobLogsV0JobsJobIdLogsGetRequest{
- ApiService: a,
- ctx: ctx,
- jobId: jobId,
- }
-}
-
-// Execute executes the request
-// @return string
-func (a *DefaultAPIService) GetJobLogsV0JobsJobIdLogsGetExecute(r ApiGetJobLogsV0JobsJobIdLogsGetRequest) (string, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue string
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.GetJobLogsV0JobsJobIdLogsGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/jobs/{job_id}/logs"
- localVarPath = strings.Replace(localVarPath, "{"+"job_id"+"}", url.PathEscape(parameterValueToString(r.jobId, "jobId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"text/plain", "application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiGetJobV0JobsJobIdGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- jobId string
-}
-
-func (r ApiGetJobV0JobsJobIdGetRequest) Execute() (*CompileJobOut, *http.Response, error) {
- return r.ApiService.GetJobV0JobsJobIdGetExecute(r)
-}
-
-/*
-GetJobV0JobsJobIdGet Poll a job
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param jobId
- @return ApiGetJobV0JobsJobIdGetRequest
-*/
-func (a *DefaultAPIService) GetJobV0JobsJobIdGet(ctx context.Context, jobId string) ApiGetJobV0JobsJobIdGetRequest {
- return ApiGetJobV0JobsJobIdGetRequest{
- ApiService: a,
- ctx: ctx,
- jobId: jobId,
- }
-}
-
-// Execute executes the request
-// @return CompileJobOut
-func (a *DefaultAPIService) GetJobV0JobsJobIdGetExecute(r ApiGetJobV0JobsJobIdGetRequest) (*CompileJobOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *CompileJobOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.GetJobV0JobsJobIdGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/jobs/{job_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"job_id"+"}", url.PathEscape(parameterValueToString(r.jobId, "jobId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiGetProjectV0ProjectsFldIdGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- fldId string
-}
-
-func (r ApiGetProjectV0ProjectsFldIdGetRequest) Execute() (*CompileProjectOut, *http.Response, error) {
- return r.ApiService.GetProjectV0ProjectsFldIdGetExecute(r)
-}
-
-/*
-GetProjectV0ProjectsFldIdGet Get a project's compile config
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param fldId
- @return ApiGetProjectV0ProjectsFldIdGetRequest
-*/
-func (a *DefaultAPIService) GetProjectV0ProjectsFldIdGet(ctx context.Context, fldId string) ApiGetProjectV0ProjectsFldIdGetRequest {
- return ApiGetProjectV0ProjectsFldIdGetRequest{
- ApiService: a,
- ctx: ctx,
- fldId: fldId,
- }
-}
-
-// Execute executes the request
-// @return CompileProjectOut
-func (a *DefaultAPIService) GetProjectV0ProjectsFldIdGetExecute(r ApiGetProjectV0ProjectsFldIdGetRequest) (*CompileProjectOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *CompileProjectOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.GetProjectV0ProjectsFldIdGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/projects/{fld_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"fld_id"+"}", url.PathEscape(parameterValueToString(r.fldId, "fldId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiGetShareRouteV0SharesShrIdGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- shrId string
-}
-
-func (r ApiGetShareRouteV0SharesShrIdGetRequest) Execute() (*ShareOut, *http.Response, error) {
- return r.ApiService.GetShareRouteV0SharesShrIdGetExecute(r)
-}
-
-/*
-GetShareRouteV0SharesShrIdGet Read a single share link's metadata (requires can_manage)
-
-The `Location` target of `POST /v0/shares`. Metadata ONLY —
-`ShareOut` never carries the raw `share_key`/URL (returned exactly
-once at mint/rotate, §4.5). Authorization mirrors DELETE:
-`can_manage` on the shared resource. A revoked share reads as 404
-(same no-leak shape as a foreign/absent id).
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param shrId
- @return ApiGetShareRouteV0SharesShrIdGetRequest
-*/
-func (a *DefaultAPIService) GetShareRouteV0SharesShrIdGet(ctx context.Context, shrId string) ApiGetShareRouteV0SharesShrIdGetRequest {
- return ApiGetShareRouteV0SharesShrIdGetRequest{
- ApiService: a,
- ctx: ctx,
- shrId: shrId,
- }
-}
-
-// Execute executes the request
-// @return ShareOut
-func (a *DefaultAPIService) GetShareRouteV0SharesShrIdGetExecute(r ApiGetShareRouteV0SharesShrIdGetRequest) (*ShareOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ShareOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.GetShareRouteV0SharesShrIdGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/shares/{shr_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"shr_id"+"}", url.PathEscape(parameterValueToString(r.shrId, "shrId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiGetUploadStatusV0UploadsUploadIdGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- uploadId string
-}
-
-func (r ApiGetUploadStatusV0UploadsUploadIdGetRequest) Execute() (*UploadStatusOut, *http.Response, error) {
- return r.ApiService.GetUploadStatusV0UploadsUploadIdGetExecute(r)
-}
-
-/*
-GetUploadStatusV0UploadsUploadIdGet Get the status of a large (direct-to-GCS) upload session
-
-Report the live state of an upload session begun at `/v0/uploads`. `state` is derived: `initiated` (open — PUT the bytes then commit), `committed` (artifact created), `aborted` (released via DELETE), or `expired` (past `expires_at` without a commit). Read-only; charges the read budget.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param uploadId
- @return ApiGetUploadStatusV0UploadsUploadIdGetRequest
-*/
-func (a *DefaultAPIService) GetUploadStatusV0UploadsUploadIdGet(ctx context.Context, uploadId string) ApiGetUploadStatusV0UploadsUploadIdGetRequest {
- return ApiGetUploadStatusV0UploadsUploadIdGetRequest{
- ApiService: a,
- ctx: ctx,
- uploadId: uploadId,
- }
-}
-
-// Execute executes the request
-// @return UploadStatusOut
-func (a *DefaultAPIService) GetUploadStatusV0UploadsUploadIdGetExecute(r ApiGetUploadStatusV0UploadsUploadIdGetRequest) (*UploadStatusOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *UploadStatusOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.GetUploadStatusV0UploadsUploadIdGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/uploads/{upload_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"upload_id"+"}", url.PathEscape(parameterValueToString(r.uploadId, "uploadId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiHealthHealthGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
-}
-
-func (r ApiHealthHealthGetRequest) Execute() (*HealthOut, *http.Response, error) {
- return r.ApiService.HealthHealthGetExecute(r)
-}
-
-/*
-HealthHealthGet Health
-
-Liveness + DB-reachability probe. Used by Cloud Run / k8s healthchecks
-and any uptime monitor. Returns 200 only if the DB pool can serve a
-trivial query; 503 otherwise so the orchestrator can pull the instance
-out of rotation.
-
-NOTE: route is `/health`, NOT `/healthz`. Google's edge infrastructure
-intercepts `/healthz` (legacy kubernetes-reserved path) and returns a
-generic 404 before traffic reaches Cloud Run — discovered the hard way
-during the first prod deploy. Don't rename back.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiHealthHealthGetRequest
-*/
-func (a *DefaultAPIService) HealthHealthGet(ctx context.Context) ApiHealthHealthGetRequest {
- return ApiHealthHealthGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return HealthOut
-func (a *DefaultAPIService) HealthHealthGetExecute(r ApiHealthHealthGetRequest) (*HealthOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *HealthOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.HealthHealthGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/health"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 503 {
- var v HealthDegradedResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiListArtifactVersionsV0ArtifactsArtIdVersionsGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- artId string
- cursor *string
- limit *int32
-}
-
-func (r ApiListArtifactVersionsV0ArtifactsArtIdVersionsGetRequest) Cursor(cursor string) ApiListArtifactVersionsV0ArtifactsArtIdVersionsGetRequest {
- r.cursor = &cursor
- return r
-}
-
-func (r ApiListArtifactVersionsV0ArtifactsArtIdVersionsGetRequest) Limit(limit int32) ApiListArtifactVersionsV0ArtifactsArtIdVersionsGetRequest {
- r.limit = &limit
- return r
-}
-
-func (r ApiListArtifactVersionsV0ArtifactsArtIdVersionsGetRequest) Execute() (*VersionPage, *http.Response, error) {
- return r.ApiService.ListArtifactVersionsV0ArtifactsArtIdVersionsGetExecute(r)
-}
-
-/*
-ListArtifactVersionsV0ArtifactsArtIdVersionsGet List versions of an artifact, newest first
-
-Returns versions in descending `version_number` order. Cursor pagination via `?cursor=`; `next_cursor` is non-null when the page is full and more older versions may exist.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param artId
- @return ApiListArtifactVersionsV0ArtifactsArtIdVersionsGetRequest
-*/
-func (a *DefaultAPIService) ListArtifactVersionsV0ArtifactsArtIdVersionsGet(ctx context.Context, artId string) ApiListArtifactVersionsV0ArtifactsArtIdVersionsGetRequest {
- return ApiListArtifactVersionsV0ArtifactsArtIdVersionsGetRequest{
- ApiService: a,
- ctx: ctx,
- artId: artId,
- }
-}
-
-// Execute executes the request
-// @return VersionPage
-func (a *DefaultAPIService) ListArtifactVersionsV0ArtifactsArtIdVersionsGetExecute(r ApiListArtifactVersionsV0ArtifactsArtIdVersionsGetRequest) (*VersionPage, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *VersionPage
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.ListArtifactVersionsV0ArtifactsArtIdVersionsGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts/{art_id}/versions"
- localVarPath = strings.Replace(localVarPath, "{"+"art_id"+"}", url.PathEscape(parameterValueToString(r.artId, "artId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- if r.cursor != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
- }
- if r.limit != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
- } else {
- var defaultValue int32 = 50
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", defaultValue, "form", "")
- r.limit = &defaultValue
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiListArtifactsV0ArtifactsGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- prefix *string
- label *[]*string
- fileType *string
- cursor *string
- limit *int32
-}
-
-func (r ApiListArtifactsV0ArtifactsGetRequest) Prefix(prefix string) ApiListArtifactsV0ArtifactsGetRequest {
- r.prefix = &prefix
- return r
-}
-
-func (r ApiListArtifactsV0ArtifactsGetRequest) Label(label []*string) ApiListArtifactsV0ArtifactsGetRequest {
- r.label = &label
- return r
-}
-
-func (r ApiListArtifactsV0ArtifactsGetRequest) FileType(fileType string) ApiListArtifactsV0ArtifactsGetRequest {
- r.fileType = &fileType
- return r
-}
-
-func (r ApiListArtifactsV0ArtifactsGetRequest) Cursor(cursor string) ApiListArtifactsV0ArtifactsGetRequest {
- r.cursor = &cursor
- return r
-}
-
-func (r ApiListArtifactsV0ArtifactsGetRequest) Limit(limit int32) ApiListArtifactsV0ArtifactsGetRequest {
- r.limit = &limit
- return r
-}
-
-func (r ApiListArtifactsV0ArtifactsGetRequest) Execute() (*Page, *http.Response, error) {
- return r.ApiService.ListArtifactsV0ArtifactsGetExecute(r)
-}
-
-/*
-ListArtifactsV0ArtifactsGet List artifacts in the drive
-
-Returns artifacts sorted by path. Filter by `prefix`, `label` (repeatable + AND-combined), and `file_type`.
-
-**Cursor pagination:** when more results exist, the response carries `next_cursor`. Pass it back as `?cursor=` to fetch the next page. `next_cursor` is `null` on the final page. Filters MUST stay consistent across pages — the cursor encodes only the keyset position, not the filter set, so the client is responsible for re-sending the same filter on each page.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiListArtifactsV0ArtifactsGetRequest
-*/
-func (a *DefaultAPIService) ListArtifactsV0ArtifactsGet(ctx context.Context) ApiListArtifactsV0ArtifactsGetRequest {
- return ApiListArtifactsV0ArtifactsGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return Page
-func (a *DefaultAPIService) ListArtifactsV0ArtifactsGetExecute(r ApiListArtifactsV0ArtifactsGetRequest) (*Page, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *Page
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.ListArtifactsV0ArtifactsGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- if r.prefix != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "prefix", r.prefix, "form", "")
- } else {
- var defaultValue string = ""
- parameterAddToHeaderOrQuery(localVarQueryParams, "prefix", defaultValue, "form", "")
- r.prefix = &defaultValue
- }
- if r.label != nil {
- t := *r.label
- if reflect.TypeOf(t).Kind() == reflect.Slice {
- s := reflect.ValueOf(t)
- for i := 0; i < s.Len(); i++ {
- parameterAddToHeaderOrQuery(localVarQueryParams, "label", s.Index(i).Interface(), "form", "multi")
- }
- } else {
- parameterAddToHeaderOrQuery(localVarQueryParams, "label", t, "form", "multi")
- }
- }
- if r.fileType != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "file_type", r.fileType, "form", "")
- }
- if r.cursor != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
- }
- if r.limit != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
- } else {
- var defaultValue int32 = 50
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", defaultValue, "form", "")
- r.limit = &defaultValue
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiListEventsRouteV0EventsGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- artId *string
- action *string
- since *time.Time
- before *time.Time
- cursor *string
- limit *int32
-}
-
-func (r ApiListEventsRouteV0EventsGetRequest) ArtId(artId string) ApiListEventsRouteV0EventsGetRequest {
- r.artId = &artId
- return r
-}
-
-func (r ApiListEventsRouteV0EventsGetRequest) Action(action string) ApiListEventsRouteV0EventsGetRequest {
- r.action = &action
- return r
-}
-
-func (r ApiListEventsRouteV0EventsGetRequest) Since(since time.Time) ApiListEventsRouteV0EventsGetRequest {
- r.since = &since
- return r
-}
-
-func (r ApiListEventsRouteV0EventsGetRequest) Before(before time.Time) ApiListEventsRouteV0EventsGetRequest {
- r.before = &before
- return r
-}
-
-func (r ApiListEventsRouteV0EventsGetRequest) Cursor(cursor string) ApiListEventsRouteV0EventsGetRequest {
- r.cursor = &cursor
- return r
-}
-
-func (r ApiListEventsRouteV0EventsGetRequest) Limit(limit int32) ApiListEventsRouteV0EventsGetRequest {
- r.limit = &limit
- return r
-}
-
-func (r ApiListEventsRouteV0EventsGetRequest) Execute() (*EventPage, *http.Response, error) {
- return r.ApiService.ListEventsRouteV0EventsGetExecute(r)
-}
-
-/*
-ListEventsRouteV0EventsGet Read the append-only event log for the authenticated drive
-
-Returns events newest-first. Filters compose with AND.
-
-**Cursor pagination:** pass the oldest event's `created_at` from the previous page as `before` to fetch the next page back in time. Combine `since` + `before` to bound a window.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiListEventsRouteV0EventsGetRequest
-*/
-func (a *DefaultAPIService) ListEventsRouteV0EventsGet(ctx context.Context) ApiListEventsRouteV0EventsGetRequest {
- return ApiListEventsRouteV0EventsGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return EventPage
-func (a *DefaultAPIService) ListEventsRouteV0EventsGetExecute(r ApiListEventsRouteV0EventsGetRequest) (*EventPage, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *EventPage
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.ListEventsRouteV0EventsGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/events"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- if r.artId != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "art_id", r.artId, "form", "")
- }
- if r.action != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "action", r.action, "form", "")
- }
- if r.since != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "since", r.since, "form", "")
- }
- if r.before != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "before", r.before, "form", "")
- }
- if r.cursor != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
- }
- if r.limit != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
- } else {
- var defaultValue int32 = 50
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", defaultValue, "form", "")
- r.limit = &defaultValue
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiListGrantsRouteV0GrantsGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- resource *string
- cursor *string
- limit *int32
-}
-
-// art_*_/fld_* id or a path
-func (r ApiListGrantsRouteV0GrantsGetRequest) Resource(resource string) ApiListGrantsRouteV0GrantsGetRequest {
- r.resource = &resource
- return r
-}
-
-func (r ApiListGrantsRouteV0GrantsGetRequest) Cursor(cursor string) ApiListGrantsRouteV0GrantsGetRequest {
- r.cursor = &cursor
- return r
-}
-
-func (r ApiListGrantsRouteV0GrantsGetRequest) Limit(limit int32) ApiListGrantsRouteV0GrantsGetRequest {
- r.limit = &limit
- return r
-}
-
-func (r ApiListGrantsRouteV0GrantsGetRequest) Execute() (*GrantList, *http.Response, error) {
- return r.ApiService.ListGrantsRouteV0GrantsGetExecute(r)
-}
-
-/*
-ListGrantsRouteV0GrantsGet List live grants on a resource (requires can_manage)
-
-**Cursor pagination:** when more results exist, the response carries `next_cursor`. Pass it back as `?cursor=` to fetch the next page; `null` means the listing is complete. `limit` is clamped to [1, 100] (default 50), never rejected. The `resource` filter must be re-sent on every page — the cursor encodes only the keyset position.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiListGrantsRouteV0GrantsGetRequest
-*/
-func (a *DefaultAPIService) ListGrantsRouteV0GrantsGet(ctx context.Context) ApiListGrantsRouteV0GrantsGetRequest {
- return ApiListGrantsRouteV0GrantsGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return GrantList
-func (a *DefaultAPIService) ListGrantsRouteV0GrantsGetExecute(r ApiListGrantsRouteV0GrantsGetRequest) (*GrantList, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *GrantList
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.ListGrantsRouteV0GrantsGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/grants"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.resource == nil {
- return localVarReturnValue, nil, reportError("resource is required and must be specified")
- }
-
- parameterAddToHeaderOrQuery(localVarQueryParams, "resource", r.resource, "form", "")
- if r.cursor != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
- }
- if r.limit != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiListProjectJobsV0ProjectsFldIdJobsGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- fldId string
- status *string
- limit *int32
- cursor *string
-}
-
-func (r ApiListProjectJobsV0ProjectsFldIdJobsGetRequest) Status(status string) ApiListProjectJobsV0ProjectsFldIdJobsGetRequest {
- r.status = &status
- return r
-}
-
-func (r ApiListProjectJobsV0ProjectsFldIdJobsGetRequest) Limit(limit int32) ApiListProjectJobsV0ProjectsFldIdJobsGetRequest {
- r.limit = &limit
- return r
-}
-
-func (r ApiListProjectJobsV0ProjectsFldIdJobsGetRequest) Cursor(cursor string) ApiListProjectJobsV0ProjectsFldIdJobsGetRequest {
- r.cursor = &cursor
- return r
-}
-
-func (r ApiListProjectJobsV0ProjectsFldIdJobsGetRequest) Execute() (*CompileJobListOut, *http.Response, error) {
- return r.ApiService.ListProjectJobsV0ProjectsFldIdJobsGetExecute(r)
-}
-
-/*
-ListProjectJobsV0ProjectsFldIdJobsGet List a project's jobs
-
-List compile jobs newest first in stable `(created_at, job_id)` descending order. Pass a non-null `next_cursor` back as `cursor` to continue; malformed cursors return `400 BAD_CURSOR`. The cursor contains only the keyset position, so a `status` filter must be re-sent unchanged on every page. `limit` retains its existing default of 50 and validated range of 1 through 200.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param fldId
- @return ApiListProjectJobsV0ProjectsFldIdJobsGetRequest
-*/
-func (a *DefaultAPIService) ListProjectJobsV0ProjectsFldIdJobsGet(ctx context.Context, fldId string) ApiListProjectJobsV0ProjectsFldIdJobsGetRequest {
- return ApiListProjectJobsV0ProjectsFldIdJobsGetRequest{
- ApiService: a,
- ctx: ctx,
- fldId: fldId,
- }
-}
-
-// Execute executes the request
-// @return CompileJobListOut
-func (a *DefaultAPIService) ListProjectJobsV0ProjectsFldIdJobsGetExecute(r ApiListProjectJobsV0ProjectsFldIdJobsGetRequest) (*CompileJobListOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *CompileJobListOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.ListProjectJobsV0ProjectsFldIdJobsGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/projects/{fld_id}/jobs"
- localVarPath = strings.Replace(localVarPath, "{"+"fld_id"+"}", url.PathEscape(parameterValueToString(r.fldId, "fldId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- if r.status != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "status", r.status, "form", "")
- }
- if r.limit != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
- } else {
- var defaultValue int32 = 50
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", defaultValue, "form", "")
- r.limit = &defaultValue
- }
- if r.cursor != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiListSharesRouteV0SharesGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- resource *string
- cursor *string
- limit *int32
-}
-
-// art_*_/fld_* id or a path
-func (r ApiListSharesRouteV0SharesGetRequest) Resource(resource string) ApiListSharesRouteV0SharesGetRequest {
- r.resource = &resource
- return r
-}
-
-func (r ApiListSharesRouteV0SharesGetRequest) Cursor(cursor string) ApiListSharesRouteV0SharesGetRequest {
- r.cursor = &cursor
- return r
-}
-
-func (r ApiListSharesRouteV0SharesGetRequest) Limit(limit int32) ApiListSharesRouteV0SharesGetRequest {
- r.limit = &limit
- return r
-}
-
-func (r ApiListSharesRouteV0SharesGetRequest) Execute() (*ShareList, *http.Response, error) {
- return r.ApiService.ListSharesRouteV0SharesGetExecute(r)
-}
-
-/*
-ListSharesRouteV0SharesGet List live share links on a resource (requires can_manage)
-
-**Cursor pagination:** when more results exist, the response carries `next_cursor`. Pass it back as `?cursor=` to fetch the next page; `null` means the listing is complete. `limit` is clamped to [1, 100] (default 50), never rejected. The `resource` filter must be re-sent on every page — the cursor encodes only the keyset position.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiListSharesRouteV0SharesGetRequest
-*/
-func (a *DefaultAPIService) ListSharesRouteV0SharesGet(ctx context.Context) ApiListSharesRouteV0SharesGetRequest {
- return ApiListSharesRouteV0SharesGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return ShareList
-func (a *DefaultAPIService) ListSharesRouteV0SharesGetExecute(r ApiListSharesRouteV0SharesGetRequest) (*ShareList, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ShareList
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.ListSharesRouteV0SharesGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/shares"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.resource == nil {
- return localVarReturnValue, nil, reportError("resource is required and must be specified")
- }
-
- parameterAddToHeaderOrQuery(localVarQueryParams, "resource", r.resource, "form", "")
- if r.cursor != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
- }
- if r.limit != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiListTrashRouteV0DrivesDriveIdTrashGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- driveId string
- cursor *string
- limit *int32
-}
-
-func (r ApiListTrashRouteV0DrivesDriveIdTrashGetRequest) Cursor(cursor string) ApiListTrashRouteV0DrivesDriveIdTrashGetRequest {
- r.cursor = &cursor
- return r
-}
-
-func (r ApiListTrashRouteV0DrivesDriveIdTrashGetRequest) Limit(limit int32) ApiListTrashRouteV0DrivesDriveIdTrashGetRequest {
- r.limit = &limit
- return r
-}
-
-func (r ApiListTrashRouteV0DrivesDriveIdTrashGetRequest) Execute() (*TrashOut, *http.Response, error) {
- return r.ApiService.ListTrashRouteV0DrivesDriveIdTrashGetExecute(r)
-}
-
-/*
-ListTrashRouteV0DrivesDriveIdTrashGet List the authenticated drive's trash
-
-Returns soft-deleted artifacts on the drive plus the drive's own soft-delete state (if applicable). The path-param `drive_id` MUST match the authenticated drive.
-
-**Compatibility window:** `limit` or `cursor` opts into cursor pagination. Unadorned requests retain the legacy complete result during the migration window. Paginated requests are clamped to 1–100 items (default 50 when only `cursor` is supplied). `items` is canonical; `artifacts` is a deprecated same-value alias.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param driveId
- @return ApiListTrashRouteV0DrivesDriveIdTrashGetRequest
-*/
-func (a *DefaultAPIService) ListTrashRouteV0DrivesDriveIdTrashGet(ctx context.Context, driveId string) ApiListTrashRouteV0DrivesDriveIdTrashGetRequest {
- return ApiListTrashRouteV0DrivesDriveIdTrashGetRequest{
- ApiService: a,
- ctx: ctx,
- driveId: driveId,
- }
-}
-
-// Execute executes the request
-// @return TrashOut
-func (a *DefaultAPIService) ListTrashRouteV0DrivesDriveIdTrashGetExecute(r ApiListTrashRouteV0DrivesDriveIdTrashGetRequest) (*TrashOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *TrashOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.ListTrashRouteV0DrivesDriveIdTrashGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/drives/{drive_id}/trash"
- localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- if r.cursor != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
- }
- if r.limit != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiLoginAuthLoginGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- returnTo *string
-}
-
-func (r ApiLoginAuthLoginGetRequest) ReturnTo(returnTo string) ApiLoginAuthLoginGetRequest {
- r.returnTo = &returnTo
- return r
-}
-
-func (r ApiLoginAuthLoginGetRequest) Execute() (*http.Response, error) {
- return r.ApiService.LoginAuthLoginGetExecute(r)
-}
-
-/*
-LoginAuthLoginGet Login
-
-Begin a WorkOS sign-in flow.
-
-Mints a pre-login state cookie (binds the OAuth flow to this
-browser — defense-in-depth against login-CSRF), signs a state
-payload, and redirects to AuthKit. The hosted AuthKit page lets
-the user pick Google OAuth, Microsoft OAuth, magic-link,
-password, or passkey; we don't care which — they all funnel
-back to /auth/callback with a `code` we exchange in D2.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiLoginAuthLoginGetRequest
-*/
-func (a *DefaultAPIService) LoginAuthLoginGet(ctx context.Context) ApiLoginAuthLoginGetRequest {
- return ApiLoginAuthLoginGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-func (a *DefaultAPIService) LoginAuthLoginGetExecute(r ApiLoginAuthLoginGetRequest) (*http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.LoginAuthLoginGet")
- if err != nil {
- return nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/auth/login"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- if r.returnTo != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "return_to", r.returnTo, "form", "")
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarHTTPResponse, newErr
- }
-
- return localVarHTTPResponse, nil
-}
-
-type ApiLogoutAuthLogoutPostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- csrf *string
-}
-
-func (r ApiLogoutAuthLogoutPostRequest) Csrf(csrf string) ApiLogoutAuthLogoutPostRequest {
- r.csrf = &csrf
- return r
-}
-
-func (r ApiLogoutAuthLogoutPostRequest) Execute() (*http.Response, error) {
- return r.ApiService.LogoutAuthLogoutPostExecute(r)
-}
-
-/*
-LogoutAuthLogoutPost Logout
-
-Terminate both the local session AND the upstream WorkOS session.
-
-Without the WorkOS-side termination, the next `/auth/login` flow
-silently re-authenticates the user through AuthKit's still-valid
-session cookie on `api.workos.com` — "Sign out" feels broken and
-a shared-browser user can't switch accounts. The recommended
-pattern (per https://workos.com/docs/authkit/sessions) is to
-redirect to the WorkOS logout endpoint with the `sid` we stashed
-during the callback; WorkOS clears its own session and returns
-the browser to our `return_to`.
-
-Failure modes handled:
- * No `workos_session_id` in the session (legacy v2 cookie issued
- before this slice landed): fall back to local-only logout. The
- upstream session lingers but the user's local state is cleared
- — same UX as before this slice; cookie rotation on next sign-in
- eventually overwrites it.
- * SDK raises during `get_logout_url`: pure string formatting at
- WorkOS's end, so the only realistic failure is a misconfigured
- WorkOS dashboard (no Sign-out redirect registered). We catch
- and fall back to local-only logout rather than 500ing — the
- user clicked "Sign out", they should land somewhere, not on an
- error page.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiLogoutAuthLogoutPostRequest
-*/
-func (a *DefaultAPIService) LogoutAuthLogoutPost(ctx context.Context) ApiLogoutAuthLogoutPostRequest {
- return ApiLogoutAuthLogoutPostRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-func (a *DefaultAPIService) LogoutAuthLogoutPostExecute(r ApiLogoutAuthLogoutPostRequest) (*http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.LogoutAuthLogoutPost")
- if err != nil {
- return nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/auth/logout"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.csrf == nil {
- return nil, reportError("csrf is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/x-www-form-urlencoded"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- parameterAddToHeaderOrQuery(localVarFormParams, "csrf", r.csrf, "", "")
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarHTTPResponse, newErr
- }
-
- return localVarHTTPResponse, nil
-}
-
-type ApiMeUsageV0DrivesMeUsageGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
-}
-
-func (r ApiMeUsageV0DrivesMeUsageGetRequest) Execute() (*DriveUsageOut, *http.Response, error) {
- return r.ApiService.MeUsageV0DrivesMeUsageGetExecute(r)
-}
-
-/*
-MeUsageV0DrivesMeUsageGet Current-period usage + caps for the authenticated drive
-
-Unified view of every metered dimension: storage (snapshot), writes (current hour), indexing ops + retrieval queries (current calendar month UTC). Each row carries `used` and `limit`; `limit: 0` means unlimited (the v0 free-tier default for the two monthly counters). Reads are de-throttled — there is no hourly read budget; the monthly read count appears under `ops_this_month.reads`.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiMeUsageV0DrivesMeUsageGetRequest
-*/
-func (a *DefaultAPIService) MeUsageV0DrivesMeUsageGet(ctx context.Context) ApiMeUsageV0DrivesMeUsageGetRequest {
- return ApiMeUsageV0DrivesMeUsageGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return DriveUsageOut
-func (a *DefaultAPIService) MeUsageV0DrivesMeUsageGetExecute(r ApiMeUsageV0DrivesMeUsageGetRequest) (*DriveUsageOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *DriveUsageOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.MeUsageV0DrivesMeUsageGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/drives/me/usage"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiMeV0DrivesMeGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
-}
-
-func (r ApiMeV0DrivesMeGetRequest) Execute() (*DriveReadOut, *http.Response, error) {
- return r.ApiService.MeV0DrivesMeGetExecute(r)
-}
-
-/*
-MeV0DrivesMeGet Me
-
-Drive overview for the authenticated bearer token.
-
-Wire-protocol preservation (WorkOS integration §6): the `email` field
-is preserved in the response shape; its meaning is now "the drive's
-owner's email" (via `drives.owner_user_id` → `users.email`, joined
-in `auth.resolve_drive`). For solo signups this equals v0 behavior —
-the email the user signed up with. Returns null if the owner has
-been hard-purged. `organization_id` is a new additive field, as are
-`metageneration` / `etag` (also emitted as the `ETag` header).
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiMeV0DrivesMeGetRequest
-*/
-func (a *DefaultAPIService) MeV0DrivesMeGet(ctx context.Context) ApiMeV0DrivesMeGetRequest {
- return ApiMeV0DrivesMeGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return DriveReadOut
-func (a *DefaultAPIService) MeV0DrivesMeGetExecute(r ApiMeV0DrivesMeGetRequest) (*DriveReadOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *DriveReadOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.MeV0DrivesMeGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/drives/me"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiMoveArtifactRouteV0ArtifactsArtIdMovePostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- artId string
- artifactMoveIn *ArtifactMoveIn
- xAgentdriveActor *string
- ifMatch *string
-}
-
-func (r ApiMoveArtifactRouteV0ArtifactsArtIdMovePostRequest) ArtifactMoveIn(artifactMoveIn ArtifactMoveIn) ApiMoveArtifactRouteV0ArtifactsArtIdMovePostRequest {
- r.artifactMoveIn = &artifactMoveIn
- return r
-}
-
-func (r ApiMoveArtifactRouteV0ArtifactsArtIdMovePostRequest) XAgentdriveActor(xAgentdriveActor string) ApiMoveArtifactRouteV0ArtifactsArtIdMovePostRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiMoveArtifactRouteV0ArtifactsArtIdMovePostRequest) IfMatch(ifMatch string) ApiMoveArtifactRouteV0ArtifactsArtIdMovePostRequest {
- r.ifMatch = &ifMatch
- return r
-}
-
-func (r ApiMoveArtifactRouteV0ArtifactsArtIdMovePostRequest) Execute() (*ArtifactOut, *http.Response, error) {
- return r.ApiService.MoveArtifactRouteV0ArtifactsArtIdMovePostExecute(r)
-}
-
-/*
-MoveArtifactRouteV0ArtifactsArtIdMovePost Rename / move an artifact to a new path
-
-Canonical artifact move/rename, keyed by the stable `art_…` ID (the artifact analogue of `POST /v0/folders/{fld_id}/move`). Moves the artifact to a new `path` on the same drive; ID, version history, source refs, labels, metadata, and the underlying CAS blob are all preserved — only `path` and `updated_at` change, and the move does NOT bump `version_number`.
-
-The row UPDATE and the emitted `artifact.renamed` event commit in a SINGLE transaction — a failure leaves the artifact fully unchanged.
-
-Returns 409 PATH_CONFLICT if the target `path` is already taken; 404 ARTIFACT_NOT_FOUND for an unknown id; 403 WIKI_RESERVED for a `_wiki/` / `_compiled/` target. Honors `If-Match` (→ 412 PRECONDITION_FAILED). Use `X-AgentDrive-Actor` to attach attribution to the emitted `artifact.renamed` event.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param artId
- @return ApiMoveArtifactRouteV0ArtifactsArtIdMovePostRequest
-*/
-func (a *DefaultAPIService) MoveArtifactRouteV0ArtifactsArtIdMovePost(ctx context.Context, artId string) ApiMoveArtifactRouteV0ArtifactsArtIdMovePostRequest {
- return ApiMoveArtifactRouteV0ArtifactsArtIdMovePostRequest{
- ApiService: a,
- ctx: ctx,
- artId: artId,
- }
-}
-
-// Execute executes the request
-// @return ArtifactOut
-func (a *DefaultAPIService) MoveArtifactRouteV0ArtifactsArtIdMovePostExecute(r ApiMoveArtifactRouteV0ArtifactsArtIdMovePostRequest) (*ArtifactOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ArtifactOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.MoveArtifactRouteV0ArtifactsArtIdMovePost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts/{art_id}/move"
- localVarPath = strings.Replace(localVarPath, "{"+"art_id"+"}", url.PathEscape(parameterValueToString(r.artId, "artId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.artifactMoveIn == nil {
- return localVarReturnValue, nil, reportError("artifactMoveIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- if r.ifMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-match", r.ifMatch, "simple", "")
- }
- // body params
- localVarPostBody = r.artifactMoveIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 409 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiMoveFolderByIdV0FoldersFldIdMovePostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- fldId string
- folderMoveIn *FolderMoveIn
- xAgentdriveActor *string
- ifMatch *string
-}
-
-func (r ApiMoveFolderByIdV0FoldersFldIdMovePostRequest) FolderMoveIn(folderMoveIn FolderMoveIn) ApiMoveFolderByIdV0FoldersFldIdMovePostRequest {
- r.folderMoveIn = &folderMoveIn
- return r
-}
-
-func (r ApiMoveFolderByIdV0FoldersFldIdMovePostRequest) XAgentdriveActor(xAgentdriveActor string) ApiMoveFolderByIdV0FoldersFldIdMovePostRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiMoveFolderByIdV0FoldersFldIdMovePostRequest) IfMatch(ifMatch string) ApiMoveFolderByIdV0FoldersFldIdMovePostRequest {
- r.ifMatch = &ifMatch
- return r
-}
-
-func (r ApiMoveFolderByIdV0FoldersFldIdMovePostRequest) Execute() (*FolderOut, *http.Response, error) {
- return r.ApiService.MoveFolderByIdV0FoldersFldIdMovePostExecute(r)
-}
-
-/*
-MoveFolderByIdV0FoldersFldIdMovePost Rename / move a folder by stable ID (cascade descendants)
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param fldId
- @return ApiMoveFolderByIdV0FoldersFldIdMovePostRequest
-*/
-func (a *DefaultAPIService) MoveFolderByIdV0FoldersFldIdMovePost(ctx context.Context, fldId string) ApiMoveFolderByIdV0FoldersFldIdMovePostRequest {
- return ApiMoveFolderByIdV0FoldersFldIdMovePostRequest{
- ApiService: a,
- ctx: ctx,
- fldId: fldId,
- }
-}
-
-// Execute executes the request
-// @return FolderOut
-func (a *DefaultAPIService) MoveFolderByIdV0FoldersFldIdMovePostExecute(r ApiMoveFolderByIdV0FoldersFldIdMovePostRequest) (*FolderOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *FolderOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.MoveFolderByIdV0FoldersFldIdMovePost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/folders/{fld_id}/move"
- localVarPath = strings.Replace(localVarPath, "{"+"fld_id"+"}", url.PathEscape(parameterValueToString(r.fldId, "fldId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.folderMoveIn == nil {
- return localVarReturnValue, nil, reportError("folderMoveIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- if r.ifMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-match", r.ifMatch, "simple", "")
- }
- // body params
- localVarPostBody = r.folderMoveIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 409 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiMoveFolderByPathV0FoldersPathMovePostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- path string
- folderMoveIn *FolderMoveIn
- xAgentdriveActor *string
- ifMatch *string
-}
-
-func (r ApiMoveFolderByPathV0FoldersPathMovePostRequest) FolderMoveIn(folderMoveIn FolderMoveIn) ApiMoveFolderByPathV0FoldersPathMovePostRequest {
- r.folderMoveIn = &folderMoveIn
- return r
-}
-
-func (r ApiMoveFolderByPathV0FoldersPathMovePostRequest) XAgentdriveActor(xAgentdriveActor string) ApiMoveFolderByPathV0FoldersPathMovePostRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiMoveFolderByPathV0FoldersPathMovePostRequest) IfMatch(ifMatch string) ApiMoveFolderByPathV0FoldersPathMovePostRequest {
- r.ifMatch = &ifMatch
- return r
-}
-
-func (r ApiMoveFolderByPathV0FoldersPathMovePostRequest) Execute() (*FolderOut, *http.Response, error) {
- return r.ApiService.MoveFolderByPathV0FoldersPathMovePostExecute(r)
-}
-
-/*
-MoveFolderByPathV0FoldersPathMovePost Rename / move a folder (cascade-update descendants)
-
-Move the folder identified by URL path to the body's `path`. All descendant folders + artifacts are path-prefix-updated in the same transaction. The folder's `fld_*` ID stays stable.
-
-Returns 409 `FOLDER_PATH_CONFLICT` if the destination prefix collides with a live folder or artifact path.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param path
- @return ApiMoveFolderByPathV0FoldersPathMovePostRequest
-*/
-func (a *DefaultAPIService) MoveFolderByPathV0FoldersPathMovePost(ctx context.Context, path string) ApiMoveFolderByPathV0FoldersPathMovePostRequest {
- return ApiMoveFolderByPathV0FoldersPathMovePostRequest{
- ApiService: a,
- ctx: ctx,
- path: path,
- }
-}
-
-// Execute executes the request
-// @return FolderOut
-func (a *DefaultAPIService) MoveFolderByPathV0FoldersPathMovePostExecute(r ApiMoveFolderByPathV0FoldersPathMovePostRequest) (*FolderOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *FolderOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.MoveFolderByPathV0FoldersPathMovePost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/folders/{path}/move"
- localVarPath = strings.Replace(localVarPath, "{"+"path"+"}", url.PathEscape(parameterValueToString(r.path, "path")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.folderMoveIn == nil {
- return localVarReturnValue, nil, reportError("folderMoveIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- if r.ifMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-match", r.ifMatch, "simple", "")
- }
- // body params
- localVarPostBody = r.folderMoveIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 409 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiPatchArtifactRouteV0ArtifactsArtIdPatchRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- artId string
- artifactPatchIn *ArtifactPatchIn
- xAgentdriveActor *string
- ifMatch *string
-}
-
-func (r ApiPatchArtifactRouteV0ArtifactsArtIdPatchRequest) ArtifactPatchIn(artifactPatchIn ArtifactPatchIn) ApiPatchArtifactRouteV0ArtifactsArtIdPatchRequest {
- r.artifactPatchIn = &artifactPatchIn
- return r
-}
-
-func (r ApiPatchArtifactRouteV0ArtifactsArtIdPatchRequest) XAgentdriveActor(xAgentdriveActor string) ApiPatchArtifactRouteV0ArtifactsArtIdPatchRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiPatchArtifactRouteV0ArtifactsArtIdPatchRequest) IfMatch(ifMatch string) ApiPatchArtifactRouteV0ArtifactsArtIdPatchRequest {
- r.ifMatch = &ifMatch
- return r
-}
-
-func (r ApiPatchArtifactRouteV0ArtifactsArtIdPatchRequest) Execute() (*ArtifactOut, *http.Response, error) {
- return r.ApiService.PatchArtifactRouteV0ArtifactsArtIdPatchExecute(r)
-}
-
-/*
-PatchArtifactRouteV0ArtifactsArtIdPatch Edit artifact metadata (labels / metadata / source)
-
-Metadata-only JSON-merge-patch update of a single artifact, keyed by its stable `art_…` ID. Every field in the body is optional; a field that is **omitted** is left unchanged, a field that is **present** is applied — with an explicit `null` / `[]` / `{}` meaning "clear". This mirrors the MCP `set_metadata` tool.
-
-Editable fields:
- * `labels` — replace the label set (`[]`/`null` clears).
- * `metadata` — replace the free-form metadata object (`{}`/`null` clears).
- * `source` — replace provenance refs (`null` clears).
-
-**To move/rename an artifact, use `POST /v0/artifacts/{art_id}/move`** — PATCH no longer accepts `path`. The body is `extra="forbid"`, so a stray field (notably a legacy `path`) is rejected with 422 rather than silently ignored.
-
-Metadata edits do NOT create a new content version (no `version_number` / generation bump, no `artifact_versions` row) but DO bump the artifact's `metageneration` and `updated_at`.
-
-Returns 400 BAD_LABELS / BAD_SOURCE for invalid metadata; 404 ARTIFACT_NOT_FOUND for an unknown id. Honors `If-Match`, which takes the composite ETag `".."` and is compared as a whole tuple: ANY concurrent content **or** metadata change (a bumped generation OR metageneration) → 412 PRECONDITION_FAILED. There is no last-writer-wins gap for metadata-only edits. Use `X-AgentDrive-Actor` to attach attribution to the emitted `artifact.metadata_updated` event.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param artId
- @return ApiPatchArtifactRouteV0ArtifactsArtIdPatchRequest
-*/
-func (a *DefaultAPIService) PatchArtifactRouteV0ArtifactsArtIdPatch(ctx context.Context, artId string) ApiPatchArtifactRouteV0ArtifactsArtIdPatchRequest {
- return ApiPatchArtifactRouteV0ArtifactsArtIdPatchRequest{
- ApiService: a,
- ctx: ctx,
- artId: artId,
- }
-}
-
-// Execute executes the request
-// @return ArtifactOut
-func (a *DefaultAPIService) PatchArtifactRouteV0ArtifactsArtIdPatchExecute(r ApiPatchArtifactRouteV0ArtifactsArtIdPatchRequest) (*ArtifactOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPatch
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ArtifactOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.PatchArtifactRouteV0ArtifactsArtIdPatch")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts/{art_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"art_id"+"}", url.PathEscape(parameterValueToString(r.artId, "artId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.artifactPatchIn == nil {
- return localVarReturnValue, nil, reportError("artifactPatchIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- if r.ifMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-match", r.ifMatch, "simple", "")
- }
- // body params
- localVarPostBody = r.artifactPatchIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiPatchFolderByIdV0FoldersFldIdPatchRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- fldId string
- folderPatchIn *FolderPatchIn
- xAgentdriveActor *string
- ifMatch *string
-}
-
-func (r ApiPatchFolderByIdV0FoldersFldIdPatchRequest) FolderPatchIn(folderPatchIn FolderPatchIn) ApiPatchFolderByIdV0FoldersFldIdPatchRequest {
- r.folderPatchIn = &folderPatchIn
- return r
-}
-
-func (r ApiPatchFolderByIdV0FoldersFldIdPatchRequest) XAgentdriveActor(xAgentdriveActor string) ApiPatchFolderByIdV0FoldersFldIdPatchRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiPatchFolderByIdV0FoldersFldIdPatchRequest) IfMatch(ifMatch string) ApiPatchFolderByIdV0FoldersFldIdPatchRequest {
- r.ifMatch = &ifMatch
- return r
-}
-
-func (r ApiPatchFolderByIdV0FoldersFldIdPatchRequest) Execute() (*FolderOut, *http.Response, error) {
- return r.ApiService.PatchFolderByIdV0FoldersFldIdPatchExecute(r)
-}
-
-/*
-PatchFolderByIdV0FoldersFldIdPatch Update folder metadata by stable ID
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param fldId
- @return ApiPatchFolderByIdV0FoldersFldIdPatchRequest
-*/
-func (a *DefaultAPIService) PatchFolderByIdV0FoldersFldIdPatch(ctx context.Context, fldId string) ApiPatchFolderByIdV0FoldersFldIdPatchRequest {
- return ApiPatchFolderByIdV0FoldersFldIdPatchRequest{
- ApiService: a,
- ctx: ctx,
- fldId: fldId,
- }
-}
-
-// Execute executes the request
-// @return FolderOut
-func (a *DefaultAPIService) PatchFolderByIdV0FoldersFldIdPatchExecute(r ApiPatchFolderByIdV0FoldersFldIdPatchRequest) (*FolderOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPatch
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *FolderOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.PatchFolderByIdV0FoldersFldIdPatch")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/folders/{fld_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"fld_id"+"}", url.PathEscape(parameterValueToString(r.fldId, "fldId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.folderPatchIn == nil {
- return localVarReturnValue, nil, reportError("folderPatchIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- if r.ifMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-match", r.ifMatch, "simple", "")
- }
- // body params
- localVarPostBody = r.folderPatchIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiPatchFolderByPathV0FoldersPathPatchRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- path string
- folderPatchIn *FolderPatchIn
- xAgentdriveActor *string
- ifMatch *string
-}
-
-func (r ApiPatchFolderByPathV0FoldersPathPatchRequest) FolderPatchIn(folderPatchIn FolderPatchIn) ApiPatchFolderByPathV0FoldersPathPatchRequest {
- r.folderPatchIn = &folderPatchIn
- return r
-}
-
-func (r ApiPatchFolderByPathV0FoldersPathPatchRequest) XAgentdriveActor(xAgentdriveActor string) ApiPatchFolderByPathV0FoldersPathPatchRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiPatchFolderByPathV0FoldersPathPatchRequest) IfMatch(ifMatch string) ApiPatchFolderByPathV0FoldersPathPatchRequest {
- r.ifMatch = &ifMatch
- return r
-}
-
-func (r ApiPatchFolderByPathV0FoldersPathPatchRequest) Execute() (*FolderOut, *http.Response, error) {
- return r.ApiService.PatchFolderByPathV0FoldersPathPatchExecute(r)
-}
-
-/*
-PatchFolderByPathV0FoldersPathPatch Update folder metadata by path
-
-Partial update — field absence leaves the value unchanged; explicit `null` clears the field. Use the by-id endpoint (slice 2) when you need stable addressing across renames.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param path
- @return ApiPatchFolderByPathV0FoldersPathPatchRequest
-*/
-func (a *DefaultAPIService) PatchFolderByPathV0FoldersPathPatch(ctx context.Context, path string) ApiPatchFolderByPathV0FoldersPathPatchRequest {
- return ApiPatchFolderByPathV0FoldersPathPatchRequest{
- ApiService: a,
- ctx: ctx,
- path: path,
- }
-}
-
-// Execute executes the request
-// @return FolderOut
-func (a *DefaultAPIService) PatchFolderByPathV0FoldersPathPatchExecute(r ApiPatchFolderByPathV0FoldersPathPatchRequest) (*FolderOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPatch
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *FolderOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.PatchFolderByPathV0FoldersPathPatch")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/folders/{path}"
- localVarPath = strings.Replace(localVarPath, "{"+"path"+"}", url.PathEscape(parameterValueToString(r.path, "path")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.folderPatchIn == nil {
- return localVarReturnValue, nil, reportError("folderPatchIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- if r.ifMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-match", r.ifMatch, "simple", "")
- }
- // body params
- localVarPostBody = r.folderPatchIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiPatchGrantRouteV0GrantsGrnIdPatchRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- grnId string
- grantPatchIn *GrantPatchIn
- xAgentdriveActor *string
-}
-
-func (r ApiPatchGrantRouteV0GrantsGrnIdPatchRequest) GrantPatchIn(grantPatchIn GrantPatchIn) ApiPatchGrantRouteV0GrantsGrnIdPatchRequest {
- r.grantPatchIn = &grantPatchIn
- return r
-}
-
-func (r ApiPatchGrantRouteV0GrantsGrnIdPatchRequest) XAgentdriveActor(xAgentdriveActor string) ApiPatchGrantRouteV0GrantsGrnIdPatchRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiPatchGrantRouteV0GrantsGrnIdPatchRequest) Execute() (*GrantOut, *http.Response, error) {
- return r.ApiService.PatchGrantRouteV0GrantsGrnIdPatchExecute(r)
-}
-
-/*
-PatchGrantRouteV0GrantsGrnIdPatch Update a grant's role and/or expiry (requires can_manage)
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param grnId
- @return ApiPatchGrantRouteV0GrantsGrnIdPatchRequest
-*/
-func (a *DefaultAPIService) PatchGrantRouteV0GrantsGrnIdPatch(ctx context.Context, grnId string) ApiPatchGrantRouteV0GrantsGrnIdPatchRequest {
- return ApiPatchGrantRouteV0GrantsGrnIdPatchRequest{
- ApiService: a,
- ctx: ctx,
- grnId: grnId,
- }
-}
-
-// Execute executes the request
-// @return GrantOut
-func (a *DefaultAPIService) PatchGrantRouteV0GrantsGrnIdPatchExecute(r ApiPatchGrantRouteV0GrantsGrnIdPatchRequest) (*GrantOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPatch
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *GrantOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.PatchGrantRouteV0GrantsGrnIdPatch")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/grants/{grn_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"grn_id"+"}", url.PathEscape(parameterValueToString(r.grnId, "grnId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.grantPatchIn == nil {
- return localVarReturnValue, nil, reportError("grantPatchIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- // body params
- localVarPostBody = r.grantPatchIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiPostDescribeV0QueryDescribePostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- describeIn *DescribeIn
-}
-
-func (r ApiPostDescribeV0QueryDescribePostRequest) DescribeIn(describeIn DescribeIn) ApiPostDescribeV0QueryDescribePostRequest {
- r.describeIn = &describeIn
- return r
-}
-
-func (r ApiPostDescribeV0QueryDescribePostRequest) Execute() (*DatasetDescriptionOut, *http.Response, error) {
- return r.ApiService.PostDescribeV0QueryDescribePostExecute(r)
-}
-
-/*
-PostDescribeV0QueryDescribePost Describe a dataset's column schema
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiPostDescribeV0QueryDescribePostRequest
-*/
-func (a *DefaultAPIService) PostDescribeV0QueryDescribePost(ctx context.Context) ApiPostDescribeV0QueryDescribePostRequest {
- return ApiPostDescribeV0QueryDescribePostRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return DatasetDescriptionOut
-func (a *DefaultAPIService) PostDescribeV0QueryDescribePostExecute(r ApiPostDescribeV0QueryDescribePostRequest) (*DatasetDescriptionOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *DatasetDescriptionOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.PostDescribeV0QueryDescribePost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/query/describe"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.describeIn == nil {
- return localVarReturnValue, nil, reportError("describeIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- // body params
- localVarPostBody = r.describeIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 503 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiPostFeedbackV0FeedbackPostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
-}
-
-func (r ApiPostFeedbackV0FeedbackPostRequest) Execute() (*FeedbackCreateOut, *http.Response, error) {
- return r.ApiService.PostFeedbackV0FeedbackPostExecute(r)
-}
-
-/*
-PostFeedbackV0FeedbackPost Post Feedback
-
-File feedback. Body: `{kind, title, body, contact?,
-attachments?: [art_id, ...]}` — attachments are snapshotted from
-this drive's artifacts at submit time.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiPostFeedbackV0FeedbackPostRequest
-*/
-func (a *DefaultAPIService) PostFeedbackV0FeedbackPost(ctx context.Context) ApiPostFeedbackV0FeedbackPostRequest {
- return ApiPostFeedbackV0FeedbackPostRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return FeedbackCreateOut
-func (a *DefaultAPIService) PostFeedbackV0FeedbackPostExecute(r ApiPostFeedbackV0FeedbackPostRequest) (*FeedbackCreateOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *FeedbackCreateOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.PostFeedbackV0FeedbackPost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/feedback"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiPostLookupValuesV0QueryLookupValuesPostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- lookupValuesIn *LookupValuesIn
-}
-
-func (r ApiPostLookupValuesV0QueryLookupValuesPostRequest) LookupValuesIn(lookupValuesIn LookupValuesIn) ApiPostLookupValuesV0QueryLookupValuesPostRequest {
- r.lookupValuesIn = &lookupValuesIn
- return r
-}
-
-func (r ApiPostLookupValuesV0QueryLookupValuesPostRequest) Execute() (*LookupValuesOut, *http.Response, error) {
- return r.ApiService.PostLookupValuesV0QueryLookupValuesPostExecute(r)
-}
-
-/*
-PostLookupValuesV0QueryLookupValuesPost List distinct values of a dataset column
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiPostLookupValuesV0QueryLookupValuesPostRequest
-*/
-func (a *DefaultAPIService) PostLookupValuesV0QueryLookupValuesPost(ctx context.Context) ApiPostLookupValuesV0QueryLookupValuesPostRequest {
- return ApiPostLookupValuesV0QueryLookupValuesPostRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return LookupValuesOut
-func (a *DefaultAPIService) PostLookupValuesV0QueryLookupValuesPostExecute(r ApiPostLookupValuesV0QueryLookupValuesPostRequest) (*LookupValuesOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *LookupValuesOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.PostLookupValuesV0QueryLookupValuesPost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/query/lookup-values"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.lookupValuesIn == nil {
- return localVarReturnValue, nil, reportError("lookupValuesIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- // body params
- localVarPostBody = r.lookupValuesIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 402 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 503 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiPostQueryV0QueryPostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- queryIn *QueryIn
-}
-
-func (r ApiPostQueryV0QueryPostRequest) QueryIn(queryIn QueryIn) ApiPostQueryV0QueryPostRequest {
- r.queryIn = &queryIn
- return r
-}
-
-func (r ApiPostQueryV0QueryPostRequest) Execute() (*ResponsePostQueryV0QueryPost, *http.Response, error) {
- return r.ApiService.PostQueryV0QueryPostExecute(r)
-}
-
-/*
-PostQueryV0QueryPost Run a read-only SQL query over authorized datasets
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiPostQueryV0QueryPostRequest
-*/
-func (a *DefaultAPIService) PostQueryV0QueryPost(ctx context.Context) ApiPostQueryV0QueryPostRequest {
- return ApiPostQueryV0QueryPostRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return ResponsePostQueryV0QueryPost
-func (a *DefaultAPIService) PostQueryV0QueryPostExecute(r ApiPostQueryV0QueryPostRequest) (*ResponsePostQueryV0QueryPost, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ResponsePostQueryV0QueryPost
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.PostQueryV0QueryPost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/query"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.queryIn == nil {
- return localVarReturnValue, nil, reportError("queryIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- // body params
- localVarPostBody = r.queryIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 402 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 503 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiPutArtifactV0ArtifactsPathPutRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- path string
- contentType *string
- xAgentdriveLabels *string
- xAgentdriveMetadata *string
- xAgentdriveSource *string
- xAgentdriveActor *string
- xAgentdriveChangeSummary *string
- xAgentdriveChecksum *string
- contentMd5 *string
- ifMatch *string
- ifNoneMatch *string
-}
-
-func (r ApiPutArtifactV0ArtifactsPathPutRequest) ContentType(contentType string) ApiPutArtifactV0ArtifactsPathPutRequest {
- r.contentType = &contentType
- return r
-}
-
-func (r ApiPutArtifactV0ArtifactsPathPutRequest) XAgentdriveLabels(xAgentdriveLabels string) ApiPutArtifactV0ArtifactsPathPutRequest {
- r.xAgentdriveLabels = &xAgentdriveLabels
- return r
-}
-
-func (r ApiPutArtifactV0ArtifactsPathPutRequest) XAgentdriveMetadata(xAgentdriveMetadata string) ApiPutArtifactV0ArtifactsPathPutRequest {
- r.xAgentdriveMetadata = &xAgentdriveMetadata
- return r
-}
-
-func (r ApiPutArtifactV0ArtifactsPathPutRequest) XAgentdriveSource(xAgentdriveSource string) ApiPutArtifactV0ArtifactsPathPutRequest {
- r.xAgentdriveSource = &xAgentdriveSource
- return r
-}
-
-func (r ApiPutArtifactV0ArtifactsPathPutRequest) XAgentdriveActor(xAgentdriveActor string) ApiPutArtifactV0ArtifactsPathPutRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiPutArtifactV0ArtifactsPathPutRequest) XAgentdriveChangeSummary(xAgentdriveChangeSummary string) ApiPutArtifactV0ArtifactsPathPutRequest {
- r.xAgentdriveChangeSummary = &xAgentdriveChangeSummary
- return r
-}
-
-func (r ApiPutArtifactV0ArtifactsPathPutRequest) XAgentdriveChecksum(xAgentdriveChecksum string) ApiPutArtifactV0ArtifactsPathPutRequest {
- r.xAgentdriveChecksum = &xAgentdriveChecksum
- return r
-}
-
-func (r ApiPutArtifactV0ArtifactsPathPutRequest) ContentMd5(contentMd5 string) ApiPutArtifactV0ArtifactsPathPutRequest {
- r.contentMd5 = &contentMd5
- return r
-}
-
-func (r ApiPutArtifactV0ArtifactsPathPutRequest) IfMatch(ifMatch string) ApiPutArtifactV0ArtifactsPathPutRequest {
- r.ifMatch = &ifMatch
- return r
-}
-
-func (r ApiPutArtifactV0ArtifactsPathPutRequest) IfNoneMatch(ifNoneMatch string) ApiPutArtifactV0ArtifactsPathPutRequest {
- r.ifNoneMatch = &ifNoneMatch
- return r
-}
-
-func (r ApiPutArtifactV0ArtifactsPathPutRequest) Execute() (*ArtifactOut, *http.Response, error) {
- return r.ApiService.PutArtifactV0ArtifactsPathPutExecute(r)
-}
-
-/*
-PutArtifactV0ArtifactsPathPut Upload (or overwrite) an artifact
-
-Upload an artifact at the given path. The path is treated as the artifact's location in the drive — re-uploading the same path overwrites in place (idempotent). Returns 201 when the artifact is created (no prior live artifact at the path), 200 on overwrite — mirroring `PUT /v0/folders/{path}`.
-
-**Limits:** request body must not exceed **50 MB**. Path must be non-empty, ≤256 chars, only `[A-Za-z0-9_./-]`, no `..` segments, no leading/trailing slash. Per-token write rate limit: 100/hour.
-
-**Optional headers.** Each preserves the existing artifact's value when omitted on an overwrite, and takes the create-default on a new path; send the header to replace it:
-- `X-AgentDrive-Labels`: comma-separated labels (e.g. `draft,report`); an empty value clears them. Each: lowercase `[a-z0-9_-]+`, ≤64 chars; ≤16 labels per artifact.
-- `X-AgentDrive-Metadata`: JSON object of agent-attached fields.
-- `X-AgentDrive-Source`: JSON `{"refs": [...]}` source provenance (present, including `{"refs": []}`, replaces).
-- `X-AgentDrive-Actor`: caller-supplied actor name (≤64 chars) for event-log attribution. Untrusted; never used for authz.
-
-**Preconditions.** `If-Match: ".."` makes the write conditional on the current composite ETag (→ 412 PRECONDITION_FAILED). `If-None-Match: *` is create-only: it succeeds only if no live artifact occupies the path (→ 412 CREATE_CONFLICT if one does). The two are mutually exclusive (→ 400 BAD_PRECONDITION).
-
-**Integrity (optional).** `X-AgentDrive-Checksum: :` (`sha256:` or `crc32c:`) or the standard `Content-MD5` (base64 MD5) is verified against the received bytes before they land (→ 400 CHECKSUM_MISMATCH on mismatch); no artifact is created on failure.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param path
- @return ApiPutArtifactV0ArtifactsPathPutRequest
-*/
-func (a *DefaultAPIService) PutArtifactV0ArtifactsPathPut(ctx context.Context, path string) ApiPutArtifactV0ArtifactsPathPutRequest {
- return ApiPutArtifactV0ArtifactsPathPutRequest{
- ApiService: a,
- ctx: ctx,
- path: path,
- }
-}
-
-// Execute executes the request
-// @return ArtifactOut
-func (a *DefaultAPIService) PutArtifactV0ArtifactsPathPutExecute(r ApiPutArtifactV0ArtifactsPathPutRequest) (*ArtifactOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPut
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ArtifactOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.PutArtifactV0ArtifactsPathPut")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts/{path}"
- localVarPath = strings.Replace(localVarPath, "{"+"path"+"}", url.PathEscape(parameterValueToString(r.path, "path")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.contentType != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "content-type", r.contentType, "simple", "")
- }
- if r.xAgentdriveLabels != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-labels", r.xAgentdriveLabels, "simple", "")
- }
- if r.xAgentdriveMetadata != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-metadata", r.xAgentdriveMetadata, "simple", "")
- }
- if r.xAgentdriveSource != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-source", r.xAgentdriveSource, "simple", "")
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- if r.xAgentdriveChangeSummary != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-change-summary", r.xAgentdriveChangeSummary, "simple", "")
- }
- if r.xAgentdriveChecksum != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-checksum", r.xAgentdriveChecksum, "simple", "")
- }
- if r.contentMd5 != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "content-md5", r.contentMd5, "simple", "")
- }
- if r.ifMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-match", r.ifMatch, "simple", "")
- }
- if r.ifNoneMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-none-match", r.ifNoneMatch, "simple", "")
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 409 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 413 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiPutProjectV0ProjectsFldIdPutRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- fldId string
- projectConfigIn *ProjectConfigIn
-}
-
-func (r ApiPutProjectV0ProjectsFldIdPutRequest) ProjectConfigIn(projectConfigIn ProjectConfigIn) ApiPutProjectV0ProjectsFldIdPutRequest {
- r.projectConfigIn = &projectConfigIn
- return r
-}
-
-func (r ApiPutProjectV0ProjectsFldIdPutRequest) Execute() (*CompileProjectOut, *http.Response, error) {
- return r.ApiService.PutProjectV0ProjectsFldIdPutExecute(r)
-}
-
-/*
-PutProjectV0ProjectsFldIdPut Set a project's compile config (entrypoint/engine/auto_compile)
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param fldId
- @return ApiPutProjectV0ProjectsFldIdPutRequest
-*/
-func (a *DefaultAPIService) PutProjectV0ProjectsFldIdPut(ctx context.Context, fldId string) ApiPutProjectV0ProjectsFldIdPutRequest {
- return ApiPutProjectV0ProjectsFldIdPutRequest{
- ApiService: a,
- ctx: ctx,
- fldId: fldId,
- }
-}
-
-// Execute executes the request
-// @return CompileProjectOut
-func (a *DefaultAPIService) PutProjectV0ProjectsFldIdPutExecute(r ApiPutProjectV0ProjectsFldIdPutRequest) (*CompileProjectOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPut
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *CompileProjectOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.PutProjectV0ProjectsFldIdPut")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/projects/{fld_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"fld_id"+"}", url.PathEscape(parameterValueToString(r.fldId, "fldId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.projectConfigIn == nil {
- return localVarReturnValue, nil, reportError("projectConfigIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- // body params
- localVarPostBody = r.projectConfigIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiRedeemShareSShareKeyGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- shareKey string
-}
-
-func (r ApiRedeemShareSShareKeyGetRequest) Execute() (*ShareRedeemOut, *http.Response, error) {
- return r.ApiService.RedeemShareSShareKeyGetExecute(r)
-}
-
-/*
-RedeemShareSShareKeyGet Redeem Share
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param shareKey
- @return ApiRedeemShareSShareKeyGetRequest
-*/
-func (a *DefaultAPIService) RedeemShareSShareKeyGet(ctx context.Context, shareKey string) ApiRedeemShareSShareKeyGetRequest {
- return ApiRedeemShareSShareKeyGetRequest{
- ApiService: a,
- ctx: ctx,
- shareKey: shareKey,
- }
-}
-
-// Execute executes the request
-// @return ShareRedeemOut
-func (a *DefaultAPIService) RedeemShareSShareKeyGetExecute(r ApiRedeemShareSShareKeyGetRequest) (*ShareRedeemOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ShareRedeemOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.RedeemShareSShareKeyGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/s/{share_key}"
- localVarPath = strings.Replace(localVarPath, "{"+"share_key"+"}", url.PathEscape(parameterValueToString(r.shareKey, "shareKey")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json", "text/html"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ShareErrorOut
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ShareErrorOut
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiRedeemShareWithPasswordSShareKeyPostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- shareKey string
- password *string
-}
-
-func (r ApiRedeemShareWithPasswordSShareKeyPostRequest) Password(password string) ApiRedeemShareWithPasswordSShareKeyPostRequest {
- r.password = &password
- return r
-}
-
-func (r ApiRedeemShareWithPasswordSShareKeyPostRequest) Execute() (*ShareRedeemOut, *http.Response, error) {
- return r.ApiService.RedeemShareWithPasswordSShareKeyPostExecute(r)
-}
-
-/*
-RedeemShareWithPasswordSShareKeyPost Redeem Share With Password
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param shareKey
- @return ApiRedeemShareWithPasswordSShareKeyPostRequest
-*/
-func (a *DefaultAPIService) RedeemShareWithPasswordSShareKeyPost(ctx context.Context, shareKey string) ApiRedeemShareWithPasswordSShareKeyPostRequest {
- return ApiRedeemShareWithPasswordSShareKeyPostRequest{
- ApiService: a,
- ctx: ctx,
- shareKey: shareKey,
- }
-}
-
-// Execute executes the request
-// @return ShareRedeemOut
-func (a *DefaultAPIService) RedeemShareWithPasswordSShareKeyPostExecute(r ApiRedeemShareWithPasswordSShareKeyPostRequest) (*ShareRedeemOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ShareRedeemOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.RedeemShareWithPasswordSShareKeyPost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/s/{share_key}"
- localVarPath = strings.Replace(localVarPath, "{"+"share_key"+"}", url.PathEscape(parameterValueToString(r.shareKey, "shareKey")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/x-www-form-urlencoded"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json", "text/html"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.password != nil {
- parameterAddToHeaderOrQuery(localVarFormParams, "password", r.password, "", "")
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ShareErrorOut
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ShareErrorOut
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiRestoreArtifactV0ArtifactsArtIdRestorePostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- artId string
- rename *string
- overwrite *bool
- xAgentdriveActor *string
- ifMatch *string
-}
-
-// Restore at this path instead of the original. Soft-deletes the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`. Mutually exclusive with `overwrite`.
-func (r ApiRestoreArtifactV0ArtifactsArtIdRestorePostRequest) Rename(rename string) ApiRestoreArtifactV0ArtifactsArtIdRestorePostRequest {
- r.rename = &rename
- return r
-}
-
-// Soft-delete the live occupant at the original path and restore there. Audit `metadata.cause='restore_conflict_overwrite'`. Mutually exclusive with `rename`.
-func (r ApiRestoreArtifactV0ArtifactsArtIdRestorePostRequest) Overwrite(overwrite bool) ApiRestoreArtifactV0ArtifactsArtIdRestorePostRequest {
- r.overwrite = &overwrite
- return r
-}
-
-func (r ApiRestoreArtifactV0ArtifactsArtIdRestorePostRequest) XAgentdriveActor(xAgentdriveActor string) ApiRestoreArtifactV0ArtifactsArtIdRestorePostRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiRestoreArtifactV0ArtifactsArtIdRestorePostRequest) IfMatch(ifMatch string) ApiRestoreArtifactV0ArtifactsArtIdRestorePostRequest {
- r.ifMatch = &ifMatch
- return r
-}
-
-func (r ApiRestoreArtifactV0ArtifactsArtIdRestorePostRequest) Execute() (*ArtifactOut, *http.Response, error) {
- return r.ApiService.RestoreArtifactV0ArtifactsArtIdRestorePostExecute(r)
-}
-
-/*
-RestoreArtifactV0ArtifactsArtIdRestorePost Restore a soft-deleted artifact
-
-Clear `deleted_at` + `purge_at` on a soft-deleted artifact. Available only while the artifact is in trash (i.e. before the GC cleanup cron purges it). Returns 404 if the artifact is live or already hard-deleted; 409 PATH_CONFLICT if its path is now occupied by another live artifact. The 409 payload includes a `restore_options` block with `rename_to` and `force_overwrite` URLs the caller can follow to resolve the conflict — see deletion-design.md §5.4.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param artId
- @return ApiRestoreArtifactV0ArtifactsArtIdRestorePostRequest
-*/
-func (a *DefaultAPIService) RestoreArtifactV0ArtifactsArtIdRestorePost(ctx context.Context, artId string) ApiRestoreArtifactV0ArtifactsArtIdRestorePostRequest {
- return ApiRestoreArtifactV0ArtifactsArtIdRestorePostRequest{
- ApiService: a,
- ctx: ctx,
- artId: artId,
- }
-}
-
-// Execute executes the request
-// @return ArtifactOut
-func (a *DefaultAPIService) RestoreArtifactV0ArtifactsArtIdRestorePostExecute(r ApiRestoreArtifactV0ArtifactsArtIdRestorePostRequest) (*ArtifactOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ArtifactOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.RestoreArtifactV0ArtifactsArtIdRestorePost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts/{art_id}/restore"
- localVarPath = strings.Replace(localVarPath, "{"+"art_id"+"}", url.PathEscape(parameterValueToString(r.artId, "artId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- if r.rename != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "rename", r.rename, "form", "")
- }
- if r.overwrite != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "overwrite", r.overwrite, "form", "")
- } else {
- var defaultValue bool = false
- parameterAddToHeaderOrQuery(localVarQueryParams, "overwrite", defaultValue, "form", "")
- r.overwrite = &defaultValue
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- if r.ifMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-match", r.ifMatch, "simple", "")
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 409 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiRestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- artId string
- versionNumber int32
- xAgentdriveActor *string
- ifMatch *string
-}
-
-func (r ApiRestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePostRequest) XAgentdriveActor(xAgentdriveActor string) ApiRestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePostRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiRestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePostRequest) IfMatch(ifMatch string) ApiRestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePostRequest {
- r.ifMatch = &ifMatch
- return r
-}
-
-func (r ApiRestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePostRequest) Execute() (*ArtifactOut, *http.Response, error) {
- return r.ApiService.RestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePostExecute(r)
-}
-
-/*
-RestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePost Restore a previous version as a new head version
-
-Roll the artifact forward to the content of version `version_number` by creating a **new head version** with identical bytes. History is preserved — this never rewrites or deletes past versions. The prior version's content-addressed blob is reused, so no bytes are re-uploaded. A change summary of `Restored version N` is recorded on the new version; `X-AgentDrive-Actor` attributes it.
-
-Restoring a version whose content already matches the current head (including the head itself) is a **no-op**: it returns the current artifact unchanged, with no new version created.
-
-Honors `If-Match` on the current head (roll forward only if the head is unchanged → 412 PRECONDITION_FAILED).
-
-Errors: `404 ARTIFACT_NOT_FOUND`, `404 VERSION_NOT_FOUND`, and `410 VERSION_PRUNED` when the version existed but its bytes were retained out of existence.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param artId
- @param versionNumber
- @return ApiRestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePostRequest
-*/
-func (a *DefaultAPIService) RestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePost(ctx context.Context, artId string, versionNumber int32) ApiRestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePostRequest {
- return ApiRestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePostRequest{
- ApiService: a,
- ctx: ctx,
- artId: artId,
- versionNumber: versionNumber,
- }
-}
-
-// Execute executes the request
-// @return ArtifactOut
-func (a *DefaultAPIService) RestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePostExecute(r ApiRestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePostRequest) (*ArtifactOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ArtifactOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.RestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/artifacts/{art_id}/versions/{version_number}/restore"
- localVarPath = strings.Replace(localVarPath, "{"+"art_id"+"}", url.PathEscape(parameterValueToString(r.artId, "artId")), -1)
- localVarPath = strings.Replace(localVarPath, "{"+"version_number"+"}", url.PathEscape(parameterValueToString(r.versionNumber, "versionNumber")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- if r.ifMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-match", r.ifMatch, "simple", "")
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 410 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiRestoreDriveRouteV0DrivesDriveIdRestorePostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- driveId string
- xAgentdriveActor *string
- ifMatch *string
-}
-
-func (r ApiRestoreDriveRouteV0DrivesDriveIdRestorePostRequest) XAgentdriveActor(xAgentdriveActor string) ApiRestoreDriveRouteV0DrivesDriveIdRestorePostRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiRestoreDriveRouteV0DrivesDriveIdRestorePostRequest) IfMatch(ifMatch string) ApiRestoreDriveRouteV0DrivesDriveIdRestorePostRequest {
- r.ifMatch = &ifMatch
- return r
-}
-
-func (r ApiRestoreDriveRouteV0DrivesDriveIdRestorePostRequest) Execute() (*DriveRestoreOut, *http.Response, error) {
- return r.ApiService.RestoreDriveRouteV0DrivesDriveIdRestorePostExecute(r)
-}
-
-/*
-RestoreDriveRouteV0DrivesDriveIdRestorePost Restore a soft-deleted drive
-
-Clear `deleted_at` + `purge_at` on a soft-deleted drive. Soft-deleted child artifacts get their retention window rebased to the drive-restore moment (see deletion-design.md §5.2). Available only while the drive is in trash. Returns 404 if the drive is live or already hard-deleted.
-
-**Optimistic concurrency:** send `If-Match` with the trashed drive's composite ETag (`".0."`, e.g. from the delete response's `ETag` header) to make the restore conditional — a stale token returns 412 PRECONDITION_FAILED. A restore WITHOUT an `If-Match` precondition is last-writer-wins.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param driveId
- @return ApiRestoreDriveRouteV0DrivesDriveIdRestorePostRequest
-*/
-func (a *DefaultAPIService) RestoreDriveRouteV0DrivesDriveIdRestorePost(ctx context.Context, driveId string) ApiRestoreDriveRouteV0DrivesDriveIdRestorePostRequest {
- return ApiRestoreDriveRouteV0DrivesDriveIdRestorePostRequest{
- ApiService: a,
- ctx: ctx,
- driveId: driveId,
- }
-}
-
-// Execute executes the request
-// @return DriveRestoreOut
-func (a *DefaultAPIService) RestoreDriveRouteV0DrivesDriveIdRestorePostExecute(r ApiRestoreDriveRouteV0DrivesDriveIdRestorePostRequest) (*DriveRestoreOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *DriveRestoreOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.RestoreDriveRouteV0DrivesDriveIdRestorePost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/drives/{drive_id}/restore"
- localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- if r.ifMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-match", r.ifMatch, "simple", "")
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 409 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiRestoreFolderByIdV0FoldersFldIdRestorePostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- fldId string
- xAgentdriveActor *string
- ifMatch *string
-}
-
-func (r ApiRestoreFolderByIdV0FoldersFldIdRestorePostRequest) XAgentdriveActor(xAgentdriveActor string) ApiRestoreFolderByIdV0FoldersFldIdRestorePostRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiRestoreFolderByIdV0FoldersFldIdRestorePostRequest) IfMatch(ifMatch string) ApiRestoreFolderByIdV0FoldersFldIdRestorePostRequest {
- r.ifMatch = &ifMatch
- return r
-}
-
-func (r ApiRestoreFolderByIdV0FoldersFldIdRestorePostRequest) Execute() (*FolderRestoreOut, *http.Response, error) {
- return r.ApiService.RestoreFolderByIdV0FoldersFldIdRestorePostExecute(r)
-}
-
-/*
-RestoreFolderByIdV0FoldersFldIdRestorePost Restore a soft-deleted folder (cascade)
-
-Mirrors `POST /v0/artifacts/{art_id}/restore` for folders: clear `deleted_at` + `purge_at` on a soft-deleted folder AND exactly the descendants soft-deleted in the same cascade (descendants trashed separately keep their trash state; restore those individually — the per-artifact restore remains for cherry-picking). Available only while the folder is in trash; returns 404 if it is live or already hard-purged.
-
-Returns 409 `PATH_CONFLICT` when a live folder/artifact now occupies a path this restore would reinstate (`colliding_path` + `kind` identify it). Unlike artifact restore there are NO `rename`/`overwrite` escape hatches — the whole cascade aborts; free the colliding path (or cherry-pick artifacts) and retry.
-
-`If-Match` (the trashed folder's composite ETag) makes the restore conditional → 412 PRECONDITION_FAILED on a stale token; omitted, the restore is last-writer-wins.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param fldId
- @return ApiRestoreFolderByIdV0FoldersFldIdRestorePostRequest
-*/
-func (a *DefaultAPIService) RestoreFolderByIdV0FoldersFldIdRestorePost(ctx context.Context, fldId string) ApiRestoreFolderByIdV0FoldersFldIdRestorePostRequest {
- return ApiRestoreFolderByIdV0FoldersFldIdRestorePostRequest{
- ApiService: a,
- ctx: ctx,
- fldId: fldId,
- }
-}
-
-// Execute executes the request
-// @return FolderRestoreOut
-func (a *DefaultAPIService) RestoreFolderByIdV0FoldersFldIdRestorePostExecute(r ApiRestoreFolderByIdV0FoldersFldIdRestorePostRequest) (*FolderRestoreOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *FolderRestoreOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.RestoreFolderByIdV0FoldersFldIdRestorePost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/folders/{fld_id}/restore"
- localVarPath = strings.Replace(localVarPath, "{"+"fld_id"+"}", url.PathEscape(parameterValueToString(r.fldId, "fldId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- if r.ifMatch != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "if-match", r.ifMatch, "simple", "")
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 409 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 412 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiRotateShareRouteV0SharesShrIdRotatePostRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- shrId string
- xAgentdriveActor *string
-}
-
-func (r ApiRotateShareRouteV0SharesShrIdRotatePostRequest) XAgentdriveActor(xAgentdriveActor string) ApiRotateShareRouteV0SharesShrIdRotatePostRequest {
- r.xAgentdriveActor = &xAgentdriveActor
- return r
-}
-
-func (r ApiRotateShareRouteV0SharesShrIdRotatePostRequest) Execute() (*ShareMintOut, *http.Response, error) {
- return r.ApiService.RotateShareRouteV0SharesShrIdRotatePostExecute(r)
-}
-
-/*
-RotateShareRouteV0SharesShrIdRotatePost Revoke + reissue a share link's key (requires can_share)
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param shrId
- @return ApiRotateShareRouteV0SharesShrIdRotatePostRequest
-*/
-func (a *DefaultAPIService) RotateShareRouteV0SharesShrIdRotatePost(ctx context.Context, shrId string) ApiRotateShareRouteV0SharesShrIdRotatePostRequest {
- return ApiRotateShareRouteV0SharesShrIdRotatePostRequest{
- ApiService: a,
- ctx: ctx,
- shrId: shrId,
- }
-}
-
-// Execute executes the request
-// @return ShareMintOut
-func (a *DefaultAPIService) RotateShareRouteV0SharesShrIdRotatePostExecute(r ApiRotateShareRouteV0SharesShrIdRotatePostRequest) (*ShareMintOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ShareMintOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.RotateShareRouteV0SharesShrIdRotatePost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/shares/{shr_id}/rotate"
- localVarPath = strings.Replace(localVarPath, "{"+"shr_id"+"}", url.PathEscape(parameterValueToString(r.shrId, "shrId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- if r.xAgentdriveActor != nil {
- parameterAddToHeaderOrQuery(localVarHeaderParams, "x-agentdrive-actor", r.xAgentdriveActor, "simple", "")
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiSearchV0SearchGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- q *string
- label *[]string
- fileType *string
- prefix *string
- updatedAfter *time.Time
- updatedBefore *time.Time
- limit *int32
-}
-
-func (r ApiSearchV0SearchGetRequest) Q(q string) ApiSearchV0SearchGetRequest {
- r.q = &q
- return r
-}
-
-func (r ApiSearchV0SearchGetRequest) Label(label []string) ApiSearchV0SearchGetRequest {
- r.label = &label
- return r
-}
-
-func (r ApiSearchV0SearchGetRequest) FileType(fileType string) ApiSearchV0SearchGetRequest {
- r.fileType = &fileType
- return r
-}
-
-func (r ApiSearchV0SearchGetRequest) Prefix(prefix string) ApiSearchV0SearchGetRequest {
- r.prefix = &prefix
- return r
-}
-
-func (r ApiSearchV0SearchGetRequest) UpdatedAfter(updatedAfter time.Time) ApiSearchV0SearchGetRequest {
- r.updatedAfter = &updatedAfter
- return r
-}
-
-func (r ApiSearchV0SearchGetRequest) UpdatedBefore(updatedBefore time.Time) ApiSearchV0SearchGetRequest {
- r.updatedBefore = &updatedBefore
- return r
-}
-
-func (r ApiSearchV0SearchGetRequest) Limit(limit int32) ApiSearchV0SearchGetRequest {
- r.limit = &limit
- return r
-}
-
-func (r ApiSearchV0SearchGetRequest) Execute() (*SearchPage, *http.Response, error) {
- return r.ApiService.SearchV0SearchGetExecute(r)
-}
-
-/*
-SearchV0SearchGet Full-text search over artifacts in the drive
-
-Lexical (not semantic) full-text search powered by Postgres `websearch_to_tsquery`. Results are ranked by `ts_rank` over a weighted tsvector (path > content > metadata > labels).
-
-**Supported query syntax:**
-- Words: `kangaroo` (English stemming)
-- Phrases: `"exact phrase"`
-- Negation: `kangaroo -secret`
-- AND (implicit): `kangaroo secret`
-- OR: `kangaroo OR koala`
-- Paths & filenames: `reports/q3-summary.md` or `q3-summary.md` match by their path words (`/ . _ -` are word boundaries)
-
-**Not supported (v0):**
-- Semantic / embedding similarity
-- PDF and image content (only the path + metadata are searchable)
-- Non-English stemming
-- Fuzzy matching, regex
-- Boolean operator parentheses
-
-**Filters:** `label` (repeatable, AND), `file_type` (enum), `prefix` (path prefix), `updated_after` / `updated_before` (RFC 3339 timestamps, inclusive bounds on `updated_at`).
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiSearchV0SearchGetRequest
-*/
-func (a *DefaultAPIService) SearchV0SearchGet(ctx context.Context) ApiSearchV0SearchGetRequest {
- return ApiSearchV0SearchGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return SearchPage
-func (a *DefaultAPIService) SearchV0SearchGetExecute(r ApiSearchV0SearchGetRequest) (*SearchPage, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *SearchPage
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.SearchV0SearchGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/search"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.q == nil {
- return localVarReturnValue, nil, reportError("q is required and must be specified")
- }
- if strlen(*r.q) < 1 {
- return localVarReturnValue, nil, reportError("q must have at least 1 elements")
- }
- if strlen(*r.q) > 200 {
- return localVarReturnValue, nil, reportError("q must have less than 200 elements")
- }
-
- parameterAddToHeaderOrQuery(localVarQueryParams, "q", r.q, "form", "")
- if r.label != nil {
- t := *r.label
- if reflect.TypeOf(t).Kind() == reflect.Slice {
- s := reflect.ValueOf(t)
- for i := 0; i < s.Len(); i++ {
- parameterAddToHeaderOrQuery(localVarQueryParams, "label", s.Index(i).Interface(), "form", "multi")
- }
- } else {
- parameterAddToHeaderOrQuery(localVarQueryParams, "label", t, "form", "multi")
- }
- }
- if r.fileType != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "file_type", r.fileType, "form", "")
- }
- if r.prefix != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "prefix", r.prefix, "form", "")
- }
- if r.updatedAfter != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "updated_after", r.updatedAfter, "form", "")
- }
- if r.updatedBefore != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "updated_before", r.updatedBefore, "form", "")
- }
- if r.limit != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
- } else {
- var defaultValue int32 = 20
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", defaultValue, "form", "")
- r.limit = &defaultValue
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiViewArtifactHeadAArtIdHeadGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- artId string
-}
-
-func (r ApiViewArtifactHeadAArtIdHeadGetRequest) Execute() (*ArtifactHeadOut, *http.Response, error) {
- return r.ApiService.ViewArtifactHeadAArtIdHeadGetExecute(r)
-}
-
-/*
-ViewArtifactHeadAArtIdHeadGet View Artifact Head
-
-Return `{"version": }` for a readable artifact.
-
-Auth mirrors the permalink/viewer: the owner, or an `anyone:viewer`
-grant (a published artifact), reads. Two deliberate differences from
-the HTML viewer:
-
- * Never redirect to login. A poll is a background `fetch`, not a
- navigation — an HTML login page would be a useless body and a
- same-origin redirect the client can't act on. Anonymous callers
- on a private/absent artifact get a flat 404.
- * "Doesn't exist" and "exists but not readable" collapse to the
- same 404, so an anonymous poller can't use this as an existence
- oracle (matches the permalink/viewer leak guard).
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param artId
- @return ApiViewArtifactHeadAArtIdHeadGetRequest
-*/
-func (a *DefaultAPIService) ViewArtifactHeadAArtIdHeadGet(ctx context.Context, artId string) ApiViewArtifactHeadAArtIdHeadGetRequest {
- return ApiViewArtifactHeadAArtIdHeadGetRequest{
- ApiService: a,
- ctx: ctx,
- artId: artId,
- }
-}
-
-// Execute executes the request
-// @return ArtifactHeadOut
-func (a *DefaultAPIService) ViewArtifactHeadAArtIdHeadGetExecute(r ApiViewArtifactHeadAArtIdHeadGetRequest) (*ArtifactHeadOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ArtifactHeadOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.ViewArtifactHeadAArtIdHeadGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/a/{art_id}/head"
- localVarPath = strings.Replace(localVarPath, "{"+"art_id"+"}", url.PathEscape(parameterValueToString(r.artId, "artId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiViewArtifactVersionVArtIdVersionGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- artId string
- version int32
- raw *int32
- download *int32
-}
-
-func (r ApiViewArtifactVersionVArtIdVersionGetRequest) Raw(raw int32) ApiViewArtifactVersionVArtIdVersionGetRequest {
- r.raw = &raw
- return r
-}
-
-func (r ApiViewArtifactVersionVArtIdVersionGetRequest) Download(download int32) ApiViewArtifactVersionVArtIdVersionGetRequest {
- r.download = &download
- return r
-}
-
-func (r ApiViewArtifactVersionVArtIdVersionGetRequest) Execute() (*os.File, *http.Response, error) {
- return r.ApiService.ViewArtifactVersionVArtIdVersionGetExecute(r)
-}
-
-/*
-ViewArtifactVersionVArtIdVersionGet View Artifact Version
-
-Render version `version` of an artifact, read-only.
-
-Version history is owner-only. The drive-blind `can_read` gate still
-provides the same sign-in-or-404 masking as `/a/{art_id}`, but readable
-non-owners cannot browse snapshots. A pruned or never-existed version
-renders a friendly unavailable state, never a 500.
-`?raw=1` / `?download=1` stream the version's bytes (powering the bar's
-Raw / Download buttons) with the same sandbox+nosniff headers as the
-head raw path.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param artId
- @param version
- @return ApiViewArtifactVersionVArtIdVersionGetRequest
-*/
-func (a *DefaultAPIService) ViewArtifactVersionVArtIdVersionGet(ctx context.Context, artId string, version int32) ApiViewArtifactVersionVArtIdVersionGetRequest {
- return ApiViewArtifactVersionVArtIdVersionGetRequest{
- ApiService: a,
- ctx: ctx,
- artId: artId,
- version: version,
- }
-}
-
-// Execute executes the request
-// @return *os.File
-func (a *DefaultAPIService) ViewArtifactVersionVArtIdVersionGetExecute(r ApiViewArtifactVersionVArtIdVersionGetRequest) (*os.File, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *os.File
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.ViewArtifactVersionVArtIdVersionGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v/{art_id}/{version}"
- localVarPath = strings.Replace(localVarPath, "{"+"art_id"+"}", url.PathEscape(parameterValueToString(r.artId, "artId")), -1)
- localVarPath = strings.Replace(localVarPath, "{"+"version"+"}", url.PathEscape(parameterValueToString(r.version, "version")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- if r.raw != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "raw", r.raw, "form", "")
- } else {
- var defaultValue int32 = 0
- parameterAddToHeaderOrQuery(localVarQueryParams, "raw", defaultValue, "form", "")
- r.raw = &defaultValue
- }
- if r.download != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "download", r.download, "form", "")
- } else {
- var defaultValue int32 = 0
- parameterAddToHeaderOrQuery(localVarQueryParams, "download", defaultValue, "form", "")
- r.download = &defaultValue
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/octet-stream", "text/html", "application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiViewFileDriveIdPathGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- driveId string
- path string
- raw *int32
- download *int32
-}
-
-func (r ApiViewFileDriveIdPathGetRequest) Raw(raw int32) ApiViewFileDriveIdPathGetRequest {
- r.raw = &raw
- return r
-}
-
-func (r ApiViewFileDriveIdPathGetRequest) Download(download int32) ApiViewFileDriveIdPathGetRequest {
- r.download = &download
- return r
-}
-
-func (r ApiViewFileDriveIdPathGetRequest) Execute() (*os.File, *http.Response, error) {
- return r.ApiService.ViewFileDriveIdPathGetExecute(r)
-}
+Liveness + DB-reachability probe. Used by Cloud Run / k8s healthchecks
+and any uptime monitor. Returns 200 only if the DB pool can serve a
+trivial query; 503 otherwise so the orchestrator can pull the instance
+out of rotation.
-/*
-ViewFileDriveIdPathGet View File
+NOTE: route is `/health`, NOT `/healthz`. Google's edge infrastructure
+intercepts `/healthz` (legacy kubernetes-reserved path) and returns a
+generic 404 before traffic reaches Cloud Run — discovered the hard way
+during the first prod deploy. Don't rename back.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param driveId
- @param path
- @return ApiViewFileDriveIdPathGetRequest
+ @return ApiHealthRequest
*/
-func (a *DefaultAPIService) ViewFileDriveIdPathGet(ctx context.Context, driveId string, path string) ApiViewFileDriveIdPathGetRequest {
- return ApiViewFileDriveIdPathGetRequest{
+func (a *DefaultAPIService) Health(ctx context.Context) ApiHealthRequest {
+ return ApiHealthRequest{
ApiService: a,
ctx: ctx,
- driveId: driveId,
- path: path,
}
}
// Execute executes the request
-// @return *os.File
-func (a *DefaultAPIService) ViewFileDriveIdPathGetExecute(r ApiViewFileDriveIdPathGetRequest) (*os.File, *http.Response, error) {
+// @return HealthOut
+func (a *DefaultAPIService) HealthExecute(r ApiHealthRequest) (*HealthOut, *http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
- localVarReturnValue *os.File
+ localVarReturnValue *HealthOut
)
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.ViewFileDriveIdPathGet")
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.Health")
if err != nil {
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
- localVarPath := localBasePath + "/{drive_id}/{path}"
- localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
- localVarPath = strings.Replace(localVarPath, "{"+"path"+"}", url.PathEscape(parameterValueToString(r.path, "path")), -1)
+ localVarPath := localBasePath + "/health"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
- if r.raw != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "raw", r.raw, "form", "")
- } else {
- var defaultValue int32 = 0
- parameterAddToHeaderOrQuery(localVarQueryParams, "raw", defaultValue, "form", "")
- r.raw = &defaultValue
- }
- if r.download != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "download", r.download, "form", "")
- } else {
- var defaultValue int32 = 0
- parameterAddToHeaderOrQuery(localVarQueryParams, "download", defaultValue, "form", "")
- r.download = &defaultValue
- }
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@@ -13988,7 +85,7 @@ func (a *DefaultAPIService) ViewFileDriveIdPathGetExecute(r ApiViewFileDriveIdPa
}
// to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/octet-stream", "text/html", "application/json"}
+ localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
@@ -14017,8 +114,8 @@ func (a *DefaultAPIService) ViewFileDriveIdPathGetExecute(r ApiViewFileDriveIdPa
body: localVarBody,
error: localVarHTTPResponse.Status,
}
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v HealthDegradedResponse
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -14041,241 +138,3 @@ func (a *DefaultAPIService) ViewFileDriveIdPathGetExecute(r ApiViewFileDriveIdPa
return localVarReturnValue, localVarHTTPResponse, nil
}
-
-type ApiViewPermalinkArtifactAArtIdGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- artId string
-}
-
-func (r ApiViewPermalinkArtifactAArtIdGetRequest) Execute() (*http.Response, error) {
- return r.ApiService.ViewPermalinkArtifactAArtIdGetExecute(r)
-}
-
-/*
-ViewPermalinkArtifactAArtIdGet View Permalink Artifact
-
-Resolve a stable artifact ID to its path-URL and 302 there.
-
-Auth model matches the path URL: public artifacts redirect for
-anyone; private artifacts redirect only for the owner. Non-owners
-on private artifacts get 404 — same response as "doesn't exist",
-so the ID's existence isn't leaked. The forwarded query-param
-allowlist is `raw`, `download` (see _PERMALINK_FORWARDED_PARAMS).
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param artId
- @return ApiViewPermalinkArtifactAArtIdGetRequest
-*/
-func (a *DefaultAPIService) ViewPermalinkArtifactAArtIdGet(ctx context.Context, artId string) ApiViewPermalinkArtifactAArtIdGetRequest {
- return ApiViewPermalinkArtifactAArtIdGetRequest{
- ApiService: a,
- ctx: ctx,
- artId: artId,
- }
-}
-
-// Execute executes the request
-func (a *DefaultAPIService) ViewPermalinkArtifactAArtIdGetExecute(r ApiViewPermalinkArtifactAArtIdGetRequest) (*http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.ViewPermalinkArtifactAArtIdGet")
- if err != nil {
- return nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/a/{art_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"art_id"+"}", url.PathEscape(parameterValueToString(r.artId, "artId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarHTTPResponse, newErr
- }
-
- return localVarHTTPResponse, nil
-}
-
-type ApiViewPermalinkFolderFFldIdGetRequest struct {
- ctx context.Context
- ApiService *DefaultAPIService
- fldId string
-}
-
-func (r ApiViewPermalinkFolderFFldIdGetRequest) Execute() (*http.Response, error) {
- return r.ApiService.ViewPermalinkFolderFFldIdGetExecute(r)
-}
-
-/*
-ViewPermalinkFolderFFldIdGet View Permalink Folder
-
-Resolve a stable folder ID to its current path-URL and 302.
-
-Auth model mirrors the artifact permalink: public folder = anon
-OK; private folder = owner only, otherwise 404 (no existence
-leak). "Public" is an `anyone:viewer` grant on the `fld_*` id
-resolved through `can_read` (§4.4); folders carry no visibility
-flag of their own.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param fldId
- @return ApiViewPermalinkFolderFFldIdGetRequest
-*/
-func (a *DefaultAPIService) ViewPermalinkFolderFFldIdGet(ctx context.Context, fldId string) ApiViewPermalinkFolderFFldIdGetRequest {
- return ApiViewPermalinkFolderFFldIdGetRequest{
- ApiService: a,
- ctx: ctx,
- fldId: fldId,
- }
-}
-
-// Execute executes the request
-func (a *DefaultAPIService) ViewPermalinkFolderFFldIdGetExecute(r ApiViewPermalinkFolderFFldIdGetRequest) (*http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.ViewPermalinkFolderFFldIdGet")
- if err != nil {
- return nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/f/{fld_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"fld_id"+"}", url.PathEscape(parameterValueToString(r.fldId, "fldId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarHTTPResponse, newErr
- }
-
- return localVarHTTPResponse, nil
-}
diff --git a/sdk/go/api_discovery.go b/sdk/go/api_discovery.go
new file mode 100644
index 0000000..4d7fbd7
--- /dev/null
+++ b/sdk/go/api_discovery.go
@@ -0,0 +1,122 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "bytes"
+ "context"
+ "io"
+ "net/http"
+ "net/url"
+)
+
+
+// DiscoveryAPIService DiscoveryAPI service
+type DiscoveryAPIService service
+
+type ApiOauthProtectedResourceRequest struct {
+ ctx context.Context
+ ApiService *DiscoveryAPIService
+}
+
+func (r ApiOauthProtectedResourceRequest) Execute() (map[string]*interface{}, *http.Response, error) {
+ return r.ApiService.OauthProtectedResourceExecute(r)
+}
+
+/*
+OauthProtectedResource Protected-resource metadata (RFC 9728)
+
+Names the reset v0 surface as a protected resource and points clients at Hub — the only authorization server whose product tokens this deployment accepts.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @return ApiOauthProtectedResourceRequest
+*/
+func (a *DiscoveryAPIService) OauthProtectedResource(ctx context.Context) ApiOauthProtectedResourceRequest {
+ return ApiOauthProtectedResourceRequest{
+ ApiService: a,
+ ctx: ctx,
+ }
+}
+
+// Execute executes the request
+// @return map[string]*interface{}
+func (a *DiscoveryAPIService) OauthProtectedResourceExecute(r ApiOauthProtectedResourceRequest) (map[string]*interface{}, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodGet
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue map[string]*interface{}
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DiscoveryAPIService.OauthProtectedResource")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/.well-known/oauth-protected-resource"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
diff --git a/sdk/go/api_drives.go b/sdk/go/api_drives.go
index 18461c0..b4f6c90 100644
--- a/sdk/go/api_drives.go
+++ b/sdk/go/api_drives.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
@@ -23,62 +23,74 @@ import (
// DrivesAPIService DrivesAPI service
type DrivesAPIService service
-type ApiCreateDriveKeyRouteV0DrivesDriveIdKeysPostRequest struct {
+type ApiDrivesCreateRequest struct {
ctx context.Context
ApiService *DrivesAPIService
- driveId string
- driveApiKeyCreateIn *DriveApiKeyCreateIn
+ idempotencyKey *string
+ driveCreateIn *DriveCreateIn
+ authorization *string
}
-func (r ApiCreateDriveKeyRouteV0DrivesDriveIdKeysPostRequest) DriveApiKeyCreateIn(driveApiKeyCreateIn DriveApiKeyCreateIn) ApiCreateDriveKeyRouteV0DrivesDriveIdKeysPostRequest {
- r.driveApiKeyCreateIn = &driveApiKeyCreateIn
+func (r ApiDrivesCreateRequest) IdempotencyKey(idempotencyKey string) ApiDrivesCreateRequest {
+ r.idempotencyKey = &idempotencyKey
return r
}
-func (r ApiCreateDriveKeyRouteV0DrivesDriveIdKeysPostRequest) Execute() (*DriveApiKeyCreateOut, *http.Response, error) {
- return r.ApiService.CreateDriveKeyRouteV0DrivesDriveIdKeysPostExecute(r)
+func (r ApiDrivesCreateRequest) DriveCreateIn(driveCreateIn DriveCreateIn) ApiDrivesCreateRequest {
+ r.driveCreateIn = &driveCreateIn
+ return r
+}
+
+func (r ApiDrivesCreateRequest) Authorization(authorization string) ApiDrivesCreateRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiDrivesCreateRequest) Execute() (*DriveOut, *http.Response, error) {
+ return r.ApiService.DrivesCreateExecute(r)
}
/*
-CreateDriveKeyRouteV0DrivesDriveIdKeysPost Create a drive API key
+DrivesCreate Create Drive
-Mint a new `ad_live_` key for a drive you manage — a drive may hold several (one per agent/integration). A `label` (a name for the key) is **required**. **Manager only** (404 no-leak otherwise), `full`-scope user token. The raw key is returned **once** — store it now.
+Create a drive with its structural root folder and creator-manager
+grant(s) in one transaction; idempotent under the ``Idempotency-Key``.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param driveId
- @return ApiCreateDriveKeyRouteV0DrivesDriveIdKeysPostRequest
+ @return ApiDrivesCreateRequest
*/
-func (a *DrivesAPIService) CreateDriveKeyRouteV0DrivesDriveIdKeysPost(ctx context.Context, driveId string) ApiCreateDriveKeyRouteV0DrivesDriveIdKeysPostRequest {
- return ApiCreateDriveKeyRouteV0DrivesDriveIdKeysPostRequest{
+func (a *DrivesAPIService) DrivesCreate(ctx context.Context) ApiDrivesCreateRequest {
+ return ApiDrivesCreateRequest{
ApiService: a,
ctx: ctx,
- driveId: driveId,
}
}
// Execute executes the request
-// @return DriveApiKeyCreateOut
-func (a *DrivesAPIService) CreateDriveKeyRouteV0DrivesDriveIdKeysPostExecute(r ApiCreateDriveKeyRouteV0DrivesDriveIdKeysPostRequest) (*DriveApiKeyCreateOut, *http.Response, error) {
+// @return DriveOut
+func (a *DrivesAPIService) DrivesCreateExecute(r ApiDrivesCreateRequest) (*DriveOut, *http.Response, error) {
var (
localVarHTTPMethod = http.MethodPost
localVarPostBody interface{}
formFiles []formFile
- localVarReturnValue *DriveApiKeyCreateOut
+ localVarReturnValue *DriveOut
)
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DrivesAPIService.CreateDriveKeyRouteV0DrivesDriveIdKeysPost")
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DrivesAPIService.DrivesCreate")
if err != nil {
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
- localVarPath := localBasePath + "/v0/drives/{drive_id}/keys"
- localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath := localBasePath + "/v0/drives"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
- if r.driveApiKeyCreateIn == nil {
- return localVarReturnValue, nil, reportError("driveApiKeyCreateIn is required and must be specified")
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.driveCreateIn == nil {
+ return localVarReturnValue, nil, reportError("driveCreateIn is required and must be specified")
}
// to determine the Content-Type header
@@ -98,8 +110,12 @@ func (a *DrivesAPIService) CreateDriveKeyRouteV0DrivesDriveIdKeysPostExecute(r A
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
// body params
- localVarPostBody = r.driveApiKeyCreateIn
+ localVarPostBody = r.driveCreateIn
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err
@@ -123,7 +139,7 @@ func (a *DrivesAPIService) CreateDriveKeyRouteV0DrivesDriveIdKeysPostExecute(r A
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -134,7 +150,7 @@ func (a *DrivesAPIService) CreateDriveKeyRouteV0DrivesDriveIdKeysPostExecute(r A
return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -145,7 +161,7 @@ func (a *DrivesAPIService) CreateDriveKeyRouteV0DrivesDriveIdKeysPostExecute(r A
return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -156,7 +172,29 @@ func (a *DrivesAPIService) CreateDriveKeyRouteV0DrivesDriveIdKeysPostExecute(r A
return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
+ var v DrivesList400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesList400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesList400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -177,8 +215,30 @@ func (a *DrivesAPIService) CreateDriveKeyRouteV0DrivesDriveIdKeysPostExecute(r A
newErr.model = v
return localVarReturnValue, localVarHTTPResponse, newErr
}
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesList400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -202,66 +262,82 @@ func (a *DrivesAPIService) CreateDriveKeyRouteV0DrivesDriveIdKeysPostExecute(r A
return localVarReturnValue, localVarHTTPResponse, nil
}
-type ApiCreateDriveRouteV0DrivesPostRequest struct {
+type ApiDrivesDeleteRequest struct {
ctx context.Context
ApiService *DrivesAPIService
- driveCreateIn *DriveCreateIn
+ driveId string
+ idempotencyKey *string
+ ifMatch *string
+ authorization *string
}
-func (r ApiCreateDriveRouteV0DrivesPostRequest) DriveCreateIn(driveCreateIn DriveCreateIn) ApiCreateDriveRouteV0DrivesPostRequest {
- r.driveCreateIn = &driveCreateIn
+func (r ApiDrivesDeleteRequest) IdempotencyKey(idempotencyKey string) ApiDrivesDeleteRequest {
+ r.idempotencyKey = &idempotencyKey
return r
}
-func (r ApiCreateDriveRouteV0DrivesPostRequest) Execute() (*DriveCreateOut, *http.Response, error) {
- return r.ApiService.CreateDriveRouteV0DrivesPostExecute(r)
+func (r ApiDrivesDeleteRequest) IfMatch(ifMatch string) ApiDrivesDeleteRequest {
+ r.ifMatch = &ifMatch
+ return r
}
-/*
-CreateDriveRouteV0DrivesPost Create a drive in your active space
+func (r ApiDrivesDeleteRequest) Authorization(authorization string) ApiDrivesDeleteRequest {
+ r.authorization = &authorization
+ return r
+}
-Create a named drive. Any **member** of the space may create one; the creator becomes its **owner**. Requires a `full`-scope user token. The response carries the drive's `ad_live_` API key **once** (`api_key`) — store it now, it is never returned again (mint more keys via `POST /v0/drives/{id}/keys`).
+func (r ApiDrivesDeleteRequest) Execute() (*DriveOut, *http.Response, error) {
+ return r.ApiService.DrivesDeleteExecute(r)
+}
-The target workspace is the user's active organization (`users.default_org`); cross-workspace creation names no other workspace in v0.
+/*
+DrivesDelete Delete Drive
-A space may hold up to its plan's drive limit (workspaces-v2 §4.6; seat-aware for shared drives). A caller at the limit is blocked with `403 DRIVE_LIMIT_REACHED`; the limit is tier-governed, not a hard cap.
+Soft-delete a drive. Returns 200 with the deleted representation so the
+client has the post-delete revision/ETag for a restore.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiCreateDriveRouteV0DrivesPostRequest
+ @param driveId
+ @return ApiDrivesDeleteRequest
*/
-func (a *DrivesAPIService) CreateDriveRouteV0DrivesPost(ctx context.Context) ApiCreateDriveRouteV0DrivesPostRequest {
- return ApiCreateDriveRouteV0DrivesPostRequest{
+func (a *DrivesAPIService) DrivesDelete(ctx context.Context, driveId string) ApiDrivesDeleteRequest {
+ return ApiDrivesDeleteRequest{
ApiService: a,
ctx: ctx,
+ driveId: driveId,
}
}
// Execute executes the request
-// @return DriveCreateOut
-func (a *DrivesAPIService) CreateDriveRouteV0DrivesPostExecute(r ApiCreateDriveRouteV0DrivesPostRequest) (*DriveCreateOut, *http.Response, error) {
+// @return DriveOut
+func (a *DrivesAPIService) DrivesDeleteExecute(r ApiDrivesDeleteRequest) (*DriveOut, *http.Response, error) {
var (
- localVarHTTPMethod = http.MethodPost
+ localVarHTTPMethod = http.MethodDelete
localVarPostBody interface{}
formFiles []formFile
- localVarReturnValue *DriveCreateOut
+ localVarReturnValue *DriveOut
)
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DrivesAPIService.CreateDriveRouteV0DrivesPost")
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DrivesAPIService.DrivesDelete")
if err != nil {
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
- localVarPath := localBasePath + "/v0/drives"
+ localVarPath := localBasePath + "/v0/drives/{drive_id}"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
- if r.driveCreateIn == nil {
- return localVarReturnValue, nil, reportError("driveCreateIn is required and must be specified")
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.ifMatch == nil {
+ return localVarReturnValue, nil, reportError("ifMatch is required and must be specified")
}
// to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
+ localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
@@ -277,8 +353,11 @@ func (a *DrivesAPIService) CreateDriveRouteV0DrivesPostExecute(r ApiCreateDriveR
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
- // body params
- localVarPostBody = r.driveCreateIn
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-Match", r.ifMatch, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err
@@ -301,8 +380,19 @@ func (a *DrivesAPIService) CreateDriveRouteV0DrivesPostExecute(r ApiCreateDriveR
body: localVarBody,
error: localVarHTTPResponse.Status,
}
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -313,7 +403,40 @@ func (a *DrivesAPIService) CreateDriveRouteV0DrivesPostExecute(r ApiCreateDriveR
return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesList400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesList400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -334,8 +457,30 @@ func (a *DrivesAPIService) CreateDriveRouteV0DrivesPostExecute(r ApiCreateDriveR
newErr.model = v
return localVarReturnValue, localVarHTTPResponse, newErr
}
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -359,75 +504,92 @@ func (a *DrivesAPIService) CreateDriveRouteV0DrivesPostExecute(r ApiCreateDriveR
return localVarReturnValue, localVarHTTPResponse, nil
}
-type ApiListDriveKeysRouteV0DrivesDriveIdKeysGetRequest struct {
+type ApiDrivesListRequest struct {
ctx context.Context
ApiService *DrivesAPIService
- driveId string
- cursor *string
+ lifecycle *string
limit *int32
+ cursor *string
+ authorization *string
}
-func (r ApiListDriveKeysRouteV0DrivesDriveIdKeysGetRequest) Cursor(cursor string) ApiListDriveKeysRouteV0DrivesDriveIdKeysGetRequest {
- r.cursor = &cursor
+func (r ApiDrivesListRequest) Lifecycle(lifecycle string) ApiDrivesListRequest {
+ r.lifecycle = &lifecycle
return r
}
-func (r ApiListDriveKeysRouteV0DrivesDriveIdKeysGetRequest) Limit(limit int32) ApiListDriveKeysRouteV0DrivesDriveIdKeysGetRequest {
+func (r ApiDrivesListRequest) Limit(limit int32) ApiDrivesListRequest {
r.limit = &limit
return r
}
-func (r ApiListDriveKeysRouteV0DrivesDriveIdKeysGetRequest) Execute() (*DriveApiKeyListOut, *http.Response, error) {
- return r.ApiService.ListDriveKeysRouteV0DrivesDriveIdKeysGetExecute(r)
+func (r ApiDrivesListRequest) Cursor(cursor string) ApiDrivesListRequest {
+ r.cursor = &cursor
+ return r
+}
+
+func (r ApiDrivesListRequest) Authorization(authorization string) ApiDrivesListRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiDrivesListRequest) Execute() (*DriveListOut, *http.Response, error) {
+ return r.ApiService.DrivesListExecute(r)
}
/*
-ListDriveKeysRouteV0DrivesDriveIdKeysGet List a drive's API keys
+DrivesList List Drives
-List the `ad_live_` keys for a drive you manage (oldest first, including recently-revoked rows — filter on `revoked_at` for live only). **Manager only** (404 no-leak otherwise). A `read`-scope user token may list (metadata reveals no secret), mirroring `GET /v0/drives`. Metadata only — the raw key is never returned after mint.
+List the actor's workspace drives, newest-first (keyset paginated).
-**Cursor pagination:** when more results exist, the response carries `next_cursor`. Pass it back as `?cursor=` to fetch the next page; `null` means the listing is complete. `limit` is clamped to [1, 100] (default 50), never rejected.
+``lifecycle`` (active|deleted|all) exposes soft-deleted drives so a
+manager can read the post-delete revision as the If-Match source for a
+restore. Unknown query parameters are rejected (§6.3).
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param driveId
- @return ApiListDriveKeysRouteV0DrivesDriveIdKeysGetRequest
+ @return ApiDrivesListRequest
*/
-func (a *DrivesAPIService) ListDriveKeysRouteV0DrivesDriveIdKeysGet(ctx context.Context, driveId string) ApiListDriveKeysRouteV0DrivesDriveIdKeysGetRequest {
- return ApiListDriveKeysRouteV0DrivesDriveIdKeysGetRequest{
+func (a *DrivesAPIService) DrivesList(ctx context.Context) ApiDrivesListRequest {
+ return ApiDrivesListRequest{
ApiService: a,
ctx: ctx,
- driveId: driveId,
}
}
// Execute executes the request
-// @return DriveApiKeyListOut
-func (a *DrivesAPIService) ListDriveKeysRouteV0DrivesDriveIdKeysGetExecute(r ApiListDriveKeysRouteV0DrivesDriveIdKeysGetRequest) (*DriveApiKeyListOut, *http.Response, error) {
+// @return DriveListOut
+func (a *DrivesAPIService) DrivesListExecute(r ApiDrivesListRequest) (*DriveListOut, *http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
- localVarReturnValue *DriveApiKeyListOut
+ localVarReturnValue *DriveListOut
)
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DrivesAPIService.ListDriveKeysRouteV0DrivesDriveIdKeysGet")
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DrivesAPIService.DrivesList")
if err != nil {
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
- localVarPath := localBasePath + "/v0/drives/{drive_id}/keys"
- localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath := localBasePath + "/v0/drives"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
- if r.cursor != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
+ if r.lifecycle != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "lifecycle", r.lifecycle, "form", "")
+ } else {
+ var defaultValue string = "active"
+ parameterAddToHeaderOrQuery(localVarQueryParams, "lifecycle", defaultValue, "form", "")
+ r.lifecycle = &defaultValue
}
if r.limit != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
}
+ if r.cursor != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
+ }
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@@ -445,6 +607,9 @@ func (a *DrivesAPIService) ListDriveKeysRouteV0DrivesDriveIdKeysGetExecute(r Api
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err
@@ -467,8 +632,19 @@ func (a *DrivesAPIService) ListDriveKeysRouteV0DrivesDriveIdKeysGetExecute(r Api
body: localVarBody,
error: localVarHTTPResponse.Status,
}
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesList400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
+ var v DrivesList400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -479,7 +655,7 @@ func (a *DrivesAPIService) ListDriveKeysRouteV0DrivesDriveIdKeysGetExecute(r Api
return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
+ var v DrivesList400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -490,7 +666,7 @@ func (a *DrivesAPIService) ListDriveKeysRouteV0DrivesDriveIdKeysGetExecute(r Api
return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
+ var v DrivesList400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -512,7 +688,18 @@ func (a *DrivesAPIService) ListDriveKeysRouteV0DrivesDriveIdKeysGetExecute(r Api
return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
+ var v DrivesList400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesList400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -536,71 +723,68 @@ func (a *DrivesAPIService) ListDriveKeysRouteV0DrivesDriveIdKeysGetExecute(r Api
return localVarReturnValue, localVarHTTPResponse, nil
}
-type ApiListDrivesRouteV0DrivesGetRequest struct {
+type ApiDrivesReadRequest struct {
ctx context.Context
ApiService *DrivesAPIService
- cursor *string
- limit *int32
+ driveId string
+ ifNoneMatch *string
+ authorization *string
}
-func (r ApiListDrivesRouteV0DrivesGetRequest) Cursor(cursor string) ApiListDrivesRouteV0DrivesGetRequest {
- r.cursor = &cursor
+func (r ApiDrivesReadRequest) IfNoneMatch(ifNoneMatch string) ApiDrivesReadRequest {
+ r.ifNoneMatch = &ifNoneMatch
return r
}
-func (r ApiListDrivesRouteV0DrivesGetRequest) Limit(limit int32) ApiListDrivesRouteV0DrivesGetRequest {
- r.limit = &limit
+func (r ApiDrivesReadRequest) Authorization(authorization string) ApiDrivesReadRequest {
+ r.authorization = &authorization
return r
}
-func (r ApiListDrivesRouteV0DrivesGetRequest) Execute() (*DriveList, *http.Response, error) {
- return r.ApiService.ListDrivesRouteV0DrivesGetExecute(r)
+func (r ApiDrivesReadRequest) Execute() (*DriveOut, *http.Response, error) {
+ return r.ApiService.DrivesReadExecute(r)
}
/*
-ListDrivesRouteV0DrivesGet List the drives you can see
-
-Returns drive **metadata** (workspaces-design §4.2): an **admin** sees the whole active workspace's drive inventory (every owner); a **member** sees only the drives they own. Metadata only — owner, size, timestamps — never a raw API key, and never an authorization to read a drive's contents. A `read`-scope token may call this; mutations require `full`.
+DrivesRead Read Drive
-**Cursor pagination:** when more results exist, the response carries `next_cursor`. Pass it back as `?cursor=` to fetch the next page; `null` means the listing is complete. `limit` is clamped to [1, 100] (default 50), never rejected.
+Read one active drive. ETag = quoted revision; matching
+``If-None-Match`` → 304. Deleted and cross-workspace drives are 404.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiListDrivesRouteV0DrivesGetRequest
+ @param driveId
+ @return ApiDrivesReadRequest
*/
-func (a *DrivesAPIService) ListDrivesRouteV0DrivesGet(ctx context.Context) ApiListDrivesRouteV0DrivesGetRequest {
- return ApiListDrivesRouteV0DrivesGetRequest{
+func (a *DrivesAPIService) DrivesRead(ctx context.Context, driveId string) ApiDrivesReadRequest {
+ return ApiDrivesReadRequest{
ApiService: a,
ctx: ctx,
+ driveId: driveId,
}
}
// Execute executes the request
-// @return DriveList
-func (a *DrivesAPIService) ListDrivesRouteV0DrivesGetExecute(r ApiListDrivesRouteV0DrivesGetRequest) (*DriveList, *http.Response, error) {
+// @return DriveOut
+func (a *DrivesAPIService) DrivesReadExecute(r ApiDrivesReadRequest) (*DriveOut, *http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
- localVarReturnValue *DriveList
+ localVarReturnValue *DriveOut
)
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DrivesAPIService.ListDrivesRouteV0DrivesGet")
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DrivesAPIService.DrivesRead")
if err != nil {
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
- localVarPath := localBasePath + "/v0/drives"
+ localVarPath := localBasePath + "/v0/drives/{drive_id}"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
- if r.cursor != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
- }
- if r.limit != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
- }
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@@ -618,6 +802,12 @@ func (a *DrivesAPIService) ListDrivesRouteV0DrivesGetExecute(r ApiListDrivesRout
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
+ if r.ifNoneMatch != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-None-Match", r.ifNoneMatch, "simple", "")
+ }
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err
@@ -640,8 +830,19 @@ func (a *DrivesAPIService) ListDrivesRouteV0DrivesGetExecute(r ApiListDrivesRout
body: localVarBody,
error: localVarHTTPResponse.Status,
}
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -652,7 +853,18 @@ func (a *DrivesAPIService) ListDrivesRouteV0DrivesGetExecute(r ApiListDrivesRout
return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -674,7 +886,18 @@ func (a *DrivesAPIService) ListDrivesRouteV0DrivesGetExecute(r ApiListDrivesRout
return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -698,33 +921,46 @@ func (a *DrivesAPIService) ListDrivesRouteV0DrivesGetExecute(r ApiListDrivesRout
return localVarReturnValue, localVarHTTPResponse, nil
}
-type ApiRenameDriveRouteV0DrivesDriveIdPatchRequest struct {
+type ApiDrivesRestoreRequest struct {
ctx context.Context
ApiService *DrivesAPIService
driveId string
- driveRenameIn *DriveRenameIn
+ idempotencyKey *string
+ ifMatch *string
+ authorization *string
+}
+
+func (r ApiDrivesRestoreRequest) IdempotencyKey(idempotencyKey string) ApiDrivesRestoreRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
}
-func (r ApiRenameDriveRouteV0DrivesDriveIdPatchRequest) DriveRenameIn(driveRenameIn DriveRenameIn) ApiRenameDriveRouteV0DrivesDriveIdPatchRequest {
- r.driveRenameIn = &driveRenameIn
+func (r ApiDrivesRestoreRequest) IfMatch(ifMatch string) ApiDrivesRestoreRequest {
+ r.ifMatch = &ifMatch
return r
}
-func (r ApiRenameDriveRouteV0DrivesDriveIdPatchRequest) Execute() (*DriveOut, *http.Response, error) {
- return r.ApiService.RenameDriveRouteV0DrivesDriveIdPatchExecute(r)
+func (r ApiDrivesRestoreRequest) Authorization(authorization string) ApiDrivesRestoreRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiDrivesRestoreRequest) Execute() (*DriveOut, *http.Response, error) {
+ return r.ApiService.DrivesRestoreExecute(r)
}
/*
-RenameDriveRouteV0DrivesDriveIdPatch Rename a drive you own
+DrivesRestore Restore Drive
-Rename a drive. **Owner only** — a drive id that isn't yours returns 404 (no-leak). Requires a `full`-scope user token.
+Restore a soft-deleted drive. If-Match must carry the post-delete
+revision; restoring an already-active drive is 409 CONFLICT.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param driveId
- @return ApiRenameDriveRouteV0DrivesDriveIdPatchRequest
+ @return ApiDrivesRestoreRequest
*/
-func (a *DrivesAPIService) RenameDriveRouteV0DrivesDriveIdPatch(ctx context.Context, driveId string) ApiRenameDriveRouteV0DrivesDriveIdPatchRequest {
- return ApiRenameDriveRouteV0DrivesDriveIdPatchRequest{
+func (a *DrivesAPIService) DrivesRestore(ctx context.Context, driveId string) ApiDrivesRestoreRequest {
+ return ApiDrivesRestoreRequest{
ApiService: a,
ctx: ctx,
driveId: driveId,
@@ -733,31 +969,34 @@ func (a *DrivesAPIService) RenameDriveRouteV0DrivesDriveIdPatch(ctx context.Cont
// Execute executes the request
// @return DriveOut
-func (a *DrivesAPIService) RenameDriveRouteV0DrivesDriveIdPatchExecute(r ApiRenameDriveRouteV0DrivesDriveIdPatchRequest) (*DriveOut, *http.Response, error) {
+func (a *DrivesAPIService) DrivesRestoreExecute(r ApiDrivesRestoreRequest) (*DriveOut, *http.Response, error) {
var (
- localVarHTTPMethod = http.MethodPatch
+ localVarHTTPMethod = http.MethodPost
localVarPostBody interface{}
formFiles []formFile
localVarReturnValue *DriveOut
)
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DrivesAPIService.RenameDriveRouteV0DrivesDriveIdPatch")
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DrivesAPIService.DrivesRestore")
if err != nil {
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
- localVarPath := localBasePath + "/v0/drives/{drive_id}"
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/restore"
localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
- if r.driveRenameIn == nil {
- return localVarReturnValue, nil, reportError("driveRenameIn is required and must be specified")
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.ifMatch == nil {
+ return localVarReturnValue, nil, reportError("ifMatch is required and must be specified")
}
// to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
+ localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
@@ -773,8 +1012,11 @@ func (a *DrivesAPIService) RenameDriveRouteV0DrivesDriveIdPatchExecute(r ApiRena
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
- // body params
- localVarPostBody = r.driveRenameIn
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-Match", r.ifMatch, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err
@@ -798,7 +1040,7 @@ func (a *DrivesAPIService) RenameDriveRouteV0DrivesDriveIdPatchExecute(r ApiRena
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -809,7 +1051,7 @@ func (a *DrivesAPIService) RenameDriveRouteV0DrivesDriveIdPatchExecute(r ApiRena
return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -820,7 +1062,7 @@ func (a *DrivesAPIService) RenameDriveRouteV0DrivesDriveIdPatchExecute(r ApiRena
return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -831,7 +1073,7 @@ func (a *DrivesAPIService) RenameDriveRouteV0DrivesDriveIdPatchExecute(r ApiRena
return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -842,7 +1084,18 @@ func (a *DrivesAPIService) RenameDriveRouteV0DrivesDriveIdPatchExecute(r ApiRena
return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 409 {
- var v ErrorResponse
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -863,8 +1116,30 @@ func (a *DrivesAPIService) RenameDriveRouteV0DrivesDriveIdPatchExecute(r ApiRena
newErr.model = v
return localVarReturnValue, localVarHTTPResponse, newErr
}
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -888,59 +1163,91 @@ func (a *DrivesAPIService) RenameDriveRouteV0DrivesDriveIdPatchExecute(r ApiRena
return localVarReturnValue, localVarHTTPResponse, nil
}
-type ApiRevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePostRequest struct {
+type ApiDrivesUpdateRequest struct {
ctx context.Context
ApiService *DrivesAPIService
driveId string
- keyId string
+ idempotencyKey *string
+ ifMatch *string
+ driveUpdateIn *DriveUpdateIn
+ authorization *string
+}
+
+func (r ApiDrivesUpdateRequest) IdempotencyKey(idempotencyKey string) ApiDrivesUpdateRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
+}
+
+func (r ApiDrivesUpdateRequest) IfMatch(ifMatch string) ApiDrivesUpdateRequest {
+ r.ifMatch = &ifMatch
+ return r
+}
+
+func (r ApiDrivesUpdateRequest) DriveUpdateIn(driveUpdateIn DriveUpdateIn) ApiDrivesUpdateRequest {
+ r.driveUpdateIn = &driveUpdateIn
+ return r
+}
+
+func (r ApiDrivesUpdateRequest) Authorization(authorization string) ApiDrivesUpdateRequest {
+ r.authorization = &authorization
+ return r
}
-func (r ApiRevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePostRequest) Execute() (*http.Response, error) {
- return r.ApiService.RevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePostExecute(r)
+func (r ApiDrivesUpdateRequest) Execute() (*DriveOut, *http.Response, error) {
+ return r.ApiService.DrivesUpdateExecute(r)
}
/*
-RevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePost Revoke a drive API key
+DrivesUpdate Update Drive
-Revoke one `ad_live_` key of a drive you manage — anything using it loses access immediately. **Manager only** (404 no-leak otherwise), `full`-scope user token. Idempotent: revoking an unknown/already-revoked key returns 204 too (no existence oracle).
+Rename / update a drive's metadata. Requires ``Idempotency-Key`` and
+``If-Match`` (428 absent, 412 stale); bumps the revision.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param driveId
- @param keyId
- @return ApiRevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePostRequest
+ @return ApiDrivesUpdateRequest
*/
-func (a *DrivesAPIService) RevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePost(ctx context.Context, driveId string, keyId string) ApiRevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePostRequest {
- return ApiRevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePostRequest{
+func (a *DrivesAPIService) DrivesUpdate(ctx context.Context, driveId string) ApiDrivesUpdateRequest {
+ return ApiDrivesUpdateRequest{
ApiService: a,
ctx: ctx,
driveId: driveId,
- keyId: keyId,
}
}
// Execute executes the request
-func (a *DrivesAPIService) RevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePostExecute(r ApiRevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePostRequest) (*http.Response, error) {
+// @return DriveOut
+func (a *DrivesAPIService) DrivesUpdateExecute(r ApiDrivesUpdateRequest) (*DriveOut, *http.Response, error) {
var (
- localVarHTTPMethod = http.MethodPost
+ localVarHTTPMethod = http.MethodPatch
localVarPostBody interface{}
formFiles []formFile
+ localVarReturnValue *DriveOut
)
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DrivesAPIService.RevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePost")
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DrivesAPIService.DrivesUpdate")
if err != nil {
- return nil, &GenericOpenAPIError{error: err.Error()}
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
- localVarPath := localBasePath + "/v0/drives/{drive_id}/keys/{key_id}/revoke"
+ localVarPath := localBasePath + "/v0/drives/{drive_id}"
localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
- localVarPath = strings.Replace(localVarPath, "{"+"key_id"+"}", url.PathEscape(parameterValueToString(r.keyId, "keyId")), -1)
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.ifMatch == nil {
+ return localVarReturnValue, nil, reportError("ifMatch is required and must be specified")
+ }
+ if r.driveUpdateIn == nil {
+ return localVarReturnValue, nil, reportError("driveUpdateIn is required and must be specified")
+ }
// to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
+ localVarHTTPContentTypes := []string{"application/json"}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
@@ -956,21 +1263,28 @@ func (a *DrivesAPIService) RevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePost
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-Match", r.ifMatch, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ // body params
+ localVarPostBody = r.driveUpdateIn
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
- return nil, err
+ return localVarReturnValue, nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
- return localVarHTTPResponse, err
+ return localVarReturnValue, localVarHTTPResponse, err
}
localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
- return localVarHTTPResponse, err
+ return localVarReturnValue, localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
@@ -978,114 +1292,182 @@ func (a *DrivesAPIService) RevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePost
body: localVarBody,
error: localVarHTTPResponse.Status,
}
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
- return localVarHTTPResponse, newErr
+ return localVarReturnValue, localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
- return localVarHTTPResponse, newErr
+ return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
- return localVarHTTPResponse, newErr
+ return localVarReturnValue, localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
- return localVarHTTPResponse, newErr
+ return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
- return localVarHTTPResponse, newErr
+ return localVarReturnValue, localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
- return localVarHTTPResponse, newErr
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 422 {
var v ValidationErrorResponse
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
- return localVarHTTPResponse, newErr
+ return localVarReturnValue, localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
- return localVarHTTPResponse, newErr
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
- return localVarHTTPResponse, newErr
+ return localVarReturnValue, localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
- return localVarHTTPResponse, newErr
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
}
- return localVarHTTPResponse, nil
+ return localVarReturnValue, localVarHTTPResponse, nil
}
-type ApiRotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePostRequest struct {
+type ApiDrivesUsageRequest struct {
ctx context.Context
ApiService *DrivesAPIService
driveId string
- keyId string
+ authorization *string
+}
+
+func (r ApiDrivesUsageRequest) Authorization(authorization string) ApiDrivesUsageRequest {
+ r.authorization = &authorization
+ return r
}
-func (r ApiRotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePostRequest) Execute() (*DriveApiKeyCreateOut, *http.Response, error) {
- return r.ApiService.RotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePostExecute(r)
+func (r ApiDrivesUsageRequest) Execute() (*DriveUsageOut, *http.Response, error) {
+ return r.ApiService.DrivesUsageExecute(r)
}
/*
-RotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePost Rotate one API key
+DrivesUsage Drive Usage
-Rotate a single `ad_live_` key: revoke `key_id` and mint a replacement that inherits its label. **Only that key** is affected — the drive's other keys keep working. **Manager only** (404 no-leak otherwise), `full`-scope user token. The new key is returned **once** — store it now. A `key_id` that isn't a live key of this drive is a 404.
+Byte counters for one active drive: storage is the live sum of its
+versions' sizes; retrieval reads the counter the content-read slice
+maintains (0 until it lands).
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param driveId
- @param keyId
- @return ApiRotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePostRequest
+ @return ApiDrivesUsageRequest
*/
-func (a *DrivesAPIService) RotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePost(ctx context.Context, driveId string, keyId string) ApiRotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePostRequest {
- return ApiRotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePostRequest{
+func (a *DrivesAPIService) DrivesUsage(ctx context.Context, driveId string) ApiDrivesUsageRequest {
+ return ApiDrivesUsageRequest{
ApiService: a,
ctx: ctx,
driveId: driveId,
- keyId: keyId,
}
}
// Execute executes the request
-// @return DriveApiKeyCreateOut
-func (a *DrivesAPIService) RotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePostExecute(r ApiRotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePostRequest) (*DriveApiKeyCreateOut, *http.Response, error) {
+// @return DriveUsageOut
+func (a *DrivesAPIService) DrivesUsageExecute(r ApiDrivesUsageRequest) (*DriveUsageOut, *http.Response, error) {
var (
- localVarHTTPMethod = http.MethodPost
+ localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
- localVarReturnValue *DriveApiKeyCreateOut
+ localVarReturnValue *DriveUsageOut
)
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DrivesAPIService.RotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePost")
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DrivesAPIService.DrivesUsage")
if err != nil {
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
- localVarPath := localBasePath + "/v0/drives/{drive_id}/keys/{key_id}/rotate"
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/usage"
localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
- localVarPath = strings.Replace(localVarPath, "{"+"key_id"+"}", url.PathEscape(parameterValueToString(r.keyId, "keyId")), -1)
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
@@ -1108,6 +1490,9 @@ func (a *DrivesAPIService) RotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePostEx
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err
@@ -1130,8 +1515,19 @@ func (a *DrivesAPIService) RotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePostEx
body: localVarBody,
error: localVarHTTPResponse.Status,
}
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -1142,7 +1538,7 @@ func (a *DrivesAPIService) RotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePostEx
return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -1153,7 +1549,7 @@ func (a *DrivesAPIService) RotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePostEx
return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
@@ -1175,7 +1571,18 @@ func (a *DrivesAPIService) RotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePostEx
return localVarReturnValue, localVarHTTPResponse, newErr
}
if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
diff --git a/sdk/go/api_folders.go b/sdk/go/api_folders.go
new file mode 100644
index 0000000..9ab1b8f
--- /dev/null
+++ b/sdk/go/api_folders.go
@@ -0,0 +1,1739 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "bytes"
+ "context"
+ "io"
+ "net/http"
+ "net/url"
+ "strings"
+)
+
+
+// FoldersAPIService FoldersAPI service
+type FoldersAPIService service
+
+type ApiFoldersCopyRequest struct {
+ ctx context.Context
+ ApiService *FoldersAPIService
+ driveId string
+ folderId string
+ idempotencyKey *string
+ folderCopyIn *FolderCopyIn
+ ifMatch *string
+ authorization *string
+}
+
+func (r ApiFoldersCopyRequest) IdempotencyKey(idempotencyKey string) ApiFoldersCopyRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
+}
+
+func (r ApiFoldersCopyRequest) FolderCopyIn(folderCopyIn FolderCopyIn) ApiFoldersCopyRequest {
+ r.folderCopyIn = &folderCopyIn
+ return r
+}
+
+func (r ApiFoldersCopyRequest) IfMatch(ifMatch string) ApiFoldersCopyRequest {
+ r.ifMatch = &ifMatch
+ return r
+}
+
+func (r ApiFoldersCopyRequest) Authorization(authorization string) ApiFoldersCopyRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiFoldersCopyRequest) Execute() (*FolderOut, *http.Response, error) {
+ return r.ApiService.FoldersCopyExecute(r)
+}
+
+/*
+FoldersCopy Copy Folder
+
+Copy a folder's subtree within the same drive.
+
+Cross-drive copy is out of v0 scope and rejected (400 INVALID_ARGUMENT).
+``destination_drive_id`` must equal the source drive when present.
+Materializes the subtree synchronously → 201 + the copied folder.
+``If-Match`` is optional; when present it is validated against the source
+revision (412 stale).
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param folderId
+ @return ApiFoldersCopyRequest
+*/
+func (a *FoldersAPIService) FoldersCopy(ctx context.Context, driveId string, folderId string) ApiFoldersCopyRequest {
+ return ApiFoldersCopyRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ folderId: folderId,
+ }
+}
+
+// Execute executes the request
+// @return FolderOut
+func (a *FoldersAPIService) FoldersCopyExecute(r ApiFoldersCopyRequest) (*FolderOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodPost
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *FolderOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FoldersAPIService.FoldersCopy")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/folders/{folder_id}/copy"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"folder_id"+"}", url.PathEscape(parameterValueToString(r.folderId, "folderId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.folderCopyIn == nil {
+ return localVarReturnValue, nil, reportError("folderCopyIn is required and must be specified")
+ }
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{"application/json"}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ if r.ifMatch != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-Match", r.ifMatch, "simple", "")
+ }
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ // body params
+ localVarPostBody = r.folderCopyIn
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiFoldersCreateRequest struct {
+ ctx context.Context
+ ApiService *FoldersAPIService
+ driveId string
+ idempotencyKey *string
+ folderCreateIn *FolderCreateIn
+ authorization *string
+}
+
+func (r ApiFoldersCreateRequest) IdempotencyKey(idempotencyKey string) ApiFoldersCreateRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
+}
+
+func (r ApiFoldersCreateRequest) FolderCreateIn(folderCreateIn FolderCreateIn) ApiFoldersCreateRequest {
+ r.folderCreateIn = &folderCreateIn
+ return r
+}
+
+func (r ApiFoldersCreateRequest) Authorization(authorization string) ApiFoldersCreateRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiFoldersCreateRequest) Execute() (*FolderOut, *http.Response, error) {
+ return r.ApiService.FoldersCreateExecute(r)
+}
+
+/*
+FoldersCreate Create Folder
+
+Create one folder under `parent_id`; idempotent under the
+``Idempotency-Key``.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @return ApiFoldersCreateRequest
+*/
+func (a *FoldersAPIService) FoldersCreate(ctx context.Context, driveId string) ApiFoldersCreateRequest {
+ return ApiFoldersCreateRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ }
+}
+
+// Execute executes the request
+// @return FolderOut
+func (a *FoldersAPIService) FoldersCreateExecute(r ApiFoldersCreateRequest) (*FolderOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodPost
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *FolderOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FoldersAPIService.FoldersCreate")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/folders"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.folderCreateIn == nil {
+ return localVarReturnValue, nil, reportError("folderCreateIn is required and must be specified")
+ }
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{"application/json"}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ // body params
+ localVarPostBody = r.folderCreateIn
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiFoldersDeleteRequest struct {
+ ctx context.Context
+ ApiService *FoldersAPIService
+ driveId string
+ folderId string
+ idempotencyKey *string
+ ifMatch *string
+ recursive *bool
+ authorization *string
+}
+
+func (r ApiFoldersDeleteRequest) IdempotencyKey(idempotencyKey string) ApiFoldersDeleteRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
+}
+
+func (r ApiFoldersDeleteRequest) IfMatch(ifMatch string) ApiFoldersDeleteRequest {
+ r.ifMatch = &ifMatch
+ return r
+}
+
+func (r ApiFoldersDeleteRequest) Recursive(recursive bool) ApiFoldersDeleteRequest {
+ r.recursive = &recursive
+ return r
+}
+
+func (r ApiFoldersDeleteRequest) Authorization(authorization string) ApiFoldersDeleteRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiFoldersDeleteRequest) Execute() (*FolderCascadeOut, *http.Response, error) {
+ return r.ApiService.FoldersDeleteExecute(r)
+}
+
+/*
+FoldersDelete Delete Folder
+
+Soft-delete a folder and its full live subtree (folders + artifacts) in
+one transaction. A non-empty subtree requires ``recursive=true`` (409
+FOLDER_RECURSIVE_REQUIRED otherwise). Returns the deleted root
+representation plus exact cascade counts and the post-delete
+revision/ETag for a restore.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param folderId
+ @return ApiFoldersDeleteRequest
+*/
+func (a *FoldersAPIService) FoldersDelete(ctx context.Context, driveId string, folderId string) ApiFoldersDeleteRequest {
+ return ApiFoldersDeleteRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ folderId: folderId,
+ }
+}
+
+// Execute executes the request
+// @return FolderCascadeOut
+func (a *FoldersAPIService) FoldersDeleteExecute(r ApiFoldersDeleteRequest) (*FolderCascadeOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodDelete
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *FolderCascadeOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FoldersAPIService.FoldersDelete")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/folders/{folder_id}"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"folder_id"+"}", url.PathEscape(parameterValueToString(r.folderId, "folderId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.ifMatch == nil {
+ return localVarReturnValue, nil, reportError("ifMatch is required and must be specified")
+ }
+
+ if r.recursive != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "recursive", r.recursive, "form", "")
+ } else {
+ var defaultValue bool = false
+ parameterAddToHeaderOrQuery(localVarQueryParams, "recursive", defaultValue, "form", "")
+ r.recursive = &defaultValue
+ }
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-Match", r.ifMatch, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiFoldersListRequest struct {
+ ctx context.Context
+ ApiService *FoldersAPIService
+ driveId string
+ lifecycle *string
+ limit *int32
+ cursor *string
+ parentId *string
+ name *string
+ authorization *string
+}
+
+func (r ApiFoldersListRequest) Lifecycle(lifecycle string) ApiFoldersListRequest {
+ r.lifecycle = &lifecycle
+ return r
+}
+
+func (r ApiFoldersListRequest) Limit(limit int32) ApiFoldersListRequest {
+ r.limit = &limit
+ return r
+}
+
+func (r ApiFoldersListRequest) Cursor(cursor string) ApiFoldersListRequest {
+ r.cursor = &cursor
+ return r
+}
+
+func (r ApiFoldersListRequest) ParentId(parentId string) ApiFoldersListRequest {
+ r.parentId = &parentId
+ return r
+}
+
+func (r ApiFoldersListRequest) Name(name string) ApiFoldersListRequest {
+ r.name = &name
+ return r
+}
+
+func (r ApiFoldersListRequest) Authorization(authorization string) ApiFoldersListRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiFoldersListRequest) Execute() (*FolderListOut, *http.Response, error) {
+ return r.ApiService.FoldersListExecute(r)
+}
+
+/*
+FoldersList List Folders
+
+List the drive's folders, newest-first (keyset paginated).
+
+``lifecycle`` (active|deleted|all) exposes soft-deleted folders so the
+post-delete revision can be read as the If-Match source for a restore.
+``parent_id`` / ``name`` are exact-match filters. Unknown query parameters
+are rejected (§6.3).
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @return ApiFoldersListRequest
+*/
+func (a *FoldersAPIService) FoldersList(ctx context.Context, driveId string) ApiFoldersListRequest {
+ return ApiFoldersListRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ }
+}
+
+// Execute executes the request
+// @return FolderListOut
+func (a *FoldersAPIService) FoldersListExecute(r ApiFoldersListRequest) (*FolderListOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodGet
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *FolderListOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FoldersAPIService.FoldersList")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/folders"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ if r.lifecycle != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "lifecycle", r.lifecycle, "form", "")
+ } else {
+ var defaultValue string = "active"
+ parameterAddToHeaderOrQuery(localVarQueryParams, "lifecycle", defaultValue, "form", "")
+ r.lifecycle = &defaultValue
+ }
+ if r.limit != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
+ }
+ if r.cursor != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
+ }
+ if r.parentId != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "parent_id", r.parentId, "form", "")
+ }
+ if r.name != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "name", r.name, "form", "")
+ }
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiFoldersReadRequest struct {
+ ctx context.Context
+ ApiService *FoldersAPIService
+ driveId string
+ folderId string
+ ifNoneMatch *string
+ authorization *string
+}
+
+func (r ApiFoldersReadRequest) IfNoneMatch(ifNoneMatch string) ApiFoldersReadRequest {
+ r.ifNoneMatch = &ifNoneMatch
+ return r
+}
+
+func (r ApiFoldersReadRequest) Authorization(authorization string) ApiFoldersReadRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiFoldersReadRequest) Execute() (*FolderOut, *http.Response, error) {
+ return r.ApiService.FoldersReadExecute(r)
+}
+
+/*
+FoldersRead Read Folder
+
+Read one active folder. ETag = quoted revision; matching
+``If-None-Match`` → 304. Deleted and cross-workspace folders are 404.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param folderId
+ @return ApiFoldersReadRequest
+*/
+func (a *FoldersAPIService) FoldersRead(ctx context.Context, driveId string, folderId string) ApiFoldersReadRequest {
+ return ApiFoldersReadRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ folderId: folderId,
+ }
+}
+
+// Execute executes the request
+// @return FolderOut
+func (a *FoldersAPIService) FoldersReadExecute(r ApiFoldersReadRequest) (*FolderOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodGet
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *FolderOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FoldersAPIService.FoldersRead")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/folders/{folder_id}"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"folder_id"+"}", url.PathEscape(parameterValueToString(r.folderId, "folderId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ if r.ifNoneMatch != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-None-Match", r.ifNoneMatch, "simple", "")
+ }
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiFoldersRestoreRequest struct {
+ ctx context.Context
+ ApiService *FoldersAPIService
+ driveId string
+ folderId string
+ idempotencyKey *string
+ ifMatch *string
+ authorization *string
+}
+
+func (r ApiFoldersRestoreRequest) IdempotencyKey(idempotencyKey string) ApiFoldersRestoreRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
+}
+
+func (r ApiFoldersRestoreRequest) IfMatch(ifMatch string) ApiFoldersRestoreRequest {
+ r.ifMatch = &ifMatch
+ return r
+}
+
+func (r ApiFoldersRestoreRequest) Authorization(authorization string) ApiFoldersRestoreRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiFoldersRestoreRequest) Execute() (*FolderCascadeOut, *http.Response, error) {
+ return r.ApiService.FoldersRestoreExecute(r)
+}
+
+/*
+FoldersRestore Restore Folder
+
+Restore a soft-deleted folder and its deleted subtree atomically.
+If-Match must carry the post-delete revision; restoring an already-active
+folder is 409 CONFLICT.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param folderId
+ @return ApiFoldersRestoreRequest
+*/
+func (a *FoldersAPIService) FoldersRestore(ctx context.Context, driveId string, folderId string) ApiFoldersRestoreRequest {
+ return ApiFoldersRestoreRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ folderId: folderId,
+ }
+}
+
+// Execute executes the request
+// @return FolderCascadeOut
+func (a *FoldersAPIService) FoldersRestoreExecute(r ApiFoldersRestoreRequest) (*FolderCascadeOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodPost
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *FolderCascadeOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FoldersAPIService.FoldersRestore")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/folders/{folder_id}/restore"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"folder_id"+"}", url.PathEscape(parameterValueToString(r.folderId, "folderId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.ifMatch == nil {
+ return localVarReturnValue, nil, reportError("ifMatch is required and must be specified")
+ }
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-Match", r.ifMatch, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiFoldersUpdateRequest struct {
+ ctx context.Context
+ ApiService *FoldersAPIService
+ driveId string
+ folderId string
+ idempotencyKey *string
+ ifMatch *string
+ folderUpdateIn *FolderUpdateIn
+ authorization *string
+}
+
+func (r ApiFoldersUpdateRequest) IdempotencyKey(idempotencyKey string) ApiFoldersUpdateRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
+}
+
+func (r ApiFoldersUpdateRequest) IfMatch(ifMatch string) ApiFoldersUpdateRequest {
+ r.ifMatch = &ifMatch
+ return r
+}
+
+func (r ApiFoldersUpdateRequest) FolderUpdateIn(folderUpdateIn FolderUpdateIn) ApiFoldersUpdateRequest {
+ r.folderUpdateIn = &folderUpdateIn
+ return r
+}
+
+func (r ApiFoldersUpdateRequest) Authorization(authorization string) ApiFoldersUpdateRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiFoldersUpdateRequest) Execute() (*FolderOut, *http.Response, error) {
+ return r.ApiService.FoldersUpdateExecute(r)
+}
+
+/*
+FoldersUpdate Update Folder
+
+Rename / move / update a folder's metadata or inheritance. Requires
+``Idempotency-Key`` and ``If-Match`` (428 absent, 412 stale); bumps the
+revision.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param folderId
+ @return ApiFoldersUpdateRequest
+*/
+func (a *FoldersAPIService) FoldersUpdate(ctx context.Context, driveId string, folderId string) ApiFoldersUpdateRequest {
+ return ApiFoldersUpdateRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ folderId: folderId,
+ }
+}
+
+// Execute executes the request
+// @return FolderOut
+func (a *FoldersAPIService) FoldersUpdateExecute(r ApiFoldersUpdateRequest) (*FolderOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodPatch
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *FolderOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FoldersAPIService.FoldersUpdate")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/folders/{folder_id}"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"folder_id"+"}", url.PathEscape(parameterValueToString(r.folderId, "folderId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.ifMatch == nil {
+ return localVarReturnValue, nil, reportError("ifMatch is required and must be specified")
+ }
+ if r.folderUpdateIn == nil {
+ return localVarReturnValue, nil, reportError("folderUpdateIn is required and must be specified")
+ }
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{"application/json"}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-Match", r.ifMatch, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ // body params
+ localVarPostBody = r.folderUpdateIn
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
diff --git a/sdk/go/api_grants.go b/sdk/go/api_grants.go
new file mode 100644
index 0000000..d5551ec
--- /dev/null
+++ b/sdk/go/api_grants.go
@@ -0,0 +1,1237 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "bytes"
+ "context"
+ "io"
+ "net/http"
+ "net/url"
+ "strings"
+)
+
+
+// GrantsAPIService GrantsAPI service
+type GrantsAPIService service
+
+type ApiGrantsCreateRequest struct {
+ ctx context.Context
+ ApiService *GrantsAPIService
+ driveId string
+ idempotencyKey *string
+ grantCreateIn *GrantCreateIn
+ authorization *string
+}
+
+func (r ApiGrantsCreateRequest) IdempotencyKey(idempotencyKey string) ApiGrantsCreateRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
+}
+
+func (r ApiGrantsCreateRequest) GrantCreateIn(grantCreateIn GrantCreateIn) ApiGrantsCreateRequest {
+ r.grantCreateIn = &grantCreateIn
+ return r
+}
+
+func (r ApiGrantsCreateRequest) Authorization(authorization string) ApiGrantsCreateRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiGrantsCreateRequest) Execute() (*GrantOut, *http.Response, error) {
+ return r.ApiService.GrantsCreateExecute(r)
+}
+
+/*
+GrantsCreate Create Grant
+
+Grant one principal a role on a drive, folder, or artifact.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @return ApiGrantsCreateRequest
+*/
+func (a *GrantsAPIService) GrantsCreate(ctx context.Context, driveId string) ApiGrantsCreateRequest {
+ return ApiGrantsCreateRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ }
+}
+
+// Execute executes the request
+// @return GrantOut
+func (a *GrantsAPIService) GrantsCreateExecute(r ApiGrantsCreateRequest) (*GrantOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodPost
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *GrantOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "GrantsAPIService.GrantsCreate")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/grants"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.grantCreateIn == nil {
+ return localVarReturnValue, nil, reportError("grantCreateIn is required and must be specified")
+ }
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{"application/json"}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ // body params
+ localVarPostBody = r.grantCreateIn
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiGrantsListRequest struct {
+ ctx context.Context
+ ApiService *GrantsAPIService
+ driveId string
+ lifecycle *string
+ limit *int32
+ cursor *string
+ resourceType *string
+ resourceId *string
+ principalType *string
+ authorization *string
+}
+
+func (r ApiGrantsListRequest) Lifecycle(lifecycle string) ApiGrantsListRequest {
+ r.lifecycle = &lifecycle
+ return r
+}
+
+func (r ApiGrantsListRequest) Limit(limit int32) ApiGrantsListRequest {
+ r.limit = &limit
+ return r
+}
+
+func (r ApiGrantsListRequest) Cursor(cursor string) ApiGrantsListRequest {
+ r.cursor = &cursor
+ return r
+}
+
+func (r ApiGrantsListRequest) ResourceType(resourceType string) ApiGrantsListRequest {
+ r.resourceType = &resourceType
+ return r
+}
+
+func (r ApiGrantsListRequest) ResourceId(resourceId string) ApiGrantsListRequest {
+ r.resourceId = &resourceId
+ return r
+}
+
+func (r ApiGrantsListRequest) PrincipalType(principalType string) ApiGrantsListRequest {
+ r.principalType = &principalType
+ return r
+}
+
+func (r ApiGrantsListRequest) Authorization(authorization string) ApiGrantsListRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiGrantsListRequest) Execute() (*GrantListOut, *http.Response, error) {
+ return r.ApiService.GrantsListExecute(r)
+}
+
+/*
+GrantsList List Grants
+
+List explicit grants in the drive, keyset paginated.
+
+**What you see depends on your role (contract change).** A caller holding
+``manager`` on the drive lists EVERY grant in it. Any other caller lists
+only the grants that name them — their own agent/user rows, ``workspace``
+grants covering them, and ``public`` grants (which already expose the
+resource to them anyway). Previously any drive ``viewer`` could page out
+every principal id, role and expiry in the drive; that was an
+access-graph disclosure, not a feature.
+
+The operation is refused (404) only for a caller holding no live grant
+anywhere in the drive — never for lack of ``manager``, because seeing
+your own access is not a privilege. That admits folder-scoped
+principals, who previously 404'd here despite having access to show. A
+folder ``manager`` still sees only their own rows, not the roster of the
+subtree they administer; scoping the listing by per-resource
+administration authority is a follow-up this change does not claim.
+
+``resource_id`` filters to one resource's grants and REQUIRES
+``resource_type`` alongside it — a bare resource id is ambiguous across
+the three resource kinds, and guessing the kind from the id prefix would
+make the filter's meaning depend on an id format the contract does not
+promise to keep. ``resource_type`` on its own remains a valid (and
+pre-existing) filter.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @return ApiGrantsListRequest
+*/
+func (a *GrantsAPIService) GrantsList(ctx context.Context, driveId string) ApiGrantsListRequest {
+ return ApiGrantsListRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ }
+}
+
+// Execute executes the request
+// @return GrantListOut
+func (a *GrantsAPIService) GrantsListExecute(r ApiGrantsListRequest) (*GrantListOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodGet
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *GrantListOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "GrantsAPIService.GrantsList")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/grants"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ if r.lifecycle != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "lifecycle", r.lifecycle, "form", "")
+ } else {
+ var defaultValue string = "active"
+ parameterAddToHeaderOrQuery(localVarQueryParams, "lifecycle", defaultValue, "form", "")
+ r.lifecycle = &defaultValue
+ }
+ if r.limit != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
+ }
+ if r.cursor != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
+ }
+ if r.resourceType != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "resource_type", r.resourceType, "form", "")
+ }
+ if r.resourceId != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "resource_id", r.resourceId, "form", "")
+ }
+ if r.principalType != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "principal_type", r.principalType, "form", "")
+ }
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiGrantsReadRequest struct {
+ ctx context.Context
+ ApiService *GrantsAPIService
+ driveId string
+ grantId string
+ ifNoneMatch *string
+ authorization *string
+}
+
+func (r ApiGrantsReadRequest) IfNoneMatch(ifNoneMatch string) ApiGrantsReadRequest {
+ r.ifNoneMatch = &ifNoneMatch
+ return r
+}
+
+func (r ApiGrantsReadRequest) Authorization(authorization string) ApiGrantsReadRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiGrantsReadRequest) Execute() (*GrantOut, *http.Response, error) {
+ return r.ApiService.GrantsReadExecute(r)
+}
+
+/*
+GrantsRead Read Grant
+
+Read one grant in the drive.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param grantId
+ @return ApiGrantsReadRequest
+*/
+func (a *GrantsAPIService) GrantsRead(ctx context.Context, driveId string, grantId string) ApiGrantsReadRequest {
+ return ApiGrantsReadRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ grantId: grantId,
+ }
+}
+
+// Execute executes the request
+// @return GrantOut
+func (a *GrantsAPIService) GrantsReadExecute(r ApiGrantsReadRequest) (*GrantOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodGet
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *GrantOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "GrantsAPIService.GrantsRead")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/grants/{grant_id}"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"grant_id"+"}", url.PathEscape(parameterValueToString(r.grantId, "grantId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ if r.ifNoneMatch != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-None-Match", r.ifNoneMatch, "simple", "")
+ }
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiGrantsRevokeRequest struct {
+ ctx context.Context
+ ApiService *GrantsAPIService
+ driveId string
+ grantId string
+ idempotencyKey *string
+ ifMatch *string
+ authorization *string
+}
+
+func (r ApiGrantsRevokeRequest) IdempotencyKey(idempotencyKey string) ApiGrantsRevokeRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
+}
+
+func (r ApiGrantsRevokeRequest) IfMatch(ifMatch string) ApiGrantsRevokeRequest {
+ r.ifMatch = &ifMatch
+ return r
+}
+
+func (r ApiGrantsRevokeRequest) Authorization(authorization string) ApiGrantsRevokeRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiGrantsRevokeRequest) Execute() (*GrantOut, *http.Response, error) {
+ return r.ApiService.GrantsRevokeExecute(r)
+}
+
+/*
+GrantsRevoke Revoke Grant
+
+Revoke a grant (soft, sets revoked_at) under If-Match.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param grantId
+ @return ApiGrantsRevokeRequest
+*/
+func (a *GrantsAPIService) GrantsRevoke(ctx context.Context, driveId string, grantId string) ApiGrantsRevokeRequest {
+ return ApiGrantsRevokeRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ grantId: grantId,
+ }
+}
+
+// Execute executes the request
+// @return GrantOut
+func (a *GrantsAPIService) GrantsRevokeExecute(r ApiGrantsRevokeRequest) (*GrantOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodDelete
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *GrantOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "GrantsAPIService.GrantsRevoke")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/grants/{grant_id}"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"grant_id"+"}", url.PathEscape(parameterValueToString(r.grantId, "grantId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.ifMatch == nil {
+ return localVarReturnValue, nil, reportError("ifMatch is required and must be specified")
+ }
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-Match", r.ifMatch, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiGrantsUpdateRequest struct {
+ ctx context.Context
+ ApiService *GrantsAPIService
+ driveId string
+ grantId string
+ idempotencyKey *string
+ ifMatch *string
+ grantUpdateIn *GrantUpdateIn
+ authorization *string
+}
+
+func (r ApiGrantsUpdateRequest) IdempotencyKey(idempotencyKey string) ApiGrantsUpdateRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
+}
+
+func (r ApiGrantsUpdateRequest) IfMatch(ifMatch string) ApiGrantsUpdateRequest {
+ r.ifMatch = &ifMatch
+ return r
+}
+
+func (r ApiGrantsUpdateRequest) GrantUpdateIn(grantUpdateIn GrantUpdateIn) ApiGrantsUpdateRequest {
+ r.grantUpdateIn = &grantUpdateIn
+ return r
+}
+
+func (r ApiGrantsUpdateRequest) Authorization(authorization string) ApiGrantsUpdateRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiGrantsUpdateRequest) Execute() (*GrantOut, *http.Response, error) {
+ return r.ApiService.GrantsUpdateExecute(r)
+}
+
+/*
+GrantsUpdate Update Grant
+
+Change a grant's role or expiry under If-Match.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param grantId
+ @return ApiGrantsUpdateRequest
+*/
+func (a *GrantsAPIService) GrantsUpdate(ctx context.Context, driveId string, grantId string) ApiGrantsUpdateRequest {
+ return ApiGrantsUpdateRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ grantId: grantId,
+ }
+}
+
+// Execute executes the request
+// @return GrantOut
+func (a *GrantsAPIService) GrantsUpdateExecute(r ApiGrantsUpdateRequest) (*GrantOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodPatch
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *GrantOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "GrantsAPIService.GrantsUpdate")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/grants/{grant_id}"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"grant_id"+"}", url.PathEscape(parameterValueToString(r.grantId, "grantId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.ifMatch == nil {
+ return localVarReturnValue, nil, reportError("ifMatch is required and must be specified")
+ }
+ if r.grantUpdateIn == nil {
+ return localVarReturnValue, nil, reportError("grantUpdateIn is required and must be specified")
+ }
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{"application/json"}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-Match", r.ifMatch, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ // body params
+ localVarPostBody = r.grantUpdateIn
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
diff --git a/sdk/go/api_mcp_oauth.go b/sdk/go/api_mcp_oauth.go
deleted file mode 100644
index 7037d3d..0000000
--- a/sdk/go/api_mcp_oauth.go
+++ /dev/null
@@ -1,285 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "bytes"
- "context"
- "io"
- "net/http"
- "net/url"
-)
-
-
-// McpOauthAPIService McpOauthAPI service
-type McpOauthAPIService service
-
-type ApiOauth2RegisterOauth2RegisterPostRequest struct {
- ctx context.Context
- ApiService *McpOauthAPIService
-}
-
-func (r ApiOauth2RegisterOauth2RegisterPostRequest) Execute() (*ClientRegistrationOut, *http.Response, error) {
- return r.ApiService.Oauth2RegisterOauth2RegisterPostExecute(r)
-}
-
-/*
-Oauth2RegisterOauth2RegisterPost Dynamic Client Registration (RFC 7591)
-
-Anonymous registration endpoint for MCP clients. Public clients only (PKCE, no client_secret). Returns the registered metadata plus the assigned `client_id`. Registration grants nothing by itself — every token still requires a user consent ceremony at /oauth2/authorize.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiOauth2RegisterOauth2RegisterPostRequest
-*/
-func (a *McpOauthAPIService) Oauth2RegisterOauth2RegisterPost(ctx context.Context) ApiOauth2RegisterOauth2RegisterPostRequest {
- return ApiOauth2RegisterOauth2RegisterPostRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return ClientRegistrationOut
-func (a *McpOauthAPIService) Oauth2RegisterOauth2RegisterPostExecute(r ApiOauth2RegisterOauth2RegisterPostRequest) (*ClientRegistrationOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *ClientRegistrationOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "McpOauthAPIService.Oauth2RegisterOauth2RegisterPost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/oauth2/register"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v OAuthProtocolErrorOut
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiOauth2RevokeOauth2RevokePostRequest struct {
- ctx context.Context
- ApiService *McpOauthAPIService
-}
-
-func (r ApiOauth2RevokeOauth2RevokePostRequest) Execute() (map[string]interface{}, *http.Response, error) {
- return r.ApiService.Oauth2RevokeOauth2RevokePostExecute(r)
-}
-
-/*
-Oauth2RevokeOauth2RevokePost Token revocation (RFC 7009)
-
-Revokes an `adat_` access token (that token only) or an `adrt_` refresh token (the whole rotation chain). Unknown tokens return 200 per RFC 7009 §2.2 — existence is not revealed. Public-client endpoint auth (`client_id` form param, no secret).
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiOauth2RevokeOauth2RevokePostRequest
-*/
-func (a *McpOauthAPIService) Oauth2RevokeOauth2RevokePost(ctx context.Context) ApiOauth2RevokeOauth2RevokePostRequest {
- return ApiOauth2RevokeOauth2RevokePostRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return map[string]interface{}
-func (a *McpOauthAPIService) Oauth2RevokeOauth2RevokePostExecute(r ApiOauth2RevokeOauth2RevokePostRequest) (map[string]interface{}, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue map[string]interface{}
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "McpOauthAPIService.Oauth2RevokeOauth2RevokePost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/oauth2/revoke"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v OAuthProtocolErrorOut
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v OAuthProtocolErrorOut
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v OAuthProtocolErrorOut
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
diff --git a/sdk/go/api_mcp_oauth_ui.go b/sdk/go/api_mcp_oauth_ui.go
deleted file mode 100644
index f12aaad..0000000
--- a/sdk/go/api_mcp_oauth_ui.go
+++ /dev/null
@@ -1,280 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "bytes"
- "context"
- "io"
- "net/http"
- "net/url"
-)
-
-
-// McpOauthUiAPIService McpOauthUiAPI service
-type McpOauthUiAPIService service
-
-type ApiAuthorizeDecisionOauth2AuthorizePostRequest struct {
- ctx context.Context
- ApiService *McpOauthUiAPIService
- csrf *string
-}
-
-func (r ApiAuthorizeDecisionOauth2AuthorizePostRequest) Csrf(csrf string) ApiAuthorizeDecisionOauth2AuthorizePostRequest {
- r.csrf = &csrf
- return r
-}
-
-func (r ApiAuthorizeDecisionOauth2AuthorizePostRequest) Execute() (*http.Response, error) {
- return r.ApiService.AuthorizeDecisionOauth2AuthorizePostExecute(r)
-}
-
-/*
-AuthorizeDecisionOauth2AuthorizePost Authorize Decision
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiAuthorizeDecisionOauth2AuthorizePostRequest
-*/
-func (a *McpOauthUiAPIService) AuthorizeDecisionOauth2AuthorizePost(ctx context.Context) ApiAuthorizeDecisionOauth2AuthorizePostRequest {
- return ApiAuthorizeDecisionOauth2AuthorizePostRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-func (a *McpOauthUiAPIService) AuthorizeDecisionOauth2AuthorizePostExecute(r ApiAuthorizeDecisionOauth2AuthorizePostRequest) (*http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "McpOauthUiAPIService.AuthorizeDecisionOauth2AuthorizePost")
- if err != nil {
- return nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/oauth2/authorize"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.csrf == nil {
- return nil, reportError("csrf is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/x-www-form-urlencoded"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- parameterAddToHeaderOrQuery(localVarFormParams, "csrf", r.csrf, "", "")
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v OAuthProtocolErrorOut
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v AuthorizeDecisionOauth2AuthorizePost403Response
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarHTTPResponse, newErr
- }
-
- return localVarHTTPResponse, nil
-}
-
-type ApiAuthorizePageOauth2AuthorizeGetRequest struct {
- ctx context.Context
- ApiService *McpOauthUiAPIService
-}
-
-func (r ApiAuthorizePageOauth2AuthorizeGetRequest) Execute() (string, *http.Response, error) {
- return r.ApiService.AuthorizePageOauth2AuthorizeGetExecute(r)
-}
-
-/*
-AuthorizePageOauth2AuthorizeGet Authorize Page
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiAuthorizePageOauth2AuthorizeGetRequest
-*/
-func (a *McpOauthUiAPIService) AuthorizePageOauth2AuthorizeGet(ctx context.Context) ApiAuthorizePageOauth2AuthorizeGetRequest {
- return ApiAuthorizePageOauth2AuthorizeGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return string
-func (a *McpOauthUiAPIService) AuthorizePageOauth2AuthorizeGetExecute(r ApiAuthorizePageOauth2AuthorizeGetRequest) (string, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue string
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "McpOauthUiAPIService.AuthorizePageOauth2AuthorizeGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/oauth2/authorize"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"text/html", "application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v OAuthProtocolErrorOut
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
diff --git a/sdk/go/api_members.go b/sdk/go/api_members.go
deleted file mode 100644
index 3da0bc5..0000000
--- a/sdk/go/api_members.go
+++ /dev/null
@@ -1,1051 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "bytes"
- "context"
- "io"
- "net/http"
- "net/url"
- "strings"
-)
-
-
-// MembersAPIService MembersAPI service
-type MembersAPIService service
-
-type ApiInviteMemberV0MembersInvitePostRequest struct {
- ctx context.Context
- ApiService *MembersAPIService
- memberInviteIn *MemberInviteIn
-}
-
-func (r ApiInviteMemberV0MembersInvitePostRequest) MemberInviteIn(memberInviteIn MemberInviteIn) ApiInviteMemberV0MembersInvitePostRequest {
- r.memberInviteIn = &memberInviteIn
- return r
-}
-
-func (r ApiInviteMemberV0MembersInvitePostRequest) Execute() (*InviteCreateOut, *http.Response, error) {
- return r.ApiService.InviteMemberV0MembersInvitePostExecute(r)
-}
-
-/*
-InviteMemberV0MembersInvitePost Invite a person to your workspace by email
-
-Create a pending invitation in the caller's active workspace and enqueue the invite email. **Admin only**, `full` scope. Inviting an existing member is a no-op success (`already_member: true`). A duplicate pending invite for the same email returns 409 `INVITE_PENDING` (resend it from the members page). The raw invite token is delivered only by email — never in this response.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiInviteMemberV0MembersInvitePostRequest
-*/
-func (a *MembersAPIService) InviteMemberV0MembersInvitePost(ctx context.Context) ApiInviteMemberV0MembersInvitePostRequest {
- return ApiInviteMemberV0MembersInvitePostRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return InviteCreateOut
-func (a *MembersAPIService) InviteMemberV0MembersInvitePostExecute(r ApiInviteMemberV0MembersInvitePostRequest) (*InviteCreateOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *InviteCreateOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "MembersAPIService.InviteMemberV0MembersInvitePost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/members/invite"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.memberInviteIn == nil {
- return localVarReturnValue, nil, reportError("memberInviteIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- // body params
- localVarPostBody = r.memberInviteIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 409 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiListInvitationsV0InvitationsGetRequest struct {
- ctx context.Context
- ApiService *MembersAPIService
- cursor *string
- limit *int32
-}
-
-func (r ApiListInvitationsV0InvitationsGetRequest) Cursor(cursor string) ApiListInvitationsV0InvitationsGetRequest {
- r.cursor = &cursor
- return r
-}
-
-func (r ApiListInvitationsV0InvitationsGetRequest) Limit(limit int32) ApiListInvitationsV0InvitationsGetRequest {
- r.limit = &limit
- return r
-}
-
-func (r ApiListInvitationsV0InvitationsGetRequest) Execute() (*InvitationList, *http.Response, error) {
- return r.ApiService.ListInvitationsV0InvitationsGetExecute(r)
-}
-
-/*
-ListInvitationsV0InvitationsGet List pending invitations
-
-List the pending invitations for the caller's active workspace. **Admin only.** Metadata only — the raw invite token is never surfaced.
-
-Newest first (`created_at` descending, tie-broken by `id`). Paginated: `limit` is clamped to [1, 100] (default 50, never a 422); pass the response's `next_cursor` back as `cursor` for the next page (`null` when the listing is complete).
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiListInvitationsV0InvitationsGetRequest
-*/
-func (a *MembersAPIService) ListInvitationsV0InvitationsGet(ctx context.Context) ApiListInvitationsV0InvitationsGetRequest {
- return ApiListInvitationsV0InvitationsGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return InvitationList
-func (a *MembersAPIService) ListInvitationsV0InvitationsGetExecute(r ApiListInvitationsV0InvitationsGetRequest) (*InvitationList, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *InvitationList
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "MembersAPIService.ListInvitationsV0InvitationsGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/invitations"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- if r.cursor != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
- }
- if r.limit != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiListMembersV0MembersGetRequest struct {
- ctx context.Context
- ApiService *MembersAPIService
- cursor *string
- limit *int32
-}
-
-func (r ApiListMembersV0MembersGetRequest) Cursor(cursor string) ApiListMembersV0MembersGetRequest {
- r.cursor = &cursor
- return r
-}
-
-func (r ApiListMembersV0MembersGetRequest) Limit(limit int32) ApiListMembersV0MembersGetRequest {
- r.limit = &limit
- return r
-}
-
-func (r ApiListMembersV0MembersGetRequest) Execute() (*MemberList, *http.Response, error) {
- return r.ApiService.ListMembersV0MembersGetExecute(r)
-}
-
-/*
-ListMembersV0MembersGet List the members of your active workspace
-
-List live members (email, role, joined-at) of the caller's active workspace. Any **member** may list; a `read`-scope token is sufficient.
-
-Ordered by join time (`created_at`, tie-broken by `user_id`) — **no role grouping is promised**; a dashboard that wants admins-first sorts client-side. Paginated: `limit` is clamped to [1, 100] (default 50, never a 422); pass the response's `next_cursor` back as `cursor` for the next page (`null` when the listing is complete).
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiListMembersV0MembersGetRequest
-*/
-func (a *MembersAPIService) ListMembersV0MembersGet(ctx context.Context) ApiListMembersV0MembersGetRequest {
- return ApiListMembersV0MembersGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return MemberList
-func (a *MembersAPIService) ListMembersV0MembersGetExecute(r ApiListMembersV0MembersGetRequest) (*MemberList, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *MemberList
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "MembersAPIService.ListMembersV0MembersGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/members"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- if r.cursor != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
- }
- if r.limit != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiRemoveMemberV0MembersTargetUserIdDeleteRequest struct {
- ctx context.Context
- ApiService *MembersAPIService
- targetUserId string
- confirm *string
-}
-
-func (r ApiRemoveMemberV0MembersTargetUserIdDeleteRequest) Confirm(confirm string) ApiRemoveMemberV0MembersTargetUserIdDeleteRequest {
- r.confirm = &confirm
- return r
-}
-
-func (r ApiRemoveMemberV0MembersTargetUserIdDeleteRequest) Execute() (*MemberRemoveOut, *http.Response, error) {
- return r.ApiService.RemoveMemberV0MembersTargetUserIdDeleteExecute(r)
-}
-
-/*
-RemoveMemberV0MembersTargetUserIdDelete Remove a member (or leave)
-
-Remove a member from the caller's active workspace, soft-deleting every drive that member owns there (workspaces-design §4.4 — no ownership transfer in v0; their `ad_live_` keys then stop working). **Admin** may remove anyone; **any member** may remove themselves (self-leave). `full` scope. Removing the **last/sole admin** is rejected with 409 `LAST_ADMIN` (promote someone first, or delete the workspace).
-
-**Explicit confirmation required:** pass `?confirm=DELETE` or the request is rejected with 400 `CONFIRM_REQUIRED` — removal cascades a soft-delete of every drive the member owns, so it carries tenant-level blast radius (uniform with `DELETE /v0/drives/{id}`).
-
-Deliberately takes NO `If-Match`: membership rows carry no generation/metageneration axis to pin (there is no ETag to echo), so `?confirm=DELETE` is the sole mutation guard here.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param targetUserId
- @return ApiRemoveMemberV0MembersTargetUserIdDeleteRequest
-*/
-func (a *MembersAPIService) RemoveMemberV0MembersTargetUserIdDelete(ctx context.Context, targetUserId string) ApiRemoveMemberV0MembersTargetUserIdDeleteRequest {
- return ApiRemoveMemberV0MembersTargetUserIdDeleteRequest{
- ApiService: a,
- ctx: ctx,
- targetUserId: targetUserId,
- }
-}
-
-// Execute executes the request
-// @return MemberRemoveOut
-func (a *MembersAPIService) RemoveMemberV0MembersTargetUserIdDeleteExecute(r ApiRemoveMemberV0MembersTargetUserIdDeleteRequest) (*MemberRemoveOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodDelete
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *MemberRemoveOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "MembersAPIService.RemoveMemberV0MembersTargetUserIdDelete")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/members/{target_user_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"target_user_id"+"}", url.PathEscape(parameterValueToString(r.targetUserId, "targetUserId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- if r.confirm != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "confirm", r.confirm, "form", "")
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 409 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiRevokeInvitationV0InvitationsInvitationIdDeleteRequest struct {
- ctx context.Context
- ApiService *MembersAPIService
- invitationId string
-}
-
-func (r ApiRevokeInvitationV0InvitationsInvitationIdDeleteRequest) Execute() (*RevokeOut, *http.Response, error) {
- return r.ApiService.RevokeInvitationV0InvitationsInvitationIdDeleteExecute(r)
-}
-
-/*
-RevokeInvitationV0InvitationsInvitationIdDelete Revoke a pending invitation
-
-Revoke a pending invitation in the caller's active workspace. **Admin only**, `full` scope. Org-scoped + idempotent: `revoked` is a COUNT — 1 when a live invite was revoked, 0 when it was already gone (a forged id, an invite from another workspace, or an already-consumed invite all return `revoked: 0`, no-leak).
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param invitationId
- @return ApiRevokeInvitationV0InvitationsInvitationIdDeleteRequest
-*/
-func (a *MembersAPIService) RevokeInvitationV0InvitationsInvitationIdDelete(ctx context.Context, invitationId string) ApiRevokeInvitationV0InvitationsInvitationIdDeleteRequest {
- return ApiRevokeInvitationV0InvitationsInvitationIdDeleteRequest{
- ApiService: a,
- ctx: ctx,
- invitationId: invitationId,
- }
-}
-
-// Execute executes the request
-// @return RevokeOut
-func (a *MembersAPIService) RevokeInvitationV0InvitationsInvitationIdDeleteExecute(r ApiRevokeInvitationV0InvitationsInvitationIdDeleteRequest) (*RevokeOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodDelete
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *RevokeOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "MembersAPIService.RevokeInvitationV0InvitationsInvitationIdDelete")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/invitations/{invitation_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"invitation_id"+"}", url.PathEscape(parameterValueToString(r.invitationId, "invitationId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiSetMemberRoleV0MembersTargetUserIdPatchRequest struct {
- ctx context.Context
- ApiService *MembersAPIService
- targetUserId string
- memberRoleIn *MemberRoleIn
-}
-
-func (r ApiSetMemberRoleV0MembersTargetUserIdPatchRequest) MemberRoleIn(memberRoleIn MemberRoleIn) ApiSetMemberRoleV0MembersTargetUserIdPatchRequest {
- r.memberRoleIn = &memberRoleIn
- return r
-}
-
-func (r ApiSetMemberRoleV0MembersTargetUserIdPatchRequest) Execute() (*MemberOut, *http.Response, error) {
- return r.ApiService.SetMemberRoleV0MembersTargetUserIdPatchExecute(r)
-}
-
-/*
-SetMemberRoleV0MembersTargetUserIdPatch Change a member's role
-
-Promote/demote a member in the caller's active workspace. **Admin only**, `full` scope. Demoting the workspace's **last admin** is rejected with 409 `LAST_ADMIN` (promote someone first).
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param targetUserId
- @return ApiSetMemberRoleV0MembersTargetUserIdPatchRequest
-*/
-func (a *MembersAPIService) SetMemberRoleV0MembersTargetUserIdPatch(ctx context.Context, targetUserId string) ApiSetMemberRoleV0MembersTargetUserIdPatchRequest {
- return ApiSetMemberRoleV0MembersTargetUserIdPatchRequest{
- ApiService: a,
- ctx: ctx,
- targetUserId: targetUserId,
- }
-}
-
-// Execute executes the request
-// @return MemberOut
-func (a *MembersAPIService) SetMemberRoleV0MembersTargetUserIdPatchExecute(r ApiSetMemberRoleV0MembersTargetUserIdPatchRequest) (*MemberOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPatch
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *MemberOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "MembersAPIService.SetMemberRoleV0MembersTargetUserIdPatch")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/members/{target_user_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"target_user_id"+"}", url.PathEscape(parameterValueToString(r.targetUserId, "targetUserId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.memberRoleIn == nil {
- return localVarReturnValue, nil, reportError("memberRoleIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- // body params
- localVarPostBody = r.memberRoleIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 409 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
diff --git a/sdk/go/api_search.go b/sdk/go/api_search.go
new file mode 100644
index 0000000..7c1f38e
--- /dev/null
+++ b/sdk/go/api_search.go
@@ -0,0 +1,311 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "bytes"
+ "context"
+ "io"
+ "net/http"
+ "net/url"
+ "strings"
+ "time"
+)
+
+
+// SearchAPIService SearchAPI service
+type SearchAPIService service
+
+type ApiDriveSearchRequest struct {
+ ctx context.Context
+ ApiService *SearchAPIService
+ driveId string
+ q *string
+ mode *string
+ limit *int32
+ cursor *string
+ parentId *string
+ contentType *string
+ label *string
+ updatedAfter *time.Time
+ updatedBefore *time.Time
+ authorization *string
+}
+
+func (r ApiDriveSearchRequest) Q(q string) ApiDriveSearchRequest {
+ r.q = &q
+ return r
+}
+
+func (r ApiDriveSearchRequest) Mode(mode string) ApiDriveSearchRequest {
+ r.mode = &mode
+ return r
+}
+
+func (r ApiDriveSearchRequest) Limit(limit int32) ApiDriveSearchRequest {
+ r.limit = &limit
+ return r
+}
+
+func (r ApiDriveSearchRequest) Cursor(cursor string) ApiDriveSearchRequest {
+ r.cursor = &cursor
+ return r
+}
+
+func (r ApiDriveSearchRequest) ParentId(parentId string) ApiDriveSearchRequest {
+ r.parentId = &parentId
+ return r
+}
+
+func (r ApiDriveSearchRequest) ContentType(contentType string) ApiDriveSearchRequest {
+ r.contentType = &contentType
+ return r
+}
+
+func (r ApiDriveSearchRequest) Label(label string) ApiDriveSearchRequest {
+ r.label = &label
+ return r
+}
+
+func (r ApiDriveSearchRequest) UpdatedAfter(updatedAfter time.Time) ApiDriveSearchRequest {
+ r.updatedAfter = &updatedAfter
+ return r
+}
+
+func (r ApiDriveSearchRequest) UpdatedBefore(updatedBefore time.Time) ApiDriveSearchRequest {
+ r.updatedBefore = &updatedBefore
+ return r
+}
+
+func (r ApiDriveSearchRequest) Authorization(authorization string) ApiDriveSearchRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiDriveSearchRequest) Execute() (*SearchPageOut, *http.Response, error) {
+ return r.ApiService.DriveSearchExecute(r)
+}
+
+/*
+DriveSearch Drive Search
+
+Search the drive's live artifacts. ``q`` is required and must be
+non-empty.
+
+``mode`` selects the retrieval engine: ``lexical``, ``hybrid``, or
+``semantic``. This deployment enables ``lexical`` only; requesting a
+disabled mode fails ``400 SEARCH_MODE_UNAVAILABLE``.
+
+Each hit's ``snippet`` is HTML-safe by contract: artifact content is
+entity-escaped and only the server's own ````/```` highlight
+pair survives, so a client may render it as HTML.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @return ApiDriveSearchRequest
+*/
+func (a *SearchAPIService) DriveSearch(ctx context.Context, driveId string) ApiDriveSearchRequest {
+ return ApiDriveSearchRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ }
+}
+
+// Execute executes the request
+// @return SearchPageOut
+func (a *SearchAPIService) DriveSearchExecute(r ApiDriveSearchRequest) (*SearchPageOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodGet
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *SearchPageOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SearchAPIService.DriveSearch")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/search"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if r.q == nil {
+ return localVarReturnValue, nil, reportError("q is required and must be specified")
+ }
+ if strlen(*r.q) < 1 {
+ return localVarReturnValue, nil, reportError("q must have at least 1 elements")
+ }
+
+ parameterAddToHeaderOrQuery(localVarQueryParams, "q", r.q, "form", "")
+ if r.mode != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "mode", r.mode, "form", "")
+ } else {
+ var defaultValue string = "lexical"
+ parameterAddToHeaderOrQuery(localVarQueryParams, "mode", defaultValue, "form", "")
+ r.mode = &defaultValue
+ }
+ if r.limit != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
+ }
+ if r.cursor != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
+ }
+ if r.parentId != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "parent_id", r.parentId, "form", "")
+ }
+ if r.contentType != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "content_type", r.contentType, "form", "")
+ }
+ if r.label != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "label", r.label, "form", "")
+ }
+ if r.updatedAfter != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "updated_after", r.updatedAfter, "form", "")
+ }
+ if r.updatedBefore != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "updated_before", r.updatedBefore, "form", "")
+ }
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesList400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
diff --git a/sdk/go/api_shares.go b/sdk/go/api_shares.go
new file mode 100644
index 0000000..fe4a0ec
--- /dev/null
+++ b/sdk/go/api_shares.go
@@ -0,0 +1,1204 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "bytes"
+ "context"
+ "io"
+ "net/http"
+ "net/url"
+ "strings"
+)
+
+
+// SharesAPIService SharesAPI service
+type SharesAPIService service
+
+type ApiSharesCreateRequest struct {
+ ctx context.Context
+ ApiService *SharesAPIService
+ driveId string
+ idempotencyKey *string
+ shareCreateIn *ShareCreateIn
+ authorization *string
+}
+
+func (r ApiSharesCreateRequest) IdempotencyKey(idempotencyKey string) ApiSharesCreateRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
+}
+
+func (r ApiSharesCreateRequest) ShareCreateIn(shareCreateIn ShareCreateIn) ApiSharesCreateRequest {
+ r.shareCreateIn = &shareCreateIn
+ return r
+}
+
+func (r ApiSharesCreateRequest) Authorization(authorization string) ApiSharesCreateRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiSharesCreateRequest) Execute() (*ShareCreateOut, *http.Response, error) {
+ return r.ApiService.SharesCreateExecute(r)
+}
+
+/*
+SharesCreate Create Share
+
+Mint a read-only bearer link. The response carries the plaintext
+secret — the only response that does.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @return ApiSharesCreateRequest
+*/
+func (a *SharesAPIService) SharesCreate(ctx context.Context, driveId string) ApiSharesCreateRequest {
+ return ApiSharesCreateRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ }
+}
+
+// Execute executes the request
+// @return ShareCreateOut
+func (a *SharesAPIService) SharesCreateExecute(r ApiSharesCreateRequest) (*ShareCreateOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodPost
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *ShareCreateOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SharesAPIService.SharesCreate")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/shares"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.shareCreateIn == nil {
+ return localVarReturnValue, nil, reportError("shareCreateIn is required and must be specified")
+ }
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{"application/json"}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ // body params
+ localVarPostBody = r.shareCreateIn
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiSharesListRequest struct {
+ ctx context.Context
+ ApiService *SharesAPIService
+ driveId string
+ lifecycle *string
+ limit *int32
+ cursor *string
+ resourceType *string
+ resourceId *string
+ authorization *string
+}
+
+func (r ApiSharesListRequest) Lifecycle(lifecycle string) ApiSharesListRequest {
+ r.lifecycle = &lifecycle
+ return r
+}
+
+func (r ApiSharesListRequest) Limit(limit int32) ApiSharesListRequest {
+ r.limit = &limit
+ return r
+}
+
+func (r ApiSharesListRequest) Cursor(cursor string) ApiSharesListRequest {
+ r.cursor = &cursor
+ return r
+}
+
+func (r ApiSharesListRequest) ResourceType(resourceType string) ApiSharesListRequest {
+ r.resourceType = &resourceType
+ return r
+}
+
+func (r ApiSharesListRequest) ResourceId(resourceId string) ApiSharesListRequest {
+ r.resourceId = &resourceId
+ return r
+}
+
+func (r ApiSharesListRequest) Authorization(authorization string) ApiSharesListRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiSharesListRequest) Execute() (*ShareListOut, *http.Response, error) {
+ return r.ApiService.SharesListExecute(r)
+}
+
+/*
+SharesList List Shares
+
+List the drive's shares (no secrets), keyset paginated.
+
+``resource_id`` narrows the page to one resource's links and REQUIRES
+``resource_type`` alongside it — a bare resource id is ambiguous across
+``artifact`` / ``artifact_version`` / ``folder``, and inferring the kind
+from the id prefix would tie the filter's meaning to an id format the
+contract does not promise to keep. ``resource_type`` alone is a valid
+filter. Listing shares already requires drive ``manager``, so these
+filters only narrow a page the caller could already read in full.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @return ApiSharesListRequest
+*/
+func (a *SharesAPIService) SharesList(ctx context.Context, driveId string) ApiSharesListRequest {
+ return ApiSharesListRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ }
+}
+
+// Execute executes the request
+// @return ShareListOut
+func (a *SharesAPIService) SharesListExecute(r ApiSharesListRequest) (*ShareListOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodGet
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *ShareListOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SharesAPIService.SharesList")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/shares"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ if r.lifecycle != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "lifecycle", r.lifecycle, "form", "")
+ } else {
+ var defaultValue string = "active"
+ parameterAddToHeaderOrQuery(localVarQueryParams, "lifecycle", defaultValue, "form", "")
+ r.lifecycle = &defaultValue
+ }
+ if r.limit != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
+ }
+ if r.cursor != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
+ }
+ if r.resourceType != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "resource_type", r.resourceType, "form", "")
+ }
+ if r.resourceId != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "resource_id", r.resourceId, "form", "")
+ }
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiSharesReadRequest struct {
+ ctx context.Context
+ ApiService *SharesAPIService
+ driveId string
+ shareId string
+ ifNoneMatch *string
+ authorization *string
+}
+
+func (r ApiSharesReadRequest) IfNoneMatch(ifNoneMatch string) ApiSharesReadRequest {
+ r.ifNoneMatch = &ifNoneMatch
+ return r
+}
+
+func (r ApiSharesReadRequest) Authorization(authorization string) ApiSharesReadRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiSharesReadRequest) Execute() (*ShareOut, *http.Response, error) {
+ return r.ApiService.SharesReadExecute(r)
+}
+
+/*
+SharesRead Read Share
+
+Read one share's management representation (no secret).
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param shareId
+ @return ApiSharesReadRequest
+*/
+func (a *SharesAPIService) SharesRead(ctx context.Context, driveId string, shareId string) ApiSharesReadRequest {
+ return ApiSharesReadRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ shareId: shareId,
+ }
+}
+
+// Execute executes the request
+// @return ShareOut
+func (a *SharesAPIService) SharesReadExecute(r ApiSharesReadRequest) (*ShareOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodGet
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *ShareOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SharesAPIService.SharesRead")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/shares/{share_id}"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"share_id"+"}", url.PathEscape(parameterValueToString(r.shareId, "shareId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ if r.ifNoneMatch != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-None-Match", r.ifNoneMatch, "simple", "")
+ }
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiSharesRevokeRequest struct {
+ ctx context.Context
+ ApiService *SharesAPIService
+ driveId string
+ shareId string
+ idempotencyKey *string
+ ifMatch *string
+ authorization *string
+}
+
+func (r ApiSharesRevokeRequest) IdempotencyKey(idempotencyKey string) ApiSharesRevokeRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
+}
+
+func (r ApiSharesRevokeRequest) IfMatch(ifMatch string) ApiSharesRevokeRequest {
+ r.ifMatch = &ifMatch
+ return r
+}
+
+func (r ApiSharesRevokeRequest) Authorization(authorization string) ApiSharesRevokeRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiSharesRevokeRequest) Execute() (*ShareOut, *http.Response, error) {
+ return r.ApiService.SharesRevokeExecute(r)
+}
+
+/*
+SharesRevoke Revoke Share
+
+Revoke a share (soft, sets revoked_at) under If-Match.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param shareId
+ @return ApiSharesRevokeRequest
+*/
+func (a *SharesAPIService) SharesRevoke(ctx context.Context, driveId string, shareId string) ApiSharesRevokeRequest {
+ return ApiSharesRevokeRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ shareId: shareId,
+ }
+}
+
+// Execute executes the request
+// @return ShareOut
+func (a *SharesAPIService) SharesRevokeExecute(r ApiSharesRevokeRequest) (*ShareOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodDelete
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *ShareOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SharesAPIService.SharesRevoke")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/shares/{share_id}"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"share_id"+"}", url.PathEscape(parameterValueToString(r.shareId, "shareId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.ifMatch == nil {
+ return localVarReturnValue, nil, reportError("ifMatch is required and must be specified")
+ }
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-Match", r.ifMatch, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiSharesRotateRequest struct {
+ ctx context.Context
+ ApiService *SharesAPIService
+ driveId string
+ shareId string
+ idempotencyKey *string
+ ifMatch *string
+ authorization *string
+}
+
+func (r ApiSharesRotateRequest) IdempotencyKey(idempotencyKey string) ApiSharesRotateRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
+}
+
+func (r ApiSharesRotateRequest) IfMatch(ifMatch string) ApiSharesRotateRequest {
+ r.ifMatch = &ifMatch
+ return r
+}
+
+func (r ApiSharesRotateRequest) Authorization(authorization string) ApiSharesRotateRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiSharesRotateRequest) Execute() (*ShareCreateOut, *http.Response, error) {
+ return r.ApiService.SharesRotateExecute(r)
+}
+
+/*
+SharesRotate Rotate Share
+
+Rotate the secret in place (same id, no grace window). The response
+carries the new plaintext secret.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param shareId
+ @return ApiSharesRotateRequest
+*/
+func (a *SharesAPIService) SharesRotate(ctx context.Context, driveId string, shareId string) ApiSharesRotateRequest {
+ return ApiSharesRotateRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ shareId: shareId,
+ }
+}
+
+// Execute executes the request
+// @return ShareCreateOut
+func (a *SharesAPIService) SharesRotateExecute(r ApiSharesRotateRequest) (*ShareCreateOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodPost
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *ShareCreateOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SharesAPIService.SharesRotate")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/shares/{share_id}/rotate"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"share_id"+"}", url.PathEscape(parameterValueToString(r.shareId, "shareId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.ifMatch == nil {
+ return localVarReturnValue, nil, reportError("ifMatch is required and must be specified")
+ }
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-Match", r.ifMatch, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
diff --git a/sdk/go/api_shares_redemption.go b/sdk/go/api_shares_redemption.go
new file mode 100644
index 0000000..456021b
--- /dev/null
+++ b/sdk/go/api_shares_redemption.go
@@ -0,0 +1,156 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "bytes"
+ "context"
+ "io"
+ "net/http"
+ "net/url"
+ "strings"
+)
+
+
+// SharesRedemptionAPIService SharesRedemptionAPI service
+type SharesRedemptionAPIService service
+
+type ApiSharesRedeemRequest struct {
+ ctx context.Context
+ ApiService *SharesRedemptionAPIService
+ shareKey string
+}
+
+func (r ApiSharesRedeemRequest) Execute() (interface{}, *http.Response, error) {
+ return r.ApiService.SharesRedeemExecute(r)
+}
+
+/*
+SharesRedeem Redeem Share
+
+The un-slashed form. Browsers are canonicalized onto `/s/{key}/`.
+
+This inherits the published `shares_redeem` operation id from the route it
+replaced, because for an API client it *is* that operation, unchanged:
+same URL, same JSON `Accept`, same bytes, same uniform 404. Only the
+browser arm is new. Dropping it from the spec would have described the
+route as gone while it kept answering.
+
+The page links its own sub-resources relatively (`content`), and relative
+resolution replaces the last path segment: from `/s/KEY` that reaches
+`/s/content`, from `/s/KEY/` it reaches `/s/KEY/content`. The trailing
+slash is what makes an image on a share page load at all. Links already in
+the wild have no slash, so this redirect is how they keep working.
+
+It is unconditional and runs before any lookup — redirecting only for keys
+that resolve would turn the status code into an existence oracle and undo
+the anti-enumeration property the rest of this module maintains.
+
+Only browsers are moved. JSON and byte clients are answered in place, so
+the shipped v0 contract for this URL is unchanged, redirect included.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param shareKey
+ @return ApiSharesRedeemRequest
+*/
+func (a *SharesRedemptionAPIService) SharesRedeem(ctx context.Context, shareKey string) ApiSharesRedeemRequest {
+ return ApiSharesRedeemRequest{
+ ApiService: a,
+ ctx: ctx,
+ shareKey: shareKey,
+ }
+}
+
+// Execute executes the request
+// @return interface{}
+func (a *SharesRedemptionAPIService) SharesRedeemExecute(r ApiSharesRedeemRequest) (interface{}, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodGet
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue interface{}
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SharesRedemptionAPIService.SharesRedeem")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/s/{share_key}"
+ localVarPath = strings.Replace(localVarPath, "{"+"share_key"+"}", url.PathEscape(parameterValueToString(r.shareKey, "shareKey")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
diff --git a/sdk/go/api_tokens.go b/sdk/go/api_tokens.go
deleted file mode 100644
index 7c249b8..0000000
--- a/sdk/go/api_tokens.go
+++ /dev/null
@@ -1,343 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "bytes"
- "context"
- "io"
- "net/http"
- "net/url"
- "strings"
-)
-
-
-// TokensAPIService TokensAPI service
-type TokensAPIService service
-
-type ApiListTokensV0TokensGetRequest struct {
- ctx context.Context
- ApiService *TokensAPIService
- cursor *string
- limit *int32
-}
-
-func (r ApiListTokensV0TokensGetRequest) Cursor(cursor string) ApiListTokensV0TokensGetRequest {
- r.cursor = &cursor
- return r
-}
-
-func (r ApiListTokensV0TokensGetRequest) Limit(limit int32) ApiListTokensV0TokensGetRequest {
- r.limit = &limit
- return r
-}
-
-func (r ApiListTokensV0TokensGetRequest) Execute() (*UserTokenList, *http.Response, error) {
- return r.ApiService.ListTokensV0TokensGetExecute(r)
-}
-
-/*
-ListTokensV0TokensGet List your user-identity tokens
-
-List the `ad_user_` tokens belonging to the authenticated user. Metadata only — the raw token is shown once at mint (web only) and is never returned here. Includes recently-revoked tokens (with `revoked_at` set) so the caller can audit them; newest first.
-
-**Cursor pagination:** when more results exist, the response carries `next_cursor`. Pass it back as `?cursor=` to fetch the next page; `null` means the listing is complete. `limit` is clamped to [1, 100] (default 50), never rejected.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiListTokensV0TokensGetRequest
-*/
-func (a *TokensAPIService) ListTokensV0TokensGet(ctx context.Context) ApiListTokensV0TokensGetRequest {
- return ApiListTokensV0TokensGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return UserTokenList
-func (a *TokensAPIService) ListTokensV0TokensGetExecute(r ApiListTokensV0TokensGetRequest) (*UserTokenList, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *UserTokenList
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "TokensAPIService.ListTokensV0TokensGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/tokens"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- if r.cursor != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
- }
- if r.limit != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiRevokeTokenV0TokensTokenIdRevokePostRequest struct {
- ctx context.Context
- ApiService *TokensAPIService
- tokenId string
-}
-
-func (r ApiRevokeTokenV0TokensTokenIdRevokePostRequest) Execute() (*UserTokenOut, *http.Response, error) {
- return r.ApiService.RevokeTokenV0TokensTokenIdRevokePostExecute(r)
-}
-
-/*
-RevokeTokenV0TokensTokenIdRevokePost Revoke one of your user-identity tokens
-
-Revoke a single `ad_user_` token by id. Scoped to the authenticated user: a token id that isn't yours returns 404 (no-leak). Idempotent — revoking an already-revoked token also returns 404 (it is no longer a live token of yours to revoke). On success the revoked token's metadata is returned with `revoked_at` set.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param tokenId
- @return ApiRevokeTokenV0TokensTokenIdRevokePostRequest
-*/
-func (a *TokensAPIService) RevokeTokenV0TokensTokenIdRevokePost(ctx context.Context, tokenId string) ApiRevokeTokenV0TokensTokenIdRevokePostRequest {
- return ApiRevokeTokenV0TokensTokenIdRevokePostRequest{
- ApiService: a,
- ctx: ctx,
- tokenId: tokenId,
- }
-}
-
-// Execute executes the request
-// @return UserTokenOut
-func (a *TokensAPIService) RevokeTokenV0TokensTokenIdRevokePostExecute(r ApiRevokeTokenV0TokensTokenIdRevokePostRequest) (*UserTokenOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *UserTokenOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "TokensAPIService.RevokeTokenV0TokensTokenIdRevokePost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/tokens/{token_id}/revoke"
- localVarPath = strings.Replace(localVarPath, "{"+"token_id"+"}", url.PathEscape(parameterValueToString(r.tokenId, "tokenId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
diff --git a/sdk/go/api_versions.go b/sdk/go/api_versions.go
new file mode 100644
index 0000000..c3e3a71
--- /dev/null
+++ b/sdk/go/api_versions.go
@@ -0,0 +1,1186 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "bytes"
+ "context"
+ "io"
+ "net/http"
+ "net/url"
+ "strings"
+ "os"
+)
+
+
+// VersionsAPIService VersionsAPI service
+type VersionsAPIService service
+
+type ApiVersionsAppendRequest struct {
+ ctx context.Context
+ ApiService *VersionsAPIService
+ driveId string
+ artifactId string
+ idempotencyKey *string
+ ifMatch *string
+ content *os.File
+ authorization *string
+ contentType *string
+ sha256 *string
+}
+
+func (r ApiVersionsAppendRequest) IdempotencyKey(idempotencyKey string) ApiVersionsAppendRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
+}
+
+func (r ApiVersionsAppendRequest) IfMatch(ifMatch string) ApiVersionsAppendRequest {
+ r.ifMatch = &ifMatch
+ return r
+}
+
+// The artifact bytes.
+func (r ApiVersionsAppendRequest) Content(content *os.File) ApiVersionsAppendRequest {
+ r.content = content
+ return r
+}
+
+func (r ApiVersionsAppendRequest) Authorization(authorization string) ApiVersionsAppendRequest {
+ r.authorization = &authorization
+ return r
+}
+
+// Declared media type.
+func (r ApiVersionsAppendRequest) ContentType(contentType string) ApiVersionsAppendRequest {
+ r.contentType = &contentType
+ return r
+}
+
+// Optional content sha256 for verification.
+func (r ApiVersionsAppendRequest) Sha256(sha256 string) ApiVersionsAppendRequest {
+ r.sha256 = &sha256
+ return r
+}
+
+func (r ApiVersionsAppendRequest) Execute() (*VersionCreatedOut, *http.Response, error) {
+ return r.ApiService.VersionsAppendExecute(r)
+}
+
+/*
+VersionsAppend Append Version
+
+Append one immutable version and rotate the artifact head.
+
+Multipart only (415 for a JSON body). Parts: content (bytes), content_type, sha256. content is required; name, parent_id, and metadata are not accepted here.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param artifactId
+ @return ApiVersionsAppendRequest
+*/
+func (a *VersionsAPIService) VersionsAppend(ctx context.Context, driveId string, artifactId string) ApiVersionsAppendRequest {
+ return ApiVersionsAppendRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ artifactId: artifactId,
+ }
+}
+
+// Execute executes the request
+// @return VersionCreatedOut
+func (a *VersionsAPIService) VersionsAppendExecute(r ApiVersionsAppendRequest) (*VersionCreatedOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodPost
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *VersionCreatedOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "VersionsAPIService.VersionsAppend")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/artifacts/{artifact_id}/versions"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"artifact_id"+"}", url.PathEscape(parameterValueToString(r.artifactId, "artifactId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.ifMatch == nil {
+ return localVarReturnValue, nil, reportError("ifMatch is required and must be specified")
+ }
+ if r.content == nil {
+ return localVarReturnValue, nil, reportError("content is required and must be specified")
+ }
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{"multipart/form-data"}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-Match", r.ifMatch, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ var contentLocalVarFormFileName string
+ var contentLocalVarFileName string
+ var contentLocalVarFileBytes []byte
+
+ contentLocalVarFormFileName = "content"
+ contentLocalVarFile := r.content
+
+ if contentLocalVarFile != nil {
+ fbs, _ := io.ReadAll(contentLocalVarFile)
+
+ contentLocalVarFileBytes = fbs
+ contentLocalVarFileName = contentLocalVarFile.Name()
+ contentLocalVarFile.Close()
+ formFiles = append(formFiles, formFile{fileBytes: contentLocalVarFileBytes, fileName: contentLocalVarFileName, formFileName: contentLocalVarFormFileName})
+ }
+ if r.contentType != nil {
+ parameterAddToHeaderOrQuery(localVarFormParams, "content_type", r.contentType, "", "")
+ }
+ if r.sha256 != nil {
+ parameterAddToHeaderOrQuery(localVarFormParams, "sha256", r.sha256, "", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiVersionsContentRequest struct {
+ ctx context.Context
+ ApiService *VersionsAPIService
+ driveId string
+ artifactId string
+ versionId string
+ ifNoneMatch *string
+ authorization *string
+}
+
+func (r ApiVersionsContentRequest) IfNoneMatch(ifNoneMatch string) ApiVersionsContentRequest {
+ r.ifNoneMatch = &ifNoneMatch
+ return r
+}
+
+func (r ApiVersionsContentRequest) Authorization(authorization string) ApiVersionsContentRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiVersionsContentRequest) Execute() (*os.File, *http.Response, error) {
+ return r.ApiService.VersionsContentExecute(r)
+}
+
+/*
+VersionsContent Read Version Content
+
+Download one version's immutable bytes — stream or 307.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param artifactId
+ @param versionId
+ @return ApiVersionsContentRequest
+*/
+func (a *VersionsAPIService) VersionsContent(ctx context.Context, driveId string, artifactId string, versionId string) ApiVersionsContentRequest {
+ return ApiVersionsContentRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ artifactId: artifactId,
+ versionId: versionId,
+ }
+}
+
+// Execute executes the request
+// @return *os.File
+func (a *VersionsAPIService) VersionsContentExecute(r ApiVersionsContentRequest) (*os.File, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodGet
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *os.File
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "VersionsAPIService.VersionsContent")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/artifacts/{artifact_id}/versions/{version_id}/content"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"artifact_id"+"}", url.PathEscape(parameterValueToString(r.artifactId, "artifactId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"version_id"+"}", url.PathEscape(parameterValueToString(r.versionId, "versionId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/octet-stream", "application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ if r.ifNoneMatch != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-None-Match", r.ifNoneMatch, "simple", "")
+ }
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiVersionsListRequest struct {
+ ctx context.Context
+ ApiService *VersionsAPIService
+ driveId string
+ artifactId string
+ limit *int32
+ cursor *string
+ authorization *string
+}
+
+func (r ApiVersionsListRequest) Limit(limit int32) ApiVersionsListRequest {
+ r.limit = &limit
+ return r
+}
+
+func (r ApiVersionsListRequest) Cursor(cursor string) ApiVersionsListRequest {
+ r.cursor = &cursor
+ return r
+}
+
+func (r ApiVersionsListRequest) Authorization(authorization string) ApiVersionsListRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiVersionsListRequest) Execute() (*VersionListOut, *http.Response, error) {
+ return r.ApiService.VersionsListExecute(r)
+}
+
+/*
+VersionsList List Versions
+
+List the artifact's version trail, newest first (ordinal DESC).
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param artifactId
+ @return ApiVersionsListRequest
+*/
+func (a *VersionsAPIService) VersionsList(ctx context.Context, driveId string, artifactId string) ApiVersionsListRequest {
+ return ApiVersionsListRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ artifactId: artifactId,
+ }
+}
+
+// Execute executes the request
+// @return VersionListOut
+func (a *VersionsAPIService) VersionsListExecute(r ApiVersionsListRequest) (*VersionListOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodGet
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *VersionListOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "VersionsAPIService.VersionsList")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/artifacts/{artifact_id}/versions"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"artifact_id"+"}", url.PathEscape(parameterValueToString(r.artifactId, "artifactId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ if r.limit != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
+ }
+ if r.cursor != nil {
+ parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
+ }
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiVersionsReadRequest struct {
+ ctx context.Context
+ ApiService *VersionsAPIService
+ driveId string
+ artifactId string
+ versionId string
+ ifNoneMatch *string
+ authorization *string
+}
+
+func (r ApiVersionsReadRequest) IfNoneMatch(ifNoneMatch string) ApiVersionsReadRequest {
+ r.ifNoneMatch = &ifNoneMatch
+ return r
+}
+
+func (r ApiVersionsReadRequest) Authorization(authorization string) ApiVersionsReadRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiVersionsReadRequest) Execute() (*VersionOut, *http.Response, error) {
+ return r.ApiService.VersionsReadExecute(r)
+}
+
+/*
+VersionsRead Read Version
+
+Read one immutable version.
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param artifactId
+ @param versionId
+ @return ApiVersionsReadRequest
+*/
+func (a *VersionsAPIService) VersionsRead(ctx context.Context, driveId string, artifactId string, versionId string) ApiVersionsReadRequest {
+ return ApiVersionsReadRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ artifactId: artifactId,
+ versionId: versionId,
+ }
+}
+
+// Execute executes the request
+// @return VersionOut
+func (a *VersionsAPIService) VersionsReadExecute(r ApiVersionsReadRequest) (*VersionOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodGet
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *VersionOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "VersionsAPIService.VersionsRead")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/artifacts/{artifact_id}/versions/{version_id}"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"artifact_id"+"}", url.PathEscape(parameterValueToString(r.artifactId, "artifactId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"version_id"+"}", url.PathEscape(parameterValueToString(r.versionId, "versionId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ if r.ifNoneMatch != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-None-Match", r.ifNoneMatch, "simple", "")
+ }
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiVersionsRestoreRequest struct {
+ ctx context.Context
+ ApiService *VersionsAPIService
+ driveId string
+ artifactId string
+ versionId string
+ idempotencyKey *string
+ ifMatch *string
+ authorization *string
+}
+
+func (r ApiVersionsRestoreRequest) IdempotencyKey(idempotencyKey string) ApiVersionsRestoreRequest {
+ r.idempotencyKey = &idempotencyKey
+ return r
+}
+
+func (r ApiVersionsRestoreRequest) IfMatch(ifMatch string) ApiVersionsRestoreRequest {
+ r.ifMatch = &ifMatch
+ return r
+}
+
+func (r ApiVersionsRestoreRequest) Authorization(authorization string) ApiVersionsRestoreRequest {
+ r.authorization = &authorization
+ return r
+}
+
+func (r ApiVersionsRestoreRequest) Execute() (*VersionCreatedOut, *http.Response, error) {
+ return r.ApiService.VersionsRestoreExecute(r)
+}
+
+/*
+VersionsRestore Restore Version
+
+Restore a historical version as a NEW head version (no byte copy).
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param driveId
+ @param artifactId
+ @param versionId
+ @return ApiVersionsRestoreRequest
+*/
+func (a *VersionsAPIService) VersionsRestore(ctx context.Context, driveId string, artifactId string, versionId string) ApiVersionsRestoreRequest {
+ return ApiVersionsRestoreRequest{
+ ApiService: a,
+ ctx: ctx,
+ driveId: driveId,
+ artifactId: artifactId,
+ versionId: versionId,
+ }
+}
+
+// Execute executes the request
+// @return VersionCreatedOut
+func (a *VersionsAPIService) VersionsRestoreExecute(r ApiVersionsRestoreRequest) (*VersionCreatedOut, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodPost
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue *VersionCreatedOut
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "VersionsAPIService.VersionsRestore")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/v0/drives/{drive_id}/artifacts/{artifact_id}/versions/{version_id}/restore"
+ localVarPath = strings.Replace(localVarPath, "{"+"drive_id"+"}", url.PathEscape(parameterValueToString(r.driveId, "driveId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"artifact_id"+"}", url.PathEscape(parameterValueToString(r.artifactId, "artifactId")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"version_id"+"}", url.PathEscape(parameterValueToString(r.versionId, "versionId")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if r.idempotencyKey == nil {
+ return localVarReturnValue, nil, reportError("idempotencyKey is required and must be specified")
+ }
+ if r.ifMatch == nil {
+ return localVarReturnValue, nil, reportError("ifMatch is required and must be specified")
+ }
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "Idempotency-Key", r.idempotencyKey, "simple", "")
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "If-Match", r.ifMatch, "simple", "")
+ if r.authorization != nil {
+ parameterAddToHeaderOrQuery(localVarHeaderParams, "authorization", r.authorization, "simple", "")
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 401 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 403 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 404 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 409 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 412 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 422 {
+ var v ValidationErrorResponse
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 428 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 429 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ if localVarHTTPResponse.StatusCode == 503 {
+ var v DrivesCreate400Response
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
diff --git a/sdk/go/api_workspaces.go b/sdk/go/api_workspaces.go
deleted file mode 100644
index f9fe772..0000000
--- a/sdk/go/api_workspaces.go
+++ /dev/null
@@ -1,542 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "bytes"
- "context"
- "io"
- "net/http"
- "net/url"
- "strings"
-)
-
-
-// WorkspacesAPIService WorkspacesAPI service
-type WorkspacesAPIService service
-
-type ApiCreateWorkspaceRouteV0WorkspacesPostRequest struct {
- ctx context.Context
- ApiService *WorkspacesAPIService
- workspaceCreateIn *WorkspaceCreateIn
-}
-
-func (r ApiCreateWorkspaceRouteV0WorkspacesPostRequest) WorkspaceCreateIn(workspaceCreateIn WorkspaceCreateIn) ApiCreateWorkspaceRouteV0WorkspacesPostRequest {
- r.workspaceCreateIn = &workspaceCreateIn
- return r
-}
-
-func (r ApiCreateWorkspaceRouteV0WorkspacesPostRequest) Execute() (*WorkspaceCreateOut, *http.Response, error) {
- return r.ApiService.CreateWorkspaceRouteV0WorkspacesPostExecute(r)
-}
-
-/*
-CreateWorkspaceRouteV0WorkspacesPost Create a new shared drive
-
-Create a new **shared drive** — a shared, multi-member space (the `workspaces` path is retained for API stability). You become its **admin** and get a starter drive; the starter drive's `ad_live_` key is returned **once** (`starter_drive_api_key`).
-
-A user may administer up to their plan's number of shared drives (workspaces-v2 §4.6). A caller at the limit is blocked with `403 WORKSPACE_LIMIT_REACHED`. Requires a `full`-scope user token.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiCreateWorkspaceRouteV0WorkspacesPostRequest
-*/
-func (a *WorkspacesAPIService) CreateWorkspaceRouteV0WorkspacesPost(ctx context.Context) ApiCreateWorkspaceRouteV0WorkspacesPostRequest {
- return ApiCreateWorkspaceRouteV0WorkspacesPostRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return WorkspaceCreateOut
-func (a *WorkspacesAPIService) CreateWorkspaceRouteV0WorkspacesPostExecute(r ApiCreateWorkspaceRouteV0WorkspacesPostRequest) (*WorkspaceCreateOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPost
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *WorkspaceCreateOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "WorkspacesAPIService.CreateWorkspaceRouteV0WorkspacesPost")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/workspaces"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.workspaceCreateIn == nil {
- return localVarReturnValue, nil, reportError("workspaceCreateIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- // body params
- localVarPostBody = r.workspaceCreateIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 409 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiListWorkspacesRouteV0WorkspacesGetRequest struct {
- ctx context.Context
- ApiService *WorkspacesAPIService
- cursor *string
- limit *int32
-}
-
-func (r ApiListWorkspacesRouteV0WorkspacesGetRequest) Cursor(cursor string) ApiListWorkspacesRouteV0WorkspacesGetRequest {
- r.cursor = &cursor
- return r
-}
-
-func (r ApiListWorkspacesRouteV0WorkspacesGetRequest) Limit(limit int32) ApiListWorkspacesRouteV0WorkspacesGetRequest {
- r.limit = &limit
- return r
-}
-
-func (r ApiListWorkspacesRouteV0WorkspacesGetRequest) Execute() (*WorkspaceList, *http.Response, error) {
- return r.ApiService.ListWorkspacesRouteV0WorkspacesGetExecute(r)
-}
-
-/*
-ListWorkspacesRouteV0WorkspacesGet List the spaces you belong to
-
-Return every space the caller is a member of, each carrying the caller's `role` in it. Metadata only. A `read`-scope token is sufficient.
-
-**Cursor pagination:** when more results exist, the response carries `next_cursor`. Pass it back as `?cursor=` to fetch the next page; `null` means the listing is complete. `limit` is clamped to [1, 100] (default 50), never rejected.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @return ApiListWorkspacesRouteV0WorkspacesGetRequest
-*/
-func (a *WorkspacesAPIService) ListWorkspacesRouteV0WorkspacesGet(ctx context.Context) ApiListWorkspacesRouteV0WorkspacesGetRequest {
- return ApiListWorkspacesRouteV0WorkspacesGetRequest{
- ApiService: a,
- ctx: ctx,
- }
-}
-
-// Execute executes the request
-// @return WorkspaceList
-func (a *WorkspacesAPIService) ListWorkspacesRouteV0WorkspacesGetExecute(r ApiListWorkspacesRouteV0WorkspacesGetRequest) (*WorkspaceList, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodGet
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *WorkspaceList
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "WorkspacesAPIService.ListWorkspacesRouteV0WorkspacesGet")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/workspaces"
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
-
- if r.cursor != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "cursor", r.cursor, "form", "")
- }
- if r.limit != nil {
- parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "form", "")
- }
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type ApiRenameWorkspaceRouteV0WorkspacesOrgIdPatchRequest struct {
- ctx context.Context
- ApiService *WorkspacesAPIService
- orgId string
- workspaceRenameIn *WorkspaceRenameIn
-}
-
-func (r ApiRenameWorkspaceRouteV0WorkspacesOrgIdPatchRequest) WorkspaceRenameIn(workspaceRenameIn WorkspaceRenameIn) ApiRenameWorkspaceRouteV0WorkspacesOrgIdPatchRequest {
- r.workspaceRenameIn = &workspaceRenameIn
- return r
-}
-
-func (r ApiRenameWorkspaceRouteV0WorkspacesOrgIdPatchRequest) Execute() (*WorkspaceOut, *http.Response, error) {
- return r.ApiService.RenameWorkspaceRouteV0WorkspacesOrgIdPatchExecute(r)
-}
-
-/*
-RenameWorkspaceRouteV0WorkspacesOrgIdPatch Rename a shared drive you administer
-
-Rename a shared drive. **Admin only** — one you don't administer (or aren't a member of) returns 404 (no-leak). Requires a `full`-scope user token.
-
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param orgId
- @return ApiRenameWorkspaceRouteV0WorkspacesOrgIdPatchRequest
-*/
-func (a *WorkspacesAPIService) RenameWorkspaceRouteV0WorkspacesOrgIdPatch(ctx context.Context, orgId string) ApiRenameWorkspaceRouteV0WorkspacesOrgIdPatchRequest {
- return ApiRenameWorkspaceRouteV0WorkspacesOrgIdPatchRequest{
- ApiService: a,
- ctx: ctx,
- orgId: orgId,
- }
-}
-
-// Execute executes the request
-// @return WorkspaceOut
-func (a *WorkspacesAPIService) RenameWorkspaceRouteV0WorkspacesOrgIdPatchExecute(r ApiRenameWorkspaceRouteV0WorkspacesOrgIdPatchRequest) (*WorkspaceOut, *http.Response, error) {
- var (
- localVarHTTPMethod = http.MethodPatch
- localVarPostBody interface{}
- formFiles []formFile
- localVarReturnValue *WorkspaceOut
- )
-
- localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "WorkspacesAPIService.RenameWorkspaceRouteV0WorkspacesOrgIdPatch")
- if err != nil {
- return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
- }
-
- localVarPath := localBasePath + "/v0/workspaces/{org_id}"
- localVarPath = strings.Replace(localVarPath, "{"+"org_id"+"}", url.PathEscape(parameterValueToString(r.orgId, "orgId")), -1)
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := url.Values{}
- localVarFormParams := url.Values{}
- if r.workspaceRenameIn == nil {
- return localVarReturnValue, nil, reportError("workspaceRenameIn is required and must be specified")
- }
-
- // to determine the Content-Type header
- localVarHTTPContentTypes := []string{"application/json"}
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
- localVarHTTPHeaderAccepts := []string{"application/json"}
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
- // body params
- localVarPostBody = r.workspaceRenameIn
- req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
- if err != nil {
- return localVarReturnValue, nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(req)
- if err != nil || localVarHTTPResponse == nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
- if err != nil {
- return localVarReturnValue, localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- if localVarHTTPResponse.StatusCode == 400 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 401 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 403 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 404 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 422 {
- var v ValidationErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- if localVarHTTPResponse.StatusCode == 429 {
- var v ErrorResponse
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
- newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
- newErr.model = v
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := &GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return localVarReturnValue, localVarHTTPResponse, newErr
- }
-
- return localVarReturnValue, localVarHTTPResponse, nil
-}
diff --git a/sdk/go/client.go b/sdk/go/client.go
index 8801c73..d240fae 100644
--- a/sdk/go/client.go
+++ b/sdk/go/client.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
@@ -49,21 +49,27 @@ type APIClient struct {
// API Services
- AgentAuthAPI *AgentAuthAPIService
+ ArtifactsAPI *ArtifactsAPIService
+
+ ChangesAPI *ChangesAPIService
DefaultAPI *DefaultAPIService
+ DiscoveryAPI *DiscoveryAPIService
+
DrivesAPI *DrivesAPIService
- McpOauthAPI *McpOauthAPIService
+ FoldersAPI *FoldersAPIService
+
+ GrantsAPI *GrantsAPIService
- McpOauthUiAPI *McpOauthUiAPIService
+ SearchAPI *SearchAPIService
- MembersAPI *MembersAPIService
+ SharesAPI *SharesAPIService
- TokensAPI *TokensAPIService
+ SharesRedemptionAPI *SharesRedemptionAPIService
- WorkspacesAPI *WorkspacesAPIService
+ VersionsAPI *VersionsAPIService
}
type service struct {
@@ -82,14 +88,17 @@ func NewAPIClient(cfg *Configuration) *APIClient {
c.common.client = c
// API Services
- c.AgentAuthAPI = (*AgentAuthAPIService)(&c.common)
+ c.ArtifactsAPI = (*ArtifactsAPIService)(&c.common)
+ c.ChangesAPI = (*ChangesAPIService)(&c.common)
c.DefaultAPI = (*DefaultAPIService)(&c.common)
+ c.DiscoveryAPI = (*DiscoveryAPIService)(&c.common)
c.DrivesAPI = (*DrivesAPIService)(&c.common)
- c.McpOauthAPI = (*McpOauthAPIService)(&c.common)
- c.McpOauthUiAPI = (*McpOauthUiAPIService)(&c.common)
- c.MembersAPI = (*MembersAPIService)(&c.common)
- c.TokensAPI = (*TokensAPIService)(&c.common)
- c.WorkspacesAPI = (*WorkspacesAPIService)(&c.common)
+ c.FoldersAPI = (*FoldersAPIService)(&c.common)
+ c.GrantsAPI = (*GrantsAPIService)(&c.common)
+ c.SearchAPI = (*SearchAPIService)(&c.common)
+ c.SharesAPI = (*SharesAPIService)(&c.common)
+ c.SharesRedemptionAPI = (*SharesRedemptionAPIService)(&c.common)
+ c.VersionsAPI = (*VersionsAPIService)(&c.common)
return c
}
diff --git a/sdk/go/configuration.go b/sdk/go/configuration.go
index 2af7646..17000a2 100644
--- a/sdk/go/configuration.go
+++ b/sdk/go/configuration.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
diff --git a/sdk/go/docs/AgentAuthAPI.md b/sdk/go/docs/AgentAuthAPI.md
deleted file mode 100644
index 2745735..0000000
--- a/sdk/go/docs/AgentAuthAPI.md
+++ /dev/null
@@ -1,527 +0,0 @@
-# \AgentAuthAPI
-
-All URIs are relative to *https://api.agentdrive.run*
-
-Method | HTTP request | Description
-------------- | ------------- | -------------
-[**ExtensionExchangeV0AuthExtensionExchangePost**](AgentAuthAPI.md#ExtensionExchangeV0AuthExtensionExchangePost) | **Post** /v0/auth/extension/exchange | Redeem an extension OAuth ticket for a JWT pair
-[**InitiateClaimAgentIdentityClaimPost**](AgentAuthAPI.md#InitiateClaimAgentIdentityClaimPost) | **Post** /agent/identity/claim | Initiate the human-claim ceremony for an agent identity
-[**JwksWellKnownJwksJsonGet**](AgentAuthAPI.md#JwksWellKnownJwksJsonGet) | **Get** /.well-known/jwks.json | JSON Web Key Set — public keys for verifying AgentDrive JWTs
-[**Oauth2TokenOauth2TokenPost**](AgentAuthAPI.md#Oauth2TokenOauth2TokenPost) | **Post** /oauth2/token | Exchange a credential for an access_token
-[**OauthAuthorizationServerWellKnownOauthAuthorizationServerGet**](AgentAuthAPI.md#OauthAuthorizationServerWellKnownOauthAuthorizationServerGet) | **Get** /.well-known/oauth-authorization-server | Authorization-server metadata (RFC 8414 + auth.md agent_auth block)
-[**OauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGet**](AgentAuthAPI.md#OauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGet) | **Get** /.well-known/oauth-protected-resource/mcp | Protected-resource metadata for the MCP endpoint (RFC 9728 §3.1)
-[**OauthProtectedResourceWellKnownOauthProtectedResourceGet**](AgentAuthAPI.md#OauthProtectedResourceWellKnownOauthProtectedResourceGet) | **Get** /.well-known/oauth-protected-resource | Protected-resource metadata (auth.md / RFC 9728-like discovery)
-[**RegisterAgentIdentityAgentIdentityPost**](AgentAuthAPI.md#RegisterAgentIdentityAgentIdentityPost) | **Post** /agent/identity | Register an agent identity (anonymous or ID-JAG)
-
-
-
-## ExtensionExchangeV0AuthExtensionExchangePost
-
-> ExtensionExchangeResponse ExtensionExchangeV0AuthExtensionExchangePost(ctx).ExtensionExchangeRequest(extensionExchangeRequest).Execute()
-
-Redeem an extension OAuth ticket for a JWT pair
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- extensionExchangeRequest := *openapiclient.NewExtensionExchangeRequest("ExtId_example", "Ticket_example") // ExtensionExchangeRequest |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.AgentAuthAPI.ExtensionExchangeV0AuthExtensionExchangePost(context.Background()).ExtensionExchangeRequest(extensionExchangeRequest).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `AgentAuthAPI.ExtensionExchangeV0AuthExtensionExchangePost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `ExtensionExchangeV0AuthExtensionExchangePost`: ExtensionExchangeResponse
- fmt.Fprintf(os.Stdout, "Response from `AgentAuthAPI.ExtensionExchangeV0AuthExtensionExchangePost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiExtensionExchangeV0AuthExtensionExchangePostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **extensionExchangeRequest** | [**ExtensionExchangeRequest**](ExtensionExchangeRequest.md) | |
-
-### Return type
-
-[**ExtensionExchangeResponse**](ExtensionExchangeResponse.md)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## InitiateClaimAgentIdentityClaimPost
-
-> ClaimInitResponse InitiateClaimAgentIdentityClaimPost(ctx).ClaimInitRequest(claimInitRequest).Execute()
-
-Initiate the human-claim ceremony for an agent identity
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- claimInitRequest := *openapiclient.NewClaimInitRequest("ClaimToken_example") // ClaimInitRequest |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.AgentAuthAPI.InitiateClaimAgentIdentityClaimPost(context.Background()).ClaimInitRequest(claimInitRequest).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `AgentAuthAPI.InitiateClaimAgentIdentityClaimPost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `InitiateClaimAgentIdentityClaimPost`: ClaimInitResponse
- fmt.Fprintf(os.Stdout, "Response from `AgentAuthAPI.InitiateClaimAgentIdentityClaimPost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiInitiateClaimAgentIdentityClaimPostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **claimInitRequest** | [**ClaimInitRequest**](ClaimInitRequest.md) | |
-
-### Return type
-
-[**ClaimInitResponse**](ClaimInitResponse.md)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## JwksWellKnownJwksJsonGet
-
-> JwksOut JwksWellKnownJwksJsonGet(ctx).Execute()
-
-JSON Web Key Set — public keys for verifying AgentDrive JWTs
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.AgentAuthAPI.JwksWellKnownJwksJsonGet(context.Background()).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `AgentAuthAPI.JwksWellKnownJwksJsonGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `JwksWellKnownJwksJsonGet`: JwksOut
- fmt.Fprintf(os.Stdout, "Response from `AgentAuthAPI.JwksWellKnownJwksJsonGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-This endpoint does not need any parameter.
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiJwksWellKnownJwksJsonGetRequest struct via the builder pattern
-
-
-### Return type
-
-[**JwksOut**](JwksOut.md)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## Oauth2TokenOauth2TokenPost
-
-> TokenResponse Oauth2TokenOauth2TokenPost(ctx).GrantType(grantType).Assertion(assertion).ClaimToken(claimToken).Execute()
-
-Exchange a credential for an access_token
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- grantType := "grantType_example" // string |
- assertion := "assertion_example" // string | (optional)
- claimToken := "claimToken_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.AgentAuthAPI.Oauth2TokenOauth2TokenPost(context.Background()).GrantType(grantType).Assertion(assertion).ClaimToken(claimToken).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `AgentAuthAPI.Oauth2TokenOauth2TokenPost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `Oauth2TokenOauth2TokenPost`: TokenResponse
- fmt.Fprintf(os.Stdout, "Response from `AgentAuthAPI.Oauth2TokenOauth2TokenPost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiOauth2TokenOauth2TokenPostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **grantType** | **string** | |
- **assertion** | **string** | |
- **claimToken** | **string** | |
-
-### Return type
-
-[**TokenResponse**](TokenResponse.md)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: application/x-www-form-urlencoded
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## OauthAuthorizationServerWellKnownOauthAuthorizationServerGet
-
-> AuthorizationServerMetadataOut OauthAuthorizationServerWellKnownOauthAuthorizationServerGet(ctx).Execute()
-
-Authorization-server metadata (RFC 8414 + auth.md agent_auth block)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.AgentAuthAPI.OauthAuthorizationServerWellKnownOauthAuthorizationServerGet(context.Background()).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `AgentAuthAPI.OauthAuthorizationServerWellKnownOauthAuthorizationServerGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `OauthAuthorizationServerWellKnownOauthAuthorizationServerGet`: AuthorizationServerMetadataOut
- fmt.Fprintf(os.Stdout, "Response from `AgentAuthAPI.OauthAuthorizationServerWellKnownOauthAuthorizationServerGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-This endpoint does not need any parameter.
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiOauthAuthorizationServerWellKnownOauthAuthorizationServerGetRequest struct via the builder pattern
-
-
-### Return type
-
-[**AuthorizationServerMetadataOut**](AuthorizationServerMetadataOut.md)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## OauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGet
-
-> ProtectedResourceMetadataOut OauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGet(ctx).Execute()
-
-Protected-resource metadata for the MCP endpoint (RFC 9728 §3.1)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.AgentAuthAPI.OauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGet(context.Background()).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `AgentAuthAPI.OauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `OauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGet`: ProtectedResourceMetadataOut
- fmt.Fprintf(os.Stdout, "Response from `AgentAuthAPI.OauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-This endpoint does not need any parameter.
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiOauthProtectedResourceMcpWellKnownOauthProtectedResourceMcpGetRequest struct via the builder pattern
-
-
-### Return type
-
-[**ProtectedResourceMetadataOut**](ProtectedResourceMetadataOut.md)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## OauthProtectedResourceWellKnownOauthProtectedResourceGet
-
-> ProtectedResourceMetadataOut OauthProtectedResourceWellKnownOauthProtectedResourceGet(ctx).Execute()
-
-Protected-resource metadata (auth.md / RFC 9728-like discovery)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.AgentAuthAPI.OauthProtectedResourceWellKnownOauthProtectedResourceGet(context.Background()).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `AgentAuthAPI.OauthProtectedResourceWellKnownOauthProtectedResourceGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `OauthProtectedResourceWellKnownOauthProtectedResourceGet`: ProtectedResourceMetadataOut
- fmt.Fprintf(os.Stdout, "Response from `AgentAuthAPI.OauthProtectedResourceWellKnownOauthProtectedResourceGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-This endpoint does not need any parameter.
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiOauthProtectedResourceWellKnownOauthProtectedResourceGetRequest struct via the builder pattern
-
-
-### Return type
-
-[**ProtectedResourceMetadataOut**](ProtectedResourceMetadataOut.md)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## RegisterAgentIdentityAgentIdentityPost
-
-> AnonymousIdentityResponse RegisterAgentIdentityAgentIdentityPost(ctx).RequestBody(requestBody).Execute()
-
-Register an agent identity (anonymous or ID-JAG)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- requestBody := map[string]*interface{}{"key": interface{}(123)} // map[string]*interface{} |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.AgentAuthAPI.RegisterAgentIdentityAgentIdentityPost(context.Background()).RequestBody(requestBody).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `AgentAuthAPI.RegisterAgentIdentityAgentIdentityPost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `RegisterAgentIdentityAgentIdentityPost`: AnonymousIdentityResponse
- fmt.Fprintf(os.Stdout, "Response from `AgentAuthAPI.RegisterAgentIdentityAgentIdentityPost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiRegisterAgentIdentityAgentIdentityPostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **requestBody** | **map[string]interface{}** | |
-
-### Return type
-
-[**AnonymousIdentityResponse**](AnonymousIdentityResponse.md)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
diff --git a/sdk/go/docs/AgentAuthMetadataOut.md b/sdk/go/docs/AgentAuthMetadataOut.md
deleted file mode 100644
index 4d75dcf..0000000
--- a/sdk/go/docs/AgentAuthMetadataOut.md
+++ /dev/null
@@ -1,185 +0,0 @@
-# AgentAuthMetadataOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**ClaimEndpoint** | **string** | |
-**EventsEndpoint** | **NullableString** | |
-**IdentityAssertion** | [**IdentityAssertionMetadataOut**](IdentityAssertionMetadataOut.md) | |
-**IdentityEndpoint** | **string** | |
-**IdentityTypesSupported** | **[]string** | |
-**Skill** | **string** | |
-**SpecVersion** | **string** | |
-
-## Methods
-
-### NewAgentAuthMetadataOut
-
-`func NewAgentAuthMetadataOut(claimEndpoint string, eventsEndpoint NullableString, identityAssertion IdentityAssertionMetadataOut, identityEndpoint string, identityTypesSupported []string, skill string, specVersion string, ) *AgentAuthMetadataOut`
-
-NewAgentAuthMetadataOut instantiates a new AgentAuthMetadataOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewAgentAuthMetadataOutWithDefaults
-
-`func NewAgentAuthMetadataOutWithDefaults() *AgentAuthMetadataOut`
-
-NewAgentAuthMetadataOutWithDefaults instantiates a new AgentAuthMetadataOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetClaimEndpoint
-
-`func (o *AgentAuthMetadataOut) GetClaimEndpoint() string`
-
-GetClaimEndpoint returns the ClaimEndpoint field if non-nil, zero value otherwise.
-
-### GetClaimEndpointOk
-
-`func (o *AgentAuthMetadataOut) GetClaimEndpointOk() (*string, bool)`
-
-GetClaimEndpointOk returns a tuple with the ClaimEndpoint field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetClaimEndpoint
-
-`func (o *AgentAuthMetadataOut) SetClaimEndpoint(v string)`
-
-SetClaimEndpoint sets ClaimEndpoint field to given value.
-
-
-### GetEventsEndpoint
-
-`func (o *AgentAuthMetadataOut) GetEventsEndpoint() string`
-
-GetEventsEndpoint returns the EventsEndpoint field if non-nil, zero value otherwise.
-
-### GetEventsEndpointOk
-
-`func (o *AgentAuthMetadataOut) GetEventsEndpointOk() (*string, bool)`
-
-GetEventsEndpointOk returns a tuple with the EventsEndpoint field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEventsEndpoint
-
-`func (o *AgentAuthMetadataOut) SetEventsEndpoint(v string)`
-
-SetEventsEndpoint sets EventsEndpoint field to given value.
-
-
-### SetEventsEndpointNil
-
-`func (o *AgentAuthMetadataOut) SetEventsEndpointNil(b bool)`
-
- SetEventsEndpointNil sets the value for EventsEndpoint to be an explicit nil
-
-### UnsetEventsEndpoint
-`func (o *AgentAuthMetadataOut) UnsetEventsEndpoint()`
-
-UnsetEventsEndpoint ensures that no value is present for EventsEndpoint, not even an explicit nil
-### GetIdentityAssertion
-
-`func (o *AgentAuthMetadataOut) GetIdentityAssertion() IdentityAssertionMetadataOut`
-
-GetIdentityAssertion returns the IdentityAssertion field if non-nil, zero value otherwise.
-
-### GetIdentityAssertionOk
-
-`func (o *AgentAuthMetadataOut) GetIdentityAssertionOk() (*IdentityAssertionMetadataOut, bool)`
-
-GetIdentityAssertionOk returns a tuple with the IdentityAssertion field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetIdentityAssertion
-
-`func (o *AgentAuthMetadataOut) SetIdentityAssertion(v IdentityAssertionMetadataOut)`
-
-SetIdentityAssertion sets IdentityAssertion field to given value.
-
-
-### GetIdentityEndpoint
-
-`func (o *AgentAuthMetadataOut) GetIdentityEndpoint() string`
-
-GetIdentityEndpoint returns the IdentityEndpoint field if non-nil, zero value otherwise.
-
-### GetIdentityEndpointOk
-
-`func (o *AgentAuthMetadataOut) GetIdentityEndpointOk() (*string, bool)`
-
-GetIdentityEndpointOk returns a tuple with the IdentityEndpoint field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetIdentityEndpoint
-
-`func (o *AgentAuthMetadataOut) SetIdentityEndpoint(v string)`
-
-SetIdentityEndpoint sets IdentityEndpoint field to given value.
-
-
-### GetIdentityTypesSupported
-
-`func (o *AgentAuthMetadataOut) GetIdentityTypesSupported() []string`
-
-GetIdentityTypesSupported returns the IdentityTypesSupported field if non-nil, zero value otherwise.
-
-### GetIdentityTypesSupportedOk
-
-`func (o *AgentAuthMetadataOut) GetIdentityTypesSupportedOk() (*[]string, bool)`
-
-GetIdentityTypesSupportedOk returns a tuple with the IdentityTypesSupported field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetIdentityTypesSupported
-
-`func (o *AgentAuthMetadataOut) SetIdentityTypesSupported(v []string)`
-
-SetIdentityTypesSupported sets IdentityTypesSupported field to given value.
-
-
-### GetSkill
-
-`func (o *AgentAuthMetadataOut) GetSkill() string`
-
-GetSkill returns the Skill field if non-nil, zero value otherwise.
-
-### GetSkillOk
-
-`func (o *AgentAuthMetadataOut) GetSkillOk() (*string, bool)`
-
-GetSkillOk returns a tuple with the Skill field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetSkill
-
-`func (o *AgentAuthMetadataOut) SetSkill(v string)`
-
-SetSkill sets Skill field to given value.
-
-
-### GetSpecVersion
-
-`func (o *AgentAuthMetadataOut) GetSpecVersion() string`
-
-GetSpecVersion returns the SpecVersion field if non-nil, zero value otherwise.
-
-### GetSpecVersionOk
-
-`func (o *AgentAuthMetadataOut) GetSpecVersionOk() (*string, bool)`
-
-GetSpecVersionOk returns a tuple with the SpecVersion field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetSpecVersion
-
-`func (o *AgentAuthMetadataOut) SetSpecVersion(v string)`
-
-SetSpecVersion sets SpecVersion field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/AnonymousIdentityResponse.md b/sdk/go/docs/AnonymousIdentityResponse.md
deleted file mode 100644
index a5384e2..0000000
--- a/sdk/go/docs/AnonymousIdentityResponse.md
+++ /dev/null
@@ -1,154 +0,0 @@
-# AnonymousIdentityResponse
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**AgentIdentityId** | **string** | |
-**ClaimMetadata** | [**ClaimMetadata**](ClaimMetadata.md) | |
-**ClaimToken** | **string** | Opaque server-issued secret. Present at POST /agent/identity/claim and at POST /oauth2/token (grant_type=claim). |
-**DriveId** | **string** | |
-**ExpiresAt** | **time.Time** | |
-**IdentityAssertion** | **string** | JWT signed by AgentDrive, scope=pre_claim. 30-day TTL. |
-
-## Methods
-
-### NewAnonymousIdentityResponse
-
-`func NewAnonymousIdentityResponse(agentIdentityId string, claimMetadata ClaimMetadata, claimToken string, driveId string, expiresAt time.Time, identityAssertion string, ) *AnonymousIdentityResponse`
-
-NewAnonymousIdentityResponse instantiates a new AnonymousIdentityResponse object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewAnonymousIdentityResponseWithDefaults
-
-`func NewAnonymousIdentityResponseWithDefaults() *AnonymousIdentityResponse`
-
-NewAnonymousIdentityResponseWithDefaults instantiates a new AnonymousIdentityResponse object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetAgentIdentityId
-
-`func (o *AnonymousIdentityResponse) GetAgentIdentityId() string`
-
-GetAgentIdentityId returns the AgentIdentityId field if non-nil, zero value otherwise.
-
-### GetAgentIdentityIdOk
-
-`func (o *AnonymousIdentityResponse) GetAgentIdentityIdOk() (*string, bool)`
-
-GetAgentIdentityIdOk returns a tuple with the AgentIdentityId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetAgentIdentityId
-
-`func (o *AnonymousIdentityResponse) SetAgentIdentityId(v string)`
-
-SetAgentIdentityId sets AgentIdentityId field to given value.
-
-
-### GetClaimMetadata
-
-`func (o *AnonymousIdentityResponse) GetClaimMetadata() ClaimMetadata`
-
-GetClaimMetadata returns the ClaimMetadata field if non-nil, zero value otherwise.
-
-### GetClaimMetadataOk
-
-`func (o *AnonymousIdentityResponse) GetClaimMetadataOk() (*ClaimMetadata, bool)`
-
-GetClaimMetadataOk returns a tuple with the ClaimMetadata field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetClaimMetadata
-
-`func (o *AnonymousIdentityResponse) SetClaimMetadata(v ClaimMetadata)`
-
-SetClaimMetadata sets ClaimMetadata field to given value.
-
-
-### GetClaimToken
-
-`func (o *AnonymousIdentityResponse) GetClaimToken() string`
-
-GetClaimToken returns the ClaimToken field if non-nil, zero value otherwise.
-
-### GetClaimTokenOk
-
-`func (o *AnonymousIdentityResponse) GetClaimTokenOk() (*string, bool)`
-
-GetClaimTokenOk returns a tuple with the ClaimToken field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetClaimToken
-
-`func (o *AnonymousIdentityResponse) SetClaimToken(v string)`
-
-SetClaimToken sets ClaimToken field to given value.
-
-
-### GetDriveId
-
-`func (o *AnonymousIdentityResponse) GetDriveId() string`
-
-GetDriveId returns the DriveId field if non-nil, zero value otherwise.
-
-### GetDriveIdOk
-
-`func (o *AnonymousIdentityResponse) GetDriveIdOk() (*string, bool)`
-
-GetDriveIdOk returns a tuple with the DriveId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDriveId
-
-`func (o *AnonymousIdentityResponse) SetDriveId(v string)`
-
-SetDriveId sets DriveId field to given value.
-
-
-### GetExpiresAt
-
-`func (o *AnonymousIdentityResponse) GetExpiresAt() time.Time`
-
-GetExpiresAt returns the ExpiresAt field if non-nil, zero value otherwise.
-
-### GetExpiresAtOk
-
-`func (o *AnonymousIdentityResponse) GetExpiresAtOk() (*time.Time, bool)`
-
-GetExpiresAtOk returns a tuple with the ExpiresAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetExpiresAt
-
-`func (o *AnonymousIdentityResponse) SetExpiresAt(v time.Time)`
-
-SetExpiresAt sets ExpiresAt field to given value.
-
-
-### GetIdentityAssertion
-
-`func (o *AnonymousIdentityResponse) GetIdentityAssertion() string`
-
-GetIdentityAssertion returns the IdentityAssertion field if non-nil, zero value otherwise.
-
-### GetIdentityAssertionOk
-
-`func (o *AnonymousIdentityResponse) GetIdentityAssertionOk() (*string, bool)`
-
-GetIdentityAssertionOk returns a tuple with the IdentityAssertion field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetIdentityAssertion
-
-`func (o *AnonymousIdentityResponse) SetIdentityAssertion(v string)`
-
-SetIdentityAssertion sets IdentityAssertion field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ArtifactCopyIn.md b/sdk/go/docs/ArtifactCopyIn.md
new file mode 100644
index 0000000..5dc1868
--- /dev/null
+++ b/sdk/go/docs/ArtifactCopyIn.md
@@ -0,0 +1,142 @@
+# ArtifactCopyIn
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**DestinationDriveId** | Pointer to **NullableString** | | [optional]
+**DestinationName** | **string** | |
+**DestinationParentId** | **string** | |
+**VersionId** | Pointer to **NullableString** | | [optional]
+
+## Methods
+
+### NewArtifactCopyIn
+
+`func NewArtifactCopyIn(destinationName string, destinationParentId string, ) *ArtifactCopyIn`
+
+NewArtifactCopyIn instantiates a new ArtifactCopyIn object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewArtifactCopyInWithDefaults
+
+`func NewArtifactCopyInWithDefaults() *ArtifactCopyIn`
+
+NewArtifactCopyInWithDefaults instantiates a new ArtifactCopyIn object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetDestinationDriveId
+
+`func (o *ArtifactCopyIn) GetDestinationDriveId() string`
+
+GetDestinationDriveId returns the DestinationDriveId field if non-nil, zero value otherwise.
+
+### GetDestinationDriveIdOk
+
+`func (o *ArtifactCopyIn) GetDestinationDriveIdOk() (*string, bool)`
+
+GetDestinationDriveIdOk returns a tuple with the DestinationDriveId field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetDestinationDriveId
+
+`func (o *ArtifactCopyIn) SetDestinationDriveId(v string)`
+
+SetDestinationDriveId sets DestinationDriveId field to given value.
+
+### HasDestinationDriveId
+
+`func (o *ArtifactCopyIn) HasDestinationDriveId() bool`
+
+HasDestinationDriveId returns a boolean if a field has been set.
+
+### SetDestinationDriveIdNil
+
+`func (o *ArtifactCopyIn) SetDestinationDriveIdNil(b bool)`
+
+ SetDestinationDriveIdNil sets the value for DestinationDriveId to be an explicit nil
+
+### UnsetDestinationDriveId
+`func (o *ArtifactCopyIn) UnsetDestinationDriveId()`
+
+UnsetDestinationDriveId ensures that no value is present for DestinationDriveId, not even an explicit nil
+### GetDestinationName
+
+`func (o *ArtifactCopyIn) GetDestinationName() string`
+
+GetDestinationName returns the DestinationName field if non-nil, zero value otherwise.
+
+### GetDestinationNameOk
+
+`func (o *ArtifactCopyIn) GetDestinationNameOk() (*string, bool)`
+
+GetDestinationNameOk returns a tuple with the DestinationName field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetDestinationName
+
+`func (o *ArtifactCopyIn) SetDestinationName(v string)`
+
+SetDestinationName sets DestinationName field to given value.
+
+
+### GetDestinationParentId
+
+`func (o *ArtifactCopyIn) GetDestinationParentId() string`
+
+GetDestinationParentId returns the DestinationParentId field if non-nil, zero value otherwise.
+
+### GetDestinationParentIdOk
+
+`func (o *ArtifactCopyIn) GetDestinationParentIdOk() (*string, bool)`
+
+GetDestinationParentIdOk returns a tuple with the DestinationParentId field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetDestinationParentId
+
+`func (o *ArtifactCopyIn) SetDestinationParentId(v string)`
+
+SetDestinationParentId sets DestinationParentId field to given value.
+
+
+### GetVersionId
+
+`func (o *ArtifactCopyIn) GetVersionId() string`
+
+GetVersionId returns the VersionId field if non-nil, zero value otherwise.
+
+### GetVersionIdOk
+
+`func (o *ArtifactCopyIn) GetVersionIdOk() (*string, bool)`
+
+GetVersionIdOk returns a tuple with the VersionId field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetVersionId
+
+`func (o *ArtifactCopyIn) SetVersionId(v string)`
+
+SetVersionId sets VersionId field to given value.
+
+### HasVersionId
+
+`func (o *ArtifactCopyIn) HasVersionId() bool`
+
+HasVersionId returns a boolean if a field has been set.
+
+### SetVersionIdNil
+
+`func (o *ArtifactCopyIn) SetVersionIdNil(b bool)`
+
+ SetVersionIdNil sets the value for VersionId to be an explicit nil
+
+### UnsetVersionId
+`func (o *ArtifactCopyIn) UnsetVersionId()`
+
+UnsetVersionId ensures that no value is present for VersionId, not even an explicit nil
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ArtifactDeleteOut.md b/sdk/go/docs/ArtifactDeleteOut.md
deleted file mode 100644
index 2c5538f..0000000
--- a/sdk/go/docs/ArtifactDeleteOut.md
+++ /dev/null
@@ -1,174 +0,0 @@
-# ArtifactDeleteOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**DeletedAt** | **time.Time** | |
-**Id** | **string** | |
-**Ok** | Pointer to **bool** | | [optional] [default to true]
-**Path** | **string** | |
-**PurgeAt** | **time.Time** | |
-**RestoreUrl** | Pointer to **NullableString** | | [optional]
-
-## Methods
-
-### NewArtifactDeleteOut
-
-`func NewArtifactDeleteOut(deletedAt time.Time, id string, path string, purgeAt time.Time, ) *ArtifactDeleteOut`
-
-NewArtifactDeleteOut instantiates a new ArtifactDeleteOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewArtifactDeleteOutWithDefaults
-
-`func NewArtifactDeleteOutWithDefaults() *ArtifactDeleteOut`
-
-NewArtifactDeleteOutWithDefaults instantiates a new ArtifactDeleteOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetDeletedAt
-
-`func (o *ArtifactDeleteOut) GetDeletedAt() time.Time`
-
-GetDeletedAt returns the DeletedAt field if non-nil, zero value otherwise.
-
-### GetDeletedAtOk
-
-`func (o *ArtifactDeleteOut) GetDeletedAtOk() (*time.Time, bool)`
-
-GetDeletedAtOk returns a tuple with the DeletedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDeletedAt
-
-`func (o *ArtifactDeleteOut) SetDeletedAt(v time.Time)`
-
-SetDeletedAt sets DeletedAt field to given value.
-
-
-### GetId
-
-`func (o *ArtifactDeleteOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *ArtifactDeleteOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *ArtifactDeleteOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetOk
-
-`func (o *ArtifactDeleteOut) GetOk() bool`
-
-GetOk returns the Ok field if non-nil, zero value otherwise.
-
-### GetOkOk
-
-`func (o *ArtifactDeleteOut) GetOkOk() (*bool, bool)`
-
-GetOkOk returns a tuple with the Ok field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetOk
-
-`func (o *ArtifactDeleteOut) SetOk(v bool)`
-
-SetOk sets Ok field to given value.
-
-### HasOk
-
-`func (o *ArtifactDeleteOut) HasOk() bool`
-
-HasOk returns a boolean if a field has been set.
-
-### GetPath
-
-`func (o *ArtifactDeleteOut) GetPath() string`
-
-GetPath returns the Path field if non-nil, zero value otherwise.
-
-### GetPathOk
-
-`func (o *ArtifactDeleteOut) GetPathOk() (*string, bool)`
-
-GetPathOk returns a tuple with the Path field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPath
-
-`func (o *ArtifactDeleteOut) SetPath(v string)`
-
-SetPath sets Path field to given value.
-
-
-### GetPurgeAt
-
-`func (o *ArtifactDeleteOut) GetPurgeAt() time.Time`
-
-GetPurgeAt returns the PurgeAt field if non-nil, zero value otherwise.
-
-### GetPurgeAtOk
-
-`func (o *ArtifactDeleteOut) GetPurgeAtOk() (*time.Time, bool)`
-
-GetPurgeAtOk returns a tuple with the PurgeAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPurgeAt
-
-`func (o *ArtifactDeleteOut) SetPurgeAt(v time.Time)`
-
-SetPurgeAt sets PurgeAt field to given value.
-
-
-### GetRestoreUrl
-
-`func (o *ArtifactDeleteOut) GetRestoreUrl() string`
-
-GetRestoreUrl returns the RestoreUrl field if non-nil, zero value otherwise.
-
-### GetRestoreUrlOk
-
-`func (o *ArtifactDeleteOut) GetRestoreUrlOk() (*string, bool)`
-
-GetRestoreUrlOk returns a tuple with the RestoreUrl field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRestoreUrl
-
-`func (o *ArtifactDeleteOut) SetRestoreUrl(v string)`
-
-SetRestoreUrl sets RestoreUrl field to given value.
-
-### HasRestoreUrl
-
-`func (o *ArtifactDeleteOut) HasRestoreUrl() bool`
-
-HasRestoreUrl returns a boolean if a field has been set.
-
-### SetRestoreUrlNil
-
-`func (o *ArtifactDeleteOut) SetRestoreUrlNil(b bool)`
-
- SetRestoreUrlNil sets the value for RestoreUrl to be an explicit nil
-
-### UnsetRestoreUrl
-`func (o *ArtifactDeleteOut) UnsetRestoreUrl()`
-
-UnsetRestoreUrl ensures that no value is present for RestoreUrl, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ArtifactHeadOut.md b/sdk/go/docs/ArtifactHeadOut.md
deleted file mode 100644
index 3e36f5c..0000000
--- a/sdk/go/docs/ArtifactHeadOut.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# ArtifactHeadOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Version** | **int32** | |
-
-## Methods
-
-### NewArtifactHeadOut
-
-`func NewArtifactHeadOut(version int32, ) *ArtifactHeadOut`
-
-NewArtifactHeadOut instantiates a new ArtifactHeadOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewArtifactHeadOutWithDefaults
-
-`func NewArtifactHeadOutWithDefaults() *ArtifactHeadOut`
-
-NewArtifactHeadOutWithDefaults instantiates a new ArtifactHeadOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetVersion
-
-`func (o *ArtifactHeadOut) GetVersion() int32`
-
-GetVersion returns the Version field if non-nil, zero value otherwise.
-
-### GetVersionOk
-
-`func (o *ArtifactHeadOut) GetVersionOk() (*int32, bool)`
-
-GetVersionOk returns a tuple with the Version field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetVersion
-
-`func (o *ArtifactHeadOut) SetVersion(v int32)`
-
-SetVersion sets Version field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ArtifactListOut.md b/sdk/go/docs/ArtifactListOut.md
new file mode 100644
index 0000000..fc0f479
--- /dev/null
+++ b/sdk/go/docs/ArtifactListOut.md
@@ -0,0 +1,80 @@
+# ArtifactListOut
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Items** | [**[]ArtifactOut**](ArtifactOut.md) | |
+**NextCursor** | **NullableString** | |
+
+## Methods
+
+### NewArtifactListOut
+
+`func NewArtifactListOut(items []ArtifactOut, nextCursor NullableString, ) *ArtifactListOut`
+
+NewArtifactListOut instantiates a new ArtifactListOut object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewArtifactListOutWithDefaults
+
+`func NewArtifactListOutWithDefaults() *ArtifactListOut`
+
+NewArtifactListOutWithDefaults instantiates a new ArtifactListOut object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetItems
+
+`func (o *ArtifactListOut) GetItems() []ArtifactOut`
+
+GetItems returns the Items field if non-nil, zero value otherwise.
+
+### GetItemsOk
+
+`func (o *ArtifactListOut) GetItemsOk() (*[]ArtifactOut, bool)`
+
+GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetItems
+
+`func (o *ArtifactListOut) SetItems(v []ArtifactOut)`
+
+SetItems sets Items field to given value.
+
+
+### GetNextCursor
+
+`func (o *ArtifactListOut) GetNextCursor() string`
+
+GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
+
+### GetNextCursorOk
+
+`func (o *ArtifactListOut) GetNextCursorOk() (*string, bool)`
+
+GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetNextCursor
+
+`func (o *ArtifactListOut) SetNextCursor(v string)`
+
+SetNextCursor sets NextCursor field to given value.
+
+
+### SetNextCursorNil
+
+`func (o *ArtifactListOut) SetNextCursorNil(b bool)`
+
+ SetNextCursorNil sets the value for NextCursor to be an explicit nil
+
+### UnsetNextCursor
+`func (o *ArtifactListOut) UnsetNextCursor()`
+
+UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ArtifactMoveIn.md b/sdk/go/docs/ArtifactMoveIn.md
deleted file mode 100644
index df79a16..0000000
--- a/sdk/go/docs/ArtifactMoveIn.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# ArtifactMoveIn
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Path** | **string** | |
-
-## Methods
-
-### NewArtifactMoveIn
-
-`func NewArtifactMoveIn(path string, ) *ArtifactMoveIn`
-
-NewArtifactMoveIn instantiates a new ArtifactMoveIn object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewArtifactMoveInWithDefaults
-
-`func NewArtifactMoveInWithDefaults() *ArtifactMoveIn`
-
-NewArtifactMoveInWithDefaults instantiates a new ArtifactMoveIn object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetPath
-
-`func (o *ArtifactMoveIn) GetPath() string`
-
-GetPath returns the Path field if non-nil, zero value otherwise.
-
-### GetPathOk
-
-`func (o *ArtifactMoveIn) GetPathOk() (*string, bool)`
-
-GetPathOk returns a tuple with the Path field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPath
-
-`func (o *ArtifactMoveIn) SetPath(v string)`
-
-SetPath sets Path field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ArtifactOut.md b/sdk/go/docs/ArtifactOut.md
index 98ad271..f13de15 100644
--- a/sdk/go/docs/ArtifactOut.md
+++ b/sdk/go/docs/ArtifactOut.md
@@ -4,32 +4,27 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**ContentType** | **string** | |
+**ContentPreview** | **NullableString** | |
+**ContentType** | **NullableString** | |
**CreatedAt** | **time.Time** | |
+**DeletedAt** | **NullableTime** | |
**DriveId** | **string** | |
-**EmbeddedAt** | Pointer to **NullableTime** | | [optional]
-**Etag** | **string** | |
-**FileType** | **string** | |
-**Hash** | **string** | |
+**EffectiveVisibility** | **string** | Server-computed exposure summary, resolved over the artifact's live grants, its folder ancestry (bounded by the nearest sealed folder), and the drive. 'public' when any live grant has principal_type 'public'; otherwise 'shared' when a live grant names a principal other than the drive's creator; otherwise 'private'. Describes exposure, NOT the caller's own access. |
+**HeadVersionId** | **NullableString** | |
**Id** | **string** | |
-**IndexedAt** | Pointer to **NullableTime** | | [optional]
-**Labels** | Pointer to **[]string** | | [optional]
-**LlmIndex** | Pointer to **map[string]interface{}** | | [optional]
-**Metadata** | Pointer to **map[string]interface{}** | | [optional]
-**Metageneration** | Pointer to **int32** | | [optional] [default to 1]
-**Path** | **string** | |
-**Permalink** | **string** | |
-**SizeBytes** | **int32** | |
-**Source** | Pointer to [**NullableArtifactSource**](ArtifactSource.md) | | [optional]
+**Labels** | **[]string** | |
+**Metadata** | **map[string]interface{}** | |
+**Name** | **string** | |
+**ParentId** | **string** | |
+**Revision** | **string** | |
+**State** | **string** | |
**UpdatedAt** | **time.Time** | |
-**Url** | **string** | |
-**VersionNumber** | Pointer to **int32** | | [optional] [default to 1]
## Methods
### NewArtifactOut
-`func NewArtifactOut(contentType string, createdAt time.Time, driveId string, etag string, fileType string, hash string, id string, path string, permalink string, sizeBytes int32, updatedAt time.Time, url string, ) *ArtifactOut`
+`func NewArtifactOut(contentPreview NullableString, contentType NullableString, createdAt time.Time, deletedAt NullableTime, driveId string, effectiveVisibility string, headVersionId NullableString, id string, labels []string, metadata map[string]interface{}, name string, parentId string, revision string, state string, updatedAt time.Time, ) *ArtifactOut`
NewArtifactOut instantiates a new ArtifactOut object
This constructor will assign default values to properties that have it defined,
@@ -44,6 +39,36 @@ NewArtifactOutWithDefaults instantiates a new ArtifactOut object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
+### GetContentPreview
+
+`func (o *ArtifactOut) GetContentPreview() string`
+
+GetContentPreview returns the ContentPreview field if non-nil, zero value otherwise.
+
+### GetContentPreviewOk
+
+`func (o *ArtifactOut) GetContentPreviewOk() (*string, bool)`
+
+GetContentPreviewOk returns a tuple with the ContentPreview field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetContentPreview
+
+`func (o *ArtifactOut) SetContentPreview(v string)`
+
+SetContentPreview sets ContentPreview field to given value.
+
+
+### SetContentPreviewNil
+
+`func (o *ArtifactOut) SetContentPreviewNil(b bool)`
+
+ SetContentPreviewNil sets the value for ContentPreview to be an explicit nil
+
+### UnsetContentPreview
+`func (o *ArtifactOut) UnsetContentPreview()`
+
+UnsetContentPreview ensures that no value is present for ContentPreview, not even an explicit nil
### GetContentType
`func (o *ArtifactOut) GetContentType() string`
@@ -64,6 +89,16 @@ and a boolean to check if the value has been set.
SetContentType sets ContentType field to given value.
+### SetContentTypeNil
+
+`func (o *ArtifactOut) SetContentTypeNil(b bool)`
+
+ SetContentTypeNil sets the value for ContentType to be an explicit nil
+
+### UnsetContentType
+`func (o *ArtifactOut) UnsetContentType()`
+
+UnsetContentType ensures that no value is present for ContentType, not even an explicit nil
### GetCreatedAt
`func (o *ArtifactOut) GetCreatedAt() time.Time`
@@ -84,121 +119,106 @@ and a boolean to check if the value has been set.
SetCreatedAt sets CreatedAt field to given value.
-### GetDriveId
+### GetDeletedAt
-`func (o *ArtifactOut) GetDriveId() string`
+`func (o *ArtifactOut) GetDeletedAt() time.Time`
-GetDriveId returns the DriveId field if non-nil, zero value otherwise.
+GetDeletedAt returns the DeletedAt field if non-nil, zero value otherwise.
-### GetDriveIdOk
+### GetDeletedAtOk
-`func (o *ArtifactOut) GetDriveIdOk() (*string, bool)`
+`func (o *ArtifactOut) GetDeletedAtOk() (*time.Time, bool)`
-GetDriveIdOk returns a tuple with the DriveId field if it's non-nil, zero value otherwise
+GetDeletedAtOk returns a tuple with the DeletedAt field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetDriveId
-
-`func (o *ArtifactOut) SetDriveId(v string)`
-
-SetDriveId sets DriveId field to given value.
+### SetDeletedAt
+`func (o *ArtifactOut) SetDeletedAt(v time.Time)`
-### GetEmbeddedAt
+SetDeletedAt sets DeletedAt field to given value.
-`func (o *ArtifactOut) GetEmbeddedAt() time.Time`
-GetEmbeddedAt returns the EmbeddedAt field if non-nil, zero value otherwise.
+### SetDeletedAtNil
-### GetEmbeddedAtOk
+`func (o *ArtifactOut) SetDeletedAtNil(b bool)`
-`func (o *ArtifactOut) GetEmbeddedAtOk() (*time.Time, bool)`
+ SetDeletedAtNil sets the value for DeletedAt to be an explicit nil
-GetEmbeddedAtOk returns a tuple with the EmbeddedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
+### UnsetDeletedAt
+`func (o *ArtifactOut) UnsetDeletedAt()`
-### SetEmbeddedAt
+UnsetDeletedAt ensures that no value is present for DeletedAt, not even an explicit nil
+### GetDriveId
-`func (o *ArtifactOut) SetEmbeddedAt(v time.Time)`
+`func (o *ArtifactOut) GetDriveId() string`
-SetEmbeddedAt sets EmbeddedAt field to given value.
+GetDriveId returns the DriveId field if non-nil, zero value otherwise.
-### HasEmbeddedAt
+### GetDriveIdOk
-`func (o *ArtifactOut) HasEmbeddedAt() bool`
+`func (o *ArtifactOut) GetDriveIdOk() (*string, bool)`
-HasEmbeddedAt returns a boolean if a field has been set.
+GetDriveIdOk returns a tuple with the DriveId field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
-### SetEmbeddedAtNil
+### SetDriveId
-`func (o *ArtifactOut) SetEmbeddedAtNil(b bool)`
+`func (o *ArtifactOut) SetDriveId(v string)`
- SetEmbeddedAtNil sets the value for EmbeddedAt to be an explicit nil
+SetDriveId sets DriveId field to given value.
-### UnsetEmbeddedAt
-`func (o *ArtifactOut) UnsetEmbeddedAt()`
-UnsetEmbeddedAt ensures that no value is present for EmbeddedAt, not even an explicit nil
-### GetEtag
+### GetEffectiveVisibility
-`func (o *ArtifactOut) GetEtag() string`
+`func (o *ArtifactOut) GetEffectiveVisibility() string`
-GetEtag returns the Etag field if non-nil, zero value otherwise.
+GetEffectiveVisibility returns the EffectiveVisibility field if non-nil, zero value otherwise.
-### GetEtagOk
+### GetEffectiveVisibilityOk
-`func (o *ArtifactOut) GetEtagOk() (*string, bool)`
+`func (o *ArtifactOut) GetEffectiveVisibilityOk() (*string, bool)`
-GetEtagOk returns a tuple with the Etag field if it's non-nil, zero value otherwise
+GetEffectiveVisibilityOk returns a tuple with the EffectiveVisibility field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetEtag
+### SetEffectiveVisibility
-`func (o *ArtifactOut) SetEtag(v string)`
+`func (o *ArtifactOut) SetEffectiveVisibility(v string)`
-SetEtag sets Etag field to given value.
+SetEffectiveVisibility sets EffectiveVisibility field to given value.
-### GetFileType
+### GetHeadVersionId
-`func (o *ArtifactOut) GetFileType() string`
+`func (o *ArtifactOut) GetHeadVersionId() string`
-GetFileType returns the FileType field if non-nil, zero value otherwise.
+GetHeadVersionId returns the HeadVersionId field if non-nil, zero value otherwise.
-### GetFileTypeOk
+### GetHeadVersionIdOk
-`func (o *ArtifactOut) GetFileTypeOk() (*string, bool)`
+`func (o *ArtifactOut) GetHeadVersionIdOk() (*string, bool)`
-GetFileTypeOk returns a tuple with the FileType field if it's non-nil, zero value otherwise
+GetHeadVersionIdOk returns a tuple with the HeadVersionId field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetFileType
+### SetHeadVersionId
-`func (o *ArtifactOut) SetFileType(v string)`
+`func (o *ArtifactOut) SetHeadVersionId(v string)`
-SetFileType sets FileType field to given value.
+SetHeadVersionId sets HeadVersionId field to given value.
-### GetHash
+### SetHeadVersionIdNil
-`func (o *ArtifactOut) GetHash() string`
+`func (o *ArtifactOut) SetHeadVersionIdNil(b bool)`
-GetHash returns the Hash field if non-nil, zero value otherwise.
-
-### GetHashOk
-
-`func (o *ArtifactOut) GetHashOk() (*string, bool)`
-
-GetHashOk returns a tuple with the Hash field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetHash
-
-`func (o *ArtifactOut) SetHash(v string)`
-
-SetHash sets Hash field to given value.
+ SetHeadVersionIdNil sets the value for HeadVersionId to be an explicit nil
+### UnsetHeadVersionId
+`func (o *ArtifactOut) UnsetHeadVersionId()`
+UnsetHeadVersionId ensures that no value is present for HeadVersionId, not even an explicit nil
### GetId
`func (o *ArtifactOut) GetId() string`
@@ -219,41 +239,6 @@ and a boolean to check if the value has been set.
SetId sets Id field to given value.
-### GetIndexedAt
-
-`func (o *ArtifactOut) GetIndexedAt() time.Time`
-
-GetIndexedAt returns the IndexedAt field if non-nil, zero value otherwise.
-
-### GetIndexedAtOk
-
-`func (o *ArtifactOut) GetIndexedAtOk() (*time.Time, bool)`
-
-GetIndexedAtOk returns a tuple with the IndexedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetIndexedAt
-
-`func (o *ArtifactOut) SetIndexedAt(v time.Time)`
-
-SetIndexedAt sets IndexedAt field to given value.
-
-### HasIndexedAt
-
-`func (o *ArtifactOut) HasIndexedAt() bool`
-
-HasIndexedAt returns a boolean if a field has been set.
-
-### SetIndexedAtNil
-
-`func (o *ArtifactOut) SetIndexedAtNil(b bool)`
-
- SetIndexedAtNil sets the value for IndexedAt to be an explicit nil
-
-### UnsetIndexedAt
-`func (o *ArtifactOut) UnsetIndexedAt()`
-
-UnsetIndexedAt ensures that no value is present for IndexedAt, not even an explicit nil
### GetLabels
`func (o *ArtifactOut) GetLabels() []string`
@@ -273,47 +258,7 @@ and a boolean to check if the value has been set.
SetLabels sets Labels field to given value.
-### HasLabels
-`func (o *ArtifactOut) HasLabels() bool`
-
-HasLabels returns a boolean if a field has been set.
-
-### GetLlmIndex
-
-`func (o *ArtifactOut) GetLlmIndex() map[string]interface{}`
-
-GetLlmIndex returns the LlmIndex field if non-nil, zero value otherwise.
-
-### GetLlmIndexOk
-
-`func (o *ArtifactOut) GetLlmIndexOk() (*map[string]interface{}, bool)`
-
-GetLlmIndexOk returns a tuple with the LlmIndex field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLlmIndex
-
-`func (o *ArtifactOut) SetLlmIndex(v map[string]interface{})`
-
-SetLlmIndex sets LlmIndex field to given value.
-
-### HasLlmIndex
-
-`func (o *ArtifactOut) HasLlmIndex() bool`
-
-HasLlmIndex returns a boolean if a field has been set.
-
-### SetLlmIndexNil
-
-`func (o *ArtifactOut) SetLlmIndexNil(b bool)`
-
- SetLlmIndexNil sets the value for LlmIndex to be an explicit nil
-
-### UnsetLlmIndex
-`func (o *ArtifactOut) UnsetLlmIndex()`
-
-UnsetLlmIndex ensures that no value is present for LlmIndex, not even an explicit nil
### GetMetadata
`func (o *ArtifactOut) GetMetadata() map[string]interface{}`
@@ -333,132 +278,87 @@ and a boolean to check if the value has been set.
SetMetadata sets Metadata field to given value.
-### HasMetadata
-
-`func (o *ArtifactOut) HasMetadata() bool`
-
-HasMetadata returns a boolean if a field has been set.
-
-### GetMetageneration
-
-`func (o *ArtifactOut) GetMetageneration() int32`
-
-GetMetageneration returns the Metageneration field if non-nil, zero value otherwise.
-
-### GetMetagenerationOk
-
-`func (o *ArtifactOut) GetMetagenerationOk() (*int32, bool)`
-
-GetMetagenerationOk returns a tuple with the Metageneration field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetMetageneration
-
-`func (o *ArtifactOut) SetMetageneration(v int32)`
-
-SetMetageneration sets Metageneration field to given value.
-
-### HasMetageneration
-`func (o *ArtifactOut) HasMetageneration() bool`
+### GetName
-HasMetageneration returns a boolean if a field has been set.
+`func (o *ArtifactOut) GetName() string`
-### GetPath
+GetName returns the Name field if non-nil, zero value otherwise.
-`func (o *ArtifactOut) GetPath() string`
+### GetNameOk
-GetPath returns the Path field if non-nil, zero value otherwise.
+`func (o *ArtifactOut) GetNameOk() (*string, bool)`
-### GetPathOk
-
-`func (o *ArtifactOut) GetPathOk() (*string, bool)`
-
-GetPathOk returns a tuple with the Path field if it's non-nil, zero value otherwise
+GetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetPath
+### SetName
-`func (o *ArtifactOut) SetPath(v string)`
+`func (o *ArtifactOut) SetName(v string)`
-SetPath sets Path field to given value.
+SetName sets Name field to given value.
-### GetPermalink
+### GetParentId
-`func (o *ArtifactOut) GetPermalink() string`
+`func (o *ArtifactOut) GetParentId() string`
-GetPermalink returns the Permalink field if non-nil, zero value otherwise.
+GetParentId returns the ParentId field if non-nil, zero value otherwise.
-### GetPermalinkOk
+### GetParentIdOk
-`func (o *ArtifactOut) GetPermalinkOk() (*string, bool)`
+`func (o *ArtifactOut) GetParentIdOk() (*string, bool)`
-GetPermalinkOk returns a tuple with the Permalink field if it's non-nil, zero value otherwise
+GetParentIdOk returns a tuple with the ParentId field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetPermalink
+### SetParentId
-`func (o *ArtifactOut) SetPermalink(v string)`
+`func (o *ArtifactOut) SetParentId(v string)`
-SetPermalink sets Permalink field to given value.
+SetParentId sets ParentId field to given value.
-### GetSizeBytes
+### GetRevision
-`func (o *ArtifactOut) GetSizeBytes() int32`
+`func (o *ArtifactOut) GetRevision() string`
-GetSizeBytes returns the SizeBytes field if non-nil, zero value otherwise.
+GetRevision returns the Revision field if non-nil, zero value otherwise.
-### GetSizeBytesOk
+### GetRevisionOk
-`func (o *ArtifactOut) GetSizeBytesOk() (*int32, bool)`
+`func (o *ArtifactOut) GetRevisionOk() (*string, bool)`
-GetSizeBytesOk returns a tuple with the SizeBytes field if it's non-nil, zero value otherwise
+GetRevisionOk returns a tuple with the Revision field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetSizeBytes
+### SetRevision
-`func (o *ArtifactOut) SetSizeBytes(v int32)`
+`func (o *ArtifactOut) SetRevision(v string)`
-SetSizeBytes sets SizeBytes field to given value.
+SetRevision sets Revision field to given value.
-### GetSource
+### GetState
-`func (o *ArtifactOut) GetSource() ArtifactSource`
+`func (o *ArtifactOut) GetState() string`
-GetSource returns the Source field if non-nil, zero value otherwise.
+GetState returns the State field if non-nil, zero value otherwise.
-### GetSourceOk
+### GetStateOk
-`func (o *ArtifactOut) GetSourceOk() (*ArtifactSource, bool)`
+`func (o *ArtifactOut) GetStateOk() (*string, bool)`
-GetSourceOk returns a tuple with the Source field if it's non-nil, zero value otherwise
+GetStateOk returns a tuple with the State field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetSource
-
-`func (o *ArtifactOut) SetSource(v ArtifactSource)`
-
-SetSource sets Source field to given value.
-
-### HasSource
-
-`func (o *ArtifactOut) HasSource() bool`
-
-HasSource returns a boolean if a field has been set.
-
-### SetSourceNil
+### SetState
-`func (o *ArtifactOut) SetSourceNil(b bool)`
+`func (o *ArtifactOut) SetState(v string)`
- SetSourceNil sets the value for Source to be an explicit nil
+SetState sets State field to given value.
-### UnsetSource
-`func (o *ArtifactOut) UnsetSource()`
-UnsetSource ensures that no value is present for Source, not even an explicit nil
### GetUpdatedAt
`func (o *ArtifactOut) GetUpdatedAt() time.Time`
@@ -479,50 +379,5 @@ and a boolean to check if the value has been set.
SetUpdatedAt sets UpdatedAt field to given value.
-### GetUrl
-
-`func (o *ArtifactOut) GetUrl() string`
-
-GetUrl returns the Url field if non-nil, zero value otherwise.
-
-### GetUrlOk
-
-`func (o *ArtifactOut) GetUrlOk() (*string, bool)`
-
-GetUrlOk returns a tuple with the Url field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetUrl
-
-`func (o *ArtifactOut) SetUrl(v string)`
-
-SetUrl sets Url field to given value.
-
-
-### GetVersionNumber
-
-`func (o *ArtifactOut) GetVersionNumber() int32`
-
-GetVersionNumber returns the VersionNumber field if non-nil, zero value otherwise.
-
-### GetVersionNumberOk
-
-`func (o *ArtifactOut) GetVersionNumberOk() (*int32, bool)`
-
-GetVersionNumberOk returns a tuple with the VersionNumber field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetVersionNumber
-
-`func (o *ArtifactOut) SetVersionNumber(v int32)`
-
-SetVersionNumber sets VersionNumber field to given value.
-
-### HasVersionNumber
-
-`func (o *ArtifactOut) HasVersionNumber() bool`
-
-HasVersionNumber returns a boolean if a field has been set.
-
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ArtifactPatchIn.md b/sdk/go/docs/ArtifactPatchIn.md
deleted file mode 100644
index 1a642a1..0000000
--- a/sdk/go/docs/ArtifactPatchIn.md
+++ /dev/null
@@ -1,136 +0,0 @@
-# ArtifactPatchIn
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Labels** | Pointer to **[]string** | | [optional]
-**Metadata** | Pointer to **map[string]interface{}** | | [optional]
-**Source** | Pointer to [**NullableArtifactSource**](ArtifactSource.md) | | [optional]
-
-## Methods
-
-### NewArtifactPatchIn
-
-`func NewArtifactPatchIn() *ArtifactPatchIn`
-
-NewArtifactPatchIn instantiates a new ArtifactPatchIn object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewArtifactPatchInWithDefaults
-
-`func NewArtifactPatchInWithDefaults() *ArtifactPatchIn`
-
-NewArtifactPatchInWithDefaults instantiates a new ArtifactPatchIn object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetLabels
-
-`func (o *ArtifactPatchIn) GetLabels() []string`
-
-GetLabels returns the Labels field if non-nil, zero value otherwise.
-
-### GetLabelsOk
-
-`func (o *ArtifactPatchIn) GetLabelsOk() (*[]string, bool)`
-
-GetLabelsOk returns a tuple with the Labels field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLabels
-
-`func (o *ArtifactPatchIn) SetLabels(v []string)`
-
-SetLabels sets Labels field to given value.
-
-### HasLabels
-
-`func (o *ArtifactPatchIn) HasLabels() bool`
-
-HasLabels returns a boolean if a field has been set.
-
-### SetLabelsNil
-
-`func (o *ArtifactPatchIn) SetLabelsNil(b bool)`
-
- SetLabelsNil sets the value for Labels to be an explicit nil
-
-### UnsetLabels
-`func (o *ArtifactPatchIn) UnsetLabels()`
-
-UnsetLabels ensures that no value is present for Labels, not even an explicit nil
-### GetMetadata
-
-`func (o *ArtifactPatchIn) GetMetadata() map[string]interface{}`
-
-GetMetadata returns the Metadata field if non-nil, zero value otherwise.
-
-### GetMetadataOk
-
-`func (o *ArtifactPatchIn) GetMetadataOk() (*map[string]interface{}, bool)`
-
-GetMetadataOk returns a tuple with the Metadata field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetMetadata
-
-`func (o *ArtifactPatchIn) SetMetadata(v map[string]interface{})`
-
-SetMetadata sets Metadata field to given value.
-
-### HasMetadata
-
-`func (o *ArtifactPatchIn) HasMetadata() bool`
-
-HasMetadata returns a boolean if a field has been set.
-
-### SetMetadataNil
-
-`func (o *ArtifactPatchIn) SetMetadataNil(b bool)`
-
- SetMetadataNil sets the value for Metadata to be an explicit nil
-
-### UnsetMetadata
-`func (o *ArtifactPatchIn) UnsetMetadata()`
-
-UnsetMetadata ensures that no value is present for Metadata, not even an explicit nil
-### GetSource
-
-`func (o *ArtifactPatchIn) GetSource() ArtifactSource`
-
-GetSource returns the Source field if non-nil, zero value otherwise.
-
-### GetSourceOk
-
-`func (o *ArtifactPatchIn) GetSourceOk() (*ArtifactSource, bool)`
-
-GetSourceOk returns a tuple with the Source field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetSource
-
-`func (o *ArtifactPatchIn) SetSource(v ArtifactSource)`
-
-SetSource sets Source field to given value.
-
-### HasSource
-
-`func (o *ArtifactPatchIn) HasSource() bool`
-
-HasSource returns a boolean if a field has been set.
-
-### SetSourceNil
-
-`func (o *ArtifactPatchIn) SetSourceNil(b bool)`
-
- SetSourceNil sets the value for Source to be an explicit nil
-
-### UnsetSource
-`func (o *ArtifactPatchIn) UnsetSource()`
-
-UnsetSource ensures that no value is present for Source, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ArtifactSource.md b/sdk/go/docs/ArtifactSource.md
deleted file mode 100644
index 2544a19..0000000
--- a/sdk/go/docs/ArtifactSource.md
+++ /dev/null
@@ -1,54 +0,0 @@
-# ArtifactSource
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Refs** | Pointer to [**[]SourceRef**](SourceRef.md) | | [optional]
-
-## Methods
-
-### NewArtifactSource
-
-`func NewArtifactSource() *ArtifactSource`
-
-NewArtifactSource instantiates a new ArtifactSource object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewArtifactSourceWithDefaults
-
-`func NewArtifactSourceWithDefaults() *ArtifactSource`
-
-NewArtifactSourceWithDefaults instantiates a new ArtifactSource object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetRefs
-
-`func (o *ArtifactSource) GetRefs() []SourceRef`
-
-GetRefs returns the Refs field if non-nil, zero value otherwise.
-
-### GetRefsOk
-
-`func (o *ArtifactSource) GetRefsOk() (*[]SourceRef, bool)`
-
-GetRefsOk returns a tuple with the Refs field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRefs
-
-`func (o *ArtifactSource) SetRefs(v []SourceRef)`
-
-SetRefs sets Refs field to given value.
-
-### HasRefs
-
-`func (o *ArtifactSource) HasRefs() bool`
-
-HasRefs returns a boolean if a field has been set.
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ArtifactUpdateIn.md b/sdk/go/docs/ArtifactUpdateIn.md
new file mode 100644
index 0000000..d521d17
--- /dev/null
+++ b/sdk/go/docs/ArtifactUpdateIn.md
@@ -0,0 +1,172 @@
+# ArtifactUpdateIn
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Labels** | Pointer to **[]string** | | [optional]
+**Metadata** | Pointer to **map[string]interface{}** | | [optional]
+**Name** | Pointer to **NullableString** | | [optional]
+**ParentId** | Pointer to **NullableString** | | [optional]
+
+## Methods
+
+### NewArtifactUpdateIn
+
+`func NewArtifactUpdateIn() *ArtifactUpdateIn`
+
+NewArtifactUpdateIn instantiates a new ArtifactUpdateIn object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewArtifactUpdateInWithDefaults
+
+`func NewArtifactUpdateInWithDefaults() *ArtifactUpdateIn`
+
+NewArtifactUpdateInWithDefaults instantiates a new ArtifactUpdateIn object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetLabels
+
+`func (o *ArtifactUpdateIn) GetLabels() []string`
+
+GetLabels returns the Labels field if non-nil, zero value otherwise.
+
+### GetLabelsOk
+
+`func (o *ArtifactUpdateIn) GetLabelsOk() (*[]string, bool)`
+
+GetLabelsOk returns a tuple with the Labels field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetLabels
+
+`func (o *ArtifactUpdateIn) SetLabels(v []string)`
+
+SetLabels sets Labels field to given value.
+
+### HasLabels
+
+`func (o *ArtifactUpdateIn) HasLabels() bool`
+
+HasLabels returns a boolean if a field has been set.
+
+### SetLabelsNil
+
+`func (o *ArtifactUpdateIn) SetLabelsNil(b bool)`
+
+ SetLabelsNil sets the value for Labels to be an explicit nil
+
+### UnsetLabels
+`func (o *ArtifactUpdateIn) UnsetLabels()`
+
+UnsetLabels ensures that no value is present for Labels, not even an explicit nil
+### GetMetadata
+
+`func (o *ArtifactUpdateIn) GetMetadata() map[string]interface{}`
+
+GetMetadata returns the Metadata field if non-nil, zero value otherwise.
+
+### GetMetadataOk
+
+`func (o *ArtifactUpdateIn) GetMetadataOk() (*map[string]interface{}, bool)`
+
+GetMetadataOk returns a tuple with the Metadata field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetMetadata
+
+`func (o *ArtifactUpdateIn) SetMetadata(v map[string]interface{})`
+
+SetMetadata sets Metadata field to given value.
+
+### HasMetadata
+
+`func (o *ArtifactUpdateIn) HasMetadata() bool`
+
+HasMetadata returns a boolean if a field has been set.
+
+### SetMetadataNil
+
+`func (o *ArtifactUpdateIn) SetMetadataNil(b bool)`
+
+ SetMetadataNil sets the value for Metadata to be an explicit nil
+
+### UnsetMetadata
+`func (o *ArtifactUpdateIn) UnsetMetadata()`
+
+UnsetMetadata ensures that no value is present for Metadata, not even an explicit nil
+### GetName
+
+`func (o *ArtifactUpdateIn) GetName() string`
+
+GetName returns the Name field if non-nil, zero value otherwise.
+
+### GetNameOk
+
+`func (o *ArtifactUpdateIn) GetNameOk() (*string, bool)`
+
+GetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetName
+
+`func (o *ArtifactUpdateIn) SetName(v string)`
+
+SetName sets Name field to given value.
+
+### HasName
+
+`func (o *ArtifactUpdateIn) HasName() bool`
+
+HasName returns a boolean if a field has been set.
+
+### SetNameNil
+
+`func (o *ArtifactUpdateIn) SetNameNil(b bool)`
+
+ SetNameNil sets the value for Name to be an explicit nil
+
+### UnsetName
+`func (o *ArtifactUpdateIn) UnsetName()`
+
+UnsetName ensures that no value is present for Name, not even an explicit nil
+### GetParentId
+
+`func (o *ArtifactUpdateIn) GetParentId() string`
+
+GetParentId returns the ParentId field if non-nil, zero value otherwise.
+
+### GetParentIdOk
+
+`func (o *ArtifactUpdateIn) GetParentIdOk() (*string, bool)`
+
+GetParentIdOk returns a tuple with the ParentId field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetParentId
+
+`func (o *ArtifactUpdateIn) SetParentId(v string)`
+
+SetParentId sets ParentId field to given value.
+
+### HasParentId
+
+`func (o *ArtifactUpdateIn) HasParentId() bool`
+
+HasParentId returns a boolean if a field has been set.
+
+### SetParentIdNil
+
+`func (o *ArtifactUpdateIn) SetParentIdNil(b bool)`
+
+ SetParentIdNil sets the value for ParentId to be an explicit nil
+
+### UnsetParentId
+`func (o *ArtifactUpdateIn) UnsetParentId()`
+
+UnsetParentId ensures that no value is present for ParentId, not even an explicit nil
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ArtifactsAPI.md b/sdk/go/docs/ArtifactsAPI.md
new file mode 100644
index 0000000..d63e94e
--- /dev/null
+++ b/sdk/go/docs/ArtifactsAPI.md
@@ -0,0 +1,666 @@
+# \ArtifactsAPI
+
+All URIs are relative to *https://api.agentdrive.run*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**ArtifactsContent**](ArtifactsAPI.md#ArtifactsContent) | **Get** /v0/drives/{drive_id}/artifacts/{artifact_id}/content | Read Artifact Content
+[**ArtifactsCopy**](ArtifactsAPI.md#ArtifactsCopy) | **Post** /v0/drives/{drive_id}/artifacts/{artifact_id}/copy | Copy Artifact
+[**ArtifactsCreate**](ArtifactsAPI.md#ArtifactsCreate) | **Post** /v0/drives/{drive_id}/artifacts | Create Artifact
+[**ArtifactsDelete**](ArtifactsAPI.md#ArtifactsDelete) | **Delete** /v0/drives/{drive_id}/artifacts/{artifact_id} | Delete Artifact
+[**ArtifactsList**](ArtifactsAPI.md#ArtifactsList) | **Get** /v0/drives/{drive_id}/artifacts | List Artifacts
+[**ArtifactsRead**](ArtifactsAPI.md#ArtifactsRead) | **Get** /v0/drives/{drive_id}/artifacts/{artifact_id} | Read Artifact
+[**ArtifactsRestore**](ArtifactsAPI.md#ArtifactsRestore) | **Post** /v0/drives/{drive_id}/artifacts/{artifact_id}/restore | Restore Artifact
+[**ArtifactsUpdate**](ArtifactsAPI.md#ArtifactsUpdate) | **Patch** /v0/drives/{drive_id}/artifacts/{artifact_id} | Update Artifact
+
+
+
+## ArtifactsContent
+
+> *os.File ArtifactsContent(ctx, driveId, artifactId).IfNoneMatch(ifNoneMatch).Authorization(authorization).Execute()
+
+Read Artifact Content
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ artifactId := "artifactId_example" // string |
+ ifNoneMatch := "ifNoneMatch_example" // string | (optional)
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.ArtifactsAPI.ArtifactsContent(context.Background(), driveId, artifactId).IfNoneMatch(ifNoneMatch).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `ArtifactsAPI.ArtifactsContent``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `ArtifactsContent`: *os.File
+ fmt.Fprintf(os.Stdout, "Response from `ArtifactsAPI.ArtifactsContent`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**artifactId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiArtifactsContentRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **ifNoneMatch** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[***os.File**](*os.File.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/octet-stream, application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## ArtifactsCopy
+
+> ArtifactOut ArtifactsCopy(ctx, driveId, artifactId).IdempotencyKey(idempotencyKey).ArtifactCopyIn(artifactCopyIn).IfMatch(ifMatch).Authorization(authorization).Execute()
+
+Copy Artifact
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ artifactId := "artifactId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ artifactCopyIn := *openapiclient.NewArtifactCopyIn("DestinationName_example", "DestinationParentId_example") // ArtifactCopyIn |
+ ifMatch := "ifMatch_example" // string | (optional)
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.ArtifactsAPI.ArtifactsCopy(context.Background(), driveId, artifactId).IdempotencyKey(idempotencyKey).ArtifactCopyIn(artifactCopyIn).IfMatch(ifMatch).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `ArtifactsAPI.ArtifactsCopy``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `ArtifactsCopy`: ArtifactOut
+ fmt.Fprintf(os.Stdout, "Response from `ArtifactsAPI.ArtifactsCopy`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**artifactId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiArtifactsCopyRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **idempotencyKey** | **string** | |
+ **artifactCopyIn** | [**ArtifactCopyIn**](ArtifactCopyIn.md) | |
+ **ifMatch** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**ArtifactOut**](ArtifactOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## ArtifactsCreate
+
+> ArtifactOut ArtifactsCreate(ctx, driveId).IdempotencyKey(idempotencyKey).Content(content).Name(name).ParentId(parentId).Authorization(authorization).ContentType(contentType).Metadata(metadata).Sha256(sha256).Execute()
+
+Create Artifact
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ content := os.NewFile(1234, "some_file") // *os.File | The artifact bytes.
+ name := "name_example" // string | Artifact name.
+ parentId := "parentId_example" // string | Destination folder id (fld_*).
+ authorization := "authorization_example" // string | (optional)
+ contentType := "contentType_example" // string | Declared media type. (optional)
+ metadata := map[string]interface{}{ ... } // map[string]interface{} | Free-form JSON metadata. (optional)
+ sha256 := "sha256_example" // string | Optional content sha256 for verification. (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.ArtifactsAPI.ArtifactsCreate(context.Background(), driveId).IdempotencyKey(idempotencyKey).Content(content).Name(name).ParentId(parentId).Authorization(authorization).ContentType(contentType).Metadata(metadata).Sha256(sha256).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `ArtifactsAPI.ArtifactsCreate``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `ArtifactsCreate`: ArtifactOut
+ fmt.Fprintf(os.Stdout, "Response from `ArtifactsAPI.ArtifactsCreate`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiArtifactsCreateRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+ **idempotencyKey** | **string** | |
+ **content** | ***os.File** | The artifact bytes. |
+ **name** | **string** | Artifact name. |
+ **parentId** | **string** | Destination folder id (fld_*). |
+ **authorization** | **string** | |
+ **contentType** | **string** | Declared media type. |
+ **metadata** | [**map[string]interface{}**](map[string]interface{}.md) | Free-form JSON metadata. |
+ **sha256** | **string** | Optional content sha256 for verification. |
+
+### Return type
+
+[**ArtifactOut**](ArtifactOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: multipart/form-data
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## ArtifactsDelete
+
+> ArtifactOut ArtifactsDelete(ctx, driveId, artifactId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Authorization(authorization).Execute()
+
+Delete Artifact
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ artifactId := "artifactId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ ifMatch := "ifMatch_example" // string |
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.ArtifactsAPI.ArtifactsDelete(context.Background(), driveId, artifactId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `ArtifactsAPI.ArtifactsDelete``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `ArtifactsDelete`: ArtifactOut
+ fmt.Fprintf(os.Stdout, "Response from `ArtifactsAPI.ArtifactsDelete`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**artifactId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiArtifactsDeleteRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **idempotencyKey** | **string** | |
+ **ifMatch** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**ArtifactOut**](ArtifactOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## ArtifactsList
+
+> ArtifactListOut ArtifactsList(ctx, driveId).Lifecycle(lifecycle).Limit(limit).Cursor(cursor).ParentId(parentId).Name(name).ContentType(contentType).Label(label).UpdatedAfter(updatedAfter).UpdatedBefore(updatedBefore).Authorization(authorization).Execute()
+
+List Artifacts
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ "time"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ lifecycle := "lifecycle_example" // string | (optional) (default to "active")
+ limit := int32(56) // int32 | (optional)
+ cursor := "cursor_example" // string | (optional)
+ parentId := "parentId_example" // string | (optional)
+ name := "name_example" // string | (optional)
+ contentType := "contentType_example" // string | (optional)
+ label := "label_example" // string | (optional)
+ updatedAfter := time.Now() // time.Time | (optional)
+ updatedBefore := time.Now() // time.Time | (optional)
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.ArtifactsAPI.ArtifactsList(context.Background(), driveId).Lifecycle(lifecycle).Limit(limit).Cursor(cursor).ParentId(parentId).Name(name).ContentType(contentType).Label(label).UpdatedAfter(updatedAfter).UpdatedBefore(updatedBefore).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `ArtifactsAPI.ArtifactsList``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `ArtifactsList`: ArtifactListOut
+ fmt.Fprintf(os.Stdout, "Response from `ArtifactsAPI.ArtifactsList`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiArtifactsListRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+ **lifecycle** | **string** | | [default to "active"]
+ **limit** | **int32** | |
+ **cursor** | **string** | |
+ **parentId** | **string** | |
+ **name** | **string** | |
+ **contentType** | **string** | |
+ **label** | **string** | |
+ **updatedAfter** | **time.Time** | |
+ **updatedBefore** | **time.Time** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**ArtifactListOut**](ArtifactListOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## ArtifactsRead
+
+> ArtifactOut ArtifactsRead(ctx, driveId, artifactId).IfNoneMatch(ifNoneMatch).Authorization(authorization).Execute()
+
+Read Artifact
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ artifactId := "artifactId_example" // string |
+ ifNoneMatch := "ifNoneMatch_example" // string | (optional)
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.ArtifactsAPI.ArtifactsRead(context.Background(), driveId, artifactId).IfNoneMatch(ifNoneMatch).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `ArtifactsAPI.ArtifactsRead``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `ArtifactsRead`: ArtifactOut
+ fmt.Fprintf(os.Stdout, "Response from `ArtifactsAPI.ArtifactsRead`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**artifactId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiArtifactsReadRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **ifNoneMatch** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**ArtifactOut**](ArtifactOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## ArtifactsRestore
+
+> ArtifactOut ArtifactsRestore(ctx, driveId, artifactId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Authorization(authorization).Execute()
+
+Restore Artifact
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ artifactId := "artifactId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ ifMatch := "ifMatch_example" // string |
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.ArtifactsAPI.ArtifactsRestore(context.Background(), driveId, artifactId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `ArtifactsAPI.ArtifactsRestore``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `ArtifactsRestore`: ArtifactOut
+ fmt.Fprintf(os.Stdout, "Response from `ArtifactsAPI.ArtifactsRestore`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**artifactId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiArtifactsRestoreRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **idempotencyKey** | **string** | |
+ **ifMatch** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**ArtifactOut**](ArtifactOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## ArtifactsUpdate
+
+> ArtifactOut ArtifactsUpdate(ctx, driveId, artifactId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).ArtifactUpdateIn(artifactUpdateIn).Authorization(authorization).Execute()
+
+Update Artifact
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ artifactId := "artifactId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ ifMatch := "ifMatch_example" // string |
+ artifactUpdateIn := *openapiclient.NewArtifactUpdateIn() // ArtifactUpdateIn |
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.ArtifactsAPI.ArtifactsUpdate(context.Background(), driveId, artifactId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).ArtifactUpdateIn(artifactUpdateIn).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `ArtifactsAPI.ArtifactsUpdate``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `ArtifactsUpdate`: ArtifactOut
+ fmt.Fprintf(os.Stdout, "Response from `ArtifactsAPI.ArtifactsUpdate`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**artifactId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiArtifactsUpdateRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **idempotencyKey** | **string** | |
+ **ifMatch** | **string** | |
+ **artifactUpdateIn** | [**ArtifactUpdateIn**](ArtifactUpdateIn.md) | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**ArtifactOut**](ArtifactOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
diff --git a/sdk/go/docs/AuthorizationServerMetadataOut.md b/sdk/go/docs/AuthorizationServerMetadataOut.md
deleted file mode 100644
index 6a6b68e..0000000
--- a/sdk/go/docs/AuthorizationServerMetadataOut.md
+++ /dev/null
@@ -1,343 +0,0 @@
-# AuthorizationServerMetadataOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**AgentAuth** | [**AgentAuthMetadataOut**](AgentAuthMetadataOut.md) | |
-**AuthorizationEndpoint** | **string** | |
-**AuthorizationResponseIssParameterSupported** | **bool** | |
-**CodeChallengeMethodsSupported** | **[]string** | |
-**GrantTypesSupported** | **[]string** | |
-**Issuer** | **string** | |
-**JwksUri** | **string** | |
-**RegistrationEndpoint** | **string** | |
-**ResponseModesSupported** | **[]string** | |
-**ResponseTypesSupported** | **[]string** | |
-**RevocationEndpoint** | **string** | |
-**RevocationEndpointAuthMethodsSupported** | **[]string** | |
-**ScopesSupported** | **[]string** | |
-**TokenEndpoint** | **string** | |
-**TokenEndpointAuthMethodsSupported** | **[]string** | |
-
-## Methods
-
-### NewAuthorizationServerMetadataOut
-
-`func NewAuthorizationServerMetadataOut(agentAuth AgentAuthMetadataOut, authorizationEndpoint string, authorizationResponseIssParameterSupported bool, codeChallengeMethodsSupported []string, grantTypesSupported []string, issuer string, jwksUri string, registrationEndpoint string, responseModesSupported []string, responseTypesSupported []string, revocationEndpoint string, revocationEndpointAuthMethodsSupported []string, scopesSupported []string, tokenEndpoint string, tokenEndpointAuthMethodsSupported []string, ) *AuthorizationServerMetadataOut`
-
-NewAuthorizationServerMetadataOut instantiates a new AuthorizationServerMetadataOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewAuthorizationServerMetadataOutWithDefaults
-
-`func NewAuthorizationServerMetadataOutWithDefaults() *AuthorizationServerMetadataOut`
-
-NewAuthorizationServerMetadataOutWithDefaults instantiates a new AuthorizationServerMetadataOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetAgentAuth
-
-`func (o *AuthorizationServerMetadataOut) GetAgentAuth() AgentAuthMetadataOut`
-
-GetAgentAuth returns the AgentAuth field if non-nil, zero value otherwise.
-
-### GetAgentAuthOk
-
-`func (o *AuthorizationServerMetadataOut) GetAgentAuthOk() (*AgentAuthMetadataOut, bool)`
-
-GetAgentAuthOk returns a tuple with the AgentAuth field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetAgentAuth
-
-`func (o *AuthorizationServerMetadataOut) SetAgentAuth(v AgentAuthMetadataOut)`
-
-SetAgentAuth sets AgentAuth field to given value.
-
-
-### GetAuthorizationEndpoint
-
-`func (o *AuthorizationServerMetadataOut) GetAuthorizationEndpoint() string`
-
-GetAuthorizationEndpoint returns the AuthorizationEndpoint field if non-nil, zero value otherwise.
-
-### GetAuthorizationEndpointOk
-
-`func (o *AuthorizationServerMetadataOut) GetAuthorizationEndpointOk() (*string, bool)`
-
-GetAuthorizationEndpointOk returns a tuple with the AuthorizationEndpoint field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetAuthorizationEndpoint
-
-`func (o *AuthorizationServerMetadataOut) SetAuthorizationEndpoint(v string)`
-
-SetAuthorizationEndpoint sets AuthorizationEndpoint field to given value.
-
-
-### GetAuthorizationResponseIssParameterSupported
-
-`func (o *AuthorizationServerMetadataOut) GetAuthorizationResponseIssParameterSupported() bool`
-
-GetAuthorizationResponseIssParameterSupported returns the AuthorizationResponseIssParameterSupported field if non-nil, zero value otherwise.
-
-### GetAuthorizationResponseIssParameterSupportedOk
-
-`func (o *AuthorizationServerMetadataOut) GetAuthorizationResponseIssParameterSupportedOk() (*bool, bool)`
-
-GetAuthorizationResponseIssParameterSupportedOk returns a tuple with the AuthorizationResponseIssParameterSupported field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetAuthorizationResponseIssParameterSupported
-
-`func (o *AuthorizationServerMetadataOut) SetAuthorizationResponseIssParameterSupported(v bool)`
-
-SetAuthorizationResponseIssParameterSupported sets AuthorizationResponseIssParameterSupported field to given value.
-
-
-### GetCodeChallengeMethodsSupported
-
-`func (o *AuthorizationServerMetadataOut) GetCodeChallengeMethodsSupported() []string`
-
-GetCodeChallengeMethodsSupported returns the CodeChallengeMethodsSupported field if non-nil, zero value otherwise.
-
-### GetCodeChallengeMethodsSupportedOk
-
-`func (o *AuthorizationServerMetadataOut) GetCodeChallengeMethodsSupportedOk() (*[]string, bool)`
-
-GetCodeChallengeMethodsSupportedOk returns a tuple with the CodeChallengeMethodsSupported field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCodeChallengeMethodsSupported
-
-`func (o *AuthorizationServerMetadataOut) SetCodeChallengeMethodsSupported(v []string)`
-
-SetCodeChallengeMethodsSupported sets CodeChallengeMethodsSupported field to given value.
-
-
-### GetGrantTypesSupported
-
-`func (o *AuthorizationServerMetadataOut) GetGrantTypesSupported() []string`
-
-GetGrantTypesSupported returns the GrantTypesSupported field if non-nil, zero value otherwise.
-
-### GetGrantTypesSupportedOk
-
-`func (o *AuthorizationServerMetadataOut) GetGrantTypesSupportedOk() (*[]string, bool)`
-
-GetGrantTypesSupportedOk returns a tuple with the GrantTypesSupported field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetGrantTypesSupported
-
-`func (o *AuthorizationServerMetadataOut) SetGrantTypesSupported(v []string)`
-
-SetGrantTypesSupported sets GrantTypesSupported field to given value.
-
-
-### GetIssuer
-
-`func (o *AuthorizationServerMetadataOut) GetIssuer() string`
-
-GetIssuer returns the Issuer field if non-nil, zero value otherwise.
-
-### GetIssuerOk
-
-`func (o *AuthorizationServerMetadataOut) GetIssuerOk() (*string, bool)`
-
-GetIssuerOk returns a tuple with the Issuer field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetIssuer
-
-`func (o *AuthorizationServerMetadataOut) SetIssuer(v string)`
-
-SetIssuer sets Issuer field to given value.
-
-
-### GetJwksUri
-
-`func (o *AuthorizationServerMetadataOut) GetJwksUri() string`
-
-GetJwksUri returns the JwksUri field if non-nil, zero value otherwise.
-
-### GetJwksUriOk
-
-`func (o *AuthorizationServerMetadataOut) GetJwksUriOk() (*string, bool)`
-
-GetJwksUriOk returns a tuple with the JwksUri field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetJwksUri
-
-`func (o *AuthorizationServerMetadataOut) SetJwksUri(v string)`
-
-SetJwksUri sets JwksUri field to given value.
-
-
-### GetRegistrationEndpoint
-
-`func (o *AuthorizationServerMetadataOut) GetRegistrationEndpoint() string`
-
-GetRegistrationEndpoint returns the RegistrationEndpoint field if non-nil, zero value otherwise.
-
-### GetRegistrationEndpointOk
-
-`func (o *AuthorizationServerMetadataOut) GetRegistrationEndpointOk() (*string, bool)`
-
-GetRegistrationEndpointOk returns a tuple with the RegistrationEndpoint field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRegistrationEndpoint
-
-`func (o *AuthorizationServerMetadataOut) SetRegistrationEndpoint(v string)`
-
-SetRegistrationEndpoint sets RegistrationEndpoint field to given value.
-
-
-### GetResponseModesSupported
-
-`func (o *AuthorizationServerMetadataOut) GetResponseModesSupported() []string`
-
-GetResponseModesSupported returns the ResponseModesSupported field if non-nil, zero value otherwise.
-
-### GetResponseModesSupportedOk
-
-`func (o *AuthorizationServerMetadataOut) GetResponseModesSupportedOk() (*[]string, bool)`
-
-GetResponseModesSupportedOk returns a tuple with the ResponseModesSupported field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetResponseModesSupported
-
-`func (o *AuthorizationServerMetadataOut) SetResponseModesSupported(v []string)`
-
-SetResponseModesSupported sets ResponseModesSupported field to given value.
-
-
-### GetResponseTypesSupported
-
-`func (o *AuthorizationServerMetadataOut) GetResponseTypesSupported() []string`
-
-GetResponseTypesSupported returns the ResponseTypesSupported field if non-nil, zero value otherwise.
-
-### GetResponseTypesSupportedOk
-
-`func (o *AuthorizationServerMetadataOut) GetResponseTypesSupportedOk() (*[]string, bool)`
-
-GetResponseTypesSupportedOk returns a tuple with the ResponseTypesSupported field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetResponseTypesSupported
-
-`func (o *AuthorizationServerMetadataOut) SetResponseTypesSupported(v []string)`
-
-SetResponseTypesSupported sets ResponseTypesSupported field to given value.
-
-
-### GetRevocationEndpoint
-
-`func (o *AuthorizationServerMetadataOut) GetRevocationEndpoint() string`
-
-GetRevocationEndpoint returns the RevocationEndpoint field if non-nil, zero value otherwise.
-
-### GetRevocationEndpointOk
-
-`func (o *AuthorizationServerMetadataOut) GetRevocationEndpointOk() (*string, bool)`
-
-GetRevocationEndpointOk returns a tuple with the RevocationEndpoint field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRevocationEndpoint
-
-`func (o *AuthorizationServerMetadataOut) SetRevocationEndpoint(v string)`
-
-SetRevocationEndpoint sets RevocationEndpoint field to given value.
-
-
-### GetRevocationEndpointAuthMethodsSupported
-
-`func (o *AuthorizationServerMetadataOut) GetRevocationEndpointAuthMethodsSupported() []string`
-
-GetRevocationEndpointAuthMethodsSupported returns the RevocationEndpointAuthMethodsSupported field if non-nil, zero value otherwise.
-
-### GetRevocationEndpointAuthMethodsSupportedOk
-
-`func (o *AuthorizationServerMetadataOut) GetRevocationEndpointAuthMethodsSupportedOk() (*[]string, bool)`
-
-GetRevocationEndpointAuthMethodsSupportedOk returns a tuple with the RevocationEndpointAuthMethodsSupported field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRevocationEndpointAuthMethodsSupported
-
-`func (o *AuthorizationServerMetadataOut) SetRevocationEndpointAuthMethodsSupported(v []string)`
-
-SetRevocationEndpointAuthMethodsSupported sets RevocationEndpointAuthMethodsSupported field to given value.
-
-
-### GetScopesSupported
-
-`func (o *AuthorizationServerMetadataOut) GetScopesSupported() []string`
-
-GetScopesSupported returns the ScopesSupported field if non-nil, zero value otherwise.
-
-### GetScopesSupportedOk
-
-`func (o *AuthorizationServerMetadataOut) GetScopesSupportedOk() (*[]string, bool)`
-
-GetScopesSupportedOk returns a tuple with the ScopesSupported field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetScopesSupported
-
-`func (o *AuthorizationServerMetadataOut) SetScopesSupported(v []string)`
-
-SetScopesSupported sets ScopesSupported field to given value.
-
-
-### GetTokenEndpoint
-
-`func (o *AuthorizationServerMetadataOut) GetTokenEndpoint() string`
-
-GetTokenEndpoint returns the TokenEndpoint field if non-nil, zero value otherwise.
-
-### GetTokenEndpointOk
-
-`func (o *AuthorizationServerMetadataOut) GetTokenEndpointOk() (*string, bool)`
-
-GetTokenEndpointOk returns a tuple with the TokenEndpoint field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetTokenEndpoint
-
-`func (o *AuthorizationServerMetadataOut) SetTokenEndpoint(v string)`
-
-SetTokenEndpoint sets TokenEndpoint field to given value.
-
-
-### GetTokenEndpointAuthMethodsSupported
-
-`func (o *AuthorizationServerMetadataOut) GetTokenEndpointAuthMethodsSupported() []string`
-
-GetTokenEndpointAuthMethodsSupported returns the TokenEndpointAuthMethodsSupported field if non-nil, zero value otherwise.
-
-### GetTokenEndpointAuthMethodsSupportedOk
-
-`func (o *AuthorizationServerMetadataOut) GetTokenEndpointAuthMethodsSupportedOk() (*[]string, bool)`
-
-GetTokenEndpointAuthMethodsSupportedOk returns a tuple with the TokenEndpointAuthMethodsSupported field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetTokenEndpointAuthMethodsSupported
-
-`func (o *AuthorizationServerMetadataOut) SetTokenEndpointAuthMethodsSupported(v []string)`
-
-SetTokenEndpointAuthMethodsSupported sets TokenEndpointAuthMethodsSupported field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/AuthorizeDecisionOauth2AuthorizePost403Response.md b/sdk/go/docs/AuthorizeDecisionOauth2AuthorizePost403Response.md
deleted file mode 100644
index 1cfef43..0000000
--- a/sdk/go/docs/AuthorizeDecisionOauth2AuthorizePost403Response.md
+++ /dev/null
@@ -1,96 +0,0 @@
-# AuthorizeDecisionOauth2AuthorizePost403Response
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Error** | **string** | |
-**ErrorDescription** | Pointer to **string** | | [optional]
-**Detail** | [**ErrorDetail**](ErrorDetail.md) | |
-
-## Methods
-
-### NewAuthorizeDecisionOauth2AuthorizePost403Response
-
-`func NewAuthorizeDecisionOauth2AuthorizePost403Response(error_ string, detail ErrorDetail, ) *AuthorizeDecisionOauth2AuthorizePost403Response`
-
-NewAuthorizeDecisionOauth2AuthorizePost403Response instantiates a new AuthorizeDecisionOauth2AuthorizePost403Response object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewAuthorizeDecisionOauth2AuthorizePost403ResponseWithDefaults
-
-`func NewAuthorizeDecisionOauth2AuthorizePost403ResponseWithDefaults() *AuthorizeDecisionOauth2AuthorizePost403Response`
-
-NewAuthorizeDecisionOauth2AuthorizePost403ResponseWithDefaults instantiates a new AuthorizeDecisionOauth2AuthorizePost403Response object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetError
-
-`func (o *AuthorizeDecisionOauth2AuthorizePost403Response) GetError() string`
-
-GetError returns the Error field if non-nil, zero value otherwise.
-
-### GetErrorOk
-
-`func (o *AuthorizeDecisionOauth2AuthorizePost403Response) GetErrorOk() (*string, bool)`
-
-GetErrorOk returns a tuple with the Error field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetError
-
-`func (o *AuthorizeDecisionOauth2AuthorizePost403Response) SetError(v string)`
-
-SetError sets Error field to given value.
-
-
-### GetErrorDescription
-
-`func (o *AuthorizeDecisionOauth2AuthorizePost403Response) GetErrorDescription() string`
-
-GetErrorDescription returns the ErrorDescription field if non-nil, zero value otherwise.
-
-### GetErrorDescriptionOk
-
-`func (o *AuthorizeDecisionOauth2AuthorizePost403Response) GetErrorDescriptionOk() (*string, bool)`
-
-GetErrorDescriptionOk returns a tuple with the ErrorDescription field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetErrorDescription
-
-`func (o *AuthorizeDecisionOauth2AuthorizePost403Response) SetErrorDescription(v string)`
-
-SetErrorDescription sets ErrorDescription field to given value.
-
-### HasErrorDescription
-
-`func (o *AuthorizeDecisionOauth2AuthorizePost403Response) HasErrorDescription() bool`
-
-HasErrorDescription returns a boolean if a field has been set.
-
-### GetDetail
-
-`func (o *AuthorizeDecisionOauth2AuthorizePost403Response) GetDetail() ErrorDetail`
-
-GetDetail returns the Detail field if non-nil, zero value otherwise.
-
-### GetDetailOk
-
-`func (o *AuthorizeDecisionOauth2AuthorizePost403Response) GetDetailOk() (*ErrorDetail, bool)`
-
-GetDetailOk returns a tuple with the Detail field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDetail
-
-`func (o *AuthorizeDecisionOauth2AuthorizePost403Response) SetDetail(v ErrorDetail)`
-
-SetDetail sets Detail field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ChangeActorOut.md b/sdk/go/docs/ChangeActorOut.md
new file mode 100644
index 0000000..2d4c617
--- /dev/null
+++ b/sdk/go/docs/ChangeActorOut.md
@@ -0,0 +1,80 @@
+# ChangeActorOut
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Id** | **NullableString** | |
+**Type** | **string** | |
+
+## Methods
+
+### NewChangeActorOut
+
+`func NewChangeActorOut(id NullableString, type_ string, ) *ChangeActorOut`
+
+NewChangeActorOut instantiates a new ChangeActorOut object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewChangeActorOutWithDefaults
+
+`func NewChangeActorOutWithDefaults() *ChangeActorOut`
+
+NewChangeActorOutWithDefaults instantiates a new ChangeActorOut object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetId
+
+`func (o *ChangeActorOut) GetId() string`
+
+GetId returns the Id field if non-nil, zero value otherwise.
+
+### GetIdOk
+
+`func (o *ChangeActorOut) GetIdOk() (*string, bool)`
+
+GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetId
+
+`func (o *ChangeActorOut) SetId(v string)`
+
+SetId sets Id field to given value.
+
+
+### SetIdNil
+
+`func (o *ChangeActorOut) SetIdNil(b bool)`
+
+ SetIdNil sets the value for Id to be an explicit nil
+
+### UnsetId
+`func (o *ChangeActorOut) UnsetId()`
+
+UnsetId ensures that no value is present for Id, not even an explicit nil
+### GetType
+
+`func (o *ChangeActorOut) GetType() string`
+
+GetType returns the Type field if non-nil, zero value otherwise.
+
+### GetTypeOk
+
+`func (o *ChangeActorOut) GetTypeOk() (*string, bool)`
+
+GetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetType
+
+`func (o *ChangeActorOut) SetType(v string)`
+
+SetType sets Type field to given value.
+
+
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ChangeOut.md b/sdk/go/docs/ChangeOut.md
new file mode 100644
index 0000000..d89c03b
--- /dev/null
+++ b/sdk/go/docs/ChangeOut.md
@@ -0,0 +1,258 @@
+# ChangeOut
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Actor** | [**ChangeActorOut**](ChangeActorOut.md) | |
+**ChangeSetId** | **string** | |
+**Data** | **map[string]interface{}** | |
+**DriveId** | **string** | |
+**Id** | **string** | |
+**OccurredAt** | **time.Time** | |
+**PreviousRevision** | **NullableString** | |
+**Resource** | [**ChangeResourceOut**](ChangeResourceOut.md) | |
+**Revision** | **NullableString** | |
+**Type** | **string** | |
+
+## Methods
+
+### NewChangeOut
+
+`func NewChangeOut(actor ChangeActorOut, changeSetId string, data map[string]interface{}, driveId string, id string, occurredAt time.Time, previousRevision NullableString, resource ChangeResourceOut, revision NullableString, type_ string, ) *ChangeOut`
+
+NewChangeOut instantiates a new ChangeOut object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewChangeOutWithDefaults
+
+`func NewChangeOutWithDefaults() *ChangeOut`
+
+NewChangeOutWithDefaults instantiates a new ChangeOut object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetActor
+
+`func (o *ChangeOut) GetActor() ChangeActorOut`
+
+GetActor returns the Actor field if non-nil, zero value otherwise.
+
+### GetActorOk
+
+`func (o *ChangeOut) GetActorOk() (*ChangeActorOut, bool)`
+
+GetActorOk returns a tuple with the Actor field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetActor
+
+`func (o *ChangeOut) SetActor(v ChangeActorOut)`
+
+SetActor sets Actor field to given value.
+
+
+### GetChangeSetId
+
+`func (o *ChangeOut) GetChangeSetId() string`
+
+GetChangeSetId returns the ChangeSetId field if non-nil, zero value otherwise.
+
+### GetChangeSetIdOk
+
+`func (o *ChangeOut) GetChangeSetIdOk() (*string, bool)`
+
+GetChangeSetIdOk returns a tuple with the ChangeSetId field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetChangeSetId
+
+`func (o *ChangeOut) SetChangeSetId(v string)`
+
+SetChangeSetId sets ChangeSetId field to given value.
+
+
+### GetData
+
+`func (o *ChangeOut) GetData() map[string]interface{}`
+
+GetData returns the Data field if non-nil, zero value otherwise.
+
+### GetDataOk
+
+`func (o *ChangeOut) GetDataOk() (*map[string]interface{}, bool)`
+
+GetDataOk returns a tuple with the Data field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetData
+
+`func (o *ChangeOut) SetData(v map[string]interface{})`
+
+SetData sets Data field to given value.
+
+
+### GetDriveId
+
+`func (o *ChangeOut) GetDriveId() string`
+
+GetDriveId returns the DriveId field if non-nil, zero value otherwise.
+
+### GetDriveIdOk
+
+`func (o *ChangeOut) GetDriveIdOk() (*string, bool)`
+
+GetDriveIdOk returns a tuple with the DriveId field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetDriveId
+
+`func (o *ChangeOut) SetDriveId(v string)`
+
+SetDriveId sets DriveId field to given value.
+
+
+### GetId
+
+`func (o *ChangeOut) GetId() string`
+
+GetId returns the Id field if non-nil, zero value otherwise.
+
+### GetIdOk
+
+`func (o *ChangeOut) GetIdOk() (*string, bool)`
+
+GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetId
+
+`func (o *ChangeOut) SetId(v string)`
+
+SetId sets Id field to given value.
+
+
+### GetOccurredAt
+
+`func (o *ChangeOut) GetOccurredAt() time.Time`
+
+GetOccurredAt returns the OccurredAt field if non-nil, zero value otherwise.
+
+### GetOccurredAtOk
+
+`func (o *ChangeOut) GetOccurredAtOk() (*time.Time, bool)`
+
+GetOccurredAtOk returns a tuple with the OccurredAt field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetOccurredAt
+
+`func (o *ChangeOut) SetOccurredAt(v time.Time)`
+
+SetOccurredAt sets OccurredAt field to given value.
+
+
+### GetPreviousRevision
+
+`func (o *ChangeOut) GetPreviousRevision() string`
+
+GetPreviousRevision returns the PreviousRevision field if non-nil, zero value otherwise.
+
+### GetPreviousRevisionOk
+
+`func (o *ChangeOut) GetPreviousRevisionOk() (*string, bool)`
+
+GetPreviousRevisionOk returns a tuple with the PreviousRevision field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetPreviousRevision
+
+`func (o *ChangeOut) SetPreviousRevision(v string)`
+
+SetPreviousRevision sets PreviousRevision field to given value.
+
+
+### SetPreviousRevisionNil
+
+`func (o *ChangeOut) SetPreviousRevisionNil(b bool)`
+
+ SetPreviousRevisionNil sets the value for PreviousRevision to be an explicit nil
+
+### UnsetPreviousRevision
+`func (o *ChangeOut) UnsetPreviousRevision()`
+
+UnsetPreviousRevision ensures that no value is present for PreviousRevision, not even an explicit nil
+### GetResource
+
+`func (o *ChangeOut) GetResource() ChangeResourceOut`
+
+GetResource returns the Resource field if non-nil, zero value otherwise.
+
+### GetResourceOk
+
+`func (o *ChangeOut) GetResourceOk() (*ChangeResourceOut, bool)`
+
+GetResourceOk returns a tuple with the Resource field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetResource
+
+`func (o *ChangeOut) SetResource(v ChangeResourceOut)`
+
+SetResource sets Resource field to given value.
+
+
+### GetRevision
+
+`func (o *ChangeOut) GetRevision() string`
+
+GetRevision returns the Revision field if non-nil, zero value otherwise.
+
+### GetRevisionOk
+
+`func (o *ChangeOut) GetRevisionOk() (*string, bool)`
+
+GetRevisionOk returns a tuple with the Revision field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetRevision
+
+`func (o *ChangeOut) SetRevision(v string)`
+
+SetRevision sets Revision field to given value.
+
+
+### SetRevisionNil
+
+`func (o *ChangeOut) SetRevisionNil(b bool)`
+
+ SetRevisionNil sets the value for Revision to be an explicit nil
+
+### UnsetRevision
+`func (o *ChangeOut) UnsetRevision()`
+
+UnsetRevision ensures that no value is present for Revision, not even an explicit nil
+### GetType
+
+`func (o *ChangeOut) GetType() string`
+
+GetType returns the Type field if non-nil, zero value otherwise.
+
+### GetTypeOk
+
+`func (o *ChangeOut) GetTypeOk() (*string, bool)`
+
+GetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetType
+
+`func (o *ChangeOut) SetType(v string)`
+
+SetType sets Type field to given value.
+
+
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ChangePageOut.md b/sdk/go/docs/ChangePageOut.md
new file mode 100644
index 0000000..a4feb90
--- /dev/null
+++ b/sdk/go/docs/ChangePageOut.md
@@ -0,0 +1,91 @@
+# ChangePageOut
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**HasMore** | **bool** | |
+**Items** | [**[]ChangeOut**](ChangeOut.md) | |
+**NextCursor** | **string** | |
+
+## Methods
+
+### NewChangePageOut
+
+`func NewChangePageOut(hasMore bool, items []ChangeOut, nextCursor string, ) *ChangePageOut`
+
+NewChangePageOut instantiates a new ChangePageOut object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewChangePageOutWithDefaults
+
+`func NewChangePageOutWithDefaults() *ChangePageOut`
+
+NewChangePageOutWithDefaults instantiates a new ChangePageOut object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetHasMore
+
+`func (o *ChangePageOut) GetHasMore() bool`
+
+GetHasMore returns the HasMore field if non-nil, zero value otherwise.
+
+### GetHasMoreOk
+
+`func (o *ChangePageOut) GetHasMoreOk() (*bool, bool)`
+
+GetHasMoreOk returns a tuple with the HasMore field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetHasMore
+
+`func (o *ChangePageOut) SetHasMore(v bool)`
+
+SetHasMore sets HasMore field to given value.
+
+
+### GetItems
+
+`func (o *ChangePageOut) GetItems() []ChangeOut`
+
+GetItems returns the Items field if non-nil, zero value otherwise.
+
+### GetItemsOk
+
+`func (o *ChangePageOut) GetItemsOk() (*[]ChangeOut, bool)`
+
+GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetItems
+
+`func (o *ChangePageOut) SetItems(v []ChangeOut)`
+
+SetItems sets Items field to given value.
+
+
+### GetNextCursor
+
+`func (o *ChangePageOut) GetNextCursor() string`
+
+GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
+
+### GetNextCursorOk
+
+`func (o *ChangePageOut) GetNextCursorOk() (*string, bool)`
+
+GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetNextCursor
+
+`func (o *ChangePageOut) SetNextCursor(v string)`
+
+SetNextCursor sets NextCursor field to given value.
+
+
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ChangeResourceOut.md b/sdk/go/docs/ChangeResourceOut.md
new file mode 100644
index 0000000..23e6e6b
--- /dev/null
+++ b/sdk/go/docs/ChangeResourceOut.md
@@ -0,0 +1,70 @@
+# ChangeResourceOut
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Id** | **string** | |
+**Type** | **string** | |
+
+## Methods
+
+### NewChangeResourceOut
+
+`func NewChangeResourceOut(id string, type_ string, ) *ChangeResourceOut`
+
+NewChangeResourceOut instantiates a new ChangeResourceOut object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewChangeResourceOutWithDefaults
+
+`func NewChangeResourceOutWithDefaults() *ChangeResourceOut`
+
+NewChangeResourceOutWithDefaults instantiates a new ChangeResourceOut object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetId
+
+`func (o *ChangeResourceOut) GetId() string`
+
+GetId returns the Id field if non-nil, zero value otherwise.
+
+### GetIdOk
+
+`func (o *ChangeResourceOut) GetIdOk() (*string, bool)`
+
+GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetId
+
+`func (o *ChangeResourceOut) SetId(v string)`
+
+SetId sets Id field to given value.
+
+
+### GetType
+
+`func (o *ChangeResourceOut) GetType() string`
+
+GetType returns the Type field if non-nil, zero value otherwise.
+
+### GetTypeOk
+
+`func (o *ChangeResourceOut) GetTypeOk() (*string, bool)`
+
+GetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetType
+
+`func (o *ChangeResourceOut) SetType(v string)`
+
+SetType sets Type field to given value.
+
+
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ChangesAPI.md b/sdk/go/docs/ChangesAPI.md
new file mode 100644
index 0000000..dd3387c
--- /dev/null
+++ b/sdk/go/docs/ChangesAPI.md
@@ -0,0 +1,86 @@
+# \ChangesAPI
+
+All URIs are relative to *https://api.agentdrive.run*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**ChangesList**](ChangesAPI.md#ChangesList) | **Get** /v0/drives/{drive_id}/changes | List Changes
+
+
+
+## ChangesList
+
+> ChangePageOut ChangesList(ctx, driveId).Limit(limit).Start(start).Cursor(cursor).Authorization(authorization).Execute()
+
+List Changes
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ limit := int32(56) // int32 | (optional)
+ start := "start_example" // string | (optional)
+ cursor := "cursor_example" // string | (optional)
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.ChangesAPI.ChangesList(context.Background(), driveId).Limit(limit).Start(start).Cursor(cursor).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `ChangesAPI.ChangesList``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `ChangesList`: ChangePageOut
+ fmt.Fprintf(os.Stdout, "Response from `ChangesAPI.ChangesList`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiChangesListRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+ **limit** | **int32** | |
+ **start** | **string** | |
+ **cursor** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**ChangePageOut**](ChangePageOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
diff --git a/sdk/go/docs/ClaimInitRequest.md b/sdk/go/docs/ClaimInitRequest.md
deleted file mode 100644
index e6da05c..0000000
--- a/sdk/go/docs/ClaimInitRequest.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# ClaimInitRequest
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**ClaimToken** | **string** | The per-identity claim_token returned by POST /agent/identity. |
-**Email** | Pointer to **NullableString** | Optional hint to display on the /claim page so the human knows which account the agent expected. Not enforced (design §14 question #3). | [optional]
-
-## Methods
-
-### NewClaimInitRequest
-
-`func NewClaimInitRequest(claimToken string, ) *ClaimInitRequest`
-
-NewClaimInitRequest instantiates a new ClaimInitRequest object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewClaimInitRequestWithDefaults
-
-`func NewClaimInitRequestWithDefaults() *ClaimInitRequest`
-
-NewClaimInitRequestWithDefaults instantiates a new ClaimInitRequest object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetClaimToken
-
-`func (o *ClaimInitRequest) GetClaimToken() string`
-
-GetClaimToken returns the ClaimToken field if non-nil, zero value otherwise.
-
-### GetClaimTokenOk
-
-`func (o *ClaimInitRequest) GetClaimTokenOk() (*string, bool)`
-
-GetClaimTokenOk returns a tuple with the ClaimToken field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetClaimToken
-
-`func (o *ClaimInitRequest) SetClaimToken(v string)`
-
-SetClaimToken sets ClaimToken field to given value.
-
-
-### GetEmail
-
-`func (o *ClaimInitRequest) GetEmail() string`
-
-GetEmail returns the Email field if non-nil, zero value otherwise.
-
-### GetEmailOk
-
-`func (o *ClaimInitRequest) GetEmailOk() (*string, bool)`
-
-GetEmailOk returns a tuple with the Email field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEmail
-
-`func (o *ClaimInitRequest) SetEmail(v string)`
-
-SetEmail sets Email field to given value.
-
-### HasEmail
-
-`func (o *ClaimInitRequest) HasEmail() bool`
-
-HasEmail returns a boolean if a field has been set.
-
-### SetEmailNil
-
-`func (o *ClaimInitRequest) SetEmailNil(b bool)`
-
- SetEmailNil sets the value for Email to be an explicit nil
-
-### UnsetEmail
-`func (o *ClaimInitRequest) UnsetEmail()`
-
-UnsetEmail ensures that no value is present for Email, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ClaimInitResponse.md b/sdk/go/docs/ClaimInitResponse.md
deleted file mode 100644
index 5c49e19..0000000
--- a/sdk/go/docs/ClaimInitResponse.md
+++ /dev/null
@@ -1,133 +0,0 @@
-# ClaimInitResponse
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**ClaimAttemptToken** | **string** | Per-attempt opaque token; the agent does not need to present it. |
-**ExpiresAt** | **time.Time** | |
-**UserCode** | **string** | Human-readable code the user types/sees on /claim. |
-**VerificationUri** | **string** | URL to direct the human to. |
-**VerificationUriComplete** | **string** | Convenience: same as `verification_uri` but with the user_code pre-baked so the human doesn't have to type it. RFC 8628 idiom. |
-
-## Methods
-
-### NewClaimInitResponse
-
-`func NewClaimInitResponse(claimAttemptToken string, expiresAt time.Time, userCode string, verificationUri string, verificationUriComplete string, ) *ClaimInitResponse`
-
-NewClaimInitResponse instantiates a new ClaimInitResponse object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewClaimInitResponseWithDefaults
-
-`func NewClaimInitResponseWithDefaults() *ClaimInitResponse`
-
-NewClaimInitResponseWithDefaults instantiates a new ClaimInitResponse object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetClaimAttemptToken
-
-`func (o *ClaimInitResponse) GetClaimAttemptToken() string`
-
-GetClaimAttemptToken returns the ClaimAttemptToken field if non-nil, zero value otherwise.
-
-### GetClaimAttemptTokenOk
-
-`func (o *ClaimInitResponse) GetClaimAttemptTokenOk() (*string, bool)`
-
-GetClaimAttemptTokenOk returns a tuple with the ClaimAttemptToken field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetClaimAttemptToken
-
-`func (o *ClaimInitResponse) SetClaimAttemptToken(v string)`
-
-SetClaimAttemptToken sets ClaimAttemptToken field to given value.
-
-
-### GetExpiresAt
-
-`func (o *ClaimInitResponse) GetExpiresAt() time.Time`
-
-GetExpiresAt returns the ExpiresAt field if non-nil, zero value otherwise.
-
-### GetExpiresAtOk
-
-`func (o *ClaimInitResponse) GetExpiresAtOk() (*time.Time, bool)`
-
-GetExpiresAtOk returns a tuple with the ExpiresAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetExpiresAt
-
-`func (o *ClaimInitResponse) SetExpiresAt(v time.Time)`
-
-SetExpiresAt sets ExpiresAt field to given value.
-
-
-### GetUserCode
-
-`func (o *ClaimInitResponse) GetUserCode() string`
-
-GetUserCode returns the UserCode field if non-nil, zero value otherwise.
-
-### GetUserCodeOk
-
-`func (o *ClaimInitResponse) GetUserCodeOk() (*string, bool)`
-
-GetUserCodeOk returns a tuple with the UserCode field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetUserCode
-
-`func (o *ClaimInitResponse) SetUserCode(v string)`
-
-SetUserCode sets UserCode field to given value.
-
-
-### GetVerificationUri
-
-`func (o *ClaimInitResponse) GetVerificationUri() string`
-
-GetVerificationUri returns the VerificationUri field if non-nil, zero value otherwise.
-
-### GetVerificationUriOk
-
-`func (o *ClaimInitResponse) GetVerificationUriOk() (*string, bool)`
-
-GetVerificationUriOk returns a tuple with the VerificationUri field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetVerificationUri
-
-`func (o *ClaimInitResponse) SetVerificationUri(v string)`
-
-SetVerificationUri sets VerificationUri field to given value.
-
-
-### GetVerificationUriComplete
-
-`func (o *ClaimInitResponse) GetVerificationUriComplete() string`
-
-GetVerificationUriComplete returns the VerificationUriComplete field if non-nil, zero value otherwise.
-
-### GetVerificationUriCompleteOk
-
-`func (o *ClaimInitResponse) GetVerificationUriCompleteOk() (*string, bool)`
-
-GetVerificationUriCompleteOk returns a tuple with the VerificationUriComplete field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetVerificationUriComplete
-
-`func (o *ClaimInitResponse) SetVerificationUriComplete(v string)`
-
-SetVerificationUriComplete sets VerificationUriComplete field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ClaimMetadata.md b/sdk/go/docs/ClaimMetadata.md
deleted file mode 100644
index cdc4350..0000000
--- a/sdk/go/docs/ClaimMetadata.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# ClaimMetadata
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**ClaimEndpoint** | **string** | |
-**SupportedEmailHints** | Pointer to **bool** | | [optional] [default to true]
-
-## Methods
-
-### NewClaimMetadata
-
-`func NewClaimMetadata(claimEndpoint string, ) *ClaimMetadata`
-
-NewClaimMetadata instantiates a new ClaimMetadata object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewClaimMetadataWithDefaults
-
-`func NewClaimMetadataWithDefaults() *ClaimMetadata`
-
-NewClaimMetadataWithDefaults instantiates a new ClaimMetadata object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetClaimEndpoint
-
-`func (o *ClaimMetadata) GetClaimEndpoint() string`
-
-GetClaimEndpoint returns the ClaimEndpoint field if non-nil, zero value otherwise.
-
-### GetClaimEndpointOk
-
-`func (o *ClaimMetadata) GetClaimEndpointOk() (*string, bool)`
-
-GetClaimEndpointOk returns a tuple with the ClaimEndpoint field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetClaimEndpoint
-
-`func (o *ClaimMetadata) SetClaimEndpoint(v string)`
-
-SetClaimEndpoint sets ClaimEndpoint field to given value.
-
-
-### GetSupportedEmailHints
-
-`func (o *ClaimMetadata) GetSupportedEmailHints() bool`
-
-GetSupportedEmailHints returns the SupportedEmailHints field if non-nil, zero value otherwise.
-
-### GetSupportedEmailHintsOk
-
-`func (o *ClaimMetadata) GetSupportedEmailHintsOk() (*bool, bool)`
-
-GetSupportedEmailHintsOk returns a tuple with the SupportedEmailHints field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetSupportedEmailHints
-
-`func (o *ClaimMetadata) SetSupportedEmailHints(v bool)`
-
-SetSupportedEmailHints sets SupportedEmailHints field to given value.
-
-### HasSupportedEmailHints
-
-`func (o *ClaimMetadata) HasSupportedEmailHints() bool`
-
-HasSupportedEmailHints returns a boolean if a field has been set.
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ClientRegistrationOut.md b/sdk/go/docs/ClientRegistrationOut.md
deleted file mode 100644
index 99c9369..0000000
--- a/sdk/go/docs/ClientRegistrationOut.md
+++ /dev/null
@@ -1,196 +0,0 @@
-# ClientRegistrationOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**ClientId** | **string** | |
-**ClientIdIssuedAt** | **int32** | |
-**ClientName** | **string** | |
-**GrantTypes** | **[]string** | |
-**RedirectUris** | **[]string** | |
-**ResponseTypes** | **[]string** | |
-**Scope** | **string** | |
-**TokenEndpointAuthMethod** | **string** | |
-
-## Methods
-
-### NewClientRegistrationOut
-
-`func NewClientRegistrationOut(clientId string, clientIdIssuedAt int32, clientName string, grantTypes []string, redirectUris []string, responseTypes []string, scope string, tokenEndpointAuthMethod string, ) *ClientRegistrationOut`
-
-NewClientRegistrationOut instantiates a new ClientRegistrationOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewClientRegistrationOutWithDefaults
-
-`func NewClientRegistrationOutWithDefaults() *ClientRegistrationOut`
-
-NewClientRegistrationOutWithDefaults instantiates a new ClientRegistrationOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetClientId
-
-`func (o *ClientRegistrationOut) GetClientId() string`
-
-GetClientId returns the ClientId field if non-nil, zero value otherwise.
-
-### GetClientIdOk
-
-`func (o *ClientRegistrationOut) GetClientIdOk() (*string, bool)`
-
-GetClientIdOk returns a tuple with the ClientId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetClientId
-
-`func (o *ClientRegistrationOut) SetClientId(v string)`
-
-SetClientId sets ClientId field to given value.
-
-
-### GetClientIdIssuedAt
-
-`func (o *ClientRegistrationOut) GetClientIdIssuedAt() int32`
-
-GetClientIdIssuedAt returns the ClientIdIssuedAt field if non-nil, zero value otherwise.
-
-### GetClientIdIssuedAtOk
-
-`func (o *ClientRegistrationOut) GetClientIdIssuedAtOk() (*int32, bool)`
-
-GetClientIdIssuedAtOk returns a tuple with the ClientIdIssuedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetClientIdIssuedAt
-
-`func (o *ClientRegistrationOut) SetClientIdIssuedAt(v int32)`
-
-SetClientIdIssuedAt sets ClientIdIssuedAt field to given value.
-
-
-### GetClientName
-
-`func (o *ClientRegistrationOut) GetClientName() string`
-
-GetClientName returns the ClientName field if non-nil, zero value otherwise.
-
-### GetClientNameOk
-
-`func (o *ClientRegistrationOut) GetClientNameOk() (*string, bool)`
-
-GetClientNameOk returns a tuple with the ClientName field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetClientName
-
-`func (o *ClientRegistrationOut) SetClientName(v string)`
-
-SetClientName sets ClientName field to given value.
-
-
-### GetGrantTypes
-
-`func (o *ClientRegistrationOut) GetGrantTypes() []string`
-
-GetGrantTypes returns the GrantTypes field if non-nil, zero value otherwise.
-
-### GetGrantTypesOk
-
-`func (o *ClientRegistrationOut) GetGrantTypesOk() (*[]string, bool)`
-
-GetGrantTypesOk returns a tuple with the GrantTypes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetGrantTypes
-
-`func (o *ClientRegistrationOut) SetGrantTypes(v []string)`
-
-SetGrantTypes sets GrantTypes field to given value.
-
-
-### GetRedirectUris
-
-`func (o *ClientRegistrationOut) GetRedirectUris() []string`
-
-GetRedirectUris returns the RedirectUris field if non-nil, zero value otherwise.
-
-### GetRedirectUrisOk
-
-`func (o *ClientRegistrationOut) GetRedirectUrisOk() (*[]string, bool)`
-
-GetRedirectUrisOk returns a tuple with the RedirectUris field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRedirectUris
-
-`func (o *ClientRegistrationOut) SetRedirectUris(v []string)`
-
-SetRedirectUris sets RedirectUris field to given value.
-
-
-### GetResponseTypes
-
-`func (o *ClientRegistrationOut) GetResponseTypes() []string`
-
-GetResponseTypes returns the ResponseTypes field if non-nil, zero value otherwise.
-
-### GetResponseTypesOk
-
-`func (o *ClientRegistrationOut) GetResponseTypesOk() (*[]string, bool)`
-
-GetResponseTypesOk returns a tuple with the ResponseTypes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetResponseTypes
-
-`func (o *ClientRegistrationOut) SetResponseTypes(v []string)`
-
-SetResponseTypes sets ResponseTypes field to given value.
-
-
-### GetScope
-
-`func (o *ClientRegistrationOut) GetScope() string`
-
-GetScope returns the Scope field if non-nil, zero value otherwise.
-
-### GetScopeOk
-
-`func (o *ClientRegistrationOut) GetScopeOk() (*string, bool)`
-
-GetScopeOk returns a tuple with the Scope field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetScope
-
-`func (o *ClientRegistrationOut) SetScope(v string)`
-
-SetScope sets Scope field to given value.
-
-
-### GetTokenEndpointAuthMethod
-
-`func (o *ClientRegistrationOut) GetTokenEndpointAuthMethod() string`
-
-GetTokenEndpointAuthMethod returns the TokenEndpointAuthMethod field if non-nil, zero value otherwise.
-
-### GetTokenEndpointAuthMethodOk
-
-`func (o *ClientRegistrationOut) GetTokenEndpointAuthMethodOk() (*string, bool)`
-
-GetTokenEndpointAuthMethodOk returns a tuple with the TokenEndpointAuthMethod field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetTokenEndpointAuthMethod
-
-`func (o *ClientRegistrationOut) SetTokenEndpointAuthMethod(v string)`
-
-SetTokenEndpointAuthMethod sets TokenEndpointAuthMethod field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/CompileDiagnosticOut.md b/sdk/go/docs/CompileDiagnosticOut.md
deleted file mode 100644
index e7dbe26..0000000
--- a/sdk/go/docs/CompileDiagnosticOut.md
+++ /dev/null
@@ -1,214 +0,0 @@
-# CompileDiagnosticOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Category** | Pointer to **NullableString** | | [optional]
-**File** | Pointer to **NullableString** | | [optional]
-**Line** | Pointer to **NullableInt32** | | [optional]
-**Message** | **string** | |
-**Severity** | **string** | |
-**Suggestion** | Pointer to **NullableString** | | [optional]
-
-## Methods
-
-### NewCompileDiagnosticOut
-
-`func NewCompileDiagnosticOut(message string, severity string, ) *CompileDiagnosticOut`
-
-NewCompileDiagnosticOut instantiates a new CompileDiagnosticOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewCompileDiagnosticOutWithDefaults
-
-`func NewCompileDiagnosticOutWithDefaults() *CompileDiagnosticOut`
-
-NewCompileDiagnosticOutWithDefaults instantiates a new CompileDiagnosticOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetCategory
-
-`func (o *CompileDiagnosticOut) GetCategory() string`
-
-GetCategory returns the Category field if non-nil, zero value otherwise.
-
-### GetCategoryOk
-
-`func (o *CompileDiagnosticOut) GetCategoryOk() (*string, bool)`
-
-GetCategoryOk returns a tuple with the Category field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCategory
-
-`func (o *CompileDiagnosticOut) SetCategory(v string)`
-
-SetCategory sets Category field to given value.
-
-### HasCategory
-
-`func (o *CompileDiagnosticOut) HasCategory() bool`
-
-HasCategory returns a boolean if a field has been set.
-
-### SetCategoryNil
-
-`func (o *CompileDiagnosticOut) SetCategoryNil(b bool)`
-
- SetCategoryNil sets the value for Category to be an explicit nil
-
-### UnsetCategory
-`func (o *CompileDiagnosticOut) UnsetCategory()`
-
-UnsetCategory ensures that no value is present for Category, not even an explicit nil
-### GetFile
-
-`func (o *CompileDiagnosticOut) GetFile() string`
-
-GetFile returns the File field if non-nil, zero value otherwise.
-
-### GetFileOk
-
-`func (o *CompileDiagnosticOut) GetFileOk() (*string, bool)`
-
-GetFileOk returns a tuple with the File field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetFile
-
-`func (o *CompileDiagnosticOut) SetFile(v string)`
-
-SetFile sets File field to given value.
-
-### HasFile
-
-`func (o *CompileDiagnosticOut) HasFile() bool`
-
-HasFile returns a boolean if a field has been set.
-
-### SetFileNil
-
-`func (o *CompileDiagnosticOut) SetFileNil(b bool)`
-
- SetFileNil sets the value for File to be an explicit nil
-
-### UnsetFile
-`func (o *CompileDiagnosticOut) UnsetFile()`
-
-UnsetFile ensures that no value is present for File, not even an explicit nil
-### GetLine
-
-`func (o *CompileDiagnosticOut) GetLine() int32`
-
-GetLine returns the Line field if non-nil, zero value otherwise.
-
-### GetLineOk
-
-`func (o *CompileDiagnosticOut) GetLineOk() (*int32, bool)`
-
-GetLineOk returns a tuple with the Line field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLine
-
-`func (o *CompileDiagnosticOut) SetLine(v int32)`
-
-SetLine sets Line field to given value.
-
-### HasLine
-
-`func (o *CompileDiagnosticOut) HasLine() bool`
-
-HasLine returns a boolean if a field has been set.
-
-### SetLineNil
-
-`func (o *CompileDiagnosticOut) SetLineNil(b bool)`
-
- SetLineNil sets the value for Line to be an explicit nil
-
-### UnsetLine
-`func (o *CompileDiagnosticOut) UnsetLine()`
-
-UnsetLine ensures that no value is present for Line, not even an explicit nil
-### GetMessage
-
-`func (o *CompileDiagnosticOut) GetMessage() string`
-
-GetMessage returns the Message field if non-nil, zero value otherwise.
-
-### GetMessageOk
-
-`func (o *CompileDiagnosticOut) GetMessageOk() (*string, bool)`
-
-GetMessageOk returns a tuple with the Message field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetMessage
-
-`func (o *CompileDiagnosticOut) SetMessage(v string)`
-
-SetMessage sets Message field to given value.
-
-
-### GetSeverity
-
-`func (o *CompileDiagnosticOut) GetSeverity() string`
-
-GetSeverity returns the Severity field if non-nil, zero value otherwise.
-
-### GetSeverityOk
-
-`func (o *CompileDiagnosticOut) GetSeverityOk() (*string, bool)`
-
-GetSeverityOk returns a tuple with the Severity field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetSeverity
-
-`func (o *CompileDiagnosticOut) SetSeverity(v string)`
-
-SetSeverity sets Severity field to given value.
-
-
-### GetSuggestion
-
-`func (o *CompileDiagnosticOut) GetSuggestion() string`
-
-GetSuggestion returns the Suggestion field if non-nil, zero value otherwise.
-
-### GetSuggestionOk
-
-`func (o *CompileDiagnosticOut) GetSuggestionOk() (*string, bool)`
-
-GetSuggestionOk returns a tuple with the Suggestion field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetSuggestion
-
-`func (o *CompileDiagnosticOut) SetSuggestion(v string)`
-
-SetSuggestion sets Suggestion field to given value.
-
-### HasSuggestion
-
-`func (o *CompileDiagnosticOut) HasSuggestion() bool`
-
-HasSuggestion returns a boolean if a field has been set.
-
-### SetSuggestionNil
-
-`func (o *CompileDiagnosticOut) SetSuggestionNil(b bool)`
-
- SetSuggestionNil sets the value for Suggestion to be an explicit nil
-
-### UnsetSuggestion
-`func (o *CompileDiagnosticOut) UnsetSuggestion()`
-
-UnsetSuggestion ensures that no value is present for Suggestion, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/CompileJobIn.md b/sdk/go/docs/CompileJobIn.md
deleted file mode 100644
index e2ae075..0000000
--- a/sdk/go/docs/CompileJobIn.md
+++ /dev/null
@@ -1,80 +0,0 @@
-# CompileJobIn
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Options** | Pointer to [**CompileOptions**](CompileOptions.md) | | [optional]
-**Task** | Pointer to **string** | | [optional] [default to "latex.compile"]
-
-## Methods
-
-### NewCompileJobIn
-
-`func NewCompileJobIn() *CompileJobIn`
-
-NewCompileJobIn instantiates a new CompileJobIn object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewCompileJobInWithDefaults
-
-`func NewCompileJobInWithDefaults() *CompileJobIn`
-
-NewCompileJobInWithDefaults instantiates a new CompileJobIn object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetOptions
-
-`func (o *CompileJobIn) GetOptions() CompileOptions`
-
-GetOptions returns the Options field if non-nil, zero value otherwise.
-
-### GetOptionsOk
-
-`func (o *CompileJobIn) GetOptionsOk() (*CompileOptions, bool)`
-
-GetOptionsOk returns a tuple with the Options field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetOptions
-
-`func (o *CompileJobIn) SetOptions(v CompileOptions)`
-
-SetOptions sets Options field to given value.
-
-### HasOptions
-
-`func (o *CompileJobIn) HasOptions() bool`
-
-HasOptions returns a boolean if a field has been set.
-
-### GetTask
-
-`func (o *CompileJobIn) GetTask() string`
-
-GetTask returns the Task field if non-nil, zero value otherwise.
-
-### GetTaskOk
-
-`func (o *CompileJobIn) GetTaskOk() (*string, bool)`
-
-GetTaskOk returns a tuple with the Task field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetTask
-
-`func (o *CompileJobIn) SetTask(v string)`
-
-SetTask sets Task field to given value.
-
-### HasTask
-
-`func (o *CompileJobIn) HasTask() bool`
-
-HasTask returns a boolean if a field has been set.
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/CompileJobListOut.md b/sdk/go/docs/CompileJobListOut.md
deleted file mode 100644
index cc1f32f..0000000
--- a/sdk/go/docs/CompileJobListOut.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# CompileJobListOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Items** | [**[]CompileJobOut**](CompileJobOut.md) | |
-**Jobs** | [**[]CompileJobOut**](CompileJobOut.md) | Deprecated same-value alias for `items`; retained for compatibility. |
-**NextCursor** | Pointer to **NullableString** | Opaque continuation token, or null when the listing is complete. | [optional]
-
-## Methods
-
-### NewCompileJobListOut
-
-`func NewCompileJobListOut(items []CompileJobOut, jobs []CompileJobOut, ) *CompileJobListOut`
-
-NewCompileJobListOut instantiates a new CompileJobListOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewCompileJobListOutWithDefaults
-
-`func NewCompileJobListOutWithDefaults() *CompileJobListOut`
-
-NewCompileJobListOutWithDefaults instantiates a new CompileJobListOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetItems
-
-`func (o *CompileJobListOut) GetItems() []CompileJobOut`
-
-GetItems returns the Items field if non-nil, zero value otherwise.
-
-### GetItemsOk
-
-`func (o *CompileJobListOut) GetItemsOk() (*[]CompileJobOut, bool)`
-
-GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetItems
-
-`func (o *CompileJobListOut) SetItems(v []CompileJobOut)`
-
-SetItems sets Items field to given value.
-
-
-### GetJobs
-
-`func (o *CompileJobListOut) GetJobs() []CompileJobOut`
-
-GetJobs returns the Jobs field if non-nil, zero value otherwise.
-
-### GetJobsOk
-
-`func (o *CompileJobListOut) GetJobsOk() (*[]CompileJobOut, bool)`
-
-GetJobsOk returns a tuple with the Jobs field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetJobs
-
-`func (o *CompileJobListOut) SetJobs(v []CompileJobOut)`
-
-SetJobs sets Jobs field to given value.
-
-
-### GetNextCursor
-
-`func (o *CompileJobListOut) GetNextCursor() string`
-
-GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
-
-### GetNextCursorOk
-
-`func (o *CompileJobListOut) GetNextCursorOk() (*string, bool)`
-
-GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetNextCursor
-
-`func (o *CompileJobListOut) SetNextCursor(v string)`
-
-SetNextCursor sets NextCursor field to given value.
-
-### HasNextCursor
-
-`func (o *CompileJobListOut) HasNextCursor() bool`
-
-HasNextCursor returns a boolean if a field has been set.
-
-### SetNextCursorNil
-
-`func (o *CompileJobListOut) SetNextCursorNil(b bool)`
-
- SetNextCursorNil sets the value for NextCursor to be an explicit nil
-
-### UnsetNextCursor
-`func (o *CompileJobListOut) UnsetNextCursor()`
-
-UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/CompileJobOut.md b/sdk/go/docs/CompileJobOut.md
deleted file mode 100644
index 1aa6118..0000000
--- a/sdk/go/docs/CompileJobOut.md
+++ /dev/null
@@ -1,267 +0,0 @@
-# CompileJobOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**CacheHit** | **bool** | |
-**Diagnostics** | Pointer to [**[]CompileDiagnosticOut**](CompileDiagnosticOut.md) | | [optional]
-**DurationMs** | Pointer to **NullableInt32** | | [optional]
-**Engine** | **string** | |
-**JobId** | **string** | |
-**LogsUrl** | Pointer to **NullableString** | | [optional]
-**Output** | Pointer to **map[string]interface{}** | | [optional]
-**Status** | **string** | |
-**Task** | **string** | |
-
-## Methods
-
-### NewCompileJobOut
-
-`func NewCompileJobOut(cacheHit bool, engine string, jobId string, status string, task string, ) *CompileJobOut`
-
-NewCompileJobOut instantiates a new CompileJobOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewCompileJobOutWithDefaults
-
-`func NewCompileJobOutWithDefaults() *CompileJobOut`
-
-NewCompileJobOutWithDefaults instantiates a new CompileJobOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetCacheHit
-
-`func (o *CompileJobOut) GetCacheHit() bool`
-
-GetCacheHit returns the CacheHit field if non-nil, zero value otherwise.
-
-### GetCacheHitOk
-
-`func (o *CompileJobOut) GetCacheHitOk() (*bool, bool)`
-
-GetCacheHitOk returns a tuple with the CacheHit field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCacheHit
-
-`func (o *CompileJobOut) SetCacheHit(v bool)`
-
-SetCacheHit sets CacheHit field to given value.
-
-
-### GetDiagnostics
-
-`func (o *CompileJobOut) GetDiagnostics() []CompileDiagnosticOut`
-
-GetDiagnostics returns the Diagnostics field if non-nil, zero value otherwise.
-
-### GetDiagnosticsOk
-
-`func (o *CompileJobOut) GetDiagnosticsOk() (*[]CompileDiagnosticOut, bool)`
-
-GetDiagnosticsOk returns a tuple with the Diagnostics field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDiagnostics
-
-`func (o *CompileJobOut) SetDiagnostics(v []CompileDiagnosticOut)`
-
-SetDiagnostics sets Diagnostics field to given value.
-
-### HasDiagnostics
-
-`func (o *CompileJobOut) HasDiagnostics() bool`
-
-HasDiagnostics returns a boolean if a field has been set.
-
-### GetDurationMs
-
-`func (o *CompileJobOut) GetDurationMs() int32`
-
-GetDurationMs returns the DurationMs field if non-nil, zero value otherwise.
-
-### GetDurationMsOk
-
-`func (o *CompileJobOut) GetDurationMsOk() (*int32, bool)`
-
-GetDurationMsOk returns a tuple with the DurationMs field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDurationMs
-
-`func (o *CompileJobOut) SetDurationMs(v int32)`
-
-SetDurationMs sets DurationMs field to given value.
-
-### HasDurationMs
-
-`func (o *CompileJobOut) HasDurationMs() bool`
-
-HasDurationMs returns a boolean if a field has been set.
-
-### SetDurationMsNil
-
-`func (o *CompileJobOut) SetDurationMsNil(b bool)`
-
- SetDurationMsNil sets the value for DurationMs to be an explicit nil
-
-### UnsetDurationMs
-`func (o *CompileJobOut) UnsetDurationMs()`
-
-UnsetDurationMs ensures that no value is present for DurationMs, not even an explicit nil
-### GetEngine
-
-`func (o *CompileJobOut) GetEngine() string`
-
-GetEngine returns the Engine field if non-nil, zero value otherwise.
-
-### GetEngineOk
-
-`func (o *CompileJobOut) GetEngineOk() (*string, bool)`
-
-GetEngineOk returns a tuple with the Engine field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEngine
-
-`func (o *CompileJobOut) SetEngine(v string)`
-
-SetEngine sets Engine field to given value.
-
-
-### GetJobId
-
-`func (o *CompileJobOut) GetJobId() string`
-
-GetJobId returns the JobId field if non-nil, zero value otherwise.
-
-### GetJobIdOk
-
-`func (o *CompileJobOut) GetJobIdOk() (*string, bool)`
-
-GetJobIdOk returns a tuple with the JobId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetJobId
-
-`func (o *CompileJobOut) SetJobId(v string)`
-
-SetJobId sets JobId field to given value.
-
-
-### GetLogsUrl
-
-`func (o *CompileJobOut) GetLogsUrl() string`
-
-GetLogsUrl returns the LogsUrl field if non-nil, zero value otherwise.
-
-### GetLogsUrlOk
-
-`func (o *CompileJobOut) GetLogsUrlOk() (*string, bool)`
-
-GetLogsUrlOk returns a tuple with the LogsUrl field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLogsUrl
-
-`func (o *CompileJobOut) SetLogsUrl(v string)`
-
-SetLogsUrl sets LogsUrl field to given value.
-
-### HasLogsUrl
-
-`func (o *CompileJobOut) HasLogsUrl() bool`
-
-HasLogsUrl returns a boolean if a field has been set.
-
-### SetLogsUrlNil
-
-`func (o *CompileJobOut) SetLogsUrlNil(b bool)`
-
- SetLogsUrlNil sets the value for LogsUrl to be an explicit nil
-
-### UnsetLogsUrl
-`func (o *CompileJobOut) UnsetLogsUrl()`
-
-UnsetLogsUrl ensures that no value is present for LogsUrl, not even an explicit nil
-### GetOutput
-
-`func (o *CompileJobOut) GetOutput() map[string]interface{}`
-
-GetOutput returns the Output field if non-nil, zero value otherwise.
-
-### GetOutputOk
-
-`func (o *CompileJobOut) GetOutputOk() (*map[string]interface{}, bool)`
-
-GetOutputOk returns a tuple with the Output field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetOutput
-
-`func (o *CompileJobOut) SetOutput(v map[string]interface{})`
-
-SetOutput sets Output field to given value.
-
-### HasOutput
-
-`func (o *CompileJobOut) HasOutput() bool`
-
-HasOutput returns a boolean if a field has been set.
-
-### SetOutputNil
-
-`func (o *CompileJobOut) SetOutputNil(b bool)`
-
- SetOutputNil sets the value for Output to be an explicit nil
-
-### UnsetOutput
-`func (o *CompileJobOut) UnsetOutput()`
-
-UnsetOutput ensures that no value is present for Output, not even an explicit nil
-### GetStatus
-
-`func (o *CompileJobOut) GetStatus() string`
-
-GetStatus returns the Status field if non-nil, zero value otherwise.
-
-### GetStatusOk
-
-`func (o *CompileJobOut) GetStatusOk() (*string, bool)`
-
-GetStatusOk returns a tuple with the Status field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetStatus
-
-`func (o *CompileJobOut) SetStatus(v string)`
-
-SetStatus sets Status field to given value.
-
-
-### GetTask
-
-`func (o *CompileJobOut) GetTask() string`
-
-GetTask returns the Task field if non-nil, zero value otherwise.
-
-### GetTaskOk
-
-`func (o *CompileJobOut) GetTaskOk() (*string, bool)`
-
-GetTaskOk returns a tuple with the Task field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetTask
-
-`func (o *CompileJobOut) SetTask(v string)`
-
-SetTask sets Task field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/CompileOptions.md b/sdk/go/docs/CompileOptions.md
deleted file mode 100644
index 769db24..0000000
--- a/sdk/go/docs/CompileOptions.md
+++ /dev/null
@@ -1,126 +0,0 @@
-# CompileOptions
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Engine** | Pointer to **NullableString** | | [optional]
-**Entrypoint** | Pointer to **NullableString** | | [optional]
-**Wait** | Pointer to **bool** | | [optional] [default to false]
-
-## Methods
-
-### NewCompileOptions
-
-`func NewCompileOptions() *CompileOptions`
-
-NewCompileOptions instantiates a new CompileOptions object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewCompileOptionsWithDefaults
-
-`func NewCompileOptionsWithDefaults() *CompileOptions`
-
-NewCompileOptionsWithDefaults instantiates a new CompileOptions object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetEngine
-
-`func (o *CompileOptions) GetEngine() string`
-
-GetEngine returns the Engine field if non-nil, zero value otherwise.
-
-### GetEngineOk
-
-`func (o *CompileOptions) GetEngineOk() (*string, bool)`
-
-GetEngineOk returns a tuple with the Engine field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEngine
-
-`func (o *CompileOptions) SetEngine(v string)`
-
-SetEngine sets Engine field to given value.
-
-### HasEngine
-
-`func (o *CompileOptions) HasEngine() bool`
-
-HasEngine returns a boolean if a field has been set.
-
-### SetEngineNil
-
-`func (o *CompileOptions) SetEngineNil(b bool)`
-
- SetEngineNil sets the value for Engine to be an explicit nil
-
-### UnsetEngine
-`func (o *CompileOptions) UnsetEngine()`
-
-UnsetEngine ensures that no value is present for Engine, not even an explicit nil
-### GetEntrypoint
-
-`func (o *CompileOptions) GetEntrypoint() string`
-
-GetEntrypoint returns the Entrypoint field if non-nil, zero value otherwise.
-
-### GetEntrypointOk
-
-`func (o *CompileOptions) GetEntrypointOk() (*string, bool)`
-
-GetEntrypointOk returns a tuple with the Entrypoint field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEntrypoint
-
-`func (o *CompileOptions) SetEntrypoint(v string)`
-
-SetEntrypoint sets Entrypoint field to given value.
-
-### HasEntrypoint
-
-`func (o *CompileOptions) HasEntrypoint() bool`
-
-HasEntrypoint returns a boolean if a field has been set.
-
-### SetEntrypointNil
-
-`func (o *CompileOptions) SetEntrypointNil(b bool)`
-
- SetEntrypointNil sets the value for Entrypoint to be an explicit nil
-
-### UnsetEntrypoint
-`func (o *CompileOptions) UnsetEntrypoint()`
-
-UnsetEntrypoint ensures that no value is present for Entrypoint, not even an explicit nil
-### GetWait
-
-`func (o *CompileOptions) GetWait() bool`
-
-GetWait returns the Wait field if non-nil, zero value otherwise.
-
-### GetWaitOk
-
-`func (o *CompileOptions) GetWaitOk() (*bool, bool)`
-
-GetWaitOk returns a tuple with the Wait field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetWait
-
-`func (o *CompileOptions) SetWait(v bool)`
-
-SetWait sets Wait field to given value.
-
-### HasWait
-
-`func (o *CompileOptions) HasWait() bool`
-
-HasWait returns a boolean if a field has been set.
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/CompileProjectOut.md b/sdk/go/docs/CompileProjectOut.md
deleted file mode 100644
index 8039cc5..0000000
--- a/sdk/go/docs/CompileProjectOut.md
+++ /dev/null
@@ -1,112 +0,0 @@
-# CompileProjectOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**AutoCompile** | **bool** | |
-**Engine** | **string** | |
-**Entrypoint** | **string** | |
-**FldId** | **string** | |
-
-## Methods
-
-### NewCompileProjectOut
-
-`func NewCompileProjectOut(autoCompile bool, engine string, entrypoint string, fldId string, ) *CompileProjectOut`
-
-NewCompileProjectOut instantiates a new CompileProjectOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewCompileProjectOutWithDefaults
-
-`func NewCompileProjectOutWithDefaults() *CompileProjectOut`
-
-NewCompileProjectOutWithDefaults instantiates a new CompileProjectOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetAutoCompile
-
-`func (o *CompileProjectOut) GetAutoCompile() bool`
-
-GetAutoCompile returns the AutoCompile field if non-nil, zero value otherwise.
-
-### GetAutoCompileOk
-
-`func (o *CompileProjectOut) GetAutoCompileOk() (*bool, bool)`
-
-GetAutoCompileOk returns a tuple with the AutoCompile field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetAutoCompile
-
-`func (o *CompileProjectOut) SetAutoCompile(v bool)`
-
-SetAutoCompile sets AutoCompile field to given value.
-
-
-### GetEngine
-
-`func (o *CompileProjectOut) GetEngine() string`
-
-GetEngine returns the Engine field if non-nil, zero value otherwise.
-
-### GetEngineOk
-
-`func (o *CompileProjectOut) GetEngineOk() (*string, bool)`
-
-GetEngineOk returns a tuple with the Engine field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEngine
-
-`func (o *CompileProjectOut) SetEngine(v string)`
-
-SetEngine sets Engine field to given value.
-
-
-### GetEntrypoint
-
-`func (o *CompileProjectOut) GetEntrypoint() string`
-
-GetEntrypoint returns the Entrypoint field if non-nil, zero value otherwise.
-
-### GetEntrypointOk
-
-`func (o *CompileProjectOut) GetEntrypointOk() (*string, bool)`
-
-GetEntrypointOk returns a tuple with the Entrypoint field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEntrypoint
-
-`func (o *CompileProjectOut) SetEntrypoint(v string)`
-
-SetEntrypoint sets Entrypoint field to given value.
-
-
-### GetFldId
-
-`func (o *CompileProjectOut) GetFldId() string`
-
-GetFldId returns the FldId field if non-nil, zero value otherwise.
-
-### GetFldIdOk
-
-`func (o *CompileProjectOut) GetFldIdOk() (*string, bool)`
-
-GetFldIdOk returns a tuple with the FldId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetFldId
-
-`func (o *CompileProjectOut) SetFldId(v string)`
-
-SetFldId sets FldId field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/CopyIn.md b/sdk/go/docs/CopyIn.md
deleted file mode 100644
index 44299b0..0000000
--- a/sdk/go/docs/CopyIn.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# CopyIn
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**FromGeneration** | Pointer to **NullableInt32** | | [optional]
-**Path** | **string** | |
-**Source** | Pointer to [**NullableArtifactSource**](ArtifactSource.md) | | [optional]
-
-## Methods
-
-### NewCopyIn
-
-`func NewCopyIn(path string, ) *CopyIn`
-
-NewCopyIn instantiates a new CopyIn object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewCopyInWithDefaults
-
-`func NewCopyInWithDefaults() *CopyIn`
-
-NewCopyInWithDefaults instantiates a new CopyIn object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetFromGeneration
-
-`func (o *CopyIn) GetFromGeneration() int32`
-
-GetFromGeneration returns the FromGeneration field if non-nil, zero value otherwise.
-
-### GetFromGenerationOk
-
-`func (o *CopyIn) GetFromGenerationOk() (*int32, bool)`
-
-GetFromGenerationOk returns a tuple with the FromGeneration field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetFromGeneration
-
-`func (o *CopyIn) SetFromGeneration(v int32)`
-
-SetFromGeneration sets FromGeneration field to given value.
-
-### HasFromGeneration
-
-`func (o *CopyIn) HasFromGeneration() bool`
-
-HasFromGeneration returns a boolean if a field has been set.
-
-### SetFromGenerationNil
-
-`func (o *CopyIn) SetFromGenerationNil(b bool)`
-
- SetFromGenerationNil sets the value for FromGeneration to be an explicit nil
-
-### UnsetFromGeneration
-`func (o *CopyIn) UnsetFromGeneration()`
-
-UnsetFromGeneration ensures that no value is present for FromGeneration, not even an explicit nil
-### GetPath
-
-`func (o *CopyIn) GetPath() string`
-
-GetPath returns the Path field if non-nil, zero value otherwise.
-
-### GetPathOk
-
-`func (o *CopyIn) GetPathOk() (*string, bool)`
-
-GetPathOk returns a tuple with the Path field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPath
-
-`func (o *CopyIn) SetPath(v string)`
-
-SetPath sets Path field to given value.
-
-
-### GetSource
-
-`func (o *CopyIn) GetSource() ArtifactSource`
-
-GetSource returns the Source field if non-nil, zero value otherwise.
-
-### GetSourceOk
-
-`func (o *CopyIn) GetSourceOk() (*ArtifactSource, bool)`
-
-GetSourceOk returns a tuple with the Source field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetSource
-
-`func (o *CopyIn) SetSource(v ArtifactSource)`
-
-SetSource sets Source field to given value.
-
-### HasSource
-
-`func (o *CopyIn) HasSource() bool`
-
-HasSource returns a boolean if a field has been set.
-
-### SetSourceNil
-
-`func (o *CopyIn) SetSourceNil(b bool)`
-
- SetSourceNil sets the value for Source to be an explicit nil
-
-### UnsetSource
-`func (o *CopyIn) UnsetSource()`
-
-UnsetSource ensures that no value is present for Source, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DatasetDescriptionOut.md b/sdk/go/docs/DatasetDescriptionOut.md
deleted file mode 100644
index da51523..0000000
--- a/sdk/go/docs/DatasetDescriptionOut.md
+++ /dev/null
@@ -1,70 +0,0 @@
-# DatasetDescriptionOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Columns** | [**[]QueryColumnOut**](QueryColumnOut.md) | |
-**Dataset** | **string** | |
-
-## Methods
-
-### NewDatasetDescriptionOut
-
-`func NewDatasetDescriptionOut(columns []QueryColumnOut, dataset string, ) *DatasetDescriptionOut`
-
-NewDatasetDescriptionOut instantiates a new DatasetDescriptionOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewDatasetDescriptionOutWithDefaults
-
-`func NewDatasetDescriptionOutWithDefaults() *DatasetDescriptionOut`
-
-NewDatasetDescriptionOutWithDefaults instantiates a new DatasetDescriptionOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetColumns
-
-`func (o *DatasetDescriptionOut) GetColumns() []QueryColumnOut`
-
-GetColumns returns the Columns field if non-nil, zero value otherwise.
-
-### GetColumnsOk
-
-`func (o *DatasetDescriptionOut) GetColumnsOk() (*[]QueryColumnOut, bool)`
-
-GetColumnsOk returns a tuple with the Columns field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetColumns
-
-`func (o *DatasetDescriptionOut) SetColumns(v []QueryColumnOut)`
-
-SetColumns sets Columns field to given value.
-
-
-### GetDataset
-
-`func (o *DatasetDescriptionOut) GetDataset() string`
-
-GetDataset returns the Dataset field if non-nil, zero value otherwise.
-
-### GetDatasetOk
-
-`func (o *DatasetDescriptionOut) GetDatasetOk() (*string, bool)`
-
-GetDatasetOk returns a tuple with the Dataset field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDataset
-
-`func (o *DatasetDescriptionOut) SetDataset(v string)`
-
-SetDataset sets Dataset field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DefaultAPI.md b/sdk/go/docs/DefaultAPI.md
index cb59b2f..e4cde83 100644
--- a/sdk/go/docs/DefaultAPI.md
+++ b/sdk/go/docs/DefaultAPI.md
@@ -4,5697 +4,15 @@ All URIs are relative to *https://api.agentdrive.run*
Method | HTTP request | Description
------------- | ------------- | -------------
-[**AbortUploadV0UploadsUploadIdDelete**](DefaultAPI.md#AbortUploadV0UploadsUploadIdDelete) | **Delete** /v0/uploads/{upload_id} | Abort a large (direct-to-GCS) upload session
-[**BeginUploadV0UploadsPost**](DefaultAPI.md#BeginUploadV0UploadsPost) | **Post** /v0/uploads | Begin a large (direct-to-GCS) upload
-[**CallbackAuthCallbackGet**](DefaultAPI.md#CallbackAuthCallbackGet) | **Get** /auth/callback | Callback
-[**CancelJobV0JobsJobIdCancelPost**](DefaultAPI.md#CancelJobV0JobsJobIdCancelPost) | **Post** /v0/jobs/{job_id}/cancel | Cancel a queued/running job
-[**CommitUploadV0UploadsUploadIdCommitPost**](DefaultAPI.md#CommitUploadV0UploadsUploadIdCommitPost) | **Post** /v0/uploads/{upload_id}/commit | Commit a large (direct-to-GCS) upload
-[**CopyArtifactRouteV0ArtifactsArtIdCopyPost**](DefaultAPI.md#CopyArtifactRouteV0ArtifactsArtIdCopyPost) | **Post** /v0/artifacts/{art_id}/copy | Duplicate an artifact to a new path (CAS-shared, new ID)
-[**CopyFolderByIdV0FoldersFldIdCopyPost**](DefaultAPI.md#CopyFolderByIdV0FoldersFldIdCopyPost) | **Post** /v0/folders/{fld_id}/copy | Duplicate a folder subtree to a new path (CAS-shared, new IDs)
-[**CreateFolderByPathV0FoldersPathPut**](DefaultAPI.md#CreateFolderByPathV0FoldersPathPut) | **Put** /v0/folders/{path} | Create a folder (idempotent)
-[**CreateGrantRouteV0GrantsPost**](DefaultAPI.md#CreateGrantRouteV0GrantsPost) | **Post** /v0/grants | Create (or fetch) a per-principal grant on a resource
-[**CreateShareRouteV0SharesPost**](DefaultAPI.md#CreateShareRouteV0SharesPost) | **Post** /v0/shares | Mint a share link (returns the share_key once)
-[**DeleteArtifactByIdRouteV0ArtifactsArtIdDelete**](DefaultAPI.md#DeleteArtifactByIdRouteV0ArtifactsArtIdDelete) | **Delete** /v0/artifacts/{art_id} | Soft-delete an artifact by its stable ID
-[**DeleteArtifactV0ArtifactsPathDelete**](DefaultAPI.md#DeleteArtifactV0ArtifactsPathDelete) | **Delete** /v0/artifacts/{path} | Delete Artifact
-[**DeleteDriveRouteV0DrivesDriveIdDelete**](DefaultAPI.md#DeleteDriveRouteV0DrivesDriveIdDelete) | **Delete** /v0/drives/{drive_id} | Soft-delete a drive
-[**DeleteFolderByIdV0FoldersFldIdDelete**](DefaultAPI.md#DeleteFolderByIdV0FoldersFldIdDelete) | **Delete** /v0/folders/{fld_id} | Soft-delete a folder by stable ID (cascade with ?recursive=true)
-[**DeleteFolderByPathV0FoldersPathDelete**](DefaultAPI.md#DeleteFolderByPathV0FoldersPathDelete) | **Delete** /v0/folders/{path} | Soft-delete a folder (cascade with ?recursive=true)
-[**DeleteGrantRouteV0GrantsGrnIdDelete**](DefaultAPI.md#DeleteGrantRouteV0GrantsGrnIdDelete) | **Delete** /v0/grants/{grn_id} | Revoke a grant (can_manage, or self-revoke own grant)
-[**DeleteShareRouteV0SharesShrIdDelete**](DefaultAPI.md#DeleteShareRouteV0SharesShrIdDelete) | **Delete** /v0/shares/{shr_id} | Revoke a share link (requires can_manage)
-[**DownloadArtifactByIdV0ArtifactsArtIdDownloadGet**](DefaultAPI.md#DownloadArtifactByIdV0ArtifactsArtIdDownloadGet) | **Get** /v0/artifacts/{art_id}/download | Stream the artifact bytes by stable ID (never rendered HTML)
-[**DownloadArtifactByPathV0ArtifactsPathDownloadGet**](DefaultAPI.md#DownloadArtifactByPathV0ArtifactsPathDownloadGet) | **Get** /v0/artifacts/{path}/download | Stream the artifact bytes by path (never rendered HTML)
-[**DownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGet**](DefaultAPI.md#DownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGet) | **Get** /v0/artifacts/{art_id}/versions/{version_number}/download | Stream bytes for a specific version (machine surface)
-[**DownloadUrlByIdV0ArtifactsArtIdDownloadUrlGet**](DefaultAPI.md#DownloadUrlByIdV0ArtifactsArtIdDownloadUrlGet) | **Get** /v0/artifacts/{art_id}/download-url | Signed direct-from-GCS download URL by stable ID
-[**DownloadUrlByPathV0ArtifactsPathDownloadUrlGet**](DefaultAPI.md#DownloadUrlByPathV0ArtifactsPathDownloadUrlGet) | **Get** /v0/artifacts/{path}/download-url | Signed direct-from-GCS download URL by path
-[**DownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGet**](DefaultAPI.md#DownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGet) | **Get** /v0/artifacts/{art_id}/versions/{version_number}/download-url | Signed direct-from-GCS download URL for a specific version
-[**EnqueueJobV0ProjectsFldIdJobsPost**](DefaultAPI.md#EnqueueJobV0ProjectsFldIdJobsPost) | **Post** /v0/projects/{fld_id}/jobs | Enqueue a compile job for a project (folder)
-[**ExtensionStartAuthExtensionStartGet**](DefaultAPI.md#ExtensionStartAuthExtensionStartGet) | **Get** /auth/extension/start | Extension Start
-[**FindV0FindGet**](DefaultAPI.md#FindV0FindGet) | **Get** /v0/find | Hybrid passage retrieval over the full file body
-[**GetArtifactByIdMetaV0ArtifactsArtIdMetaGet**](DefaultAPI.md#GetArtifactByIdMetaV0ArtifactsArtIdMetaGet) | **Get** /v0/artifacts/{art_id}/meta | Artifact metadata by stable ID (same shape as path /meta)
-[**GetArtifactByIdV0ArtifactsArtIdGet**](DefaultAPI.md#GetArtifactByIdV0ArtifactsArtIdGet) | **Get** /v0/artifacts/{art_id} | Canonical lookup of an artifact by its stable ID
-[**GetArtifactMetaV0ArtifactsPathMetaGet**](DefaultAPI.md#GetArtifactMetaV0ArtifactsPathMetaGet) | **Get** /v0/artifacts/{path}/meta | Get Artifact Meta
-[**GetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGet**](DefaultAPI.md#GetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGet) | **Get** /v0/artifacts/{art_id}/versions/{version_number} | Metadata for a specific version of an artifact
-[**GetDriveRouteV0DrivesDriveIdGet**](DefaultAPI.md#GetDriveRouteV0DrivesDriveIdGet) | **Get** /v0/drives/{drive_id} | Drive overview by id (same shape as /drives/me)
-[**GetFeedbackStatusV0FeedbackFbkIdGet**](DefaultAPI.md#GetFeedbackStatusV0FeedbackFbkIdGet) | **Get** /v0/feedback/{fbk_id} | Get Feedback Status
-[**GetFolderByIdMetaV0FoldersFldIdMetaGet**](DefaultAPI.md#GetFolderByIdMetaV0FoldersFldIdMetaGet) | **Get** /v0/folders/{fld_id}/meta | Folder metadata by stable ID (same shape as the bare id route)
-[**GetFolderByIdV0FoldersFldIdGet**](DefaultAPI.md#GetFolderByIdV0FoldersFldIdGet) | **Get** /v0/folders/{fld_id} | Canonical lookup of a folder by its stable ID
-[**GetFolderByPathMetaV0FoldersPathMetaGet**](DefaultAPI.md#GetFolderByPathMetaV0FoldersPathMetaGet) | **Get** /v0/folders/{path}/meta | Folder metadata by path (same shape as the bare path route)
-[**GetFolderByPathV0FoldersPathGet**](DefaultAPI.md#GetFolderByPathV0FoldersPathGet) | **Get** /v0/folders/{path} | Read folder metadata by path
-[**GetGrantRouteV0GrantsGrnIdGet**](DefaultAPI.md#GetGrantRouteV0GrantsGrnIdGet) | **Get** /v0/grants/{grn_id} | Read a single grant (can_manage, or the grant's own principal)
-[**GetJobLogsV0JobsJobIdLogsGet**](DefaultAPI.md#GetJobLogsV0JobsJobIdLogsGet) | **Get** /v0/jobs/{job_id}/logs | Raw compile log (text/plain)
-[**GetJobV0JobsJobIdGet**](DefaultAPI.md#GetJobV0JobsJobIdGet) | **Get** /v0/jobs/{job_id} | Poll a job
-[**GetProjectV0ProjectsFldIdGet**](DefaultAPI.md#GetProjectV0ProjectsFldIdGet) | **Get** /v0/projects/{fld_id} | Get a project's compile config
-[**GetShareRouteV0SharesShrIdGet**](DefaultAPI.md#GetShareRouteV0SharesShrIdGet) | **Get** /v0/shares/{shr_id} | Read a single share link's metadata (requires can_manage)
-[**GetUploadStatusV0UploadsUploadIdGet**](DefaultAPI.md#GetUploadStatusV0UploadsUploadIdGet) | **Get** /v0/uploads/{upload_id} | Get the status of a large (direct-to-GCS) upload session
-[**HealthHealthGet**](DefaultAPI.md#HealthHealthGet) | **Get** /health | Health
-[**ListArtifactVersionsV0ArtifactsArtIdVersionsGet**](DefaultAPI.md#ListArtifactVersionsV0ArtifactsArtIdVersionsGet) | **Get** /v0/artifacts/{art_id}/versions | List versions of an artifact, newest first
-[**ListArtifactsV0ArtifactsGet**](DefaultAPI.md#ListArtifactsV0ArtifactsGet) | **Get** /v0/artifacts | List artifacts in the drive
-[**ListEventsRouteV0EventsGet**](DefaultAPI.md#ListEventsRouteV0EventsGet) | **Get** /v0/events | Read the append-only event log for the authenticated drive
-[**ListGrantsRouteV0GrantsGet**](DefaultAPI.md#ListGrantsRouteV0GrantsGet) | **Get** /v0/grants | List live grants on a resource (requires can_manage)
-[**ListProjectJobsV0ProjectsFldIdJobsGet**](DefaultAPI.md#ListProjectJobsV0ProjectsFldIdJobsGet) | **Get** /v0/projects/{fld_id}/jobs | List a project's jobs
-[**ListSharesRouteV0SharesGet**](DefaultAPI.md#ListSharesRouteV0SharesGet) | **Get** /v0/shares | List live share links on a resource (requires can_manage)
-[**ListTrashRouteV0DrivesDriveIdTrashGet**](DefaultAPI.md#ListTrashRouteV0DrivesDriveIdTrashGet) | **Get** /v0/drives/{drive_id}/trash | List the authenticated drive's trash
-[**LoginAuthLoginGet**](DefaultAPI.md#LoginAuthLoginGet) | **Get** /auth/login | Login
-[**LogoutAuthLogoutPost**](DefaultAPI.md#LogoutAuthLogoutPost) | **Post** /auth/logout | Logout
-[**MeUsageV0DrivesMeUsageGet**](DefaultAPI.md#MeUsageV0DrivesMeUsageGet) | **Get** /v0/drives/me/usage | Current-period usage + caps for the authenticated drive
-[**MeV0DrivesMeGet**](DefaultAPI.md#MeV0DrivesMeGet) | **Get** /v0/drives/me | Me
-[**MoveArtifactRouteV0ArtifactsArtIdMovePost**](DefaultAPI.md#MoveArtifactRouteV0ArtifactsArtIdMovePost) | **Post** /v0/artifacts/{art_id}/move | Rename / move an artifact to a new path
-[**MoveFolderByIdV0FoldersFldIdMovePost**](DefaultAPI.md#MoveFolderByIdV0FoldersFldIdMovePost) | **Post** /v0/folders/{fld_id}/move | Rename / move a folder by stable ID (cascade descendants)
-[**MoveFolderByPathV0FoldersPathMovePost**](DefaultAPI.md#MoveFolderByPathV0FoldersPathMovePost) | **Post** /v0/folders/{path}/move | Rename / move a folder (cascade-update descendants)
-[**PatchArtifactRouteV0ArtifactsArtIdPatch**](DefaultAPI.md#PatchArtifactRouteV0ArtifactsArtIdPatch) | **Patch** /v0/artifacts/{art_id} | Edit artifact metadata (labels / metadata / source)
-[**PatchFolderByIdV0FoldersFldIdPatch**](DefaultAPI.md#PatchFolderByIdV0FoldersFldIdPatch) | **Patch** /v0/folders/{fld_id} | Update folder metadata by stable ID
-[**PatchFolderByPathV0FoldersPathPatch**](DefaultAPI.md#PatchFolderByPathV0FoldersPathPatch) | **Patch** /v0/folders/{path} | Update folder metadata by path
-[**PatchGrantRouteV0GrantsGrnIdPatch**](DefaultAPI.md#PatchGrantRouteV0GrantsGrnIdPatch) | **Patch** /v0/grants/{grn_id} | Update a grant's role and/or expiry (requires can_manage)
-[**PostDescribeV0QueryDescribePost**](DefaultAPI.md#PostDescribeV0QueryDescribePost) | **Post** /v0/query/describe | Describe a dataset's column schema
-[**PostFeedbackV0FeedbackPost**](DefaultAPI.md#PostFeedbackV0FeedbackPost) | **Post** /v0/feedback | Post Feedback
-[**PostLookupValuesV0QueryLookupValuesPost**](DefaultAPI.md#PostLookupValuesV0QueryLookupValuesPost) | **Post** /v0/query/lookup-values | List distinct values of a dataset column
-[**PostQueryV0QueryPost**](DefaultAPI.md#PostQueryV0QueryPost) | **Post** /v0/query | Run a read-only SQL query over authorized datasets
-[**PutArtifactV0ArtifactsPathPut**](DefaultAPI.md#PutArtifactV0ArtifactsPathPut) | **Put** /v0/artifacts/{path} | Upload (or overwrite) an artifact
-[**PutProjectV0ProjectsFldIdPut**](DefaultAPI.md#PutProjectV0ProjectsFldIdPut) | **Put** /v0/projects/{fld_id} | Set a project's compile config (entrypoint/engine/auto_compile)
-[**RedeemShareSShareKeyGet**](DefaultAPI.md#RedeemShareSShareKeyGet) | **Get** /s/{share_key} | Redeem Share
-[**RedeemShareWithPasswordSShareKeyPost**](DefaultAPI.md#RedeemShareWithPasswordSShareKeyPost) | **Post** /s/{share_key} | Redeem Share With Password
-[**RestoreArtifactV0ArtifactsArtIdRestorePost**](DefaultAPI.md#RestoreArtifactV0ArtifactsArtIdRestorePost) | **Post** /v0/artifacts/{art_id}/restore | Restore a soft-deleted artifact
-[**RestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePost**](DefaultAPI.md#RestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePost) | **Post** /v0/artifacts/{art_id}/versions/{version_number}/restore | Restore a previous version as a new head version
-[**RestoreDriveRouteV0DrivesDriveIdRestorePost**](DefaultAPI.md#RestoreDriveRouteV0DrivesDriveIdRestorePost) | **Post** /v0/drives/{drive_id}/restore | Restore a soft-deleted drive
-[**RestoreFolderByIdV0FoldersFldIdRestorePost**](DefaultAPI.md#RestoreFolderByIdV0FoldersFldIdRestorePost) | **Post** /v0/folders/{fld_id}/restore | Restore a soft-deleted folder (cascade)
-[**RotateShareRouteV0SharesShrIdRotatePost**](DefaultAPI.md#RotateShareRouteV0SharesShrIdRotatePost) | **Post** /v0/shares/{shr_id}/rotate | Revoke + reissue a share link's key (requires can_share)
-[**SearchV0SearchGet**](DefaultAPI.md#SearchV0SearchGet) | **Get** /v0/search | Full-text search over artifacts in the drive
-[**ViewArtifactHeadAArtIdHeadGet**](DefaultAPI.md#ViewArtifactHeadAArtIdHeadGet) | **Get** /a/{art_id}/head | View Artifact Head
-[**ViewArtifactVersionVArtIdVersionGet**](DefaultAPI.md#ViewArtifactVersionVArtIdVersionGet) | **Get** /v/{art_id}/{version} | View Artifact Version
-[**ViewFileDriveIdPathGet**](DefaultAPI.md#ViewFileDriveIdPathGet) | **Get** /{drive_id}/{path} | View File
-[**ViewPermalinkArtifactAArtIdGet**](DefaultAPI.md#ViewPermalinkArtifactAArtIdGet) | **Get** /a/{art_id} | View Permalink Artifact
-[**ViewPermalinkFolderFFldIdGet**](DefaultAPI.md#ViewPermalinkFolderFFldIdGet) | **Get** /f/{fld_id} | View Permalink Folder
+[**Health**](DefaultAPI.md#Health) | **Get** /health | Health
-## AbortUploadV0UploadsUploadIdDelete
+## Health
-> UploadAbortOut AbortUploadV0UploadsUploadIdDelete(ctx, uploadId).Execute()
+> HealthOut Health(ctx).Execute()
-Abort a large (direct-to-GCS) upload session
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- uploadId := "uploadId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.AbortUploadV0UploadsUploadIdDelete(context.Background(), uploadId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.AbortUploadV0UploadsUploadIdDelete``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `AbortUploadV0UploadsUploadIdDelete`: UploadAbortOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.AbortUploadV0UploadsUploadIdDelete`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**uploadId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiAbortUploadV0UploadsUploadIdDeleteRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**UploadAbortOut**](UploadAbortOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## BeginUploadV0UploadsPost
-
-> UploadBeginOut BeginUploadV0UploadsPost(ctx).UploadBeginIn(uploadBeginIn).Execute()
-
-Begin a large (direct-to-GCS) upload
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- uploadBeginIn := *openapiclient.NewUploadBeginIn("Path_example", int32(123)) // UploadBeginIn |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.BeginUploadV0UploadsPost(context.Background()).UploadBeginIn(uploadBeginIn).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.BeginUploadV0UploadsPost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `BeginUploadV0UploadsPost`: UploadBeginOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.BeginUploadV0UploadsPost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiBeginUploadV0UploadsPostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **uploadBeginIn** | [**UploadBeginIn**](UploadBeginIn.md) | |
-
-### Return type
-
-[**UploadBeginOut**](UploadBeginOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## CallbackAuthCallbackGet
-
-> string CallbackAuthCallbackGet(ctx).Code(code).State(state).Error_(error_).Execute()
-
-Callback
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- code := "code_example" // string | (optional)
- state := "state_example" // string | (optional)
- error_ := "error__example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.CallbackAuthCallbackGet(context.Background()).Code(code).State(state).Error_(error_).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.CallbackAuthCallbackGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `CallbackAuthCallbackGet`: string
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.CallbackAuthCallbackGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiCallbackAuthCallbackGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **code** | **string** | |
- **state** | **string** | |
- **error_** | **string** | |
-
-### Return type
-
-**string**
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: text/html, application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## CancelJobV0JobsJobIdCancelPost
-
-> CompileJobOut CancelJobV0JobsJobIdCancelPost(ctx, jobId).Execute()
-
-Cancel a queued/running job
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- jobId := "jobId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.CancelJobV0JobsJobIdCancelPost(context.Background(), jobId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.CancelJobV0JobsJobIdCancelPost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `CancelJobV0JobsJobIdCancelPost`: CompileJobOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.CancelJobV0JobsJobIdCancelPost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**jobId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiCancelJobV0JobsJobIdCancelPostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**CompileJobOut**](CompileJobOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## CommitUploadV0UploadsUploadIdCommitPost
-
-> ArtifactOut CommitUploadV0UploadsUploadIdCommitPost(ctx, uploadId).Execute()
-
-Commit a large (direct-to-GCS) upload
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- uploadId := "uploadId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.CommitUploadV0UploadsUploadIdCommitPost(context.Background(), uploadId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.CommitUploadV0UploadsUploadIdCommitPost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `CommitUploadV0UploadsUploadIdCommitPost`: ArtifactOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.CommitUploadV0UploadsUploadIdCommitPost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**uploadId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiCommitUploadV0UploadsUploadIdCommitPostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**ArtifactOut**](ArtifactOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## CopyArtifactRouteV0ArtifactsArtIdCopyPost
-
-> ArtifactOut CopyArtifactRouteV0ArtifactsArtIdCopyPost(ctx, artId).CopyIn(copyIn).XAgentdriveActor(xAgentdriveActor).IfNoneMatch(ifNoneMatch).Execute()
-
-Duplicate an artifact to a new path (CAS-shared, new ID)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- artId := "artId_example" // string |
- copyIn := *openapiclient.NewCopyIn("Path_example") // CopyIn |
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
- ifNoneMatch := "ifNoneMatch_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.CopyArtifactRouteV0ArtifactsArtIdCopyPost(context.Background(), artId).CopyIn(copyIn).XAgentdriveActor(xAgentdriveActor).IfNoneMatch(ifNoneMatch).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.CopyArtifactRouteV0ArtifactsArtIdCopyPost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `CopyArtifactRouteV0ArtifactsArtIdCopyPost`: ArtifactOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.CopyArtifactRouteV0ArtifactsArtIdCopyPost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**artId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiCopyArtifactRouteV0ArtifactsArtIdCopyPostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **copyIn** | [**CopyIn**](CopyIn.md) | |
- **xAgentdriveActor** | **string** | |
- **ifNoneMatch** | **string** | |
-
-### Return type
-
-[**ArtifactOut**](ArtifactOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## CopyFolderByIdV0FoldersFldIdCopyPost
-
-> FolderCopyOut CopyFolderByIdV0FoldersFldIdCopyPost(ctx, fldId).FolderCopyIn(folderCopyIn).XAgentdriveActor(xAgentdriveActor).IfNoneMatch(ifNoneMatch).Execute()
-
-Duplicate a folder subtree to a new path (CAS-shared, new IDs)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- fldId := "fldId_example" // string |
- folderCopyIn := *openapiclient.NewFolderCopyIn("Path_example") // FolderCopyIn |
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
- ifNoneMatch := "ifNoneMatch_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.CopyFolderByIdV0FoldersFldIdCopyPost(context.Background(), fldId).FolderCopyIn(folderCopyIn).XAgentdriveActor(xAgentdriveActor).IfNoneMatch(ifNoneMatch).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.CopyFolderByIdV0FoldersFldIdCopyPost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `CopyFolderByIdV0FoldersFldIdCopyPost`: FolderCopyOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.CopyFolderByIdV0FoldersFldIdCopyPost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**fldId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiCopyFolderByIdV0FoldersFldIdCopyPostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **folderCopyIn** | [**FolderCopyIn**](FolderCopyIn.md) | |
- **xAgentdriveActor** | **string** | |
- **ifNoneMatch** | **string** | |
-
-### Return type
-
-[**FolderCopyOut**](FolderCopyOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## CreateFolderByPathV0FoldersPathPut
-
-> FolderOut CreateFolderByPathV0FoldersPathPut(ctx, path).XAgentdriveActor(xAgentdriveActor).IfNoneMatch(ifNoneMatch).FolderCreateIn(folderCreateIn).Execute()
-
-Create a folder (idempotent)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- path := "path_example" // string |
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
- ifNoneMatch := "ifNoneMatch_example" // string | (optional)
- folderCreateIn := *openapiclient.NewFolderCreateIn() // FolderCreateIn | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.CreateFolderByPathV0FoldersPathPut(context.Background(), path).XAgentdriveActor(xAgentdriveActor).IfNoneMatch(ifNoneMatch).FolderCreateIn(folderCreateIn).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.CreateFolderByPathV0FoldersPathPut``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `CreateFolderByPathV0FoldersPathPut`: FolderOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.CreateFolderByPathV0FoldersPathPut`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**path** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiCreateFolderByPathV0FoldersPathPutRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **xAgentdriveActor** | **string** | |
- **ifNoneMatch** | **string** | |
- **folderCreateIn** | [**FolderCreateIn**](FolderCreateIn.md) | |
-
-### Return type
-
-[**FolderOut**](FolderOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## CreateGrantRouteV0GrantsPost
-
-> GrantOut CreateGrantRouteV0GrantsPost(ctx).GrantCreateIn(grantCreateIn).XAgentdriveActor(xAgentdriveActor).Execute()
-
-Create (or fetch) a per-principal grant on a resource
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- grantCreateIn := *openapiclient.NewGrantCreateIn(*openapiclient.NewGrantPrincipalIn("Type_example"), "Resource_example", "Role_example") // GrantCreateIn |
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.CreateGrantRouteV0GrantsPost(context.Background()).GrantCreateIn(grantCreateIn).XAgentdriveActor(xAgentdriveActor).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.CreateGrantRouteV0GrantsPost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `CreateGrantRouteV0GrantsPost`: GrantOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.CreateGrantRouteV0GrantsPost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiCreateGrantRouteV0GrantsPostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **grantCreateIn** | [**GrantCreateIn**](GrantCreateIn.md) | |
- **xAgentdriveActor** | **string** | |
-
-### Return type
-
-[**GrantOut**](GrantOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## CreateShareRouteV0SharesPost
-
-> ShareMintOut CreateShareRouteV0SharesPost(ctx).ShareCreateIn(shareCreateIn).XAgentdriveActor(xAgentdriveActor).Execute()
-
-Mint a share link (returns the share_key once)
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- shareCreateIn := *openapiclient.NewShareCreateIn("Resource_example") // ShareCreateIn |
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.CreateShareRouteV0SharesPost(context.Background()).ShareCreateIn(shareCreateIn).XAgentdriveActor(xAgentdriveActor).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.CreateShareRouteV0SharesPost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `CreateShareRouteV0SharesPost`: ShareMintOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.CreateShareRouteV0SharesPost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiCreateShareRouteV0SharesPostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **shareCreateIn** | [**ShareCreateIn**](ShareCreateIn.md) | |
- **xAgentdriveActor** | **string** | |
-
-### Return type
-
-[**ShareMintOut**](ShareMintOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## DeleteArtifactByIdRouteV0ArtifactsArtIdDelete
-
-> ArtifactDeleteOut DeleteArtifactByIdRouteV0ArtifactsArtIdDelete(ctx, artId).IfMatch(ifMatch).XAgentdriveActor(xAgentdriveActor).Execute()
-
-Soft-delete an artifact by its stable ID
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- artId := "artId_example" // string |
- ifMatch := "ifMatch_example" // string | (optional)
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.DeleteArtifactByIdRouteV0ArtifactsArtIdDelete(context.Background(), artId).IfMatch(ifMatch).XAgentdriveActor(xAgentdriveActor).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.DeleteArtifactByIdRouteV0ArtifactsArtIdDelete``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `DeleteArtifactByIdRouteV0ArtifactsArtIdDelete`: ArtifactDeleteOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.DeleteArtifactByIdRouteV0ArtifactsArtIdDelete`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**artId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiDeleteArtifactByIdRouteV0ArtifactsArtIdDeleteRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **ifMatch** | **string** | |
- **xAgentdriveActor** | **string** | |
-
-### Return type
-
-[**ArtifactDeleteOut**](ArtifactDeleteOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## DeleteArtifactV0ArtifactsPathDelete
-
-> ArtifactDeleteOut DeleteArtifactV0ArtifactsPathDelete(ctx, path).IfMatch(ifMatch).XAgentdriveActor(xAgentdriveActor).Execute()
-
-Delete Artifact
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- path := "path_example" // string |
- ifMatch := "ifMatch_example" // string | (optional)
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.DeleteArtifactV0ArtifactsPathDelete(context.Background(), path).IfMatch(ifMatch).XAgentdriveActor(xAgentdriveActor).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.DeleteArtifactV0ArtifactsPathDelete``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `DeleteArtifactV0ArtifactsPathDelete`: ArtifactDeleteOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.DeleteArtifactV0ArtifactsPathDelete`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**path** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiDeleteArtifactV0ArtifactsPathDeleteRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **ifMatch** | **string** | |
- **xAgentdriveActor** | **string** | |
-
-### Return type
-
-[**ArtifactDeleteOut**](ArtifactDeleteOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## DeleteDriveRouteV0DrivesDriveIdDelete
-
-> DriveDeleteOut DeleteDriveRouteV0DrivesDriveIdDelete(ctx, driveId).Confirm(confirm).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
-
-Soft-delete a drive
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- driveId := "driveId_example" // string |
- confirm := "confirm_example" // string | (optional)
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
- ifMatch := "ifMatch_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.DeleteDriveRouteV0DrivesDriveIdDelete(context.Background(), driveId).Confirm(confirm).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.DeleteDriveRouteV0DrivesDriveIdDelete``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `DeleteDriveRouteV0DrivesDriveIdDelete`: DriveDeleteOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.DeleteDriveRouteV0DrivesDriveIdDelete`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**driveId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiDeleteDriveRouteV0DrivesDriveIdDeleteRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **confirm** | **string** | |
- **xAgentdriveActor** | **string** | |
- **ifMatch** | **string** | |
-
-### Return type
-
-[**DriveDeleteOut**](DriveDeleteOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## DeleteFolderByIdV0FoldersFldIdDelete
-
-> FolderDeleteOut DeleteFolderByIdV0FoldersFldIdDelete(ctx, fldId).Recursive(recursive).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
-
-Soft-delete a folder by stable ID (cascade with ?recursive=true)
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- fldId := "fldId_example" // string |
- recursive := true // bool | (optional) (default to false)
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
- ifMatch := "ifMatch_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.DeleteFolderByIdV0FoldersFldIdDelete(context.Background(), fldId).Recursive(recursive).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.DeleteFolderByIdV0FoldersFldIdDelete``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `DeleteFolderByIdV0FoldersFldIdDelete`: FolderDeleteOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.DeleteFolderByIdV0FoldersFldIdDelete`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**fldId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiDeleteFolderByIdV0FoldersFldIdDeleteRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **recursive** | **bool** | | [default to false]
- **xAgentdriveActor** | **string** | |
- **ifMatch** | **string** | |
-
-### Return type
-
-[**FolderDeleteOut**](FolderDeleteOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## DeleteFolderByPathV0FoldersPathDelete
-
-> FolderDeleteOut DeleteFolderByPathV0FoldersPathDelete(ctx, path).Recursive(recursive).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
-
-Soft-delete a folder (cascade with ?recursive=true)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- path := "path_example" // string |
- recursive := true // bool | (optional) (default to false)
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
- ifMatch := "ifMatch_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.DeleteFolderByPathV0FoldersPathDelete(context.Background(), path).Recursive(recursive).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.DeleteFolderByPathV0FoldersPathDelete``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `DeleteFolderByPathV0FoldersPathDelete`: FolderDeleteOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.DeleteFolderByPathV0FoldersPathDelete`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**path** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiDeleteFolderByPathV0FoldersPathDeleteRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **recursive** | **bool** | | [default to false]
- **xAgentdriveActor** | **string** | |
- **ifMatch** | **string** | |
-
-### Return type
-
-[**FolderDeleteOut**](FolderDeleteOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## DeleteGrantRouteV0GrantsGrnIdDelete
-
-> RevokeOut DeleteGrantRouteV0GrantsGrnIdDelete(ctx, grnId).XAgentdriveActor(xAgentdriveActor).Execute()
-
-Revoke a grant (can_manage, or self-revoke own grant)
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- grnId := "grnId_example" // string |
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.DeleteGrantRouteV0GrantsGrnIdDelete(context.Background(), grnId).XAgentdriveActor(xAgentdriveActor).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.DeleteGrantRouteV0GrantsGrnIdDelete``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `DeleteGrantRouteV0GrantsGrnIdDelete`: RevokeOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.DeleteGrantRouteV0GrantsGrnIdDelete`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**grnId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiDeleteGrantRouteV0GrantsGrnIdDeleteRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **xAgentdriveActor** | **string** | |
-
-### Return type
-
-[**RevokeOut**](RevokeOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## DeleteShareRouteV0SharesShrIdDelete
-
-> RevokeOut DeleteShareRouteV0SharesShrIdDelete(ctx, shrId).XAgentdriveActor(xAgentdriveActor).Execute()
-
-Revoke a share link (requires can_manage)
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- shrId := "shrId_example" // string |
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.DeleteShareRouteV0SharesShrIdDelete(context.Background(), shrId).XAgentdriveActor(xAgentdriveActor).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.DeleteShareRouteV0SharesShrIdDelete``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `DeleteShareRouteV0SharesShrIdDelete`: RevokeOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.DeleteShareRouteV0SharesShrIdDelete`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**shrId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiDeleteShareRouteV0SharesShrIdDeleteRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **xAgentdriveActor** | **string** | |
-
-### Return type
-
-[**RevokeOut**](RevokeOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## DownloadArtifactByIdV0ArtifactsArtIdDownloadGet
-
-> *os.File DownloadArtifactByIdV0ArtifactsArtIdDownloadGet(ctx, artId).Execute()
-
-Stream the artifact bytes by stable ID (never rendered HTML)
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- artId := "artId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.DownloadArtifactByIdV0ArtifactsArtIdDownloadGet(context.Background(), artId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.DownloadArtifactByIdV0ArtifactsArtIdDownloadGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `DownloadArtifactByIdV0ArtifactsArtIdDownloadGet`: *os.File
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.DownloadArtifactByIdV0ArtifactsArtIdDownloadGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**artId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiDownloadArtifactByIdV0ArtifactsArtIdDownloadGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[***os.File**](*os.File.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/octet-stream, application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## DownloadArtifactByPathV0ArtifactsPathDownloadGet
-
-> *os.File DownloadArtifactByPathV0ArtifactsPathDownloadGet(ctx, path).Execute()
-
-Stream the artifact bytes by path (never rendered HTML)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- path := "path_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.DownloadArtifactByPathV0ArtifactsPathDownloadGet(context.Background(), path).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.DownloadArtifactByPathV0ArtifactsPathDownloadGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `DownloadArtifactByPathV0ArtifactsPathDownloadGet`: *os.File
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.DownloadArtifactByPathV0ArtifactsPathDownloadGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**path** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiDownloadArtifactByPathV0ArtifactsPathDownloadGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[***os.File**](*os.File.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/octet-stream, application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## DownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGet
-
-> *os.File DownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGet(ctx, artId, versionNumber).Execute()
-
-Stream bytes for a specific version (machine surface)
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- artId := "artId_example" // string |
- versionNumber := int32(56) // int32 |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.DownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGet(context.Background(), artId, versionNumber).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.DownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `DownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGet`: *os.File
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.DownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**artId** | **string** | |
-**versionNumber** | **int32** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiDownloadArtifactVersionV0ArtifactsArtIdVersionsVersionNumberDownloadGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-
-### Return type
-
-[***os.File**](*os.File.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/octet-stream, application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## DownloadUrlByIdV0ArtifactsArtIdDownloadUrlGet
-
-> DownloadUrlOut DownloadUrlByIdV0ArtifactsArtIdDownloadUrlGet(ctx, artId).Execute()
-
-Signed direct-from-GCS download URL by stable ID
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- artId := "artId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.DownloadUrlByIdV0ArtifactsArtIdDownloadUrlGet(context.Background(), artId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.DownloadUrlByIdV0ArtifactsArtIdDownloadUrlGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `DownloadUrlByIdV0ArtifactsArtIdDownloadUrlGet`: DownloadUrlOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.DownloadUrlByIdV0ArtifactsArtIdDownloadUrlGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**artId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiDownloadUrlByIdV0ArtifactsArtIdDownloadUrlGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**DownloadUrlOut**](DownloadUrlOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## DownloadUrlByPathV0ArtifactsPathDownloadUrlGet
-
-> DownloadUrlOut DownloadUrlByPathV0ArtifactsPathDownloadUrlGet(ctx, path).Execute()
-
-Signed direct-from-GCS download URL by path
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- path := "path_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.DownloadUrlByPathV0ArtifactsPathDownloadUrlGet(context.Background(), path).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.DownloadUrlByPathV0ArtifactsPathDownloadUrlGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `DownloadUrlByPathV0ArtifactsPathDownloadUrlGet`: DownloadUrlOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.DownloadUrlByPathV0ArtifactsPathDownloadUrlGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**path** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiDownloadUrlByPathV0ArtifactsPathDownloadUrlGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**DownloadUrlOut**](DownloadUrlOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## DownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGet
-
-> DownloadUrlOut DownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGet(ctx, artId, versionNumber).Execute()
-
-Signed direct-from-GCS download URL for a specific version
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- artId := "artId_example" // string |
- versionNumber := int32(56) // int32 |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.DownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGet(context.Background(), artId, versionNumber).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.DownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `DownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGet`: DownloadUrlOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.DownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**artId** | **string** | |
-**versionNumber** | **int32** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiDownloadUrlVersionV0ArtifactsArtIdVersionsVersionNumberDownloadUrlGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-
-### Return type
-
-[**DownloadUrlOut**](DownloadUrlOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## EnqueueJobV0ProjectsFldIdJobsPost
-
-> CompileJobOut EnqueueJobV0ProjectsFldIdJobsPost(ctx, fldId).CompileJobIn(compileJobIn).XAgentdriveActor(xAgentdriveActor).Execute()
-
-Enqueue a compile job for a project (folder)
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- fldId := "fldId_example" // string |
- compileJobIn := *openapiclient.NewCompileJobIn() // CompileJobIn |
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.EnqueueJobV0ProjectsFldIdJobsPost(context.Background(), fldId).CompileJobIn(compileJobIn).XAgentdriveActor(xAgentdriveActor).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.EnqueueJobV0ProjectsFldIdJobsPost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `EnqueueJobV0ProjectsFldIdJobsPost`: CompileJobOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.EnqueueJobV0ProjectsFldIdJobsPost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**fldId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiEnqueueJobV0ProjectsFldIdJobsPostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **compileJobIn** | [**CompileJobIn**](CompileJobIn.md) | |
- **xAgentdriveActor** | **string** | |
-
-### Return type
-
-[**CompileJobOut**](CompileJobOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## ExtensionStartAuthExtensionStartGet
-
-> ExtensionStartAuthExtensionStartGet(ctx).ExtId(extId).Execute()
-
-Extension Start
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- extId := "extId_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- r, err := apiClient.DefaultAPI.ExtensionStartAuthExtensionStartGet(context.Background()).ExtId(extId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.ExtensionStartAuthExtensionStartGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiExtensionStartAuthExtensionStartGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **extId** | **string** | |
-
-### Return type
-
- (empty response body)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## FindV0FindGet
-
-> FindPage FindV0FindGet(ctx).Q(q).Mode(mode).Label(label).FileType(fileType).Prefix(prefix).Modality(modality).UpdatedAfter(updatedAfter).UpdatedBefore(updatedBefore).Limit(limit).Execute()
-
-Hybrid passage retrieval over the full file body
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- "time"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- q := "q_example" // string |
- mode := "mode_example" // string | (optional) (default to "hybrid")
- label := []string{"Inner_example"} // []string | (optional)
- fileType := "fileType_example" // string | (optional)
- prefix := "prefix_example" // string | (optional)
- modality := []*string{"Inner_example"} // []*string | (optional)
- updatedAfter := time.Now() // time.Time | (optional)
- updatedBefore := time.Now() // time.Time | (optional)
- limit := int32(56) // int32 | (optional) (default to 20)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.FindV0FindGet(context.Background()).Q(q).Mode(mode).Label(label).FileType(fileType).Prefix(prefix).Modality(modality).UpdatedAfter(updatedAfter).UpdatedBefore(updatedBefore).Limit(limit).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.FindV0FindGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `FindV0FindGet`: FindPage
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.FindV0FindGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiFindV0FindGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **q** | **string** | |
- **mode** | **string** | | [default to "hybrid"]
- **label** | **[]string** | |
- **fileType** | **string** | |
- **prefix** | **string** | |
- **modality** | **[]string** | |
- **updatedAfter** | **time.Time** | |
- **updatedBefore** | **time.Time** | |
- **limit** | **int32** | | [default to 20]
-
-### Return type
-
-[**FindPage**](FindPage.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## GetArtifactByIdMetaV0ArtifactsArtIdMetaGet
-
-> ArtifactOut GetArtifactByIdMetaV0ArtifactsArtIdMetaGet(ctx, artId).Execute()
-
-Artifact metadata by stable ID (same shape as path /meta)
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- artId := "artId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.GetArtifactByIdMetaV0ArtifactsArtIdMetaGet(context.Background(), artId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.GetArtifactByIdMetaV0ArtifactsArtIdMetaGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `GetArtifactByIdMetaV0ArtifactsArtIdMetaGet`: ArtifactOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.GetArtifactByIdMetaV0ArtifactsArtIdMetaGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**artId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiGetArtifactByIdMetaV0ArtifactsArtIdMetaGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**ArtifactOut**](ArtifactOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## GetArtifactByIdV0ArtifactsArtIdGet
-
-> ArtifactOut GetArtifactByIdV0ArtifactsArtIdGet(ctx, artId).Execute()
-
-Canonical lookup of an artifact by its stable ID
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- artId := "artId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.GetArtifactByIdV0ArtifactsArtIdGet(context.Background(), artId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.GetArtifactByIdV0ArtifactsArtIdGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `GetArtifactByIdV0ArtifactsArtIdGet`: ArtifactOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.GetArtifactByIdV0ArtifactsArtIdGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**artId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiGetArtifactByIdV0ArtifactsArtIdGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**ArtifactOut**](ArtifactOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## GetArtifactMetaV0ArtifactsPathMetaGet
-
-> ArtifactOut GetArtifactMetaV0ArtifactsPathMetaGet(ctx, path).Execute()
-
-Get Artifact Meta
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- path := "path_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.GetArtifactMetaV0ArtifactsPathMetaGet(context.Background(), path).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.GetArtifactMetaV0ArtifactsPathMetaGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `GetArtifactMetaV0ArtifactsPathMetaGet`: ArtifactOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.GetArtifactMetaV0ArtifactsPathMetaGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**path** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiGetArtifactMetaV0ArtifactsPathMetaGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**ArtifactOut**](ArtifactOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## GetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGet
-
-> VersionOut GetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGet(ctx, artId, versionNumber).Execute()
-
-Metadata for a specific version of an artifact
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- artId := "artId_example" // string |
- versionNumber := int32(56) // int32 |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.GetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGet(context.Background(), artId, versionNumber).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.GetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `GetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGet`: VersionOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.GetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**artId** | **string** | |
-**versionNumber** | **int32** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiGetArtifactVersionV0ArtifactsArtIdVersionsVersionNumberGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-
-### Return type
-
-[**VersionOut**](VersionOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## GetDriveRouteV0DrivesDriveIdGet
-
-> DriveReadOut GetDriveRouteV0DrivesDriveIdGet(ctx, driveId).Execute()
-
-Drive overview by id (same shape as /drives/me)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- driveId := "driveId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.GetDriveRouteV0DrivesDriveIdGet(context.Background(), driveId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.GetDriveRouteV0DrivesDriveIdGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `GetDriveRouteV0DrivesDriveIdGet`: DriveReadOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.GetDriveRouteV0DrivesDriveIdGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**driveId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiGetDriveRouteV0DrivesDriveIdGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**DriveReadOut**](DriveReadOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## GetFeedbackStatusV0FeedbackFbkIdGet
-
-> FeedbackStatusOut GetFeedbackStatusV0FeedbackFbkIdGet(ctx, fbkId).Execute()
-
-Get Feedback Status
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- fbkId := "fbkId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.GetFeedbackStatusV0FeedbackFbkIdGet(context.Background(), fbkId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.GetFeedbackStatusV0FeedbackFbkIdGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `GetFeedbackStatusV0FeedbackFbkIdGet`: FeedbackStatusOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.GetFeedbackStatusV0FeedbackFbkIdGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**fbkId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiGetFeedbackStatusV0FeedbackFbkIdGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**FeedbackStatusOut**](FeedbackStatusOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## GetFolderByIdMetaV0FoldersFldIdMetaGet
-
-> FolderOut GetFolderByIdMetaV0FoldersFldIdMetaGet(ctx, fldId).Execute()
-
-Folder metadata by stable ID (same shape as the bare id route)
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- fldId := "fldId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.GetFolderByIdMetaV0FoldersFldIdMetaGet(context.Background(), fldId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.GetFolderByIdMetaV0FoldersFldIdMetaGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `GetFolderByIdMetaV0FoldersFldIdMetaGet`: FolderOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.GetFolderByIdMetaV0FoldersFldIdMetaGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**fldId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiGetFolderByIdMetaV0FoldersFldIdMetaGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**FolderOut**](FolderOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## GetFolderByIdV0FoldersFldIdGet
-
-> FolderOut GetFolderByIdV0FoldersFldIdGet(ctx, fldId).Execute()
-
-Canonical lookup of a folder by its stable ID
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- fldId := "fldId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.GetFolderByIdV0FoldersFldIdGet(context.Background(), fldId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.GetFolderByIdV0FoldersFldIdGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `GetFolderByIdV0FoldersFldIdGet`: FolderOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.GetFolderByIdV0FoldersFldIdGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**fldId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiGetFolderByIdV0FoldersFldIdGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**FolderOut**](FolderOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## GetFolderByPathMetaV0FoldersPathMetaGet
-
-> FolderOut GetFolderByPathMetaV0FoldersPathMetaGet(ctx, path).Execute()
-
-Folder metadata by path (same shape as the bare path route)
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- path := "path_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.GetFolderByPathMetaV0FoldersPathMetaGet(context.Background(), path).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.GetFolderByPathMetaV0FoldersPathMetaGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `GetFolderByPathMetaV0FoldersPathMetaGet`: FolderOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.GetFolderByPathMetaV0FoldersPathMetaGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**path** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiGetFolderByPathMetaV0FoldersPathMetaGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**FolderOut**](FolderOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## GetFolderByPathV0FoldersPathGet
-
-> FolderOut GetFolderByPathV0FoldersPathGet(ctx, path).Execute()
-
-Read folder metadata by path
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- path := "path_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.GetFolderByPathV0FoldersPathGet(context.Background(), path).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.GetFolderByPathV0FoldersPathGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `GetFolderByPathV0FoldersPathGet`: FolderOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.GetFolderByPathV0FoldersPathGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**path** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiGetFolderByPathV0FoldersPathGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**FolderOut**](FolderOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## GetGrantRouteV0GrantsGrnIdGet
-
-> GrantOut GetGrantRouteV0GrantsGrnIdGet(ctx, grnId).Execute()
-
-Read a single grant (can_manage, or the grant's own principal)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- grnId := "grnId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.GetGrantRouteV0GrantsGrnIdGet(context.Background(), grnId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.GetGrantRouteV0GrantsGrnIdGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `GetGrantRouteV0GrantsGrnIdGet`: GrantOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.GetGrantRouteV0GrantsGrnIdGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**grnId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiGetGrantRouteV0GrantsGrnIdGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**GrantOut**](GrantOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## GetJobLogsV0JobsJobIdLogsGet
-
-> string GetJobLogsV0JobsJobIdLogsGet(ctx, jobId).Execute()
-
-Raw compile log (text/plain)
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- jobId := "jobId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.GetJobLogsV0JobsJobIdLogsGet(context.Background(), jobId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.GetJobLogsV0JobsJobIdLogsGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `GetJobLogsV0JobsJobIdLogsGet`: string
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.GetJobLogsV0JobsJobIdLogsGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**jobId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiGetJobLogsV0JobsJobIdLogsGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-**string**
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: text/plain, application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## GetJobV0JobsJobIdGet
-
-> CompileJobOut GetJobV0JobsJobIdGet(ctx, jobId).Execute()
-
-Poll a job
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- jobId := "jobId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.GetJobV0JobsJobIdGet(context.Background(), jobId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.GetJobV0JobsJobIdGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `GetJobV0JobsJobIdGet`: CompileJobOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.GetJobV0JobsJobIdGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**jobId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiGetJobV0JobsJobIdGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**CompileJobOut**](CompileJobOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## GetProjectV0ProjectsFldIdGet
-
-> CompileProjectOut GetProjectV0ProjectsFldIdGet(ctx, fldId).Execute()
-
-Get a project's compile config
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- fldId := "fldId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.GetProjectV0ProjectsFldIdGet(context.Background(), fldId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.GetProjectV0ProjectsFldIdGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `GetProjectV0ProjectsFldIdGet`: CompileProjectOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.GetProjectV0ProjectsFldIdGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**fldId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiGetProjectV0ProjectsFldIdGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**CompileProjectOut**](CompileProjectOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## GetShareRouteV0SharesShrIdGet
-
-> ShareOut GetShareRouteV0SharesShrIdGet(ctx, shrId).Execute()
-
-Read a single share link's metadata (requires can_manage)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- shrId := "shrId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.GetShareRouteV0SharesShrIdGet(context.Background(), shrId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.GetShareRouteV0SharesShrIdGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `GetShareRouteV0SharesShrIdGet`: ShareOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.GetShareRouteV0SharesShrIdGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**shrId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiGetShareRouteV0SharesShrIdGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**ShareOut**](ShareOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## GetUploadStatusV0UploadsUploadIdGet
-
-> UploadStatusOut GetUploadStatusV0UploadsUploadIdGet(ctx, uploadId).Execute()
-
-Get the status of a large (direct-to-GCS) upload session
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- uploadId := "uploadId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.GetUploadStatusV0UploadsUploadIdGet(context.Background(), uploadId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.GetUploadStatusV0UploadsUploadIdGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `GetUploadStatusV0UploadsUploadIdGet`: UploadStatusOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.GetUploadStatusV0UploadsUploadIdGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**uploadId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiGetUploadStatusV0UploadsUploadIdGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**UploadStatusOut**](UploadStatusOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## HealthHealthGet
-
-> HealthOut HealthHealthGet(ctx).Execute()
-
-Health
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.HealthHealthGet(context.Background()).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.HealthHealthGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `HealthHealthGet`: HealthOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.HealthHealthGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-This endpoint does not need any parameter.
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiHealthHealthGetRequest struct via the builder pattern
-
-
-### Return type
-
-[**HealthOut**](HealthOut.md)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## ListArtifactVersionsV0ArtifactsArtIdVersionsGet
-
-> VersionPage ListArtifactVersionsV0ArtifactsArtIdVersionsGet(ctx, artId).Cursor(cursor).Limit(limit).Execute()
-
-List versions of an artifact, newest first
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- artId := "artId_example" // string |
- cursor := "cursor_example" // string | (optional)
- limit := int32(56) // int32 | (optional) (default to 50)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.ListArtifactVersionsV0ArtifactsArtIdVersionsGet(context.Background(), artId).Cursor(cursor).Limit(limit).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.ListArtifactVersionsV0ArtifactsArtIdVersionsGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `ListArtifactVersionsV0ArtifactsArtIdVersionsGet`: VersionPage
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.ListArtifactVersionsV0ArtifactsArtIdVersionsGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**artId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiListArtifactVersionsV0ArtifactsArtIdVersionsGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **cursor** | **string** | |
- **limit** | **int32** | | [default to 50]
-
-### Return type
-
-[**VersionPage**](VersionPage.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## ListArtifactsV0ArtifactsGet
-
-> Page ListArtifactsV0ArtifactsGet(ctx).Prefix(prefix).Label(label).FileType(fileType).Cursor(cursor).Limit(limit).Execute()
-
-List artifacts in the drive
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- prefix := "prefix_example" // string | (optional) (default to "")
- label := []*string{"Inner_example"} // []*string | (optional)
- fileType := "fileType_example" // string | (optional)
- cursor := "cursor_example" // string | (optional)
- limit := int32(56) // int32 | (optional) (default to 50)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.ListArtifactsV0ArtifactsGet(context.Background()).Prefix(prefix).Label(label).FileType(fileType).Cursor(cursor).Limit(limit).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.ListArtifactsV0ArtifactsGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `ListArtifactsV0ArtifactsGet`: Page
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.ListArtifactsV0ArtifactsGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiListArtifactsV0ArtifactsGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **prefix** | **string** | | [default to ""]
- **label** | **[]string** | |
- **fileType** | **string** | |
- **cursor** | **string** | |
- **limit** | **int32** | | [default to 50]
-
-### Return type
-
-[**Page**](Page.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## ListEventsRouteV0EventsGet
-
-> EventPage ListEventsRouteV0EventsGet(ctx).ArtId(artId).Action(action).Since(since).Before(before).Cursor(cursor).Limit(limit).Execute()
-
-Read the append-only event log for the authenticated drive
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- "time"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- artId := "artId_example" // string | (optional)
- action := "action_example" // string | (optional)
- since := time.Now() // time.Time | (optional)
- before := time.Now() // time.Time | (optional)
- cursor := "cursor_example" // string | (optional)
- limit := int32(56) // int32 | (optional) (default to 50)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.ListEventsRouteV0EventsGet(context.Background()).ArtId(artId).Action(action).Since(since).Before(before).Cursor(cursor).Limit(limit).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.ListEventsRouteV0EventsGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `ListEventsRouteV0EventsGet`: EventPage
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.ListEventsRouteV0EventsGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiListEventsRouteV0EventsGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **artId** | **string** | |
- **action** | **string** | |
- **since** | **time.Time** | |
- **before** | **time.Time** | |
- **cursor** | **string** | |
- **limit** | **int32** | | [default to 50]
-
-### Return type
-
-[**EventPage**](EventPage.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## ListGrantsRouteV0GrantsGet
-
-> GrantList ListGrantsRouteV0GrantsGet(ctx).Resource(resource).Cursor(cursor).Limit(limit).Execute()
-
-List live grants on a resource (requires can_manage)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- resource := "resource_example" // string | art_*_/fld_* id or a path
- cursor := "cursor_example" // string | (optional)
- limit := int32(56) // int32 | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.ListGrantsRouteV0GrantsGet(context.Background()).Resource(resource).Cursor(cursor).Limit(limit).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.ListGrantsRouteV0GrantsGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `ListGrantsRouteV0GrantsGet`: GrantList
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.ListGrantsRouteV0GrantsGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiListGrantsRouteV0GrantsGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **resource** | **string** | art_*_/fld_* id or a path |
- **cursor** | **string** | |
- **limit** | **int32** | |
-
-### Return type
-
-[**GrantList**](GrantList.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## ListProjectJobsV0ProjectsFldIdJobsGet
-
-> CompileJobListOut ListProjectJobsV0ProjectsFldIdJobsGet(ctx, fldId).Status(status).Limit(limit).Cursor(cursor).Execute()
-
-List a project's jobs
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- fldId := "fldId_example" // string |
- status := "status_example" // string | (optional)
- limit := int32(56) // int32 | (optional) (default to 50)
- cursor := "cursor_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.ListProjectJobsV0ProjectsFldIdJobsGet(context.Background(), fldId).Status(status).Limit(limit).Cursor(cursor).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.ListProjectJobsV0ProjectsFldIdJobsGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `ListProjectJobsV0ProjectsFldIdJobsGet`: CompileJobListOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.ListProjectJobsV0ProjectsFldIdJobsGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**fldId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiListProjectJobsV0ProjectsFldIdJobsGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **status** | **string** | |
- **limit** | **int32** | | [default to 50]
- **cursor** | **string** | |
-
-### Return type
-
-[**CompileJobListOut**](CompileJobListOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## ListSharesRouteV0SharesGet
-
-> ShareList ListSharesRouteV0SharesGet(ctx).Resource(resource).Cursor(cursor).Limit(limit).Execute()
-
-List live share links on a resource (requires can_manage)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- resource := "resource_example" // string | art_*_/fld_* id or a path
- cursor := "cursor_example" // string | (optional)
- limit := int32(56) // int32 | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.ListSharesRouteV0SharesGet(context.Background()).Resource(resource).Cursor(cursor).Limit(limit).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.ListSharesRouteV0SharesGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `ListSharesRouteV0SharesGet`: ShareList
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.ListSharesRouteV0SharesGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiListSharesRouteV0SharesGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **resource** | **string** | art_*_/fld_* id or a path |
- **cursor** | **string** | |
- **limit** | **int32** | |
-
-### Return type
-
-[**ShareList**](ShareList.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## ListTrashRouteV0DrivesDriveIdTrashGet
-
-> TrashOut ListTrashRouteV0DrivesDriveIdTrashGet(ctx, driveId).Cursor(cursor).Limit(limit).Execute()
-
-List the authenticated drive's trash
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- driveId := "driveId_example" // string |
- cursor := "cursor_example" // string | (optional)
- limit := int32(56) // int32 | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.ListTrashRouteV0DrivesDriveIdTrashGet(context.Background(), driveId).Cursor(cursor).Limit(limit).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.ListTrashRouteV0DrivesDriveIdTrashGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `ListTrashRouteV0DrivesDriveIdTrashGet`: TrashOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.ListTrashRouteV0DrivesDriveIdTrashGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**driveId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiListTrashRouteV0DrivesDriveIdTrashGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **cursor** | **string** | |
- **limit** | **int32** | |
-
-### Return type
-
-[**TrashOut**](TrashOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## LoginAuthLoginGet
-
-> LoginAuthLoginGet(ctx).ReturnTo(returnTo).Execute()
-
-Login
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- returnTo := "returnTo_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- r, err := apiClient.DefaultAPI.LoginAuthLoginGet(context.Background()).ReturnTo(returnTo).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.LoginAuthLoginGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiLoginAuthLoginGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **returnTo** | **string** | |
-
-### Return type
-
- (empty response body)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## LogoutAuthLogoutPost
-
-> LogoutAuthLogoutPost(ctx).Csrf(csrf).Execute()
-
-Logout
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- csrf := "csrf_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- r, err := apiClient.DefaultAPI.LogoutAuthLogoutPost(context.Background()).Csrf(csrf).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.LogoutAuthLogoutPost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiLogoutAuthLogoutPostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **csrf** | **string** | |
-
-### Return type
-
- (empty response body)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: application/x-www-form-urlencoded
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## MeUsageV0DrivesMeUsageGet
-
-> DriveUsageOut MeUsageV0DrivesMeUsageGet(ctx).Execute()
-
-Current-period usage + caps for the authenticated drive
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.MeUsageV0DrivesMeUsageGet(context.Background()).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.MeUsageV0DrivesMeUsageGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `MeUsageV0DrivesMeUsageGet`: DriveUsageOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.MeUsageV0DrivesMeUsageGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-This endpoint does not need any parameter.
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiMeUsageV0DrivesMeUsageGetRequest struct via the builder pattern
-
-
-### Return type
-
-[**DriveUsageOut**](DriveUsageOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## MeV0DrivesMeGet
-
-> DriveReadOut MeV0DrivesMeGet(ctx).Execute()
-
-Me
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.MeV0DrivesMeGet(context.Background()).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.MeV0DrivesMeGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `MeV0DrivesMeGet`: DriveReadOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.MeV0DrivesMeGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-This endpoint does not need any parameter.
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiMeV0DrivesMeGetRequest struct via the builder pattern
-
-
-### Return type
-
-[**DriveReadOut**](DriveReadOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## MoveArtifactRouteV0ArtifactsArtIdMovePost
-
-> ArtifactOut MoveArtifactRouteV0ArtifactsArtIdMovePost(ctx, artId).ArtifactMoveIn(artifactMoveIn).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
-
-Rename / move an artifact to a new path
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- artId := "artId_example" // string |
- artifactMoveIn := *openapiclient.NewArtifactMoveIn("Path_example") // ArtifactMoveIn |
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
- ifMatch := "ifMatch_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.MoveArtifactRouteV0ArtifactsArtIdMovePost(context.Background(), artId).ArtifactMoveIn(artifactMoveIn).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.MoveArtifactRouteV0ArtifactsArtIdMovePost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `MoveArtifactRouteV0ArtifactsArtIdMovePost`: ArtifactOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.MoveArtifactRouteV0ArtifactsArtIdMovePost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**artId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiMoveArtifactRouteV0ArtifactsArtIdMovePostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **artifactMoveIn** | [**ArtifactMoveIn**](ArtifactMoveIn.md) | |
- **xAgentdriveActor** | **string** | |
- **ifMatch** | **string** | |
-
-### Return type
-
-[**ArtifactOut**](ArtifactOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## MoveFolderByIdV0FoldersFldIdMovePost
-
-> FolderOut MoveFolderByIdV0FoldersFldIdMovePost(ctx, fldId).FolderMoveIn(folderMoveIn).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
-
-Rename / move a folder by stable ID (cascade descendants)
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- fldId := "fldId_example" // string |
- folderMoveIn := *openapiclient.NewFolderMoveIn("Path_example") // FolderMoveIn |
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
- ifMatch := "ifMatch_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.MoveFolderByIdV0FoldersFldIdMovePost(context.Background(), fldId).FolderMoveIn(folderMoveIn).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.MoveFolderByIdV0FoldersFldIdMovePost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `MoveFolderByIdV0FoldersFldIdMovePost`: FolderOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.MoveFolderByIdV0FoldersFldIdMovePost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**fldId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiMoveFolderByIdV0FoldersFldIdMovePostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **folderMoveIn** | [**FolderMoveIn**](FolderMoveIn.md) | |
- **xAgentdriveActor** | **string** | |
- **ifMatch** | **string** | |
-
-### Return type
-
-[**FolderOut**](FolderOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## MoveFolderByPathV0FoldersPathMovePost
-
-> FolderOut MoveFolderByPathV0FoldersPathMovePost(ctx, path).FolderMoveIn(folderMoveIn).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
-
-Rename / move a folder (cascade-update descendants)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- path := "path_example" // string |
- folderMoveIn := *openapiclient.NewFolderMoveIn("Path_example") // FolderMoveIn |
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
- ifMatch := "ifMatch_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.MoveFolderByPathV0FoldersPathMovePost(context.Background(), path).FolderMoveIn(folderMoveIn).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.MoveFolderByPathV0FoldersPathMovePost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `MoveFolderByPathV0FoldersPathMovePost`: FolderOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.MoveFolderByPathV0FoldersPathMovePost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**path** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiMoveFolderByPathV0FoldersPathMovePostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **folderMoveIn** | [**FolderMoveIn**](FolderMoveIn.md) | |
- **xAgentdriveActor** | **string** | |
- **ifMatch** | **string** | |
-
-### Return type
-
-[**FolderOut**](FolderOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## PatchArtifactRouteV0ArtifactsArtIdPatch
-
-> ArtifactOut PatchArtifactRouteV0ArtifactsArtIdPatch(ctx, artId).ArtifactPatchIn(artifactPatchIn).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
-
-Edit artifact metadata (labels / metadata / source)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- artId := "artId_example" // string |
- artifactPatchIn := *openapiclient.NewArtifactPatchIn() // ArtifactPatchIn |
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
- ifMatch := "ifMatch_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.PatchArtifactRouteV0ArtifactsArtIdPatch(context.Background(), artId).ArtifactPatchIn(artifactPatchIn).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.PatchArtifactRouteV0ArtifactsArtIdPatch``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `PatchArtifactRouteV0ArtifactsArtIdPatch`: ArtifactOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.PatchArtifactRouteV0ArtifactsArtIdPatch`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**artId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiPatchArtifactRouteV0ArtifactsArtIdPatchRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **artifactPatchIn** | [**ArtifactPatchIn**](ArtifactPatchIn.md) | |
- **xAgentdriveActor** | **string** | |
- **ifMatch** | **string** | |
-
-### Return type
-
-[**ArtifactOut**](ArtifactOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## PatchFolderByIdV0FoldersFldIdPatch
-
-> FolderOut PatchFolderByIdV0FoldersFldIdPatch(ctx, fldId).FolderPatchIn(folderPatchIn).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
-
-Update folder metadata by stable ID
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- fldId := "fldId_example" // string |
- folderPatchIn := *openapiclient.NewFolderPatchIn() // FolderPatchIn |
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
- ifMatch := "ifMatch_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.PatchFolderByIdV0FoldersFldIdPatch(context.Background(), fldId).FolderPatchIn(folderPatchIn).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.PatchFolderByIdV0FoldersFldIdPatch``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `PatchFolderByIdV0FoldersFldIdPatch`: FolderOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.PatchFolderByIdV0FoldersFldIdPatch`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**fldId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiPatchFolderByIdV0FoldersFldIdPatchRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **folderPatchIn** | [**FolderPatchIn**](FolderPatchIn.md) | |
- **xAgentdriveActor** | **string** | |
- **ifMatch** | **string** | |
-
-### Return type
-
-[**FolderOut**](FolderOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## PatchFolderByPathV0FoldersPathPatch
-
-> FolderOut PatchFolderByPathV0FoldersPathPatch(ctx, path).FolderPatchIn(folderPatchIn).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
-
-Update folder metadata by path
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- path := "path_example" // string |
- folderPatchIn := *openapiclient.NewFolderPatchIn() // FolderPatchIn |
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
- ifMatch := "ifMatch_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.PatchFolderByPathV0FoldersPathPatch(context.Background(), path).FolderPatchIn(folderPatchIn).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.PatchFolderByPathV0FoldersPathPatch``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `PatchFolderByPathV0FoldersPathPatch`: FolderOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.PatchFolderByPathV0FoldersPathPatch`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**path** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiPatchFolderByPathV0FoldersPathPatchRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **folderPatchIn** | [**FolderPatchIn**](FolderPatchIn.md) | |
- **xAgentdriveActor** | **string** | |
- **ifMatch** | **string** | |
-
-### Return type
-
-[**FolderOut**](FolderOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## PatchGrantRouteV0GrantsGrnIdPatch
-
-> GrantOut PatchGrantRouteV0GrantsGrnIdPatch(ctx, grnId).GrantPatchIn(grantPatchIn).XAgentdriveActor(xAgentdriveActor).Execute()
-
-Update a grant's role and/or expiry (requires can_manage)
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- grnId := "grnId_example" // string |
- grantPatchIn := *openapiclient.NewGrantPatchIn() // GrantPatchIn |
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.PatchGrantRouteV0GrantsGrnIdPatch(context.Background(), grnId).GrantPatchIn(grantPatchIn).XAgentdriveActor(xAgentdriveActor).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.PatchGrantRouteV0GrantsGrnIdPatch``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `PatchGrantRouteV0GrantsGrnIdPatch`: GrantOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.PatchGrantRouteV0GrantsGrnIdPatch`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**grnId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiPatchGrantRouteV0GrantsGrnIdPatchRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **grantPatchIn** | [**GrantPatchIn**](GrantPatchIn.md) | |
- **xAgentdriveActor** | **string** | |
-
-### Return type
-
-[**GrantOut**](GrantOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## PostDescribeV0QueryDescribePost
-
-> DatasetDescriptionOut PostDescribeV0QueryDescribePost(ctx).DescribeIn(describeIn).Execute()
-
-Describe a dataset's column schema
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- describeIn := *openapiclient.NewDescribeIn("Dataset_example") // DescribeIn |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.PostDescribeV0QueryDescribePost(context.Background()).DescribeIn(describeIn).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.PostDescribeV0QueryDescribePost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `PostDescribeV0QueryDescribePost`: DatasetDescriptionOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.PostDescribeV0QueryDescribePost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiPostDescribeV0QueryDescribePostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **describeIn** | [**DescribeIn**](DescribeIn.md) | |
-
-### Return type
-
-[**DatasetDescriptionOut**](DatasetDescriptionOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## PostFeedbackV0FeedbackPost
-
-> FeedbackCreateOut PostFeedbackV0FeedbackPost(ctx).Execute()
-
-Post Feedback
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.PostFeedbackV0FeedbackPost(context.Background()).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.PostFeedbackV0FeedbackPost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `PostFeedbackV0FeedbackPost`: FeedbackCreateOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.PostFeedbackV0FeedbackPost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-This endpoint does not need any parameter.
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiPostFeedbackV0FeedbackPostRequest struct via the builder pattern
-
-
-### Return type
-
-[**FeedbackCreateOut**](FeedbackCreateOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## PostLookupValuesV0QueryLookupValuesPost
-
-> LookupValuesOut PostLookupValuesV0QueryLookupValuesPost(ctx).LookupValuesIn(lookupValuesIn).Execute()
-
-List distinct values of a dataset column
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- lookupValuesIn := *openapiclient.NewLookupValuesIn("Column_example", "Dataset_example") // LookupValuesIn |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.PostLookupValuesV0QueryLookupValuesPost(context.Background()).LookupValuesIn(lookupValuesIn).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.PostLookupValuesV0QueryLookupValuesPost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `PostLookupValuesV0QueryLookupValuesPost`: LookupValuesOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.PostLookupValuesV0QueryLookupValuesPost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiPostLookupValuesV0QueryLookupValuesPostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **lookupValuesIn** | [**LookupValuesIn**](LookupValuesIn.md) | |
-
-### Return type
-
-[**LookupValuesOut**](LookupValuesOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## PostQueryV0QueryPost
-
-> ResponsePostQueryV0QueryPost PostQueryV0QueryPost(ctx).QueryIn(queryIn).Execute()
-
-Run a read-only SQL query over authorized datasets
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- queryIn := *openapiclient.NewQueryIn("Sql_example") // QueryIn |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.PostQueryV0QueryPost(context.Background()).QueryIn(queryIn).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.PostQueryV0QueryPost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `PostQueryV0QueryPost`: ResponsePostQueryV0QueryPost
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.PostQueryV0QueryPost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiPostQueryV0QueryPostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **queryIn** | [**QueryIn**](QueryIn.md) | |
-
-### Return type
-
-[**ResponsePostQueryV0QueryPost**](ResponsePostQueryV0QueryPost.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## PutArtifactV0ArtifactsPathPut
-
-> ArtifactOut PutArtifactV0ArtifactsPathPut(ctx, path).ContentType(contentType).XAgentdriveLabels(xAgentdriveLabels).XAgentdriveMetadata(xAgentdriveMetadata).XAgentdriveSource(xAgentdriveSource).XAgentdriveActor(xAgentdriveActor).XAgentdriveChangeSummary(xAgentdriveChangeSummary).XAgentdriveChecksum(xAgentdriveChecksum).ContentMd5(contentMd5).IfMatch(ifMatch).IfNoneMatch(ifNoneMatch).Execute()
-
-Upload (or overwrite) an artifact
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- path := "path_example" // string |
- contentType := "contentType_example" // string | (optional) (default to "application/octet-stream")
- xAgentdriveLabels := "xAgentdriveLabels_example" // string | (optional)
- xAgentdriveMetadata := "xAgentdriveMetadata_example" // string | (optional)
- xAgentdriveSource := "xAgentdriveSource_example" // string | (optional)
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
- xAgentdriveChangeSummary := "xAgentdriveChangeSummary_example" // string | (optional)
- xAgentdriveChecksum := "xAgentdriveChecksum_example" // string | (optional)
- contentMd5 := "contentMd5_example" // string | (optional)
- ifMatch := "ifMatch_example" // string | (optional)
- ifNoneMatch := "ifNoneMatch_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.PutArtifactV0ArtifactsPathPut(context.Background(), path).ContentType(contentType).XAgentdriveLabels(xAgentdriveLabels).XAgentdriveMetadata(xAgentdriveMetadata).XAgentdriveSource(xAgentdriveSource).XAgentdriveActor(xAgentdriveActor).XAgentdriveChangeSummary(xAgentdriveChangeSummary).XAgentdriveChecksum(xAgentdriveChecksum).ContentMd5(contentMd5).IfMatch(ifMatch).IfNoneMatch(ifNoneMatch).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.PutArtifactV0ArtifactsPathPut``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `PutArtifactV0ArtifactsPathPut`: ArtifactOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.PutArtifactV0ArtifactsPathPut`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**path** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiPutArtifactV0ArtifactsPathPutRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **contentType** | **string** | | [default to "application/octet-stream"]
- **xAgentdriveLabels** | **string** | |
- **xAgentdriveMetadata** | **string** | |
- **xAgentdriveSource** | **string** | |
- **xAgentdriveActor** | **string** | |
- **xAgentdriveChangeSummary** | **string** | |
- **xAgentdriveChecksum** | **string** | |
- **contentMd5** | **string** | |
- **ifMatch** | **string** | |
- **ifNoneMatch** | **string** | |
-
-### Return type
-
-[**ArtifactOut**](ArtifactOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## PutProjectV0ProjectsFldIdPut
-
-> CompileProjectOut PutProjectV0ProjectsFldIdPut(ctx, fldId).ProjectConfigIn(projectConfigIn).Execute()
-
-Set a project's compile config (entrypoint/engine/auto_compile)
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- fldId := "fldId_example" // string |
- projectConfigIn := *openapiclient.NewProjectConfigIn("Entrypoint_example") // ProjectConfigIn |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.PutProjectV0ProjectsFldIdPut(context.Background(), fldId).ProjectConfigIn(projectConfigIn).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.PutProjectV0ProjectsFldIdPut``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `PutProjectV0ProjectsFldIdPut`: CompileProjectOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.PutProjectV0ProjectsFldIdPut`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**fldId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiPutProjectV0ProjectsFldIdPutRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **projectConfigIn** | [**ProjectConfigIn**](ProjectConfigIn.md) | |
-
-### Return type
-
-[**CompileProjectOut**](CompileProjectOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## RedeemShareSShareKeyGet
-
-> ShareRedeemOut RedeemShareSShareKeyGet(ctx, shareKey).Execute()
-
-Redeem Share
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- shareKey := "shareKey_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.RedeemShareSShareKeyGet(context.Background(), shareKey).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.RedeemShareSShareKeyGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `RedeemShareSShareKeyGet`: ShareRedeemOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.RedeemShareSShareKeyGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**shareKey** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiRedeemShareSShareKeyGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**ShareRedeemOut**](ShareRedeemOut.md)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json, text/html
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## RedeemShareWithPasswordSShareKeyPost
-
-> ShareRedeemOut RedeemShareWithPasswordSShareKeyPost(ctx, shareKey).Password(password).Execute()
-
-Redeem Share With Password
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- shareKey := "shareKey_example" // string |
- password := "password_example" // string | (optional) (default to "")
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.RedeemShareWithPasswordSShareKeyPost(context.Background(), shareKey).Password(password).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.RedeemShareWithPasswordSShareKeyPost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `RedeemShareWithPasswordSShareKeyPost`: ShareRedeemOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.RedeemShareWithPasswordSShareKeyPost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**shareKey** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiRedeemShareWithPasswordSShareKeyPostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **password** | **string** | | [default to ""]
-
-### Return type
-
-[**ShareRedeemOut**](ShareRedeemOut.md)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: application/x-www-form-urlencoded
-- **Accept**: application/json, text/html
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## RestoreArtifactV0ArtifactsArtIdRestorePost
-
-> ArtifactOut RestoreArtifactV0ArtifactsArtIdRestorePost(ctx, artId).Rename(rename).Overwrite(overwrite).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
-
-Restore a soft-deleted artifact
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- artId := "artId_example" // string |
- rename := "rename_example" // string | Restore at this path instead of the original. Soft-deletes the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`. Mutually exclusive with `overwrite`. (optional)
- overwrite := true // bool | Soft-delete the live occupant at the original path and restore there. Audit `metadata.cause='restore_conflict_overwrite'`. Mutually exclusive with `rename`. (optional) (default to false)
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
- ifMatch := "ifMatch_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.RestoreArtifactV0ArtifactsArtIdRestorePost(context.Background(), artId).Rename(rename).Overwrite(overwrite).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.RestoreArtifactV0ArtifactsArtIdRestorePost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `RestoreArtifactV0ArtifactsArtIdRestorePost`: ArtifactOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.RestoreArtifactV0ArtifactsArtIdRestorePost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**artId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiRestoreArtifactV0ArtifactsArtIdRestorePostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **rename** | **string** | Restore at this path instead of the original. Soft-deletes the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`. Mutually exclusive with `overwrite`. |
- **overwrite** | **bool** | Soft-delete the live occupant at the original path and restore there. Audit `metadata.cause='restore_conflict_overwrite'`. Mutually exclusive with `rename`. | [default to false]
- **xAgentdriveActor** | **string** | |
- **ifMatch** | **string** | |
-
-### Return type
-
-[**ArtifactOut**](ArtifactOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## RestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePost
-
-> ArtifactOut RestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePost(ctx, artId, versionNumber).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
-
-Restore a previous version as a new head version
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- artId := "artId_example" // string |
- versionNumber := int32(56) // int32 |
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
- ifMatch := "ifMatch_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.RestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePost(context.Background(), artId, versionNumber).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.RestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `RestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePost`: ArtifactOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.RestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**artId** | **string** | |
-**versionNumber** | **int32** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiRestoreArtifactVersionV0ArtifactsArtIdVersionsVersionNumberRestorePostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
- **xAgentdriveActor** | **string** | |
- **ifMatch** | **string** | |
-
-### Return type
-
-[**ArtifactOut**](ArtifactOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## RestoreDriveRouteV0DrivesDriveIdRestorePost
-
-> DriveRestoreOut RestoreDriveRouteV0DrivesDriveIdRestorePost(ctx, driveId).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
-
-Restore a soft-deleted drive
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- driveId := "driveId_example" // string |
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
- ifMatch := "ifMatch_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.RestoreDriveRouteV0DrivesDriveIdRestorePost(context.Background(), driveId).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.RestoreDriveRouteV0DrivesDriveIdRestorePost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `RestoreDriveRouteV0DrivesDriveIdRestorePost`: DriveRestoreOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.RestoreDriveRouteV0DrivesDriveIdRestorePost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**driveId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiRestoreDriveRouteV0DrivesDriveIdRestorePostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **xAgentdriveActor** | **string** | |
- **ifMatch** | **string** | |
-
-### Return type
-
-[**DriveRestoreOut**](DriveRestoreOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## RestoreFolderByIdV0FoldersFldIdRestorePost
-
-> FolderRestoreOut RestoreFolderByIdV0FoldersFldIdRestorePost(ctx, fldId).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
-
-Restore a soft-deleted folder (cascade)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- fldId := "fldId_example" // string |
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
- ifMatch := "ifMatch_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.RestoreFolderByIdV0FoldersFldIdRestorePost(context.Background(), fldId).XAgentdriveActor(xAgentdriveActor).IfMatch(ifMatch).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.RestoreFolderByIdV0FoldersFldIdRestorePost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `RestoreFolderByIdV0FoldersFldIdRestorePost`: FolderRestoreOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.RestoreFolderByIdV0FoldersFldIdRestorePost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**fldId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiRestoreFolderByIdV0FoldersFldIdRestorePostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **xAgentdriveActor** | **string** | |
- **ifMatch** | **string** | |
-
-### Return type
-
-[**FolderRestoreOut**](FolderRestoreOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## RotateShareRouteV0SharesShrIdRotatePost
-
-> ShareMintOut RotateShareRouteV0SharesShrIdRotatePost(ctx, shrId).XAgentdriveActor(xAgentdriveActor).Execute()
-
-Revoke + reissue a share link's key (requires can_share)
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- shrId := "shrId_example" // string |
- xAgentdriveActor := "xAgentdriveActor_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.RotateShareRouteV0SharesShrIdRotatePost(context.Background(), shrId).XAgentdriveActor(xAgentdriveActor).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.RotateShareRouteV0SharesShrIdRotatePost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `RotateShareRouteV0SharesShrIdRotatePost`: ShareMintOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.RotateShareRouteV0SharesShrIdRotatePost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**shrId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiRotateShareRouteV0SharesShrIdRotatePostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **xAgentdriveActor** | **string** | |
-
-### Return type
-
-[**ShareMintOut**](ShareMintOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## SearchV0SearchGet
-
-> SearchPage SearchV0SearchGet(ctx).Q(q).Label(label).FileType(fileType).Prefix(prefix).UpdatedAfter(updatedAfter).UpdatedBefore(updatedBefore).Limit(limit).Execute()
-
-Full-text search over artifacts in the drive
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- "time"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- q := "q_example" // string |
- label := []string{"Inner_example"} // []string | (optional)
- fileType := "fileType_example" // string | (optional)
- prefix := "prefix_example" // string | (optional)
- updatedAfter := time.Now() // time.Time | (optional)
- updatedBefore := time.Now() // time.Time | (optional)
- limit := int32(56) // int32 | (optional) (default to 20)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.SearchV0SearchGet(context.Background()).Q(q).Label(label).FileType(fileType).Prefix(prefix).UpdatedAfter(updatedAfter).UpdatedBefore(updatedBefore).Limit(limit).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.SearchV0SearchGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `SearchV0SearchGet`: SearchPage
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.SearchV0SearchGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiSearchV0SearchGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **q** | **string** | |
- **label** | **[]string** | |
- **fileType** | **string** | |
- **prefix** | **string** | |
- **updatedAfter** | **time.Time** | |
- **updatedBefore** | **time.Time** | |
- **limit** | **int32** | | [default to 20]
-
-### Return type
-
-[**SearchPage**](SearchPage.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## ViewArtifactHeadAArtIdHeadGet
-
-> ArtifactHeadOut ViewArtifactHeadAArtIdHeadGet(ctx, artId).Execute()
-
-View Artifact Head
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- artId := "artId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.ViewArtifactHeadAArtIdHeadGet(context.Background(), artId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.ViewArtifactHeadAArtIdHeadGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `ViewArtifactHeadAArtIdHeadGet`: ArtifactHeadOut
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.ViewArtifactHeadAArtIdHeadGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**artId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiViewArtifactHeadAArtIdHeadGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**ArtifactHeadOut**](ArtifactHeadOut.md)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## ViewArtifactVersionVArtIdVersionGet
-
-> *os.File ViewArtifactVersionVArtIdVersionGet(ctx, artId, version).Raw(raw).Download(download).Execute()
-
-View Artifact Version
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- artId := "artId_example" // string |
- version := int32(56) // int32 |
- raw := int32(56) // int32 | (optional) (default to 0)
- download := int32(56) // int32 | (optional) (default to 0)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.ViewArtifactVersionVArtIdVersionGet(context.Background(), artId, version).Raw(raw).Download(download).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.ViewArtifactVersionVArtIdVersionGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `ViewArtifactVersionVArtIdVersionGet`: *os.File
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.ViewArtifactVersionVArtIdVersionGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**artId** | **string** | |
-**version** | **int32** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiViewArtifactVersionVArtIdVersionGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
- **raw** | **int32** | | [default to 0]
- **download** | **int32** | | [default to 0]
-
-### Return type
-
-[***os.File**](*os.File.md)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/octet-stream, text/html, application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## ViewFileDriveIdPathGet
-
-> *os.File ViewFileDriveIdPathGet(ctx, driveId, path).Raw(raw).Download(download).Execute()
-
-View File
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- driveId := "driveId_example" // string |
- path := "path_example" // string |
- raw := int32(56) // int32 | (optional) (default to 0)
- download := int32(56) // int32 | (optional) (default to 0)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DefaultAPI.ViewFileDriveIdPathGet(context.Background(), driveId, path).Raw(raw).Download(download).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.ViewFileDriveIdPathGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `ViewFileDriveIdPathGet`: *os.File
- fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.ViewFileDriveIdPathGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**driveId** | **string** | |
-**path** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiViewFileDriveIdPathGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
- **raw** | **int32** | | [default to 0]
- **download** | **int32** | | [default to 0]
-
-### Return type
-
-[***os.File**](*os.File.md)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/octet-stream, text/html, application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## ViewPermalinkArtifactAArtIdGet
-
-> ViewPermalinkArtifactAArtIdGet(ctx, artId).Execute()
-
-View Permalink Artifact
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- artId := "artId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- r, err := apiClient.DefaultAPI.ViewPermalinkArtifactAArtIdGet(context.Background(), artId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.ViewPermalinkArtifactAArtIdGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**artId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiViewPermalinkArtifactAArtIdGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
- (empty response body)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## ViewPermalinkFolderFFldIdGet
-
-> ViewPermalinkFolderFFldIdGet(ctx, fldId).Execute()
-
-View Permalink Folder
+Health
@@ -5711,38 +29,31 @@ import (
)
func main() {
- fldId := "fldId_example" // string |
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
- r, err := apiClient.DefaultAPI.ViewPermalinkFolderFFldIdGet(context.Background(), fldId).Execute()
+ resp, r, err := apiClient.DefaultAPI.Health(context.Background()).Execute()
if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.ViewPermalinkFolderFFldIdGet``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Error when calling `DefaultAPI.Health``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
+ // response from `Health`: HealthOut
+ fmt.Fprintf(os.Stdout, "Response from `DefaultAPI.Health`: %v\n", resp)
}
```
### Path Parameters
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**fldId** | **string** | |
+This endpoint does not need any parameter.
### Other Parameters
-Other parameters are passed through a pointer to a apiViewPermalinkFolderFFldIdGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
+Other parameters are passed through a pointer to a apiHealthRequest struct via the builder pattern
### Return type
- (empty response body)
+[**HealthOut**](HealthOut.md)
### Authorization
diff --git a/sdk/go/docs/DescribeIn.md b/sdk/go/docs/DescribeIn.md
deleted file mode 100644
index d2c008b..0000000
--- a/sdk/go/docs/DescribeIn.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# DescribeIn
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Dataset** | **string** | |
-
-## Methods
-
-### NewDescribeIn
-
-`func NewDescribeIn(dataset string, ) *DescribeIn`
-
-NewDescribeIn instantiates a new DescribeIn object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewDescribeInWithDefaults
-
-`func NewDescribeInWithDefaults() *DescribeIn`
-
-NewDescribeInWithDefaults instantiates a new DescribeIn object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetDataset
-
-`func (o *DescribeIn) GetDataset() string`
-
-GetDataset returns the Dataset field if non-nil, zero value otherwise.
-
-### GetDatasetOk
-
-`func (o *DescribeIn) GetDatasetOk() (*string, bool)`
-
-GetDatasetOk returns a tuple with the Dataset field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDataset
-
-`func (o *DescribeIn) SetDataset(v string)`
-
-SetDataset sets Dataset field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DiscoveryAPI.md b/sdk/go/docs/DiscoveryAPI.md
new file mode 100644
index 0000000..2fd1f1c
--- /dev/null
+++ b/sdk/go/docs/DiscoveryAPI.md
@@ -0,0 +1,69 @@
+# \DiscoveryAPI
+
+All URIs are relative to *https://api.agentdrive.run*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**OauthProtectedResource**](DiscoveryAPI.md#OauthProtectedResource) | **Get** /.well-known/oauth-protected-resource | Protected-resource metadata (RFC 9728)
+
+
+
+## OauthProtectedResource
+
+> map[string]*interface{} OauthProtectedResource(ctx).Execute()
+
+Protected-resource metadata (RFC 9728)
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.DiscoveryAPI.OauthProtectedResource(context.Background()).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `DiscoveryAPI.OauthProtectedResource``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `OauthProtectedResource`: map[string]*interface{}
+ fmt.Fprintf(os.Stdout, "Response from `DiscoveryAPI.OauthProtectedResource`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+This endpoint does not need any parameter.
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiOauthProtectedResourceRequest struct via the builder pattern
+
+
+### Return type
+
+**map[string]*interface{}**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
diff --git a/sdk/go/docs/DownloadUrlOut.md b/sdk/go/docs/DownloadUrlOut.md
deleted file mode 100644
index 3d79e15..0000000
--- a/sdk/go/docs/DownloadUrlOut.md
+++ /dev/null
@@ -1,169 +0,0 @@
-# DownloadUrlOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**ContentType** | **string** | |
-**Direct** | **bool** | |
-**DownloadUrl** | **string** | |
-**ExpiresAt** | Pointer to **NullableTime** | | [optional]
-**Filename** | **string** | |
-**SizeBytes** | **int32** | |
-
-## Methods
-
-### NewDownloadUrlOut
-
-`func NewDownloadUrlOut(contentType string, direct bool, downloadUrl string, filename string, sizeBytes int32, ) *DownloadUrlOut`
-
-NewDownloadUrlOut instantiates a new DownloadUrlOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewDownloadUrlOutWithDefaults
-
-`func NewDownloadUrlOutWithDefaults() *DownloadUrlOut`
-
-NewDownloadUrlOutWithDefaults instantiates a new DownloadUrlOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetContentType
-
-`func (o *DownloadUrlOut) GetContentType() string`
-
-GetContentType returns the ContentType field if non-nil, zero value otherwise.
-
-### GetContentTypeOk
-
-`func (o *DownloadUrlOut) GetContentTypeOk() (*string, bool)`
-
-GetContentTypeOk returns a tuple with the ContentType field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetContentType
-
-`func (o *DownloadUrlOut) SetContentType(v string)`
-
-SetContentType sets ContentType field to given value.
-
-
-### GetDirect
-
-`func (o *DownloadUrlOut) GetDirect() bool`
-
-GetDirect returns the Direct field if non-nil, zero value otherwise.
-
-### GetDirectOk
-
-`func (o *DownloadUrlOut) GetDirectOk() (*bool, bool)`
-
-GetDirectOk returns a tuple with the Direct field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDirect
-
-`func (o *DownloadUrlOut) SetDirect(v bool)`
-
-SetDirect sets Direct field to given value.
-
-
-### GetDownloadUrl
-
-`func (o *DownloadUrlOut) GetDownloadUrl() string`
-
-GetDownloadUrl returns the DownloadUrl field if non-nil, zero value otherwise.
-
-### GetDownloadUrlOk
-
-`func (o *DownloadUrlOut) GetDownloadUrlOk() (*string, bool)`
-
-GetDownloadUrlOk returns a tuple with the DownloadUrl field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDownloadUrl
-
-`func (o *DownloadUrlOut) SetDownloadUrl(v string)`
-
-SetDownloadUrl sets DownloadUrl field to given value.
-
-
-### GetExpiresAt
-
-`func (o *DownloadUrlOut) GetExpiresAt() time.Time`
-
-GetExpiresAt returns the ExpiresAt field if non-nil, zero value otherwise.
-
-### GetExpiresAtOk
-
-`func (o *DownloadUrlOut) GetExpiresAtOk() (*time.Time, bool)`
-
-GetExpiresAtOk returns a tuple with the ExpiresAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetExpiresAt
-
-`func (o *DownloadUrlOut) SetExpiresAt(v time.Time)`
-
-SetExpiresAt sets ExpiresAt field to given value.
-
-### HasExpiresAt
-
-`func (o *DownloadUrlOut) HasExpiresAt() bool`
-
-HasExpiresAt returns a boolean if a field has been set.
-
-### SetExpiresAtNil
-
-`func (o *DownloadUrlOut) SetExpiresAtNil(b bool)`
-
- SetExpiresAtNil sets the value for ExpiresAt to be an explicit nil
-
-### UnsetExpiresAt
-`func (o *DownloadUrlOut) UnsetExpiresAt()`
-
-UnsetExpiresAt ensures that no value is present for ExpiresAt, not even an explicit nil
-### GetFilename
-
-`func (o *DownloadUrlOut) GetFilename() string`
-
-GetFilename returns the Filename field if non-nil, zero value otherwise.
-
-### GetFilenameOk
-
-`func (o *DownloadUrlOut) GetFilenameOk() (*string, bool)`
-
-GetFilenameOk returns a tuple with the Filename field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetFilename
-
-`func (o *DownloadUrlOut) SetFilename(v string)`
-
-SetFilename sets Filename field to given value.
-
-
-### GetSizeBytes
-
-`func (o *DownloadUrlOut) GetSizeBytes() int32`
-
-GetSizeBytes returns the SizeBytes field if non-nil, zero value otherwise.
-
-### GetSizeBytesOk
-
-`func (o *DownloadUrlOut) GetSizeBytesOk() (*int32, bool)`
-
-GetSizeBytesOk returns a tuple with the SizeBytes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetSizeBytes
-
-`func (o *DownloadUrlOut) SetSizeBytes(v int32)`
-
-SetSizeBytes sets SizeBytes field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DriveApiKeyCreateIn.md b/sdk/go/docs/DriveApiKeyCreateIn.md
deleted file mode 100644
index b8cb8c5..0000000
--- a/sdk/go/docs/DriveApiKeyCreateIn.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# DriveApiKeyCreateIn
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Label** | **string** | |
-
-## Methods
-
-### NewDriveApiKeyCreateIn
-
-`func NewDriveApiKeyCreateIn(label string, ) *DriveApiKeyCreateIn`
-
-NewDriveApiKeyCreateIn instantiates a new DriveApiKeyCreateIn object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewDriveApiKeyCreateInWithDefaults
-
-`func NewDriveApiKeyCreateInWithDefaults() *DriveApiKeyCreateIn`
-
-NewDriveApiKeyCreateInWithDefaults instantiates a new DriveApiKeyCreateIn object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetLabel
-
-`func (o *DriveApiKeyCreateIn) GetLabel() string`
-
-GetLabel returns the Label field if non-nil, zero value otherwise.
-
-### GetLabelOk
-
-`func (o *DriveApiKeyCreateIn) GetLabelOk() (*string, bool)`
-
-GetLabelOk returns a tuple with the Label field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLabel
-
-`func (o *DriveApiKeyCreateIn) SetLabel(v string)`
-
-SetLabel sets Label field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DriveApiKeyCreateOut.md b/sdk/go/docs/DriveApiKeyCreateOut.md
deleted file mode 100644
index 871ba34..0000000
--- a/sdk/go/docs/DriveApiKeyCreateOut.md
+++ /dev/null
@@ -1,148 +0,0 @@
-# DriveApiKeyCreateOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**ApiKey** | **string** | |
-**CreatedAt** | **time.Time** | |
-**Id** | **string** | |
-**Label** | Pointer to **NullableString** | | [optional]
-**Prefix** | **string** | |
-
-## Methods
-
-### NewDriveApiKeyCreateOut
-
-`func NewDriveApiKeyCreateOut(apiKey string, createdAt time.Time, id string, prefix string, ) *DriveApiKeyCreateOut`
-
-NewDriveApiKeyCreateOut instantiates a new DriveApiKeyCreateOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewDriveApiKeyCreateOutWithDefaults
-
-`func NewDriveApiKeyCreateOutWithDefaults() *DriveApiKeyCreateOut`
-
-NewDriveApiKeyCreateOutWithDefaults instantiates a new DriveApiKeyCreateOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetApiKey
-
-`func (o *DriveApiKeyCreateOut) GetApiKey() string`
-
-GetApiKey returns the ApiKey field if non-nil, zero value otherwise.
-
-### GetApiKeyOk
-
-`func (o *DriveApiKeyCreateOut) GetApiKeyOk() (*string, bool)`
-
-GetApiKeyOk returns a tuple with the ApiKey field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetApiKey
-
-`func (o *DriveApiKeyCreateOut) SetApiKey(v string)`
-
-SetApiKey sets ApiKey field to given value.
-
-
-### GetCreatedAt
-
-`func (o *DriveApiKeyCreateOut) GetCreatedAt() time.Time`
-
-GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
-
-### GetCreatedAtOk
-
-`func (o *DriveApiKeyCreateOut) GetCreatedAtOk() (*time.Time, bool)`
-
-GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCreatedAt
-
-`func (o *DriveApiKeyCreateOut) SetCreatedAt(v time.Time)`
-
-SetCreatedAt sets CreatedAt field to given value.
-
-
-### GetId
-
-`func (o *DriveApiKeyCreateOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *DriveApiKeyCreateOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *DriveApiKeyCreateOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetLabel
-
-`func (o *DriveApiKeyCreateOut) GetLabel() string`
-
-GetLabel returns the Label field if non-nil, zero value otherwise.
-
-### GetLabelOk
-
-`func (o *DriveApiKeyCreateOut) GetLabelOk() (*string, bool)`
-
-GetLabelOk returns a tuple with the Label field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLabel
-
-`func (o *DriveApiKeyCreateOut) SetLabel(v string)`
-
-SetLabel sets Label field to given value.
-
-### HasLabel
-
-`func (o *DriveApiKeyCreateOut) HasLabel() bool`
-
-HasLabel returns a boolean if a field has been set.
-
-### SetLabelNil
-
-`func (o *DriveApiKeyCreateOut) SetLabelNil(b bool)`
-
- SetLabelNil sets the value for Label to be an explicit nil
-
-### UnsetLabel
-`func (o *DriveApiKeyCreateOut) UnsetLabel()`
-
-UnsetLabel ensures that no value is present for Label, not even an explicit nil
-### GetPrefix
-
-`func (o *DriveApiKeyCreateOut) GetPrefix() string`
-
-GetPrefix returns the Prefix field if non-nil, zero value otherwise.
-
-### GetPrefixOk
-
-`func (o *DriveApiKeyCreateOut) GetPrefixOk() (*string, bool)`
-
-GetPrefixOk returns a tuple with the Prefix field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPrefix
-
-`func (o *DriveApiKeyCreateOut) SetPrefix(v string)`
-
-SetPrefix sets Prefix field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DriveApiKeyListOut.md b/sdk/go/docs/DriveApiKeyListOut.md
deleted file mode 100644
index 9bd11c4..0000000
--- a/sdk/go/docs/DriveApiKeyListOut.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# DriveApiKeyListOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Items** | [**[]DriveApiKeyOut**](DriveApiKeyOut.md) | |
-**Keys** | [**[]DriveApiKeyOut**](DriveApiKeyOut.md) | |
-**NextCursor** | Pointer to **NullableString** | | [optional]
-
-## Methods
-
-### NewDriveApiKeyListOut
-
-`func NewDriveApiKeyListOut(items []DriveApiKeyOut, keys []DriveApiKeyOut, ) *DriveApiKeyListOut`
-
-NewDriveApiKeyListOut instantiates a new DriveApiKeyListOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewDriveApiKeyListOutWithDefaults
-
-`func NewDriveApiKeyListOutWithDefaults() *DriveApiKeyListOut`
-
-NewDriveApiKeyListOutWithDefaults instantiates a new DriveApiKeyListOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetItems
-
-`func (o *DriveApiKeyListOut) GetItems() []DriveApiKeyOut`
-
-GetItems returns the Items field if non-nil, zero value otherwise.
-
-### GetItemsOk
-
-`func (o *DriveApiKeyListOut) GetItemsOk() (*[]DriveApiKeyOut, bool)`
-
-GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetItems
-
-`func (o *DriveApiKeyListOut) SetItems(v []DriveApiKeyOut)`
-
-SetItems sets Items field to given value.
-
-
-### GetKeys
-
-`func (o *DriveApiKeyListOut) GetKeys() []DriveApiKeyOut`
-
-GetKeys returns the Keys field if non-nil, zero value otherwise.
-
-### GetKeysOk
-
-`func (o *DriveApiKeyListOut) GetKeysOk() (*[]DriveApiKeyOut, bool)`
-
-GetKeysOk returns a tuple with the Keys field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetKeys
-
-`func (o *DriveApiKeyListOut) SetKeys(v []DriveApiKeyOut)`
-
-SetKeys sets Keys field to given value.
-
-
-### GetNextCursor
-
-`func (o *DriveApiKeyListOut) GetNextCursor() string`
-
-GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
-
-### GetNextCursorOk
-
-`func (o *DriveApiKeyListOut) GetNextCursorOk() (*string, bool)`
-
-GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetNextCursor
-
-`func (o *DriveApiKeyListOut) SetNextCursor(v string)`
-
-SetNextCursor sets NextCursor field to given value.
-
-### HasNextCursor
-
-`func (o *DriveApiKeyListOut) HasNextCursor() bool`
-
-HasNextCursor returns a boolean if a field has been set.
-
-### SetNextCursorNil
-
-`func (o *DriveApiKeyListOut) SetNextCursorNil(b bool)`
-
- SetNextCursorNil sets the value for NextCursor to be an explicit nil
-
-### UnsetNextCursor
-`func (o *DriveApiKeyListOut) UnsetNextCursor()`
-
-UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DriveApiKeyOut.md b/sdk/go/docs/DriveApiKeyOut.md
deleted file mode 100644
index 969c209..0000000
--- a/sdk/go/docs/DriveApiKeyOut.md
+++ /dev/null
@@ -1,199 +0,0 @@
-# DriveApiKeyOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**CreatedAt** | **time.Time** | |
-**Id** | **string** | |
-**Label** | Pointer to **NullableString** | | [optional]
-**LastUsedAt** | Pointer to **NullableTime** | | [optional]
-**Prefix** | **string** | |
-**RevokedAt** | Pointer to **NullableTime** | | [optional]
-
-## Methods
-
-### NewDriveApiKeyOut
-
-`func NewDriveApiKeyOut(createdAt time.Time, id string, prefix string, ) *DriveApiKeyOut`
-
-NewDriveApiKeyOut instantiates a new DriveApiKeyOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewDriveApiKeyOutWithDefaults
-
-`func NewDriveApiKeyOutWithDefaults() *DriveApiKeyOut`
-
-NewDriveApiKeyOutWithDefaults instantiates a new DriveApiKeyOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetCreatedAt
-
-`func (o *DriveApiKeyOut) GetCreatedAt() time.Time`
-
-GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
-
-### GetCreatedAtOk
-
-`func (o *DriveApiKeyOut) GetCreatedAtOk() (*time.Time, bool)`
-
-GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCreatedAt
-
-`func (o *DriveApiKeyOut) SetCreatedAt(v time.Time)`
-
-SetCreatedAt sets CreatedAt field to given value.
-
-
-### GetId
-
-`func (o *DriveApiKeyOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *DriveApiKeyOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *DriveApiKeyOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetLabel
-
-`func (o *DriveApiKeyOut) GetLabel() string`
-
-GetLabel returns the Label field if non-nil, zero value otherwise.
-
-### GetLabelOk
-
-`func (o *DriveApiKeyOut) GetLabelOk() (*string, bool)`
-
-GetLabelOk returns a tuple with the Label field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLabel
-
-`func (o *DriveApiKeyOut) SetLabel(v string)`
-
-SetLabel sets Label field to given value.
-
-### HasLabel
-
-`func (o *DriveApiKeyOut) HasLabel() bool`
-
-HasLabel returns a boolean if a field has been set.
-
-### SetLabelNil
-
-`func (o *DriveApiKeyOut) SetLabelNil(b bool)`
-
- SetLabelNil sets the value for Label to be an explicit nil
-
-### UnsetLabel
-`func (o *DriveApiKeyOut) UnsetLabel()`
-
-UnsetLabel ensures that no value is present for Label, not even an explicit nil
-### GetLastUsedAt
-
-`func (o *DriveApiKeyOut) GetLastUsedAt() time.Time`
-
-GetLastUsedAt returns the LastUsedAt field if non-nil, zero value otherwise.
-
-### GetLastUsedAtOk
-
-`func (o *DriveApiKeyOut) GetLastUsedAtOk() (*time.Time, bool)`
-
-GetLastUsedAtOk returns a tuple with the LastUsedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLastUsedAt
-
-`func (o *DriveApiKeyOut) SetLastUsedAt(v time.Time)`
-
-SetLastUsedAt sets LastUsedAt field to given value.
-
-### HasLastUsedAt
-
-`func (o *DriveApiKeyOut) HasLastUsedAt() bool`
-
-HasLastUsedAt returns a boolean if a field has been set.
-
-### SetLastUsedAtNil
-
-`func (o *DriveApiKeyOut) SetLastUsedAtNil(b bool)`
-
- SetLastUsedAtNil sets the value for LastUsedAt to be an explicit nil
-
-### UnsetLastUsedAt
-`func (o *DriveApiKeyOut) UnsetLastUsedAt()`
-
-UnsetLastUsedAt ensures that no value is present for LastUsedAt, not even an explicit nil
-### GetPrefix
-
-`func (o *DriveApiKeyOut) GetPrefix() string`
-
-GetPrefix returns the Prefix field if non-nil, zero value otherwise.
-
-### GetPrefixOk
-
-`func (o *DriveApiKeyOut) GetPrefixOk() (*string, bool)`
-
-GetPrefixOk returns a tuple with the Prefix field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPrefix
-
-`func (o *DriveApiKeyOut) SetPrefix(v string)`
-
-SetPrefix sets Prefix field to given value.
-
-
-### GetRevokedAt
-
-`func (o *DriveApiKeyOut) GetRevokedAt() time.Time`
-
-GetRevokedAt returns the RevokedAt field if non-nil, zero value otherwise.
-
-### GetRevokedAtOk
-
-`func (o *DriveApiKeyOut) GetRevokedAtOk() (*time.Time, bool)`
-
-GetRevokedAtOk returns a tuple with the RevokedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRevokedAt
-
-`func (o *DriveApiKeyOut) SetRevokedAt(v time.Time)`
-
-SetRevokedAt sets RevokedAt field to given value.
-
-### HasRevokedAt
-
-`func (o *DriveApiKeyOut) HasRevokedAt() bool`
-
-HasRevokedAt returns a boolean if a field has been set.
-
-### SetRevokedAtNil
-
-`func (o *DriveApiKeyOut) SetRevokedAtNil(b bool)`
-
- SetRevokedAtNil sets the value for RevokedAt to be an explicit nil
-
-### UnsetRevokedAt
-`func (o *DriveApiKeyOut) UnsetRevokedAt()`
-
-UnsetRevokedAt ensures that no value is present for RevokedAt, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DriveCreateIn.md b/sdk/go/docs/DriveCreateIn.md
index 9842268..e3779f8 100644
--- a/sdk/go/docs/DriveCreateIn.md
+++ b/sdk/go/docs/DriveCreateIn.md
@@ -4,6 +4,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
+**Metadata** | Pointer to **map[string]interface{}** | | [optional]
**Name** | **string** | |
## Methods
@@ -25,6 +26,31 @@ NewDriveCreateInWithDefaults instantiates a new DriveCreateIn object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
+### GetMetadata
+
+`func (o *DriveCreateIn) GetMetadata() map[string]interface{}`
+
+GetMetadata returns the Metadata field if non-nil, zero value otherwise.
+
+### GetMetadataOk
+
+`func (o *DriveCreateIn) GetMetadataOk() (*map[string]interface{}, bool)`
+
+GetMetadataOk returns a tuple with the Metadata field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetMetadata
+
+`func (o *DriveCreateIn) SetMetadata(v map[string]interface{})`
+
+SetMetadata sets Metadata field to given value.
+
+### HasMetadata
+
+`func (o *DriveCreateIn) HasMetadata() bool`
+
+HasMetadata returns a boolean if a field has been set.
+
### GetName
`func (o *DriveCreateIn) GetName() string`
diff --git a/sdk/go/docs/DriveCreateOut.md b/sdk/go/docs/DriveCreateOut.md
deleted file mode 100644
index c49dba2..0000000
--- a/sdk/go/docs/DriveCreateOut.md
+++ /dev/null
@@ -1,226 +0,0 @@
-# DriveCreateOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**ApiKey** | **string** | |
-**CreatedAt** | **time.Time** | |
-**Id** | **string** | |
-**Name** | **string** | |
-**OrganizationId** | **string** | |
-**OwnerEmail** | Pointer to **NullableString** | | [optional]
-**OwnerUserId** | Pointer to **NullableString** | | [optional]
-**StorageBytes** | **int32** | |
-
-## Methods
-
-### NewDriveCreateOut
-
-`func NewDriveCreateOut(apiKey string, createdAt time.Time, id string, name string, organizationId string, storageBytes int32, ) *DriveCreateOut`
-
-NewDriveCreateOut instantiates a new DriveCreateOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewDriveCreateOutWithDefaults
-
-`func NewDriveCreateOutWithDefaults() *DriveCreateOut`
-
-NewDriveCreateOutWithDefaults instantiates a new DriveCreateOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetApiKey
-
-`func (o *DriveCreateOut) GetApiKey() string`
-
-GetApiKey returns the ApiKey field if non-nil, zero value otherwise.
-
-### GetApiKeyOk
-
-`func (o *DriveCreateOut) GetApiKeyOk() (*string, bool)`
-
-GetApiKeyOk returns a tuple with the ApiKey field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetApiKey
-
-`func (o *DriveCreateOut) SetApiKey(v string)`
-
-SetApiKey sets ApiKey field to given value.
-
-
-### GetCreatedAt
-
-`func (o *DriveCreateOut) GetCreatedAt() time.Time`
-
-GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
-
-### GetCreatedAtOk
-
-`func (o *DriveCreateOut) GetCreatedAtOk() (*time.Time, bool)`
-
-GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCreatedAt
-
-`func (o *DriveCreateOut) SetCreatedAt(v time.Time)`
-
-SetCreatedAt sets CreatedAt field to given value.
-
-
-### GetId
-
-`func (o *DriveCreateOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *DriveCreateOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *DriveCreateOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetName
-
-`func (o *DriveCreateOut) GetName() string`
-
-GetName returns the Name field if non-nil, zero value otherwise.
-
-### GetNameOk
-
-`func (o *DriveCreateOut) GetNameOk() (*string, bool)`
-
-GetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetName
-
-`func (o *DriveCreateOut) SetName(v string)`
-
-SetName sets Name field to given value.
-
-
-### GetOrganizationId
-
-`func (o *DriveCreateOut) GetOrganizationId() string`
-
-GetOrganizationId returns the OrganizationId field if non-nil, zero value otherwise.
-
-### GetOrganizationIdOk
-
-`func (o *DriveCreateOut) GetOrganizationIdOk() (*string, bool)`
-
-GetOrganizationIdOk returns a tuple with the OrganizationId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetOrganizationId
-
-`func (o *DriveCreateOut) SetOrganizationId(v string)`
-
-SetOrganizationId sets OrganizationId field to given value.
-
-
-### GetOwnerEmail
-
-`func (o *DriveCreateOut) GetOwnerEmail() string`
-
-GetOwnerEmail returns the OwnerEmail field if non-nil, zero value otherwise.
-
-### GetOwnerEmailOk
-
-`func (o *DriveCreateOut) GetOwnerEmailOk() (*string, bool)`
-
-GetOwnerEmailOk returns a tuple with the OwnerEmail field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetOwnerEmail
-
-`func (o *DriveCreateOut) SetOwnerEmail(v string)`
-
-SetOwnerEmail sets OwnerEmail field to given value.
-
-### HasOwnerEmail
-
-`func (o *DriveCreateOut) HasOwnerEmail() bool`
-
-HasOwnerEmail returns a boolean if a field has been set.
-
-### SetOwnerEmailNil
-
-`func (o *DriveCreateOut) SetOwnerEmailNil(b bool)`
-
- SetOwnerEmailNil sets the value for OwnerEmail to be an explicit nil
-
-### UnsetOwnerEmail
-`func (o *DriveCreateOut) UnsetOwnerEmail()`
-
-UnsetOwnerEmail ensures that no value is present for OwnerEmail, not even an explicit nil
-### GetOwnerUserId
-
-`func (o *DriveCreateOut) GetOwnerUserId() string`
-
-GetOwnerUserId returns the OwnerUserId field if non-nil, zero value otherwise.
-
-### GetOwnerUserIdOk
-
-`func (o *DriveCreateOut) GetOwnerUserIdOk() (*string, bool)`
-
-GetOwnerUserIdOk returns a tuple with the OwnerUserId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetOwnerUserId
-
-`func (o *DriveCreateOut) SetOwnerUserId(v string)`
-
-SetOwnerUserId sets OwnerUserId field to given value.
-
-### HasOwnerUserId
-
-`func (o *DriveCreateOut) HasOwnerUserId() bool`
-
-HasOwnerUserId returns a boolean if a field has been set.
-
-### SetOwnerUserIdNil
-
-`func (o *DriveCreateOut) SetOwnerUserIdNil(b bool)`
-
- SetOwnerUserIdNil sets the value for OwnerUserId to be an explicit nil
-
-### UnsetOwnerUserId
-`func (o *DriveCreateOut) UnsetOwnerUserId()`
-
-UnsetOwnerUserId ensures that no value is present for OwnerUserId, not even an explicit nil
-### GetStorageBytes
-
-`func (o *DriveCreateOut) GetStorageBytes() int32`
-
-GetStorageBytes returns the StorageBytes field if non-nil, zero value otherwise.
-
-### GetStorageBytesOk
-
-`func (o *DriveCreateOut) GetStorageBytesOk() (*int32, bool)`
-
-GetStorageBytesOk returns a tuple with the StorageBytes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetStorageBytes
-
-`func (o *DriveCreateOut) SetStorageBytes(v int32)`
-
-SetStorageBytes sets StorageBytes field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DriveDeleteOut.md b/sdk/go/docs/DriveDeleteOut.md
deleted file mode 100644
index 0dd4d85..0000000
--- a/sdk/go/docs/DriveDeleteOut.md
+++ /dev/null
@@ -1,153 +0,0 @@
-# DriveDeleteOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**DeletedAt** | **time.Time** | |
-**Id** | **string** | |
-**Ok** | Pointer to **bool** | | [optional] [default to true]
-**PurgeAt** | **time.Time** | |
-**RestoreUrl** | Pointer to **NullableString** | | [optional]
-
-## Methods
-
-### NewDriveDeleteOut
-
-`func NewDriveDeleteOut(deletedAt time.Time, id string, purgeAt time.Time, ) *DriveDeleteOut`
-
-NewDriveDeleteOut instantiates a new DriveDeleteOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewDriveDeleteOutWithDefaults
-
-`func NewDriveDeleteOutWithDefaults() *DriveDeleteOut`
-
-NewDriveDeleteOutWithDefaults instantiates a new DriveDeleteOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetDeletedAt
-
-`func (o *DriveDeleteOut) GetDeletedAt() time.Time`
-
-GetDeletedAt returns the DeletedAt field if non-nil, zero value otherwise.
-
-### GetDeletedAtOk
-
-`func (o *DriveDeleteOut) GetDeletedAtOk() (*time.Time, bool)`
-
-GetDeletedAtOk returns a tuple with the DeletedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDeletedAt
-
-`func (o *DriveDeleteOut) SetDeletedAt(v time.Time)`
-
-SetDeletedAt sets DeletedAt field to given value.
-
-
-### GetId
-
-`func (o *DriveDeleteOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *DriveDeleteOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *DriveDeleteOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetOk
-
-`func (o *DriveDeleteOut) GetOk() bool`
-
-GetOk returns the Ok field if non-nil, zero value otherwise.
-
-### GetOkOk
-
-`func (o *DriveDeleteOut) GetOkOk() (*bool, bool)`
-
-GetOkOk returns a tuple with the Ok field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetOk
-
-`func (o *DriveDeleteOut) SetOk(v bool)`
-
-SetOk sets Ok field to given value.
-
-### HasOk
-
-`func (o *DriveDeleteOut) HasOk() bool`
-
-HasOk returns a boolean if a field has been set.
-
-### GetPurgeAt
-
-`func (o *DriveDeleteOut) GetPurgeAt() time.Time`
-
-GetPurgeAt returns the PurgeAt field if non-nil, zero value otherwise.
-
-### GetPurgeAtOk
-
-`func (o *DriveDeleteOut) GetPurgeAtOk() (*time.Time, bool)`
-
-GetPurgeAtOk returns a tuple with the PurgeAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPurgeAt
-
-`func (o *DriveDeleteOut) SetPurgeAt(v time.Time)`
-
-SetPurgeAt sets PurgeAt field to given value.
-
-
-### GetRestoreUrl
-
-`func (o *DriveDeleteOut) GetRestoreUrl() string`
-
-GetRestoreUrl returns the RestoreUrl field if non-nil, zero value otherwise.
-
-### GetRestoreUrlOk
-
-`func (o *DriveDeleteOut) GetRestoreUrlOk() (*string, bool)`
-
-GetRestoreUrlOk returns a tuple with the RestoreUrl field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRestoreUrl
-
-`func (o *DriveDeleteOut) SetRestoreUrl(v string)`
-
-SetRestoreUrl sets RestoreUrl field to given value.
-
-### HasRestoreUrl
-
-`func (o *DriveDeleteOut) HasRestoreUrl() bool`
-
-HasRestoreUrl returns a boolean if a field has been set.
-
-### SetRestoreUrlNil
-
-`func (o *DriveDeleteOut) SetRestoreUrlNil(b bool)`
-
- SetRestoreUrlNil sets the value for RestoreUrl to be an explicit nil
-
-### UnsetRestoreUrl
-`func (o *DriveDeleteOut) UnsetRestoreUrl()`
-
-UnsetRestoreUrl ensures that no value is present for RestoreUrl, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DriveList.md b/sdk/go/docs/DriveList.md
deleted file mode 100644
index 512eb62..0000000
--- a/sdk/go/docs/DriveList.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# DriveList
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Items** | [**[]DriveOut**](DriveOut.md) | |
-**NextCursor** | Pointer to **NullableString** | | [optional]
-
-## Methods
-
-### NewDriveList
-
-`func NewDriveList(items []DriveOut, ) *DriveList`
-
-NewDriveList instantiates a new DriveList object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewDriveListWithDefaults
-
-`func NewDriveListWithDefaults() *DriveList`
-
-NewDriveListWithDefaults instantiates a new DriveList object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetItems
-
-`func (o *DriveList) GetItems() []DriveOut`
-
-GetItems returns the Items field if non-nil, zero value otherwise.
-
-### GetItemsOk
-
-`func (o *DriveList) GetItemsOk() (*[]DriveOut, bool)`
-
-GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetItems
-
-`func (o *DriveList) SetItems(v []DriveOut)`
-
-SetItems sets Items field to given value.
-
-
-### GetNextCursor
-
-`func (o *DriveList) GetNextCursor() string`
-
-GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
-
-### GetNextCursorOk
-
-`func (o *DriveList) GetNextCursorOk() (*string, bool)`
-
-GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetNextCursor
-
-`func (o *DriveList) SetNextCursor(v string)`
-
-SetNextCursor sets NextCursor field to given value.
-
-### HasNextCursor
-
-`func (o *DriveList) HasNextCursor() bool`
-
-HasNextCursor returns a boolean if a field has been set.
-
-### SetNextCursorNil
-
-`func (o *DriveList) SetNextCursorNil(b bool)`
-
- SetNextCursorNil sets the value for NextCursor to be an explicit nil
-
-### UnsetNextCursor
-`func (o *DriveList) UnsetNextCursor()`
-
-UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DriveListOut.md b/sdk/go/docs/DriveListOut.md
new file mode 100644
index 0000000..ab78f05
--- /dev/null
+++ b/sdk/go/docs/DriveListOut.md
@@ -0,0 +1,80 @@
+# DriveListOut
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Items** | [**[]DriveOut**](DriveOut.md) | |
+**NextCursor** | **NullableString** | |
+
+## Methods
+
+### NewDriveListOut
+
+`func NewDriveListOut(items []DriveOut, nextCursor NullableString, ) *DriveListOut`
+
+NewDriveListOut instantiates a new DriveListOut object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewDriveListOutWithDefaults
+
+`func NewDriveListOutWithDefaults() *DriveListOut`
+
+NewDriveListOutWithDefaults instantiates a new DriveListOut object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetItems
+
+`func (o *DriveListOut) GetItems() []DriveOut`
+
+GetItems returns the Items field if non-nil, zero value otherwise.
+
+### GetItemsOk
+
+`func (o *DriveListOut) GetItemsOk() (*[]DriveOut, bool)`
+
+GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetItems
+
+`func (o *DriveListOut) SetItems(v []DriveOut)`
+
+SetItems sets Items field to given value.
+
+
+### GetNextCursor
+
+`func (o *DriveListOut) GetNextCursor() string`
+
+GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
+
+### GetNextCursorOk
+
+`func (o *DriveListOut) GetNextCursorOk() (*string, bool)`
+
+GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetNextCursor
+
+`func (o *DriveListOut) SetNextCursor(v string)`
+
+SetNextCursor sets NextCursor field to given value.
+
+
+### SetNextCursorNil
+
+`func (o *DriveListOut) SetNextCursorNil(b bool)`
+
+ SetNextCursorNil sets the value for NextCursor to be an explicit nil
+
+### UnsetNextCursor
+`func (o *DriveListOut) UnsetNextCursor()`
+
+UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DriveOut.md b/sdk/go/docs/DriveOut.md
index 3b4ea54..a453414 100644
--- a/sdk/go/docs/DriveOut.md
+++ b/sdk/go/docs/DriveOut.md
@@ -5,18 +5,24 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**CreatedAt** | **time.Time** | |
+**CreatedBy** | **NullableString** | |
+**DeletedAt** | **NullableTime** | |
**Id** | **string** | |
+**Metadata** | **map[string]interface{}** | |
**Name** | **string** | |
-**OrganizationId** | **string** | |
-**OwnerEmail** | Pointer to **NullableString** | | [optional]
-**OwnerUserId** | Pointer to **NullableString** | | [optional]
+**RetrievalBytes** | **int32** | |
+**Revision** | **string** | |
+**RootFolderId** | **string** | |
+**State** | **string** | |
**StorageBytes** | **int32** | |
+**UpdatedAt** | **time.Time** | |
+**WorkspaceId** | **string** | |
## Methods
### NewDriveOut
-`func NewDriveOut(createdAt time.Time, id string, name string, organizationId string, storageBytes int32, ) *DriveOut`
+`func NewDriveOut(createdAt time.Time, createdBy NullableString, deletedAt NullableTime, id string, metadata map[string]interface{}, name string, retrievalBytes int32, revision string, rootFolderId string, state string, storageBytes int32, updatedAt time.Time, workspaceId string, ) *DriveOut`
NewDriveOut instantiates a new DriveOut object
This constructor will assign default values to properties that have it defined,
@@ -51,6 +57,66 @@ and a boolean to check if the value has been set.
SetCreatedAt sets CreatedAt field to given value.
+### GetCreatedBy
+
+`func (o *DriveOut) GetCreatedBy() string`
+
+GetCreatedBy returns the CreatedBy field if non-nil, zero value otherwise.
+
+### GetCreatedByOk
+
+`func (o *DriveOut) GetCreatedByOk() (*string, bool)`
+
+GetCreatedByOk returns a tuple with the CreatedBy field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetCreatedBy
+
+`func (o *DriveOut) SetCreatedBy(v string)`
+
+SetCreatedBy sets CreatedBy field to given value.
+
+
+### SetCreatedByNil
+
+`func (o *DriveOut) SetCreatedByNil(b bool)`
+
+ SetCreatedByNil sets the value for CreatedBy to be an explicit nil
+
+### UnsetCreatedBy
+`func (o *DriveOut) UnsetCreatedBy()`
+
+UnsetCreatedBy ensures that no value is present for CreatedBy, not even an explicit nil
+### GetDeletedAt
+
+`func (o *DriveOut) GetDeletedAt() time.Time`
+
+GetDeletedAt returns the DeletedAt field if non-nil, zero value otherwise.
+
+### GetDeletedAtOk
+
+`func (o *DriveOut) GetDeletedAtOk() (*time.Time, bool)`
+
+GetDeletedAtOk returns a tuple with the DeletedAt field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetDeletedAt
+
+`func (o *DriveOut) SetDeletedAt(v time.Time)`
+
+SetDeletedAt sets DeletedAt field to given value.
+
+
+### SetDeletedAtNil
+
+`func (o *DriveOut) SetDeletedAtNil(b bool)`
+
+ SetDeletedAtNil sets the value for DeletedAt to be an explicit nil
+
+### UnsetDeletedAt
+`func (o *DriveOut) UnsetDeletedAt()`
+
+UnsetDeletedAt ensures that no value is present for DeletedAt, not even an explicit nil
### GetId
`func (o *DriveOut) GetId() string`
@@ -71,6 +137,26 @@ and a boolean to check if the value has been set.
SetId sets Id field to given value.
+### GetMetadata
+
+`func (o *DriveOut) GetMetadata() map[string]interface{}`
+
+GetMetadata returns the Metadata field if non-nil, zero value otherwise.
+
+### GetMetadataOk
+
+`func (o *DriveOut) GetMetadataOk() (*map[string]interface{}, bool)`
+
+GetMetadataOk returns a tuple with the Metadata field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetMetadata
+
+`func (o *DriveOut) SetMetadata(v map[string]interface{})`
+
+SetMetadata sets Metadata field to given value.
+
+
### GetName
`func (o *DriveOut) GetName() string`
@@ -91,96 +177,86 @@ and a boolean to check if the value has been set.
SetName sets Name field to given value.
-### GetOrganizationId
+### GetRetrievalBytes
-`func (o *DriveOut) GetOrganizationId() string`
+`func (o *DriveOut) GetRetrievalBytes() int32`
-GetOrganizationId returns the OrganizationId field if non-nil, zero value otherwise.
+GetRetrievalBytes returns the RetrievalBytes field if non-nil, zero value otherwise.
-### GetOrganizationIdOk
+### GetRetrievalBytesOk
-`func (o *DriveOut) GetOrganizationIdOk() (*string, bool)`
+`func (o *DriveOut) GetRetrievalBytesOk() (*int32, bool)`
-GetOrganizationIdOk returns a tuple with the OrganizationId field if it's non-nil, zero value otherwise
+GetRetrievalBytesOk returns a tuple with the RetrievalBytes field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetOrganizationId
+### SetRetrievalBytes
-`func (o *DriveOut) SetOrganizationId(v string)`
+`func (o *DriveOut) SetRetrievalBytes(v int32)`
-SetOrganizationId sets OrganizationId field to given value.
+SetRetrievalBytes sets RetrievalBytes field to given value.
-### GetOwnerEmail
+### GetRevision
-`func (o *DriveOut) GetOwnerEmail() string`
+`func (o *DriveOut) GetRevision() string`
-GetOwnerEmail returns the OwnerEmail field if non-nil, zero value otherwise.
+GetRevision returns the Revision field if non-nil, zero value otherwise.
-### GetOwnerEmailOk
+### GetRevisionOk
-`func (o *DriveOut) GetOwnerEmailOk() (*string, bool)`
+`func (o *DriveOut) GetRevisionOk() (*string, bool)`
-GetOwnerEmailOk returns a tuple with the OwnerEmail field if it's non-nil, zero value otherwise
+GetRevisionOk returns a tuple with the Revision field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetOwnerEmail
-
-`func (o *DriveOut) SetOwnerEmail(v string)`
-
-SetOwnerEmail sets OwnerEmail field to given value.
+### SetRevision
-### HasOwnerEmail
+`func (o *DriveOut) SetRevision(v string)`
-`func (o *DriveOut) HasOwnerEmail() bool`
+SetRevision sets Revision field to given value.
-HasOwnerEmail returns a boolean if a field has been set.
-### SetOwnerEmailNil
+### GetRootFolderId
-`func (o *DriveOut) SetOwnerEmailNil(b bool)`
+`func (o *DriveOut) GetRootFolderId() string`
- SetOwnerEmailNil sets the value for OwnerEmail to be an explicit nil
+GetRootFolderId returns the RootFolderId field if non-nil, zero value otherwise.
-### UnsetOwnerEmail
-`func (o *DriveOut) UnsetOwnerEmail()`
+### GetRootFolderIdOk
-UnsetOwnerEmail ensures that no value is present for OwnerEmail, not even an explicit nil
-### GetOwnerUserId
+`func (o *DriveOut) GetRootFolderIdOk() (*string, bool)`
-`func (o *DriveOut) GetOwnerUserId() string`
+GetRootFolderIdOk returns a tuple with the RootFolderId field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
-GetOwnerUserId returns the OwnerUserId field if non-nil, zero value otherwise.
+### SetRootFolderId
-### GetOwnerUserIdOk
+`func (o *DriveOut) SetRootFolderId(v string)`
-`func (o *DriveOut) GetOwnerUserIdOk() (*string, bool)`
+SetRootFolderId sets RootFolderId field to given value.
-GetOwnerUserIdOk returns a tuple with the OwnerUserId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-### SetOwnerUserId
+### GetState
-`func (o *DriveOut) SetOwnerUserId(v string)`
+`func (o *DriveOut) GetState() string`
-SetOwnerUserId sets OwnerUserId field to given value.
+GetState returns the State field if non-nil, zero value otherwise.
-### HasOwnerUserId
+### GetStateOk
-`func (o *DriveOut) HasOwnerUserId() bool`
+`func (o *DriveOut) GetStateOk() (*string, bool)`
-HasOwnerUserId returns a boolean if a field has been set.
+GetStateOk returns a tuple with the State field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
-### SetOwnerUserIdNil
+### SetState
-`func (o *DriveOut) SetOwnerUserIdNil(b bool)`
+`func (o *DriveOut) SetState(v string)`
- SetOwnerUserIdNil sets the value for OwnerUserId to be an explicit nil
+SetState sets State field to given value.
-### UnsetOwnerUserId
-`func (o *DriveOut) UnsetOwnerUserId()`
-UnsetOwnerUserId ensures that no value is present for OwnerUserId, not even an explicit nil
### GetStorageBytes
`func (o *DriveOut) GetStorageBytes() int32`
@@ -201,5 +277,45 @@ and a boolean to check if the value has been set.
SetStorageBytes sets StorageBytes field to given value.
+### GetUpdatedAt
+
+`func (o *DriveOut) GetUpdatedAt() time.Time`
+
+GetUpdatedAt returns the UpdatedAt field if non-nil, zero value otherwise.
+
+### GetUpdatedAtOk
+
+`func (o *DriveOut) GetUpdatedAtOk() (*time.Time, bool)`
+
+GetUpdatedAtOk returns a tuple with the UpdatedAt field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetUpdatedAt
+
+`func (o *DriveOut) SetUpdatedAt(v time.Time)`
+
+SetUpdatedAt sets UpdatedAt field to given value.
+
+
+### GetWorkspaceId
+
+`func (o *DriveOut) GetWorkspaceId() string`
+
+GetWorkspaceId returns the WorkspaceId field if non-nil, zero value otherwise.
+
+### GetWorkspaceIdOk
+
+`func (o *DriveOut) GetWorkspaceIdOk() (*string, bool)`
+
+GetWorkspaceIdOk returns a tuple with the WorkspaceId field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetWorkspaceId
+
+`func (o *DriveOut) SetWorkspaceId(v string)`
+
+SetWorkspaceId sets WorkspaceId field to given value.
+
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DriveReadOut.md b/sdk/go/docs/DriveReadOut.md
deleted file mode 100644
index 2b49614..0000000
--- a/sdk/go/docs/DriveReadOut.md
+++ /dev/null
@@ -1,211 +0,0 @@
-# DriveReadOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**CreatedAt** | **time.Time** | |
-**Email** | Pointer to **NullableString** | | [optional]
-**Etag** | **string** | |
-**Id** | **string** | |
-**Metageneration** | **int32** | |
-**OrganizationId** | **string** | |
-**StorageBytes** | **int32** | |
-**StorageLimit** | **int32** | |
-
-## Methods
-
-### NewDriveReadOut
-
-`func NewDriveReadOut(createdAt time.Time, etag string, id string, metageneration int32, organizationId string, storageBytes int32, storageLimit int32, ) *DriveReadOut`
-
-NewDriveReadOut instantiates a new DriveReadOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewDriveReadOutWithDefaults
-
-`func NewDriveReadOutWithDefaults() *DriveReadOut`
-
-NewDriveReadOutWithDefaults instantiates a new DriveReadOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetCreatedAt
-
-`func (o *DriveReadOut) GetCreatedAt() time.Time`
-
-GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
-
-### GetCreatedAtOk
-
-`func (o *DriveReadOut) GetCreatedAtOk() (*time.Time, bool)`
-
-GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCreatedAt
-
-`func (o *DriveReadOut) SetCreatedAt(v time.Time)`
-
-SetCreatedAt sets CreatedAt field to given value.
-
-
-### GetEmail
-
-`func (o *DriveReadOut) GetEmail() string`
-
-GetEmail returns the Email field if non-nil, zero value otherwise.
-
-### GetEmailOk
-
-`func (o *DriveReadOut) GetEmailOk() (*string, bool)`
-
-GetEmailOk returns a tuple with the Email field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEmail
-
-`func (o *DriveReadOut) SetEmail(v string)`
-
-SetEmail sets Email field to given value.
-
-### HasEmail
-
-`func (o *DriveReadOut) HasEmail() bool`
-
-HasEmail returns a boolean if a field has been set.
-
-### SetEmailNil
-
-`func (o *DriveReadOut) SetEmailNil(b bool)`
-
- SetEmailNil sets the value for Email to be an explicit nil
-
-### UnsetEmail
-`func (o *DriveReadOut) UnsetEmail()`
-
-UnsetEmail ensures that no value is present for Email, not even an explicit nil
-### GetEtag
-
-`func (o *DriveReadOut) GetEtag() string`
-
-GetEtag returns the Etag field if non-nil, zero value otherwise.
-
-### GetEtagOk
-
-`func (o *DriveReadOut) GetEtagOk() (*string, bool)`
-
-GetEtagOk returns a tuple with the Etag field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEtag
-
-`func (o *DriveReadOut) SetEtag(v string)`
-
-SetEtag sets Etag field to given value.
-
-
-### GetId
-
-`func (o *DriveReadOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *DriveReadOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *DriveReadOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetMetageneration
-
-`func (o *DriveReadOut) GetMetageneration() int32`
-
-GetMetageneration returns the Metageneration field if non-nil, zero value otherwise.
-
-### GetMetagenerationOk
-
-`func (o *DriveReadOut) GetMetagenerationOk() (*int32, bool)`
-
-GetMetagenerationOk returns a tuple with the Metageneration field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetMetageneration
-
-`func (o *DriveReadOut) SetMetageneration(v int32)`
-
-SetMetageneration sets Metageneration field to given value.
-
-
-### GetOrganizationId
-
-`func (o *DriveReadOut) GetOrganizationId() string`
-
-GetOrganizationId returns the OrganizationId field if non-nil, zero value otherwise.
-
-### GetOrganizationIdOk
-
-`func (o *DriveReadOut) GetOrganizationIdOk() (*string, bool)`
-
-GetOrganizationIdOk returns a tuple with the OrganizationId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetOrganizationId
-
-`func (o *DriveReadOut) SetOrganizationId(v string)`
-
-SetOrganizationId sets OrganizationId field to given value.
-
-
-### GetStorageBytes
-
-`func (o *DriveReadOut) GetStorageBytes() int32`
-
-GetStorageBytes returns the StorageBytes field if non-nil, zero value otherwise.
-
-### GetStorageBytesOk
-
-`func (o *DriveReadOut) GetStorageBytesOk() (*int32, bool)`
-
-GetStorageBytesOk returns a tuple with the StorageBytes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetStorageBytes
-
-`func (o *DriveReadOut) SetStorageBytes(v int32)`
-
-SetStorageBytes sets StorageBytes field to given value.
-
-
-### GetStorageLimit
-
-`func (o *DriveReadOut) GetStorageLimit() int32`
-
-GetStorageLimit returns the StorageLimit field if non-nil, zero value otherwise.
-
-### GetStorageLimitOk
-
-`func (o *DriveReadOut) GetStorageLimitOk() (*int32, bool)`
-
-GetStorageLimitOk returns a tuple with the StorageLimit field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetStorageLimit
-
-`func (o *DriveReadOut) SetStorageLimit(v int32)`
-
-SetStorageLimit sets StorageLimit field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DriveRenameIn.md b/sdk/go/docs/DriveRenameIn.md
deleted file mode 100644
index ceb3242..0000000
--- a/sdk/go/docs/DriveRenameIn.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# DriveRenameIn
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Name** | **string** | |
-
-## Methods
-
-### NewDriveRenameIn
-
-`func NewDriveRenameIn(name string, ) *DriveRenameIn`
-
-NewDriveRenameIn instantiates a new DriveRenameIn object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewDriveRenameInWithDefaults
-
-`func NewDriveRenameInWithDefaults() *DriveRenameIn`
-
-NewDriveRenameInWithDefaults instantiates a new DriveRenameIn object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetName
-
-`func (o *DriveRenameIn) GetName() string`
-
-GetName returns the Name field if non-nil, zero value otherwise.
-
-### GetNameOk
-
-`func (o *DriveRenameIn) GetNameOk() (*string, bool)`
-
-GetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetName
-
-`func (o *DriveRenameIn) SetName(v string)`
-
-SetName sets Name field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DriveRestoreOut.md b/sdk/go/docs/DriveRestoreOut.md
deleted file mode 100644
index c817b30..0000000
--- a/sdk/go/docs/DriveRestoreOut.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# DriveRestoreOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Id** | **string** | |
-**RebasedArtifactCount** | **int32** | |
-**RestoredAt** | **time.Time** | |
-
-## Methods
-
-### NewDriveRestoreOut
-
-`func NewDriveRestoreOut(id string, rebasedArtifactCount int32, restoredAt time.Time, ) *DriveRestoreOut`
-
-NewDriveRestoreOut instantiates a new DriveRestoreOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewDriveRestoreOutWithDefaults
-
-`func NewDriveRestoreOutWithDefaults() *DriveRestoreOut`
-
-NewDriveRestoreOutWithDefaults instantiates a new DriveRestoreOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetId
-
-`func (o *DriveRestoreOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *DriveRestoreOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *DriveRestoreOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetRebasedArtifactCount
-
-`func (o *DriveRestoreOut) GetRebasedArtifactCount() int32`
-
-GetRebasedArtifactCount returns the RebasedArtifactCount field if non-nil, zero value otherwise.
-
-### GetRebasedArtifactCountOk
-
-`func (o *DriveRestoreOut) GetRebasedArtifactCountOk() (*int32, bool)`
-
-GetRebasedArtifactCountOk returns a tuple with the RebasedArtifactCount field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRebasedArtifactCount
-
-`func (o *DriveRestoreOut) SetRebasedArtifactCount(v int32)`
-
-SetRebasedArtifactCount sets RebasedArtifactCount field to given value.
-
-
-### GetRestoredAt
-
-`func (o *DriveRestoreOut) GetRestoredAt() time.Time`
-
-GetRestoredAt returns the RestoredAt field if non-nil, zero value otherwise.
-
-### GetRestoredAtOk
-
-`func (o *DriveRestoreOut) GetRestoredAtOk() (*time.Time, bool)`
-
-GetRestoredAtOk returns a tuple with the RestoredAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRestoredAt
-
-`func (o *DriveRestoreOut) SetRestoredAt(v time.Time)`
-
-SetRestoredAt sets RestoredAt field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DriveUpdateIn.md b/sdk/go/docs/DriveUpdateIn.md
new file mode 100644
index 0000000..2b14e45
--- /dev/null
+++ b/sdk/go/docs/DriveUpdateIn.md
@@ -0,0 +1,100 @@
+# DriveUpdateIn
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Metadata** | Pointer to **map[string]interface{}** | | [optional]
+**Name** | Pointer to **NullableString** | | [optional]
+
+## Methods
+
+### NewDriveUpdateIn
+
+`func NewDriveUpdateIn() *DriveUpdateIn`
+
+NewDriveUpdateIn instantiates a new DriveUpdateIn object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewDriveUpdateInWithDefaults
+
+`func NewDriveUpdateInWithDefaults() *DriveUpdateIn`
+
+NewDriveUpdateInWithDefaults instantiates a new DriveUpdateIn object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetMetadata
+
+`func (o *DriveUpdateIn) GetMetadata() map[string]interface{}`
+
+GetMetadata returns the Metadata field if non-nil, zero value otherwise.
+
+### GetMetadataOk
+
+`func (o *DriveUpdateIn) GetMetadataOk() (*map[string]interface{}, bool)`
+
+GetMetadataOk returns a tuple with the Metadata field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetMetadata
+
+`func (o *DriveUpdateIn) SetMetadata(v map[string]interface{})`
+
+SetMetadata sets Metadata field to given value.
+
+### HasMetadata
+
+`func (o *DriveUpdateIn) HasMetadata() bool`
+
+HasMetadata returns a boolean if a field has been set.
+
+### SetMetadataNil
+
+`func (o *DriveUpdateIn) SetMetadataNil(b bool)`
+
+ SetMetadataNil sets the value for Metadata to be an explicit nil
+
+### UnsetMetadata
+`func (o *DriveUpdateIn) UnsetMetadata()`
+
+UnsetMetadata ensures that no value is present for Metadata, not even an explicit nil
+### GetName
+
+`func (o *DriveUpdateIn) GetName() string`
+
+GetName returns the Name field if non-nil, zero value otherwise.
+
+### GetNameOk
+
+`func (o *DriveUpdateIn) GetNameOk() (*string, bool)`
+
+GetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetName
+
+`func (o *DriveUpdateIn) SetName(v string)`
+
+SetName sets Name field to given value.
+
+### HasName
+
+`func (o *DriveUpdateIn) HasName() bool`
+
+HasName returns a boolean if a field has been set.
+
+### SetNameNil
+
+`func (o *DriveUpdateIn) SetNameNil(b bool)`
+
+ SetNameNil sets the value for Name to be an explicit nil
+
+### UnsetName
+`func (o *DriveUpdateIn) UnsetName()`
+
+UnsetName ensures that no value is present for Name, not even an explicit nil
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DriveUsageOut.md b/sdk/go/docs/DriveUsageOut.md
index 2520291..431c1dd 100644
--- a/sdk/go/docs/DriveUsageOut.md
+++ b/sdk/go/docs/DriveUsageOut.md
@@ -4,25 +4,14 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**AccountFootprint** | [**StorageFootprintOut**](StorageFootprintOut.md) | |
-**EgressBytes** | [**UsageCounterOut**](UsageCounterOut.md) | |
-**Footprint** | [**StorageFootprintOut**](StorageFootprintOut.md) | |
-**IndexedBytes** | [**UsageCounterOut**](UsageCounterOut.md) | |
-**IndexingOps** | [**UsageCounterOut**](UsageCounterOut.md) | |
-**OpsThisMonth** | [**OperationUsageOut**](OperationUsageOut.md) | |
-**Period** | [**UsagePeriodOut**](UsagePeriodOut.md) | |
-**RetrievalQueries** | [**UsageCounterOut**](UsageCounterOut.md) | |
-**Storage** | [**UsageCounterOut**](UsageCounterOut.md) | |
-**StorageBreakdown** | Pointer to [**NullableStorageBreakdownOut**](StorageBreakdownOut.md) | | [optional]
-**TokensThisMonth** | [**TokenUsageOut**](TokenUsageOut.md) | |
-**VersionRetention** | [**VersionRetentionOut**](VersionRetentionOut.md) | |
-**WritesThisHour** | [**HourlyUsageCounterOut**](HourlyUsageCounterOut.md) | |
+**RetrievalBytes** | **int32** | |
+**StorageBytes** | **int32** | |
## Methods
### NewDriveUsageOut
-`func NewDriveUsageOut(accountFootprint StorageFootprintOut, egressBytes UsageCounterOut, footprint StorageFootprintOut, indexedBytes UsageCounterOut, indexingOps UsageCounterOut, opsThisMonth OperationUsageOut, period UsagePeriodOut, retrievalQueries UsageCounterOut, storage UsageCounterOut, tokensThisMonth TokenUsageOut, versionRetention VersionRetentionOut, writesThisHour HourlyUsageCounterOut, ) *DriveUsageOut`
+`func NewDriveUsageOut(retrievalBytes int32, storageBytes int32, ) *DriveUsageOut`
NewDriveUsageOut instantiates a new DriveUsageOut object
This constructor will assign default values to properties that have it defined,
@@ -37,279 +26,44 @@ NewDriveUsageOutWithDefaults instantiates a new DriveUsageOut object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
-### GetAccountFootprint
+### GetRetrievalBytes
-`func (o *DriveUsageOut) GetAccountFootprint() StorageFootprintOut`
+`func (o *DriveUsageOut) GetRetrievalBytes() int32`
-GetAccountFootprint returns the AccountFootprint field if non-nil, zero value otherwise.
+GetRetrievalBytes returns the RetrievalBytes field if non-nil, zero value otherwise.
-### GetAccountFootprintOk
+### GetRetrievalBytesOk
-`func (o *DriveUsageOut) GetAccountFootprintOk() (*StorageFootprintOut, bool)`
+`func (o *DriveUsageOut) GetRetrievalBytesOk() (*int32, bool)`
-GetAccountFootprintOk returns a tuple with the AccountFootprint field if it's non-nil, zero value otherwise
+GetRetrievalBytesOk returns a tuple with the RetrievalBytes field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetAccountFootprint
+### SetRetrievalBytes
-`func (o *DriveUsageOut) SetAccountFootprint(v StorageFootprintOut)`
+`func (o *DriveUsageOut) SetRetrievalBytes(v int32)`
-SetAccountFootprint sets AccountFootprint field to given value.
+SetRetrievalBytes sets RetrievalBytes field to given value.
-### GetEgressBytes
+### GetStorageBytes
-`func (o *DriveUsageOut) GetEgressBytes() UsageCounterOut`
+`func (o *DriveUsageOut) GetStorageBytes() int32`
-GetEgressBytes returns the EgressBytes field if non-nil, zero value otherwise.
+GetStorageBytes returns the StorageBytes field if non-nil, zero value otherwise.
-### GetEgressBytesOk
+### GetStorageBytesOk
-`func (o *DriveUsageOut) GetEgressBytesOk() (*UsageCounterOut, bool)`
+`func (o *DriveUsageOut) GetStorageBytesOk() (*int32, bool)`
-GetEgressBytesOk returns a tuple with the EgressBytes field if it's non-nil, zero value otherwise
+GetStorageBytesOk returns a tuple with the StorageBytes field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetEgressBytes
+### SetStorageBytes
-`func (o *DriveUsageOut) SetEgressBytes(v UsageCounterOut)`
+`func (o *DriveUsageOut) SetStorageBytes(v int32)`
-SetEgressBytes sets EgressBytes field to given value.
-
-
-### GetFootprint
-
-`func (o *DriveUsageOut) GetFootprint() StorageFootprintOut`
-
-GetFootprint returns the Footprint field if non-nil, zero value otherwise.
-
-### GetFootprintOk
-
-`func (o *DriveUsageOut) GetFootprintOk() (*StorageFootprintOut, bool)`
-
-GetFootprintOk returns a tuple with the Footprint field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetFootprint
-
-`func (o *DriveUsageOut) SetFootprint(v StorageFootprintOut)`
-
-SetFootprint sets Footprint field to given value.
-
-
-### GetIndexedBytes
-
-`func (o *DriveUsageOut) GetIndexedBytes() UsageCounterOut`
-
-GetIndexedBytes returns the IndexedBytes field if non-nil, zero value otherwise.
-
-### GetIndexedBytesOk
-
-`func (o *DriveUsageOut) GetIndexedBytesOk() (*UsageCounterOut, bool)`
-
-GetIndexedBytesOk returns a tuple with the IndexedBytes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetIndexedBytes
-
-`func (o *DriveUsageOut) SetIndexedBytes(v UsageCounterOut)`
-
-SetIndexedBytes sets IndexedBytes field to given value.
-
-
-### GetIndexingOps
-
-`func (o *DriveUsageOut) GetIndexingOps() UsageCounterOut`
-
-GetIndexingOps returns the IndexingOps field if non-nil, zero value otherwise.
-
-### GetIndexingOpsOk
-
-`func (o *DriveUsageOut) GetIndexingOpsOk() (*UsageCounterOut, bool)`
-
-GetIndexingOpsOk returns a tuple with the IndexingOps field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetIndexingOps
-
-`func (o *DriveUsageOut) SetIndexingOps(v UsageCounterOut)`
-
-SetIndexingOps sets IndexingOps field to given value.
-
-
-### GetOpsThisMonth
-
-`func (o *DriveUsageOut) GetOpsThisMonth() OperationUsageOut`
-
-GetOpsThisMonth returns the OpsThisMonth field if non-nil, zero value otherwise.
-
-### GetOpsThisMonthOk
-
-`func (o *DriveUsageOut) GetOpsThisMonthOk() (*OperationUsageOut, bool)`
-
-GetOpsThisMonthOk returns a tuple with the OpsThisMonth field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetOpsThisMonth
-
-`func (o *DriveUsageOut) SetOpsThisMonth(v OperationUsageOut)`
-
-SetOpsThisMonth sets OpsThisMonth field to given value.
-
-
-### GetPeriod
-
-`func (o *DriveUsageOut) GetPeriod() UsagePeriodOut`
-
-GetPeriod returns the Period field if non-nil, zero value otherwise.
-
-### GetPeriodOk
-
-`func (o *DriveUsageOut) GetPeriodOk() (*UsagePeriodOut, bool)`
-
-GetPeriodOk returns a tuple with the Period field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPeriod
-
-`func (o *DriveUsageOut) SetPeriod(v UsagePeriodOut)`
-
-SetPeriod sets Period field to given value.
-
-
-### GetRetrievalQueries
-
-`func (o *DriveUsageOut) GetRetrievalQueries() UsageCounterOut`
-
-GetRetrievalQueries returns the RetrievalQueries field if non-nil, zero value otherwise.
-
-### GetRetrievalQueriesOk
-
-`func (o *DriveUsageOut) GetRetrievalQueriesOk() (*UsageCounterOut, bool)`
-
-GetRetrievalQueriesOk returns a tuple with the RetrievalQueries field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRetrievalQueries
-
-`func (o *DriveUsageOut) SetRetrievalQueries(v UsageCounterOut)`
-
-SetRetrievalQueries sets RetrievalQueries field to given value.
-
-
-### GetStorage
-
-`func (o *DriveUsageOut) GetStorage() UsageCounterOut`
-
-GetStorage returns the Storage field if non-nil, zero value otherwise.
-
-### GetStorageOk
-
-`func (o *DriveUsageOut) GetStorageOk() (*UsageCounterOut, bool)`
-
-GetStorageOk returns a tuple with the Storage field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetStorage
-
-`func (o *DriveUsageOut) SetStorage(v UsageCounterOut)`
-
-SetStorage sets Storage field to given value.
-
-
-### GetStorageBreakdown
-
-`func (o *DriveUsageOut) GetStorageBreakdown() StorageBreakdownOut`
-
-GetStorageBreakdown returns the StorageBreakdown field if non-nil, zero value otherwise.
-
-### GetStorageBreakdownOk
-
-`func (o *DriveUsageOut) GetStorageBreakdownOk() (*StorageBreakdownOut, bool)`
-
-GetStorageBreakdownOk returns a tuple with the StorageBreakdown field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetStorageBreakdown
-
-`func (o *DriveUsageOut) SetStorageBreakdown(v StorageBreakdownOut)`
-
-SetStorageBreakdown sets StorageBreakdown field to given value.
-
-### HasStorageBreakdown
-
-`func (o *DriveUsageOut) HasStorageBreakdown() bool`
-
-HasStorageBreakdown returns a boolean if a field has been set.
-
-### SetStorageBreakdownNil
-
-`func (o *DriveUsageOut) SetStorageBreakdownNil(b bool)`
-
- SetStorageBreakdownNil sets the value for StorageBreakdown to be an explicit nil
-
-### UnsetStorageBreakdown
-`func (o *DriveUsageOut) UnsetStorageBreakdown()`
-
-UnsetStorageBreakdown ensures that no value is present for StorageBreakdown, not even an explicit nil
-### GetTokensThisMonth
-
-`func (o *DriveUsageOut) GetTokensThisMonth() TokenUsageOut`
-
-GetTokensThisMonth returns the TokensThisMonth field if non-nil, zero value otherwise.
-
-### GetTokensThisMonthOk
-
-`func (o *DriveUsageOut) GetTokensThisMonthOk() (*TokenUsageOut, bool)`
-
-GetTokensThisMonthOk returns a tuple with the TokensThisMonth field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetTokensThisMonth
-
-`func (o *DriveUsageOut) SetTokensThisMonth(v TokenUsageOut)`
-
-SetTokensThisMonth sets TokensThisMonth field to given value.
-
-
-### GetVersionRetention
-
-`func (o *DriveUsageOut) GetVersionRetention() VersionRetentionOut`
-
-GetVersionRetention returns the VersionRetention field if non-nil, zero value otherwise.
-
-### GetVersionRetentionOk
-
-`func (o *DriveUsageOut) GetVersionRetentionOk() (*VersionRetentionOut, bool)`
-
-GetVersionRetentionOk returns a tuple with the VersionRetention field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetVersionRetention
-
-`func (o *DriveUsageOut) SetVersionRetention(v VersionRetentionOut)`
-
-SetVersionRetention sets VersionRetention field to given value.
-
-
-### GetWritesThisHour
-
-`func (o *DriveUsageOut) GetWritesThisHour() HourlyUsageCounterOut`
-
-GetWritesThisHour returns the WritesThisHour field if non-nil, zero value otherwise.
-
-### GetWritesThisHourOk
-
-`func (o *DriveUsageOut) GetWritesThisHourOk() (*HourlyUsageCounterOut, bool)`
-
-GetWritesThisHourOk returns a tuple with the WritesThisHour field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetWritesThisHour
-
-`func (o *DriveUsageOut) SetWritesThisHour(v HourlyUsageCounterOut)`
-
-SetWritesThisHour sets WritesThisHour field to given value.
+SetStorageBytes sets StorageBytes field to given value.
diff --git a/sdk/go/docs/DrivesAPI.md b/sdk/go/docs/DrivesAPI.md
index 3ddf78b..cd60786 100644
--- a/sdk/go/docs/DrivesAPI.md
+++ b/sdk/go/docs/DrivesAPI.md
@@ -4,21 +4,21 @@ All URIs are relative to *https://api.agentdrive.run*
Method | HTTP request | Description
------------- | ------------- | -------------
-[**CreateDriveKeyRouteV0DrivesDriveIdKeysPost**](DrivesAPI.md#CreateDriveKeyRouteV0DrivesDriveIdKeysPost) | **Post** /v0/drives/{drive_id}/keys | Create a drive API key
-[**CreateDriveRouteV0DrivesPost**](DrivesAPI.md#CreateDriveRouteV0DrivesPost) | **Post** /v0/drives | Create a drive in your active space
-[**ListDriveKeysRouteV0DrivesDriveIdKeysGet**](DrivesAPI.md#ListDriveKeysRouteV0DrivesDriveIdKeysGet) | **Get** /v0/drives/{drive_id}/keys | List a drive's API keys
-[**ListDrivesRouteV0DrivesGet**](DrivesAPI.md#ListDrivesRouteV0DrivesGet) | **Get** /v0/drives | List the drives you can see
-[**RenameDriveRouteV0DrivesDriveIdPatch**](DrivesAPI.md#RenameDriveRouteV0DrivesDriveIdPatch) | **Patch** /v0/drives/{drive_id} | Rename a drive you own
-[**RevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePost**](DrivesAPI.md#RevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePost) | **Post** /v0/drives/{drive_id}/keys/{key_id}/revoke | Revoke a drive API key
-[**RotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePost**](DrivesAPI.md#RotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePost) | **Post** /v0/drives/{drive_id}/keys/{key_id}/rotate | Rotate one API key
+[**DrivesCreate**](DrivesAPI.md#DrivesCreate) | **Post** /v0/drives | Create Drive
+[**DrivesDelete**](DrivesAPI.md#DrivesDelete) | **Delete** /v0/drives/{drive_id} | Delete Drive
+[**DrivesList**](DrivesAPI.md#DrivesList) | **Get** /v0/drives | List Drives
+[**DrivesRead**](DrivesAPI.md#DrivesRead) | **Get** /v0/drives/{drive_id} | Read Drive
+[**DrivesRestore**](DrivesAPI.md#DrivesRestore) | **Post** /v0/drives/{drive_id}/restore | Restore Drive
+[**DrivesUpdate**](DrivesAPI.md#DrivesUpdate) | **Patch** /v0/drives/{drive_id} | Update Drive
+[**DrivesUsage**](DrivesAPI.md#DrivesUsage) | **Get** /v0/drives/{drive_id}/usage | Drive Usage
-## CreateDriveKeyRouteV0DrivesDriveIdKeysPost
+## DrivesCreate
-> DriveApiKeyCreateOut CreateDriveKeyRouteV0DrivesDriveIdKeysPost(ctx, driveId).DriveApiKeyCreateIn(driveApiKeyCreateIn).Execute()
+> DriveOut DrivesCreate(ctx).IdempotencyKey(idempotencyKey).DriveCreateIn(driveCreateIn).Authorization(authorization).Execute()
-Create a drive API key
+Create Drive
@@ -35,46 +35,44 @@ import (
)
func main() {
- driveId := "driveId_example" // string |
- driveApiKeyCreateIn := *openapiclient.NewDriveApiKeyCreateIn("Label_example") // DriveApiKeyCreateIn |
+ idempotencyKey := "idempotencyKey_example" // string |
+ driveCreateIn := *openapiclient.NewDriveCreateIn("Name_example") // DriveCreateIn |
+ authorization := "authorization_example" // string | (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DrivesAPI.CreateDriveKeyRouteV0DrivesDriveIdKeysPost(context.Background(), driveId).DriveApiKeyCreateIn(driveApiKeyCreateIn).Execute()
+ resp, r, err := apiClient.DrivesAPI.DrivesCreate(context.Background()).IdempotencyKey(idempotencyKey).DriveCreateIn(driveCreateIn).Authorization(authorization).Execute()
if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DrivesAPI.CreateDriveKeyRouteV0DrivesDriveIdKeysPost``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Error when calling `DrivesAPI.DrivesCreate``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
- // response from `CreateDriveKeyRouteV0DrivesDriveIdKeysPost`: DriveApiKeyCreateOut
- fmt.Fprintf(os.Stdout, "Response from `DrivesAPI.CreateDriveKeyRouteV0DrivesDriveIdKeysPost`: %v\n", resp)
+ // response from `DrivesCreate`: DriveOut
+ fmt.Fprintf(os.Stdout, "Response from `DrivesAPI.DrivesCreate`: %v\n", resp)
}
```
### Path Parameters
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**driveId** | **string** | |
### Other Parameters
-Other parameters are passed through a pointer to a apiCreateDriveKeyRouteV0DrivesDriveIdKeysPostRequest struct via the builder pattern
+Other parameters are passed through a pointer to a apiDrivesCreateRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-
- **driveApiKeyCreateIn** | [**DriveApiKeyCreateIn**](DriveApiKeyCreateIn.md) | |
+ **idempotencyKey** | **string** | |
+ **driveCreateIn** | [**DriveCreateIn**](DriveCreateIn.md) | |
+ **authorization** | **string** | |
### Return type
-[**DriveApiKeyCreateOut**](DriveApiKeyCreateOut.md)
+[**DriveOut**](DriveOut.md)
### Authorization
-[BearerAuth](../README.md#BearerAuth)
+[bearerAuth](../README.md#bearerAuth)
### HTTP request headers
@@ -86,11 +84,11 @@ Name | Type | Description | Notes
[[Back to README]](../README.md)
-## CreateDriveRouteV0DrivesPost
+## DrivesDelete
-> DriveCreateOut CreateDriveRouteV0DrivesPost(ctx).DriveCreateIn(driveCreateIn).Execute()
+> DriveOut DrivesDelete(ctx, driveId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Authorization(authorization).Execute()
-Create a drive in your active space
+Delete Drive
@@ -107,44 +105,54 @@ import (
)
func main() {
- driveCreateIn := *openapiclient.NewDriveCreateIn("Name_example") // DriveCreateIn |
+ driveId := "driveId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ ifMatch := "ifMatch_example" // string |
+ authorization := "authorization_example" // string | (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DrivesAPI.CreateDriveRouteV0DrivesPost(context.Background()).DriveCreateIn(driveCreateIn).Execute()
+ resp, r, err := apiClient.DrivesAPI.DrivesDelete(context.Background(), driveId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Authorization(authorization).Execute()
if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DrivesAPI.CreateDriveRouteV0DrivesPost``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Error when calling `DrivesAPI.DrivesDelete``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
- // response from `CreateDriveRouteV0DrivesPost`: DriveCreateOut
- fmt.Fprintf(os.Stdout, "Response from `DrivesAPI.CreateDriveRouteV0DrivesPost`: %v\n", resp)
+ // response from `DrivesDelete`: DriveOut
+ fmt.Fprintf(os.Stdout, "Response from `DrivesAPI.DrivesDelete`: %v\n", resp)
}
```
### Path Parameters
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
### Other Parameters
-Other parameters are passed through a pointer to a apiCreateDriveRouteV0DrivesPostRequest struct via the builder pattern
+Other parameters are passed through a pointer to a apiDrivesDeleteRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **driveCreateIn** | [**DriveCreateIn**](DriveCreateIn.md) | |
+
+ **idempotencyKey** | **string** | |
+ **ifMatch** | **string** | |
+ **authorization** | **string** | |
### Return type
-[**DriveCreateOut**](DriveCreateOut.md)
+[**DriveOut**](DriveOut.md)
### Authorization
-[BearerAuth](../README.md#BearerAuth)
+[bearerAuth](../README.md#bearerAuth)
### HTTP request headers
-- **Content-Type**: application/json
+- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
@@ -152,11 +160,11 @@ Name | Type | Description | Notes
[[Back to README]](../README.md)
-## ListDriveKeysRouteV0DrivesDriveIdKeysGet
+## DrivesList
-> DriveApiKeyListOut ListDriveKeysRouteV0DrivesDriveIdKeysGet(ctx, driveId).Cursor(cursor).Limit(limit).Execute()
+> DriveListOut DrivesList(ctx).Lifecycle(lifecycle).Limit(limit).Cursor(cursor).Authorization(authorization).Execute()
-List a drive's API keys
+List Drives
@@ -173,48 +181,46 @@ import (
)
func main() {
- driveId := "driveId_example" // string |
- cursor := "cursor_example" // string | (optional)
+ lifecycle := "lifecycle_example" // string | (optional) (default to "active")
limit := int32(56) // int32 | (optional)
+ cursor := "cursor_example" // string | (optional)
+ authorization := "authorization_example" // string | (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DrivesAPI.ListDriveKeysRouteV0DrivesDriveIdKeysGet(context.Background(), driveId).Cursor(cursor).Limit(limit).Execute()
+ resp, r, err := apiClient.DrivesAPI.DrivesList(context.Background()).Lifecycle(lifecycle).Limit(limit).Cursor(cursor).Authorization(authorization).Execute()
if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DrivesAPI.ListDriveKeysRouteV0DrivesDriveIdKeysGet``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Error when calling `DrivesAPI.DrivesList``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
- // response from `ListDriveKeysRouteV0DrivesDriveIdKeysGet`: DriveApiKeyListOut
- fmt.Fprintf(os.Stdout, "Response from `DrivesAPI.ListDriveKeysRouteV0DrivesDriveIdKeysGet`: %v\n", resp)
+ // response from `DrivesList`: DriveListOut
+ fmt.Fprintf(os.Stdout, "Response from `DrivesAPI.DrivesList`: %v\n", resp)
}
```
### Path Parameters
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**driveId** | **string** | |
### Other Parameters
-Other parameters are passed through a pointer to a apiListDriveKeysRouteV0DrivesDriveIdKeysGetRequest struct via the builder pattern
+Other parameters are passed through a pointer to a apiDrivesListRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-
- **cursor** | **string** | |
+ **lifecycle** | **string** | | [default to "active"]
**limit** | **int32** | |
+ **cursor** | **string** | |
+ **authorization** | **string** | |
### Return type
-[**DriveApiKeyListOut**](DriveApiKeyListOut.md)
+[**DriveListOut**](DriveListOut.md)
### Authorization
-[BearerAuth](../README.md#BearerAuth)
+[bearerAuth](../README.md#bearerAuth)
### HTTP request headers
@@ -226,11 +232,11 @@ Name | Type | Description | Notes
[[Back to README]](../README.md)
-## ListDrivesRouteV0DrivesGet
+## DrivesRead
-> DriveList ListDrivesRouteV0DrivesGet(ctx).Cursor(cursor).Limit(limit).Execute()
+> DriveOut DrivesRead(ctx, driveId).IfNoneMatch(ifNoneMatch).Authorization(authorization).Execute()
-List the drives you can see
+Read Drive
@@ -247,42 +253,48 @@ import (
)
func main() {
- cursor := "cursor_example" // string | (optional)
- limit := int32(56) // int32 | (optional)
+ driveId := "driveId_example" // string |
+ ifNoneMatch := "ifNoneMatch_example" // string | (optional)
+ authorization := "authorization_example" // string | (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DrivesAPI.ListDrivesRouteV0DrivesGet(context.Background()).Cursor(cursor).Limit(limit).Execute()
+ resp, r, err := apiClient.DrivesAPI.DrivesRead(context.Background(), driveId).IfNoneMatch(ifNoneMatch).Authorization(authorization).Execute()
if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DrivesAPI.ListDrivesRouteV0DrivesGet``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Error when calling `DrivesAPI.DrivesRead``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
- // response from `ListDrivesRouteV0DrivesGet`: DriveList
- fmt.Fprintf(os.Stdout, "Response from `DrivesAPI.ListDrivesRouteV0DrivesGet`: %v\n", resp)
+ // response from `DrivesRead`: DriveOut
+ fmt.Fprintf(os.Stdout, "Response from `DrivesAPI.DrivesRead`: %v\n", resp)
}
```
### Path Parameters
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
### Other Parameters
-Other parameters are passed through a pointer to a apiListDrivesRouteV0DrivesGetRequest struct via the builder pattern
+Other parameters are passed through a pointer to a apiDrivesReadRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **cursor** | **string** | |
- **limit** | **int32** | |
+
+ **ifNoneMatch** | **string** | |
+ **authorization** | **string** | |
### Return type
-[**DriveList**](DriveList.md)
+[**DriveOut**](DriveOut.md)
### Authorization
-[BearerAuth](../README.md#BearerAuth)
+[bearerAuth](../README.md#bearerAuth)
### HTTP request headers
@@ -294,11 +306,11 @@ Name | Type | Description | Notes
[[Back to README]](../README.md)
-## RenameDriveRouteV0DrivesDriveIdPatch
+## DrivesRestore
-> DriveOut RenameDriveRouteV0DrivesDriveIdPatch(ctx, driveId).DriveRenameIn(driveRenameIn).Execute()
+> DriveOut DrivesRestore(ctx, driveId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Authorization(authorization).Execute()
-Rename a drive you own
+Restore Drive
@@ -316,17 +328,19 @@ import (
func main() {
driveId := "driveId_example" // string |
- driveRenameIn := *openapiclient.NewDriveRenameIn("Name_example") // DriveRenameIn |
+ idempotencyKey := "idempotencyKey_example" // string |
+ ifMatch := "ifMatch_example" // string |
+ authorization := "authorization_example" // string | (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DrivesAPI.RenameDriveRouteV0DrivesDriveIdPatch(context.Background(), driveId).DriveRenameIn(driveRenameIn).Execute()
+ resp, r, err := apiClient.DrivesAPI.DrivesRestore(context.Background(), driveId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Authorization(authorization).Execute()
if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DrivesAPI.RenameDriveRouteV0DrivesDriveIdPatch``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Error when calling `DrivesAPI.DrivesRestore``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
- // response from `RenameDriveRouteV0DrivesDriveIdPatch`: DriveOut
- fmt.Fprintf(os.Stdout, "Response from `DrivesAPI.RenameDriveRouteV0DrivesDriveIdPatch`: %v\n", resp)
+ // response from `DrivesRestore`: DriveOut
+ fmt.Fprintf(os.Stdout, "Response from `DrivesAPI.DrivesRestore`: %v\n", resp)
}
```
@@ -340,13 +354,15 @@ Name | Type | Description | Notes
### Other Parameters
-Other parameters are passed through a pointer to a apiRenameDriveRouteV0DrivesDriveIdPatchRequest struct via the builder pattern
+Other parameters are passed through a pointer to a apiDrivesRestoreRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **driveRenameIn** | [**DriveRenameIn**](DriveRenameIn.md) | |
+ **idempotencyKey** | **string** | |
+ **ifMatch** | **string** | |
+ **authorization** | **string** | |
### Return type
@@ -354,11 +370,11 @@ Name | Type | Description | Notes
### Authorization
-[BearerAuth](../README.md#BearerAuth)
+[bearerAuth](../README.md#bearerAuth)
### HTTP request headers
-- **Content-Type**: application/json
+- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
@@ -366,11 +382,11 @@ Name | Type | Description | Notes
[[Back to README]](../README.md)
-## RevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePost
+## DrivesUpdate
-> RevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePost(ctx, driveId, keyId).Execute()
+> DriveOut DrivesUpdate(ctx, driveId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).DriveUpdateIn(driveUpdateIn).Authorization(authorization).Execute()
-Revoke a drive API key
+Update Drive
@@ -388,15 +404,20 @@ import (
func main() {
driveId := "driveId_example" // string |
- keyId := "keyId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ ifMatch := "ifMatch_example" // string |
+ driveUpdateIn := *openapiclient.NewDriveUpdateIn() // DriveUpdateIn |
+ authorization := "authorization_example" // string | (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
- r, err := apiClient.DrivesAPI.RevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePost(context.Background(), driveId, keyId).Execute()
+ resp, r, err := apiClient.DrivesAPI.DrivesUpdate(context.Background(), driveId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).DriveUpdateIn(driveUpdateIn).Authorization(authorization).Execute()
if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DrivesAPI.RevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePost``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Error when calling `DrivesAPI.DrivesUpdate``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
+ // response from `DrivesUpdate`: DriveOut
+ fmt.Fprintf(os.Stdout, "Response from `DrivesAPI.DrivesUpdate`: %v\n", resp)
}
```
@@ -407,29 +428,31 @@ Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**driveId** | **string** | |
-**keyId** | **string** | |
### Other Parameters
-Other parameters are passed through a pointer to a apiRevokeDriveKeyRouteV0DrivesDriveIdKeysKeyIdRevokePostRequest struct via the builder pattern
+Other parameters are passed through a pointer to a apiDrivesUpdateRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-
+ **idempotencyKey** | **string** | |
+ **ifMatch** | **string** | |
+ **driveUpdateIn** | [**DriveUpdateIn**](DriveUpdateIn.md) | |
+ **authorization** | **string** | |
### Return type
- (empty response body)
+[**DriveOut**](DriveOut.md)
### Authorization
-[BearerAuth](../README.md#BearerAuth)
+[bearerAuth](../README.md#bearerAuth)
### HTTP request headers
-- **Content-Type**: Not defined
+- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
@@ -437,11 +460,11 @@ Name | Type | Description | Notes
[[Back to README]](../README.md)
-## RotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePost
+## DrivesUsage
-> DriveApiKeyCreateOut RotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePost(ctx, driveId, keyId).Execute()
+> DriveUsageOut DrivesUsage(ctx, driveId).Authorization(authorization).Execute()
-Rotate one API key
+Drive Usage
@@ -459,17 +482,17 @@ import (
func main() {
driveId := "driveId_example" // string |
- keyId := "keyId_example" // string |
+ authorization := "authorization_example" // string | (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.DrivesAPI.RotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePost(context.Background(), driveId, keyId).Execute()
+ resp, r, err := apiClient.DrivesAPI.DrivesUsage(context.Background(), driveId).Authorization(authorization).Execute()
if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `DrivesAPI.RotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePost``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Error when calling `DrivesAPI.DrivesUsage``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
- // response from `RotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePost`: DriveApiKeyCreateOut
- fmt.Fprintf(os.Stdout, "Response from `DrivesAPI.RotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePost`: %v\n", resp)
+ // response from `DrivesUsage`: DriveUsageOut
+ fmt.Fprintf(os.Stdout, "Response from `DrivesAPI.DrivesUsage`: %v\n", resp)
}
```
@@ -480,25 +503,24 @@ Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**driveId** | **string** | |
-**keyId** | **string** | |
### Other Parameters
-Other parameters are passed through a pointer to a apiRotateOneKeyRouteV0DrivesDriveIdKeysKeyIdRotatePostRequest struct via the builder pattern
+Other parameters are passed through a pointer to a apiDrivesUsageRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-
+ **authorization** | **string** | |
### Return type
-[**DriveApiKeyCreateOut**](DriveApiKeyCreateOut.md)
+[**DriveUsageOut**](DriveUsageOut.md)
### Authorization
-[BearerAuth](../README.md#BearerAuth)
+[bearerAuth](../README.md#bearerAuth)
### HTTP request headers
diff --git a/sdk/go/docs/DrivesCreate400Response.md b/sdk/go/docs/DrivesCreate400Response.md
new file mode 100644
index 0000000..c8839f0
--- /dev/null
+++ b/sdk/go/docs/DrivesCreate400Response.md
@@ -0,0 +1,49 @@
+# DrivesCreate400Response
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Error** | [**DrivesCreate400ResponseError**](DrivesCreate400ResponseError.md) | |
+
+## Methods
+
+### NewDrivesCreate400Response
+
+`func NewDrivesCreate400Response(error_ DrivesCreate400ResponseError, ) *DrivesCreate400Response`
+
+NewDrivesCreate400Response instantiates a new DrivesCreate400Response object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewDrivesCreate400ResponseWithDefaults
+
+`func NewDrivesCreate400ResponseWithDefaults() *DrivesCreate400Response`
+
+NewDrivesCreate400ResponseWithDefaults instantiates a new DrivesCreate400Response object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetError
+
+`func (o *DrivesCreate400Response) GetError() DrivesCreate400ResponseError`
+
+GetError returns the Error field if non-nil, zero value otherwise.
+
+### GetErrorOk
+
+`func (o *DrivesCreate400Response) GetErrorOk() (*DrivesCreate400ResponseError, bool)`
+
+GetErrorOk returns a tuple with the Error field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetError
+
+`func (o *DrivesCreate400Response) SetError(v DrivesCreate400ResponseError)`
+
+SetError sets Error field to given value.
+
+
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DrivesCreate400ResponseError.md b/sdk/go/docs/DrivesCreate400ResponseError.md
new file mode 100644
index 0000000..f8a847d
--- /dev/null
+++ b/sdk/go/docs/DrivesCreate400ResponseError.md
@@ -0,0 +1,96 @@
+# DrivesCreate400ResponseError
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Code** | **string** | Stable machine-readable error code (see the error-catalog). |
+**Details** | Pointer to **map[string]interface{}** | Error-code-specific context (optional). | [optional]
+**Message** | **string** | |
+
+## Methods
+
+### NewDrivesCreate400ResponseError
+
+`func NewDrivesCreate400ResponseError(code string, message string, ) *DrivesCreate400ResponseError`
+
+NewDrivesCreate400ResponseError instantiates a new DrivesCreate400ResponseError object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewDrivesCreate400ResponseErrorWithDefaults
+
+`func NewDrivesCreate400ResponseErrorWithDefaults() *DrivesCreate400ResponseError`
+
+NewDrivesCreate400ResponseErrorWithDefaults instantiates a new DrivesCreate400ResponseError object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetCode
+
+`func (o *DrivesCreate400ResponseError) GetCode() string`
+
+GetCode returns the Code field if non-nil, zero value otherwise.
+
+### GetCodeOk
+
+`func (o *DrivesCreate400ResponseError) GetCodeOk() (*string, bool)`
+
+GetCodeOk returns a tuple with the Code field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetCode
+
+`func (o *DrivesCreate400ResponseError) SetCode(v string)`
+
+SetCode sets Code field to given value.
+
+
+### GetDetails
+
+`func (o *DrivesCreate400ResponseError) GetDetails() map[string]interface{}`
+
+GetDetails returns the Details field if non-nil, zero value otherwise.
+
+### GetDetailsOk
+
+`func (o *DrivesCreate400ResponseError) GetDetailsOk() (*map[string]interface{}, bool)`
+
+GetDetailsOk returns a tuple with the Details field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetDetails
+
+`func (o *DrivesCreate400ResponseError) SetDetails(v map[string]interface{})`
+
+SetDetails sets Details field to given value.
+
+### HasDetails
+
+`func (o *DrivesCreate400ResponseError) HasDetails() bool`
+
+HasDetails returns a boolean if a field has been set.
+
+### GetMessage
+
+`func (o *DrivesCreate400ResponseError) GetMessage() string`
+
+GetMessage returns the Message field if non-nil, zero value otherwise.
+
+### GetMessageOk
+
+`func (o *DrivesCreate400ResponseError) GetMessageOk() (*string, bool)`
+
+GetMessageOk returns a tuple with the Message field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetMessage
+
+`func (o *DrivesCreate400ResponseError) SetMessage(v string)`
+
+SetMessage sets Message field to given value.
+
+
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DrivesList400Response.md b/sdk/go/docs/DrivesList400Response.md
new file mode 100644
index 0000000..a6add6c
--- /dev/null
+++ b/sdk/go/docs/DrivesList400Response.md
@@ -0,0 +1,49 @@
+# DrivesList400Response
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Error** | [**DrivesList400ResponseError**](DrivesList400ResponseError.md) | |
+
+## Methods
+
+### NewDrivesList400Response
+
+`func NewDrivesList400Response(error_ DrivesList400ResponseError, ) *DrivesList400Response`
+
+NewDrivesList400Response instantiates a new DrivesList400Response object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewDrivesList400ResponseWithDefaults
+
+`func NewDrivesList400ResponseWithDefaults() *DrivesList400Response`
+
+NewDrivesList400ResponseWithDefaults instantiates a new DrivesList400Response object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetError
+
+`func (o *DrivesList400Response) GetError() DrivesList400ResponseError`
+
+GetError returns the Error field if non-nil, zero value otherwise.
+
+### GetErrorOk
+
+`func (o *DrivesList400Response) GetErrorOk() (*DrivesList400ResponseError, bool)`
+
+GetErrorOk returns a tuple with the Error field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetError
+
+`func (o *DrivesList400Response) SetError(v DrivesList400ResponseError)`
+
+SetError sets Error field to given value.
+
+
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/DrivesList400ResponseError.md b/sdk/go/docs/DrivesList400ResponseError.md
new file mode 100644
index 0000000..08a2724
--- /dev/null
+++ b/sdk/go/docs/DrivesList400ResponseError.md
@@ -0,0 +1,106 @@
+# DrivesList400ResponseError
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Code** | **string** | Stable machine-readable error code (see the error-catalog). |
+**Details** | Pointer to **map[string]interface{}** | Error-code-specific context (optional). | [optional]
+**Message** | **NullableString** | |
+
+## Methods
+
+### NewDrivesList400ResponseError
+
+`func NewDrivesList400ResponseError(code string, message NullableString, ) *DrivesList400ResponseError`
+
+NewDrivesList400ResponseError instantiates a new DrivesList400ResponseError object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewDrivesList400ResponseErrorWithDefaults
+
+`func NewDrivesList400ResponseErrorWithDefaults() *DrivesList400ResponseError`
+
+NewDrivesList400ResponseErrorWithDefaults instantiates a new DrivesList400ResponseError object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetCode
+
+`func (o *DrivesList400ResponseError) GetCode() string`
+
+GetCode returns the Code field if non-nil, zero value otherwise.
+
+### GetCodeOk
+
+`func (o *DrivesList400ResponseError) GetCodeOk() (*string, bool)`
+
+GetCodeOk returns a tuple with the Code field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetCode
+
+`func (o *DrivesList400ResponseError) SetCode(v string)`
+
+SetCode sets Code field to given value.
+
+
+### GetDetails
+
+`func (o *DrivesList400ResponseError) GetDetails() map[string]interface{}`
+
+GetDetails returns the Details field if non-nil, zero value otherwise.
+
+### GetDetailsOk
+
+`func (o *DrivesList400ResponseError) GetDetailsOk() (*map[string]interface{}, bool)`
+
+GetDetailsOk returns a tuple with the Details field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetDetails
+
+`func (o *DrivesList400ResponseError) SetDetails(v map[string]interface{})`
+
+SetDetails sets Details field to given value.
+
+### HasDetails
+
+`func (o *DrivesList400ResponseError) HasDetails() bool`
+
+HasDetails returns a boolean if a field has been set.
+
+### GetMessage
+
+`func (o *DrivesList400ResponseError) GetMessage() string`
+
+GetMessage returns the Message field if non-nil, zero value otherwise.
+
+### GetMessageOk
+
+`func (o *DrivesList400ResponseError) GetMessageOk() (*string, bool)`
+
+GetMessageOk returns a tuple with the Message field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetMessage
+
+`func (o *DrivesList400ResponseError) SetMessage(v string)`
+
+SetMessage sets Message field to given value.
+
+
+### SetMessageNil
+
+`func (o *DrivesList400ResponseError) SetMessageNil(b bool)`
+
+ SetMessageNil sets the value for Message to be an explicit nil
+
+### UnsetMessage
+`func (o *DrivesList400ResponseError) UnsetMessage()`
+
+UnsetMessage ensures that no value is present for Message, not even an explicit nil
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ErrorBody.md b/sdk/go/docs/ErrorBody.md
deleted file mode 100644
index e77b3cb..0000000
--- a/sdk/go/docs/ErrorBody.md
+++ /dev/null
@@ -1,70 +0,0 @@
-# ErrorBody
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Code** | **string** | |
-**Message** | **string** | |
-
-## Methods
-
-### NewErrorBody
-
-`func NewErrorBody(code string, message string, ) *ErrorBody`
-
-NewErrorBody instantiates a new ErrorBody object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewErrorBodyWithDefaults
-
-`func NewErrorBodyWithDefaults() *ErrorBody`
-
-NewErrorBodyWithDefaults instantiates a new ErrorBody object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetCode
-
-`func (o *ErrorBody) GetCode() string`
-
-GetCode returns the Code field if non-nil, zero value otherwise.
-
-### GetCodeOk
-
-`func (o *ErrorBody) GetCodeOk() (*string, bool)`
-
-GetCodeOk returns a tuple with the Code field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCode
-
-`func (o *ErrorBody) SetCode(v string)`
-
-SetCode sets Code field to given value.
-
-
-### GetMessage
-
-`func (o *ErrorBody) GetMessage() string`
-
-GetMessage returns the Message field if non-nil, zero value otherwise.
-
-### GetMessageOk
-
-`func (o *ErrorBody) GetMessageOk() (*string, bool)`
-
-GetMessageOk returns a tuple with the Message field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetMessage
-
-`func (o *ErrorBody) SetMessage(v string)`
-
-SetMessage sets Message field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ErrorDetail.md b/sdk/go/docs/ErrorDetail.md
deleted file mode 100644
index 7a235d9..0000000
--- a/sdk/go/docs/ErrorDetail.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# ErrorDetail
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Error** | [**ErrorBody**](ErrorBody.md) | |
-
-## Methods
-
-### NewErrorDetail
-
-`func NewErrorDetail(error_ ErrorBody, ) *ErrorDetail`
-
-NewErrorDetail instantiates a new ErrorDetail object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewErrorDetailWithDefaults
-
-`func NewErrorDetailWithDefaults() *ErrorDetail`
-
-NewErrorDetailWithDefaults instantiates a new ErrorDetail object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetError
-
-`func (o *ErrorDetail) GetError() ErrorBody`
-
-GetError returns the Error field if non-nil, zero value otherwise.
-
-### GetErrorOk
-
-`func (o *ErrorDetail) GetErrorOk() (*ErrorBody, bool)`
-
-GetErrorOk returns a tuple with the Error field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetError
-
-`func (o *ErrorDetail) SetError(v ErrorBody)`
-
-SetError sets Error field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ErrorResponse.md b/sdk/go/docs/ErrorResponse.md
index fc4b3c1..4a70c0d 100644
--- a/sdk/go/docs/ErrorResponse.md
+++ b/sdk/go/docs/ErrorResponse.md
@@ -4,13 +4,13 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**Detail** | [**ErrorDetail**](ErrorDetail.md) | |
+**Error** | [**DrivesCreate400ResponseError**](DrivesCreate400ResponseError.md) | |
## Methods
### NewErrorResponse
-`func NewErrorResponse(detail ErrorDetail, ) *ErrorResponse`
+`func NewErrorResponse(error_ DrivesCreate400ResponseError, ) *ErrorResponse`
NewErrorResponse instantiates a new ErrorResponse object
This constructor will assign default values to properties that have it defined,
@@ -25,24 +25,24 @@ NewErrorResponseWithDefaults instantiates a new ErrorResponse object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
-### GetDetail
+### GetError
-`func (o *ErrorResponse) GetDetail() ErrorDetail`
+`func (o *ErrorResponse) GetError() DrivesCreate400ResponseError`
-GetDetail returns the Detail field if non-nil, zero value otherwise.
+GetError returns the Error field if non-nil, zero value otherwise.
-### GetDetailOk
+### GetErrorOk
-`func (o *ErrorResponse) GetDetailOk() (*ErrorDetail, bool)`
+`func (o *ErrorResponse) GetErrorOk() (*DrivesCreate400ResponseError, bool)`
-GetDetailOk returns a tuple with the Detail field if it's non-nil, zero value otherwise
+GetErrorOk returns a tuple with the Error field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetDetail
+### SetError
-`func (o *ErrorResponse) SetDetail(v ErrorDetail)`
+`func (o *ErrorResponse) SetError(v DrivesCreate400ResponseError)`
-SetDetail sets Detail field to given value.
+SetError sets Error field to given value.
diff --git a/sdk/go/docs/EventOut.md b/sdk/go/docs/EventOut.md
deleted file mode 100644
index bca0170..0000000
--- a/sdk/go/docs/EventOut.md
+++ /dev/null
@@ -1,210 +0,0 @@
-# EventOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Action** | **string** | |
-**ActorName** | Pointer to **NullableString** | | [optional]
-**ArtId** | Pointer to **NullableString** | | [optional]
-**CreatedAt** | **time.Time** | |
-**DriveId** | **string** | |
-**Id** | **string** | |
-**Metadata** | Pointer to **map[string]interface{}** | | [optional]
-
-## Methods
-
-### NewEventOut
-
-`func NewEventOut(action string, createdAt time.Time, driveId string, id string, ) *EventOut`
-
-NewEventOut instantiates a new EventOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewEventOutWithDefaults
-
-`func NewEventOutWithDefaults() *EventOut`
-
-NewEventOutWithDefaults instantiates a new EventOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetAction
-
-`func (o *EventOut) GetAction() string`
-
-GetAction returns the Action field if non-nil, zero value otherwise.
-
-### GetActionOk
-
-`func (o *EventOut) GetActionOk() (*string, bool)`
-
-GetActionOk returns a tuple with the Action field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetAction
-
-`func (o *EventOut) SetAction(v string)`
-
-SetAction sets Action field to given value.
-
-
-### GetActorName
-
-`func (o *EventOut) GetActorName() string`
-
-GetActorName returns the ActorName field if non-nil, zero value otherwise.
-
-### GetActorNameOk
-
-`func (o *EventOut) GetActorNameOk() (*string, bool)`
-
-GetActorNameOk returns a tuple with the ActorName field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetActorName
-
-`func (o *EventOut) SetActorName(v string)`
-
-SetActorName sets ActorName field to given value.
-
-### HasActorName
-
-`func (o *EventOut) HasActorName() bool`
-
-HasActorName returns a boolean if a field has been set.
-
-### SetActorNameNil
-
-`func (o *EventOut) SetActorNameNil(b bool)`
-
- SetActorNameNil sets the value for ActorName to be an explicit nil
-
-### UnsetActorName
-`func (o *EventOut) UnsetActorName()`
-
-UnsetActorName ensures that no value is present for ActorName, not even an explicit nil
-### GetArtId
-
-`func (o *EventOut) GetArtId() string`
-
-GetArtId returns the ArtId field if non-nil, zero value otherwise.
-
-### GetArtIdOk
-
-`func (o *EventOut) GetArtIdOk() (*string, bool)`
-
-GetArtIdOk returns a tuple with the ArtId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetArtId
-
-`func (o *EventOut) SetArtId(v string)`
-
-SetArtId sets ArtId field to given value.
-
-### HasArtId
-
-`func (o *EventOut) HasArtId() bool`
-
-HasArtId returns a boolean if a field has been set.
-
-### SetArtIdNil
-
-`func (o *EventOut) SetArtIdNil(b bool)`
-
- SetArtIdNil sets the value for ArtId to be an explicit nil
-
-### UnsetArtId
-`func (o *EventOut) UnsetArtId()`
-
-UnsetArtId ensures that no value is present for ArtId, not even an explicit nil
-### GetCreatedAt
-
-`func (o *EventOut) GetCreatedAt() time.Time`
-
-GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
-
-### GetCreatedAtOk
-
-`func (o *EventOut) GetCreatedAtOk() (*time.Time, bool)`
-
-GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCreatedAt
-
-`func (o *EventOut) SetCreatedAt(v time.Time)`
-
-SetCreatedAt sets CreatedAt field to given value.
-
-
-### GetDriveId
-
-`func (o *EventOut) GetDriveId() string`
-
-GetDriveId returns the DriveId field if non-nil, zero value otherwise.
-
-### GetDriveIdOk
-
-`func (o *EventOut) GetDriveIdOk() (*string, bool)`
-
-GetDriveIdOk returns a tuple with the DriveId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDriveId
-
-`func (o *EventOut) SetDriveId(v string)`
-
-SetDriveId sets DriveId field to given value.
-
-
-### GetId
-
-`func (o *EventOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *EventOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *EventOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetMetadata
-
-`func (o *EventOut) GetMetadata() map[string]interface{}`
-
-GetMetadata returns the Metadata field if non-nil, zero value otherwise.
-
-### GetMetadataOk
-
-`func (o *EventOut) GetMetadataOk() (*map[string]interface{}, bool)`
-
-GetMetadataOk returns a tuple with the Metadata field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetMetadata
-
-`func (o *EventOut) SetMetadata(v map[string]interface{})`
-
-SetMetadata sets Metadata field to given value.
-
-### HasMetadata
-
-`func (o *EventOut) HasMetadata() bool`
-
-HasMetadata returns a boolean if a field has been set.
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/EventPage.md b/sdk/go/docs/EventPage.md
deleted file mode 100644
index 9cc525f..0000000
--- a/sdk/go/docs/EventPage.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# EventPage
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Items** | [**[]EventOut**](EventOut.md) | |
-**NextCursor** | Pointer to **NullableString** | | [optional]
-
-## Methods
-
-### NewEventPage
-
-`func NewEventPage(items []EventOut, ) *EventPage`
-
-NewEventPage instantiates a new EventPage object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewEventPageWithDefaults
-
-`func NewEventPageWithDefaults() *EventPage`
-
-NewEventPageWithDefaults instantiates a new EventPage object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetItems
-
-`func (o *EventPage) GetItems() []EventOut`
-
-GetItems returns the Items field if non-nil, zero value otherwise.
-
-### GetItemsOk
-
-`func (o *EventPage) GetItemsOk() (*[]EventOut, bool)`
-
-GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetItems
-
-`func (o *EventPage) SetItems(v []EventOut)`
-
-SetItems sets Items field to given value.
-
-
-### GetNextCursor
-
-`func (o *EventPage) GetNextCursor() string`
-
-GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
-
-### GetNextCursorOk
-
-`func (o *EventPage) GetNextCursorOk() (*string, bool)`
-
-GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetNextCursor
-
-`func (o *EventPage) SetNextCursor(v string)`
-
-SetNextCursor sets NextCursor field to given value.
-
-### HasNextCursor
-
-`func (o *EventPage) HasNextCursor() bool`
-
-HasNextCursor returns a boolean if a field has been set.
-
-### SetNextCursorNil
-
-`func (o *EventPage) SetNextCursorNil(b bool)`
-
- SetNextCursorNil sets the value for NextCursor to be an explicit nil
-
-### UnsetNextCursor
-`func (o *EventPage) UnsetNextCursor()`
-
-UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ExtensionExchangeRequest.md b/sdk/go/docs/ExtensionExchangeRequest.md
deleted file mode 100644
index c95884e..0000000
--- a/sdk/go/docs/ExtensionExchangeRequest.md
+++ /dev/null
@@ -1,70 +0,0 @@
-# ExtensionExchangeRequest
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**ExtId** | **string** | The extension's ID (Chrome Web Store ID or unpacked dev ID). |
-**Ticket** | **string** | The opaque ticket from the /auth/callback handoff. |
-
-## Methods
-
-### NewExtensionExchangeRequest
-
-`func NewExtensionExchangeRequest(extId string, ticket string, ) *ExtensionExchangeRequest`
-
-NewExtensionExchangeRequest instantiates a new ExtensionExchangeRequest object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewExtensionExchangeRequestWithDefaults
-
-`func NewExtensionExchangeRequestWithDefaults() *ExtensionExchangeRequest`
-
-NewExtensionExchangeRequestWithDefaults instantiates a new ExtensionExchangeRequest object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetExtId
-
-`func (o *ExtensionExchangeRequest) GetExtId() string`
-
-GetExtId returns the ExtId field if non-nil, zero value otherwise.
-
-### GetExtIdOk
-
-`func (o *ExtensionExchangeRequest) GetExtIdOk() (*string, bool)`
-
-GetExtIdOk returns a tuple with the ExtId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetExtId
-
-`func (o *ExtensionExchangeRequest) SetExtId(v string)`
-
-SetExtId sets ExtId field to given value.
-
-
-### GetTicket
-
-`func (o *ExtensionExchangeRequest) GetTicket() string`
-
-GetTicket returns the Ticket field if non-nil, zero value otherwise.
-
-### GetTicketOk
-
-`func (o *ExtensionExchangeRequest) GetTicketOk() (*string, bool)`
-
-GetTicketOk returns a tuple with the Ticket field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetTicket
-
-`func (o *ExtensionExchangeRequest) SetTicket(v string)`
-
-SetTicket sets Ticket field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ExtensionExchangeResponse.md b/sdk/go/docs/ExtensionExchangeResponse.md
deleted file mode 100644
index 65b7bb4..0000000
--- a/sdk/go/docs/ExtensionExchangeResponse.md
+++ /dev/null
@@ -1,164 +0,0 @@
-# ExtensionExchangeResponse
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**AccessToken** | **string** | 15-minute access_token (scope=extension). |
-**DriveId** | **string** | The drive these credentials are scoped to. |
-**ExpiresIn** | **int32** | Seconds until access_token expiry. |
-**IdentityAssertion** | **string** | 90-day identity_assertion. Refresh via POST /oauth2/token. |
-**Scope** | Pointer to **string** | | [optional] [default to "extension"]
-**TokenType** | Pointer to **string** | | [optional] [default to "Bearer"]
-
-## Methods
-
-### NewExtensionExchangeResponse
-
-`func NewExtensionExchangeResponse(accessToken string, driveId string, expiresIn int32, identityAssertion string, ) *ExtensionExchangeResponse`
-
-NewExtensionExchangeResponse instantiates a new ExtensionExchangeResponse object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewExtensionExchangeResponseWithDefaults
-
-`func NewExtensionExchangeResponseWithDefaults() *ExtensionExchangeResponse`
-
-NewExtensionExchangeResponseWithDefaults instantiates a new ExtensionExchangeResponse object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetAccessToken
-
-`func (o *ExtensionExchangeResponse) GetAccessToken() string`
-
-GetAccessToken returns the AccessToken field if non-nil, zero value otherwise.
-
-### GetAccessTokenOk
-
-`func (o *ExtensionExchangeResponse) GetAccessTokenOk() (*string, bool)`
-
-GetAccessTokenOk returns a tuple with the AccessToken field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetAccessToken
-
-`func (o *ExtensionExchangeResponse) SetAccessToken(v string)`
-
-SetAccessToken sets AccessToken field to given value.
-
-
-### GetDriveId
-
-`func (o *ExtensionExchangeResponse) GetDriveId() string`
-
-GetDriveId returns the DriveId field if non-nil, zero value otherwise.
-
-### GetDriveIdOk
-
-`func (o *ExtensionExchangeResponse) GetDriveIdOk() (*string, bool)`
-
-GetDriveIdOk returns a tuple with the DriveId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDriveId
-
-`func (o *ExtensionExchangeResponse) SetDriveId(v string)`
-
-SetDriveId sets DriveId field to given value.
-
-
-### GetExpiresIn
-
-`func (o *ExtensionExchangeResponse) GetExpiresIn() int32`
-
-GetExpiresIn returns the ExpiresIn field if non-nil, zero value otherwise.
-
-### GetExpiresInOk
-
-`func (o *ExtensionExchangeResponse) GetExpiresInOk() (*int32, bool)`
-
-GetExpiresInOk returns a tuple with the ExpiresIn field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetExpiresIn
-
-`func (o *ExtensionExchangeResponse) SetExpiresIn(v int32)`
-
-SetExpiresIn sets ExpiresIn field to given value.
-
-
-### GetIdentityAssertion
-
-`func (o *ExtensionExchangeResponse) GetIdentityAssertion() string`
-
-GetIdentityAssertion returns the IdentityAssertion field if non-nil, zero value otherwise.
-
-### GetIdentityAssertionOk
-
-`func (o *ExtensionExchangeResponse) GetIdentityAssertionOk() (*string, bool)`
-
-GetIdentityAssertionOk returns a tuple with the IdentityAssertion field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetIdentityAssertion
-
-`func (o *ExtensionExchangeResponse) SetIdentityAssertion(v string)`
-
-SetIdentityAssertion sets IdentityAssertion field to given value.
-
-
-### GetScope
-
-`func (o *ExtensionExchangeResponse) GetScope() string`
-
-GetScope returns the Scope field if non-nil, zero value otherwise.
-
-### GetScopeOk
-
-`func (o *ExtensionExchangeResponse) GetScopeOk() (*string, bool)`
-
-GetScopeOk returns a tuple with the Scope field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetScope
-
-`func (o *ExtensionExchangeResponse) SetScope(v string)`
-
-SetScope sets Scope field to given value.
-
-### HasScope
-
-`func (o *ExtensionExchangeResponse) HasScope() bool`
-
-HasScope returns a boolean if a field has been set.
-
-### GetTokenType
-
-`func (o *ExtensionExchangeResponse) GetTokenType() string`
-
-GetTokenType returns the TokenType field if non-nil, zero value otherwise.
-
-### GetTokenTypeOk
-
-`func (o *ExtensionExchangeResponse) GetTokenTypeOk() (*string, bool)`
-
-GetTokenTypeOk returns a tuple with the TokenType field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetTokenType
-
-`func (o *ExtensionExchangeResponse) SetTokenType(v string)`
-
-SetTokenType sets TokenType field to given value.
-
-### HasTokenType
-
-`func (o *ExtensionExchangeResponse) HasTokenType() bool`
-
-HasTokenType returns a boolean if a field has been set.
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/FeedbackCreateOut.md b/sdk/go/docs/FeedbackCreateOut.md
deleted file mode 100644
index 8ca0d5e..0000000
--- a/sdk/go/docs/FeedbackCreateOut.md
+++ /dev/null
@@ -1,127 +0,0 @@
-# FeedbackCreateOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Contact** | **bool** | |
-**Id** | **string** | |
-**Note** | Pointer to **NullableString** | | [optional]
-**Status** | **string** | |
-
-## Methods
-
-### NewFeedbackCreateOut
-
-`func NewFeedbackCreateOut(contact bool, id string, status string, ) *FeedbackCreateOut`
-
-NewFeedbackCreateOut instantiates a new FeedbackCreateOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewFeedbackCreateOutWithDefaults
-
-`func NewFeedbackCreateOutWithDefaults() *FeedbackCreateOut`
-
-NewFeedbackCreateOutWithDefaults instantiates a new FeedbackCreateOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetContact
-
-`func (o *FeedbackCreateOut) GetContact() bool`
-
-GetContact returns the Contact field if non-nil, zero value otherwise.
-
-### GetContactOk
-
-`func (o *FeedbackCreateOut) GetContactOk() (*bool, bool)`
-
-GetContactOk returns a tuple with the Contact field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetContact
-
-`func (o *FeedbackCreateOut) SetContact(v bool)`
-
-SetContact sets Contact field to given value.
-
-
-### GetId
-
-`func (o *FeedbackCreateOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *FeedbackCreateOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *FeedbackCreateOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetNote
-
-`func (o *FeedbackCreateOut) GetNote() string`
-
-GetNote returns the Note field if non-nil, zero value otherwise.
-
-### GetNoteOk
-
-`func (o *FeedbackCreateOut) GetNoteOk() (*string, bool)`
-
-GetNoteOk returns a tuple with the Note field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetNote
-
-`func (o *FeedbackCreateOut) SetNote(v string)`
-
-SetNote sets Note field to given value.
-
-### HasNote
-
-`func (o *FeedbackCreateOut) HasNote() bool`
-
-HasNote returns a boolean if a field has been set.
-
-### SetNoteNil
-
-`func (o *FeedbackCreateOut) SetNoteNil(b bool)`
-
- SetNoteNil sets the value for Note to be an explicit nil
-
-### UnsetNote
-`func (o *FeedbackCreateOut) UnsetNote()`
-
-UnsetNote ensures that no value is present for Note, not even an explicit nil
-### GetStatus
-
-`func (o *FeedbackCreateOut) GetStatus() string`
-
-GetStatus returns the Status field if non-nil, zero value otherwise.
-
-### GetStatusOk
-
-`func (o *FeedbackCreateOut) GetStatusOk() (*string, bool)`
-
-GetStatusOk returns a tuple with the Status field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetStatus
-
-`func (o *FeedbackCreateOut) SetStatus(v string)`
-
-SetStatus sets Status field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/FeedbackStatusOut.md b/sdk/go/docs/FeedbackStatusOut.md
deleted file mode 100644
index 08b320d..0000000
--- a/sdk/go/docs/FeedbackStatusOut.md
+++ /dev/null
@@ -1,211 +0,0 @@
-# FeedbackStatusOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Contact** | **bool** | |
-**CreatedAt** | **time.Time** | |
-**DuplicateOf** | Pointer to **NullableString** | | [optional]
-**Id** | **string** | |
-**Kind** | **string** | |
-**Status** | **string** | |
-**StatusChangedAt** | **time.Time** | |
-**Title** | **string** | |
-
-## Methods
-
-### NewFeedbackStatusOut
-
-`func NewFeedbackStatusOut(contact bool, createdAt time.Time, id string, kind string, status string, statusChangedAt time.Time, title string, ) *FeedbackStatusOut`
-
-NewFeedbackStatusOut instantiates a new FeedbackStatusOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewFeedbackStatusOutWithDefaults
-
-`func NewFeedbackStatusOutWithDefaults() *FeedbackStatusOut`
-
-NewFeedbackStatusOutWithDefaults instantiates a new FeedbackStatusOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetContact
-
-`func (o *FeedbackStatusOut) GetContact() bool`
-
-GetContact returns the Contact field if non-nil, zero value otherwise.
-
-### GetContactOk
-
-`func (o *FeedbackStatusOut) GetContactOk() (*bool, bool)`
-
-GetContactOk returns a tuple with the Contact field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetContact
-
-`func (o *FeedbackStatusOut) SetContact(v bool)`
-
-SetContact sets Contact field to given value.
-
-
-### GetCreatedAt
-
-`func (o *FeedbackStatusOut) GetCreatedAt() time.Time`
-
-GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
-
-### GetCreatedAtOk
-
-`func (o *FeedbackStatusOut) GetCreatedAtOk() (*time.Time, bool)`
-
-GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCreatedAt
-
-`func (o *FeedbackStatusOut) SetCreatedAt(v time.Time)`
-
-SetCreatedAt sets CreatedAt field to given value.
-
-
-### GetDuplicateOf
-
-`func (o *FeedbackStatusOut) GetDuplicateOf() string`
-
-GetDuplicateOf returns the DuplicateOf field if non-nil, zero value otherwise.
-
-### GetDuplicateOfOk
-
-`func (o *FeedbackStatusOut) GetDuplicateOfOk() (*string, bool)`
-
-GetDuplicateOfOk returns a tuple with the DuplicateOf field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDuplicateOf
-
-`func (o *FeedbackStatusOut) SetDuplicateOf(v string)`
-
-SetDuplicateOf sets DuplicateOf field to given value.
-
-### HasDuplicateOf
-
-`func (o *FeedbackStatusOut) HasDuplicateOf() bool`
-
-HasDuplicateOf returns a boolean if a field has been set.
-
-### SetDuplicateOfNil
-
-`func (o *FeedbackStatusOut) SetDuplicateOfNil(b bool)`
-
- SetDuplicateOfNil sets the value for DuplicateOf to be an explicit nil
-
-### UnsetDuplicateOf
-`func (o *FeedbackStatusOut) UnsetDuplicateOf()`
-
-UnsetDuplicateOf ensures that no value is present for DuplicateOf, not even an explicit nil
-### GetId
-
-`func (o *FeedbackStatusOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *FeedbackStatusOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *FeedbackStatusOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetKind
-
-`func (o *FeedbackStatusOut) GetKind() string`
-
-GetKind returns the Kind field if non-nil, zero value otherwise.
-
-### GetKindOk
-
-`func (o *FeedbackStatusOut) GetKindOk() (*string, bool)`
-
-GetKindOk returns a tuple with the Kind field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetKind
-
-`func (o *FeedbackStatusOut) SetKind(v string)`
-
-SetKind sets Kind field to given value.
-
-
-### GetStatus
-
-`func (o *FeedbackStatusOut) GetStatus() string`
-
-GetStatus returns the Status field if non-nil, zero value otherwise.
-
-### GetStatusOk
-
-`func (o *FeedbackStatusOut) GetStatusOk() (*string, bool)`
-
-GetStatusOk returns a tuple with the Status field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetStatus
-
-`func (o *FeedbackStatusOut) SetStatus(v string)`
-
-SetStatus sets Status field to given value.
-
-
-### GetStatusChangedAt
-
-`func (o *FeedbackStatusOut) GetStatusChangedAt() time.Time`
-
-GetStatusChangedAt returns the StatusChangedAt field if non-nil, zero value otherwise.
-
-### GetStatusChangedAtOk
-
-`func (o *FeedbackStatusOut) GetStatusChangedAtOk() (*time.Time, bool)`
-
-GetStatusChangedAtOk returns a tuple with the StatusChangedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetStatusChangedAt
-
-`func (o *FeedbackStatusOut) SetStatusChangedAt(v time.Time)`
-
-SetStatusChangedAt sets StatusChangedAt field to given value.
-
-
-### GetTitle
-
-`func (o *FeedbackStatusOut) GetTitle() string`
-
-GetTitle returns the Title field if non-nil, zero value otherwise.
-
-### GetTitleOk
-
-`func (o *FeedbackStatusOut) GetTitleOk() (*string, bool)`
-
-GetTitleOk returns a tuple with the Title field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetTitle
-
-`func (o *FeedbackStatusOut) SetTitle(v string)`
-
-SetTitle sets Title field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/FindHitOut.md b/sdk/go/docs/FindHitOut.md
deleted file mode 100644
index 51b3b84..0000000
--- a/sdk/go/docs/FindHitOut.md
+++ /dev/null
@@ -1,615 +0,0 @@
-# FindHitOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**ArtId** | **string** | |
-**CharEnd** | Pointer to **NullableInt32** | | [optional]
-**CharStart** | Pointer to **NullableInt32** | | [optional]
-**ContentType** | **string** | |
-**DriveId** | **string** | |
-**FileType** | **string** | |
-**Labels** | Pointer to **[]string** | | [optional]
-**Modality** | **string** | |
-**Ord** | **int32** | |
-**PageEnd** | Pointer to **NullableInt32** | | [optional]
-**PageStart** | Pointer to **NullableInt32** | | [optional]
-**Path** | **string** | |
-**RankLexical** | Pointer to **NullableInt32** | | [optional]
-**RankSemantic** | Pointer to **NullableInt32** | | [optional]
-**Score** | **float32** | |
-**Snippet** | **string** | |
-**Text** | **string** | |
-**TimeEndMs** | Pointer to **NullableInt32** | | [optional]
-**TimeStartMs** | Pointer to **NullableInt32** | | [optional]
-**UpdatedAt** | **time.Time** | |
-**Url** | **string** | |
-**VersionNumber** | **int32** | |
-
-## Methods
-
-### NewFindHitOut
-
-`func NewFindHitOut(artId string, contentType string, driveId string, fileType string, modality string, ord int32, path string, score float32, snippet string, text string, updatedAt time.Time, url string, versionNumber int32, ) *FindHitOut`
-
-NewFindHitOut instantiates a new FindHitOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewFindHitOutWithDefaults
-
-`func NewFindHitOutWithDefaults() *FindHitOut`
-
-NewFindHitOutWithDefaults instantiates a new FindHitOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetArtId
-
-`func (o *FindHitOut) GetArtId() string`
-
-GetArtId returns the ArtId field if non-nil, zero value otherwise.
-
-### GetArtIdOk
-
-`func (o *FindHitOut) GetArtIdOk() (*string, bool)`
-
-GetArtIdOk returns a tuple with the ArtId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetArtId
-
-`func (o *FindHitOut) SetArtId(v string)`
-
-SetArtId sets ArtId field to given value.
-
-
-### GetCharEnd
-
-`func (o *FindHitOut) GetCharEnd() int32`
-
-GetCharEnd returns the CharEnd field if non-nil, zero value otherwise.
-
-### GetCharEndOk
-
-`func (o *FindHitOut) GetCharEndOk() (*int32, bool)`
-
-GetCharEndOk returns a tuple with the CharEnd field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCharEnd
-
-`func (o *FindHitOut) SetCharEnd(v int32)`
-
-SetCharEnd sets CharEnd field to given value.
-
-### HasCharEnd
-
-`func (o *FindHitOut) HasCharEnd() bool`
-
-HasCharEnd returns a boolean if a field has been set.
-
-### SetCharEndNil
-
-`func (o *FindHitOut) SetCharEndNil(b bool)`
-
- SetCharEndNil sets the value for CharEnd to be an explicit nil
-
-### UnsetCharEnd
-`func (o *FindHitOut) UnsetCharEnd()`
-
-UnsetCharEnd ensures that no value is present for CharEnd, not even an explicit nil
-### GetCharStart
-
-`func (o *FindHitOut) GetCharStart() int32`
-
-GetCharStart returns the CharStart field if non-nil, zero value otherwise.
-
-### GetCharStartOk
-
-`func (o *FindHitOut) GetCharStartOk() (*int32, bool)`
-
-GetCharStartOk returns a tuple with the CharStart field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCharStart
-
-`func (o *FindHitOut) SetCharStart(v int32)`
-
-SetCharStart sets CharStart field to given value.
-
-### HasCharStart
-
-`func (o *FindHitOut) HasCharStart() bool`
-
-HasCharStart returns a boolean if a field has been set.
-
-### SetCharStartNil
-
-`func (o *FindHitOut) SetCharStartNil(b bool)`
-
- SetCharStartNil sets the value for CharStart to be an explicit nil
-
-### UnsetCharStart
-`func (o *FindHitOut) UnsetCharStart()`
-
-UnsetCharStart ensures that no value is present for CharStart, not even an explicit nil
-### GetContentType
-
-`func (o *FindHitOut) GetContentType() string`
-
-GetContentType returns the ContentType field if non-nil, zero value otherwise.
-
-### GetContentTypeOk
-
-`func (o *FindHitOut) GetContentTypeOk() (*string, bool)`
-
-GetContentTypeOk returns a tuple with the ContentType field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetContentType
-
-`func (o *FindHitOut) SetContentType(v string)`
-
-SetContentType sets ContentType field to given value.
-
-
-### GetDriveId
-
-`func (o *FindHitOut) GetDriveId() string`
-
-GetDriveId returns the DriveId field if non-nil, zero value otherwise.
-
-### GetDriveIdOk
-
-`func (o *FindHitOut) GetDriveIdOk() (*string, bool)`
-
-GetDriveIdOk returns a tuple with the DriveId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDriveId
-
-`func (o *FindHitOut) SetDriveId(v string)`
-
-SetDriveId sets DriveId field to given value.
-
-
-### GetFileType
-
-`func (o *FindHitOut) GetFileType() string`
-
-GetFileType returns the FileType field if non-nil, zero value otherwise.
-
-### GetFileTypeOk
-
-`func (o *FindHitOut) GetFileTypeOk() (*string, bool)`
-
-GetFileTypeOk returns a tuple with the FileType field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetFileType
-
-`func (o *FindHitOut) SetFileType(v string)`
-
-SetFileType sets FileType field to given value.
-
-
-### GetLabels
-
-`func (o *FindHitOut) GetLabels() []string`
-
-GetLabels returns the Labels field if non-nil, zero value otherwise.
-
-### GetLabelsOk
-
-`func (o *FindHitOut) GetLabelsOk() (*[]string, bool)`
-
-GetLabelsOk returns a tuple with the Labels field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLabels
-
-`func (o *FindHitOut) SetLabels(v []string)`
-
-SetLabels sets Labels field to given value.
-
-### HasLabels
-
-`func (o *FindHitOut) HasLabels() bool`
-
-HasLabels returns a boolean if a field has been set.
-
-### GetModality
-
-`func (o *FindHitOut) GetModality() string`
-
-GetModality returns the Modality field if non-nil, zero value otherwise.
-
-### GetModalityOk
-
-`func (o *FindHitOut) GetModalityOk() (*string, bool)`
-
-GetModalityOk returns a tuple with the Modality field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetModality
-
-`func (o *FindHitOut) SetModality(v string)`
-
-SetModality sets Modality field to given value.
-
-
-### GetOrd
-
-`func (o *FindHitOut) GetOrd() int32`
-
-GetOrd returns the Ord field if non-nil, zero value otherwise.
-
-### GetOrdOk
-
-`func (o *FindHitOut) GetOrdOk() (*int32, bool)`
-
-GetOrdOk returns a tuple with the Ord field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetOrd
-
-`func (o *FindHitOut) SetOrd(v int32)`
-
-SetOrd sets Ord field to given value.
-
-
-### GetPageEnd
-
-`func (o *FindHitOut) GetPageEnd() int32`
-
-GetPageEnd returns the PageEnd field if non-nil, zero value otherwise.
-
-### GetPageEndOk
-
-`func (o *FindHitOut) GetPageEndOk() (*int32, bool)`
-
-GetPageEndOk returns a tuple with the PageEnd field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPageEnd
-
-`func (o *FindHitOut) SetPageEnd(v int32)`
-
-SetPageEnd sets PageEnd field to given value.
-
-### HasPageEnd
-
-`func (o *FindHitOut) HasPageEnd() bool`
-
-HasPageEnd returns a boolean if a field has been set.
-
-### SetPageEndNil
-
-`func (o *FindHitOut) SetPageEndNil(b bool)`
-
- SetPageEndNil sets the value for PageEnd to be an explicit nil
-
-### UnsetPageEnd
-`func (o *FindHitOut) UnsetPageEnd()`
-
-UnsetPageEnd ensures that no value is present for PageEnd, not even an explicit nil
-### GetPageStart
-
-`func (o *FindHitOut) GetPageStart() int32`
-
-GetPageStart returns the PageStart field if non-nil, zero value otherwise.
-
-### GetPageStartOk
-
-`func (o *FindHitOut) GetPageStartOk() (*int32, bool)`
-
-GetPageStartOk returns a tuple with the PageStart field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPageStart
-
-`func (o *FindHitOut) SetPageStart(v int32)`
-
-SetPageStart sets PageStart field to given value.
-
-### HasPageStart
-
-`func (o *FindHitOut) HasPageStart() bool`
-
-HasPageStart returns a boolean if a field has been set.
-
-### SetPageStartNil
-
-`func (o *FindHitOut) SetPageStartNil(b bool)`
-
- SetPageStartNil sets the value for PageStart to be an explicit nil
-
-### UnsetPageStart
-`func (o *FindHitOut) UnsetPageStart()`
-
-UnsetPageStart ensures that no value is present for PageStart, not even an explicit nil
-### GetPath
-
-`func (o *FindHitOut) GetPath() string`
-
-GetPath returns the Path field if non-nil, zero value otherwise.
-
-### GetPathOk
-
-`func (o *FindHitOut) GetPathOk() (*string, bool)`
-
-GetPathOk returns a tuple with the Path field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPath
-
-`func (o *FindHitOut) SetPath(v string)`
-
-SetPath sets Path field to given value.
-
-
-### GetRankLexical
-
-`func (o *FindHitOut) GetRankLexical() int32`
-
-GetRankLexical returns the RankLexical field if non-nil, zero value otherwise.
-
-### GetRankLexicalOk
-
-`func (o *FindHitOut) GetRankLexicalOk() (*int32, bool)`
-
-GetRankLexicalOk returns a tuple with the RankLexical field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRankLexical
-
-`func (o *FindHitOut) SetRankLexical(v int32)`
-
-SetRankLexical sets RankLexical field to given value.
-
-### HasRankLexical
-
-`func (o *FindHitOut) HasRankLexical() bool`
-
-HasRankLexical returns a boolean if a field has been set.
-
-### SetRankLexicalNil
-
-`func (o *FindHitOut) SetRankLexicalNil(b bool)`
-
- SetRankLexicalNil sets the value for RankLexical to be an explicit nil
-
-### UnsetRankLexical
-`func (o *FindHitOut) UnsetRankLexical()`
-
-UnsetRankLexical ensures that no value is present for RankLexical, not even an explicit nil
-### GetRankSemantic
-
-`func (o *FindHitOut) GetRankSemantic() int32`
-
-GetRankSemantic returns the RankSemantic field if non-nil, zero value otherwise.
-
-### GetRankSemanticOk
-
-`func (o *FindHitOut) GetRankSemanticOk() (*int32, bool)`
-
-GetRankSemanticOk returns a tuple with the RankSemantic field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRankSemantic
-
-`func (o *FindHitOut) SetRankSemantic(v int32)`
-
-SetRankSemantic sets RankSemantic field to given value.
-
-### HasRankSemantic
-
-`func (o *FindHitOut) HasRankSemantic() bool`
-
-HasRankSemantic returns a boolean if a field has been set.
-
-### SetRankSemanticNil
-
-`func (o *FindHitOut) SetRankSemanticNil(b bool)`
-
- SetRankSemanticNil sets the value for RankSemantic to be an explicit nil
-
-### UnsetRankSemantic
-`func (o *FindHitOut) UnsetRankSemantic()`
-
-UnsetRankSemantic ensures that no value is present for RankSemantic, not even an explicit nil
-### GetScore
-
-`func (o *FindHitOut) GetScore() float32`
-
-GetScore returns the Score field if non-nil, zero value otherwise.
-
-### GetScoreOk
-
-`func (o *FindHitOut) GetScoreOk() (*float32, bool)`
-
-GetScoreOk returns a tuple with the Score field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetScore
-
-`func (o *FindHitOut) SetScore(v float32)`
-
-SetScore sets Score field to given value.
-
-
-### GetSnippet
-
-`func (o *FindHitOut) GetSnippet() string`
-
-GetSnippet returns the Snippet field if non-nil, zero value otherwise.
-
-### GetSnippetOk
-
-`func (o *FindHitOut) GetSnippetOk() (*string, bool)`
-
-GetSnippetOk returns a tuple with the Snippet field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetSnippet
-
-`func (o *FindHitOut) SetSnippet(v string)`
-
-SetSnippet sets Snippet field to given value.
-
-
-### GetText
-
-`func (o *FindHitOut) GetText() string`
-
-GetText returns the Text field if non-nil, zero value otherwise.
-
-### GetTextOk
-
-`func (o *FindHitOut) GetTextOk() (*string, bool)`
-
-GetTextOk returns a tuple with the Text field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetText
-
-`func (o *FindHitOut) SetText(v string)`
-
-SetText sets Text field to given value.
-
-
-### GetTimeEndMs
-
-`func (o *FindHitOut) GetTimeEndMs() int32`
-
-GetTimeEndMs returns the TimeEndMs field if non-nil, zero value otherwise.
-
-### GetTimeEndMsOk
-
-`func (o *FindHitOut) GetTimeEndMsOk() (*int32, bool)`
-
-GetTimeEndMsOk returns a tuple with the TimeEndMs field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetTimeEndMs
-
-`func (o *FindHitOut) SetTimeEndMs(v int32)`
-
-SetTimeEndMs sets TimeEndMs field to given value.
-
-### HasTimeEndMs
-
-`func (o *FindHitOut) HasTimeEndMs() bool`
-
-HasTimeEndMs returns a boolean if a field has been set.
-
-### SetTimeEndMsNil
-
-`func (o *FindHitOut) SetTimeEndMsNil(b bool)`
-
- SetTimeEndMsNil sets the value for TimeEndMs to be an explicit nil
-
-### UnsetTimeEndMs
-`func (o *FindHitOut) UnsetTimeEndMs()`
-
-UnsetTimeEndMs ensures that no value is present for TimeEndMs, not even an explicit nil
-### GetTimeStartMs
-
-`func (o *FindHitOut) GetTimeStartMs() int32`
-
-GetTimeStartMs returns the TimeStartMs field if non-nil, zero value otherwise.
-
-### GetTimeStartMsOk
-
-`func (o *FindHitOut) GetTimeStartMsOk() (*int32, bool)`
-
-GetTimeStartMsOk returns a tuple with the TimeStartMs field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetTimeStartMs
-
-`func (o *FindHitOut) SetTimeStartMs(v int32)`
-
-SetTimeStartMs sets TimeStartMs field to given value.
-
-### HasTimeStartMs
-
-`func (o *FindHitOut) HasTimeStartMs() bool`
-
-HasTimeStartMs returns a boolean if a field has been set.
-
-### SetTimeStartMsNil
-
-`func (o *FindHitOut) SetTimeStartMsNil(b bool)`
-
- SetTimeStartMsNil sets the value for TimeStartMs to be an explicit nil
-
-### UnsetTimeStartMs
-`func (o *FindHitOut) UnsetTimeStartMs()`
-
-UnsetTimeStartMs ensures that no value is present for TimeStartMs, not even an explicit nil
-### GetUpdatedAt
-
-`func (o *FindHitOut) GetUpdatedAt() time.Time`
-
-GetUpdatedAt returns the UpdatedAt field if non-nil, zero value otherwise.
-
-### GetUpdatedAtOk
-
-`func (o *FindHitOut) GetUpdatedAtOk() (*time.Time, bool)`
-
-GetUpdatedAtOk returns a tuple with the UpdatedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetUpdatedAt
-
-`func (o *FindHitOut) SetUpdatedAt(v time.Time)`
-
-SetUpdatedAt sets UpdatedAt field to given value.
-
-
-### GetUrl
-
-`func (o *FindHitOut) GetUrl() string`
-
-GetUrl returns the Url field if non-nil, zero value otherwise.
-
-### GetUrlOk
-
-`func (o *FindHitOut) GetUrlOk() (*string, bool)`
-
-GetUrlOk returns a tuple with the Url field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetUrl
-
-`func (o *FindHitOut) SetUrl(v string)`
-
-SetUrl sets Url field to given value.
-
-
-### GetVersionNumber
-
-`func (o *FindHitOut) GetVersionNumber() int32`
-
-GetVersionNumber returns the VersionNumber field if non-nil, zero value otherwise.
-
-### GetVersionNumberOk
-
-`func (o *FindHitOut) GetVersionNumberOk() (*int32, bool)`
-
-GetVersionNumberOk returns a tuple with the VersionNumber field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetVersionNumber
-
-`func (o *FindHitOut) SetVersionNumber(v int32)`
-
-SetVersionNumber sets VersionNumber field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/FindPage.md b/sdk/go/docs/FindPage.md
deleted file mode 100644
index c784561..0000000
--- a/sdk/go/docs/FindPage.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# FindPage
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Items** | [**[]FindHitOut**](FindHitOut.md) | |
-
-## Methods
-
-### NewFindPage
-
-`func NewFindPage(items []FindHitOut, ) *FindPage`
-
-NewFindPage instantiates a new FindPage object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewFindPageWithDefaults
-
-`func NewFindPageWithDefaults() *FindPage`
-
-NewFindPageWithDefaults instantiates a new FindPage object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetItems
-
-`func (o *FindPage) GetItems() []FindHitOut`
-
-GetItems returns the Items field if non-nil, zero value otherwise.
-
-### GetItemsOk
-
-`func (o *FindPage) GetItemsOk() (*[]FindHitOut, bool)`
-
-GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetItems
-
-`func (o *FindPage) SetItems(v []FindHitOut)`
-
-SetItems sets Items field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/FolderCascadeOut.md b/sdk/go/docs/FolderCascadeOut.md
new file mode 100644
index 0000000..deffd58
--- /dev/null
+++ b/sdk/go/docs/FolderCascadeOut.md
@@ -0,0 +1,70 @@
+# FolderCascadeOut
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Cascade** | **map[string]int32** | |
+**Folder** | [**FolderOut**](FolderOut.md) | |
+
+## Methods
+
+### NewFolderCascadeOut
+
+`func NewFolderCascadeOut(cascade map[string]int32, folder FolderOut, ) *FolderCascadeOut`
+
+NewFolderCascadeOut instantiates a new FolderCascadeOut object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewFolderCascadeOutWithDefaults
+
+`func NewFolderCascadeOutWithDefaults() *FolderCascadeOut`
+
+NewFolderCascadeOutWithDefaults instantiates a new FolderCascadeOut object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetCascade
+
+`func (o *FolderCascadeOut) GetCascade() map[string]int32`
+
+GetCascade returns the Cascade field if non-nil, zero value otherwise.
+
+### GetCascadeOk
+
+`func (o *FolderCascadeOut) GetCascadeOk() (*map[string]int32, bool)`
+
+GetCascadeOk returns a tuple with the Cascade field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetCascade
+
+`func (o *FolderCascadeOut) SetCascade(v map[string]int32)`
+
+SetCascade sets Cascade field to given value.
+
+
+### GetFolder
+
+`func (o *FolderCascadeOut) GetFolder() FolderOut`
+
+GetFolder returns the Folder field if non-nil, zero value otherwise.
+
+### GetFolderOk
+
+`func (o *FolderCascadeOut) GetFolderOk() (*FolderOut, bool)`
+
+GetFolderOk returns a tuple with the Folder field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetFolder
+
+`func (o *FolderCascadeOut) SetFolder(v FolderOut)`
+
+SetFolder sets Folder field to given value.
+
+
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/FolderCopyIn.md b/sdk/go/docs/FolderCopyIn.md
index 903a3a0..d83f133 100644
--- a/sdk/go/docs/FolderCopyIn.md
+++ b/sdk/go/docs/FolderCopyIn.md
@@ -4,14 +4,15 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**FromMetageneration** | Pointer to **NullableInt32** | | [optional]
-**Path** | **string** | |
+**DestinationDriveId** | Pointer to **NullableString** | | [optional]
+**DestinationName** | **string** | |
+**DestinationParentId** | **string** | |
## Methods
### NewFolderCopyIn
-`func NewFolderCopyIn(path string, ) *FolderCopyIn`
+`func NewFolderCopyIn(destinationName string, destinationParentId string, ) *FolderCopyIn`
NewFolderCopyIn instantiates a new FolderCopyIn object
This constructor will assign default values to properties that have it defined,
@@ -26,59 +27,79 @@ NewFolderCopyInWithDefaults instantiates a new FolderCopyIn object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
-### GetFromMetageneration
+### GetDestinationDriveId
-`func (o *FolderCopyIn) GetFromMetageneration() int32`
+`func (o *FolderCopyIn) GetDestinationDriveId() string`
-GetFromMetageneration returns the FromMetageneration field if non-nil, zero value otherwise.
+GetDestinationDriveId returns the DestinationDriveId field if non-nil, zero value otherwise.
-### GetFromMetagenerationOk
+### GetDestinationDriveIdOk
-`func (o *FolderCopyIn) GetFromMetagenerationOk() (*int32, bool)`
+`func (o *FolderCopyIn) GetDestinationDriveIdOk() (*string, bool)`
-GetFromMetagenerationOk returns a tuple with the FromMetageneration field if it's non-nil, zero value otherwise
+GetDestinationDriveIdOk returns a tuple with the DestinationDriveId field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetFromMetageneration
+### SetDestinationDriveId
-`func (o *FolderCopyIn) SetFromMetageneration(v int32)`
+`func (o *FolderCopyIn) SetDestinationDriveId(v string)`
-SetFromMetageneration sets FromMetageneration field to given value.
+SetDestinationDriveId sets DestinationDriveId field to given value.
-### HasFromMetageneration
+### HasDestinationDriveId
-`func (o *FolderCopyIn) HasFromMetageneration() bool`
+`func (o *FolderCopyIn) HasDestinationDriveId() bool`
-HasFromMetageneration returns a boolean if a field has been set.
+HasDestinationDriveId returns a boolean if a field has been set.
-### SetFromMetagenerationNil
+### SetDestinationDriveIdNil
-`func (o *FolderCopyIn) SetFromMetagenerationNil(b bool)`
+`func (o *FolderCopyIn) SetDestinationDriveIdNil(b bool)`
- SetFromMetagenerationNil sets the value for FromMetageneration to be an explicit nil
+ SetDestinationDriveIdNil sets the value for DestinationDriveId to be an explicit nil
-### UnsetFromMetageneration
-`func (o *FolderCopyIn) UnsetFromMetageneration()`
+### UnsetDestinationDriveId
+`func (o *FolderCopyIn) UnsetDestinationDriveId()`
-UnsetFromMetageneration ensures that no value is present for FromMetageneration, not even an explicit nil
-### GetPath
+UnsetDestinationDriveId ensures that no value is present for DestinationDriveId, not even an explicit nil
+### GetDestinationName
-`func (o *FolderCopyIn) GetPath() string`
+`func (o *FolderCopyIn) GetDestinationName() string`
-GetPath returns the Path field if non-nil, zero value otherwise.
+GetDestinationName returns the DestinationName field if non-nil, zero value otherwise.
-### GetPathOk
+### GetDestinationNameOk
-`func (o *FolderCopyIn) GetPathOk() (*string, bool)`
+`func (o *FolderCopyIn) GetDestinationNameOk() (*string, bool)`
-GetPathOk returns a tuple with the Path field if it's non-nil, zero value otherwise
+GetDestinationNameOk returns a tuple with the DestinationName field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetPath
+### SetDestinationName
-`func (o *FolderCopyIn) SetPath(v string)`
+`func (o *FolderCopyIn) SetDestinationName(v string)`
-SetPath sets Path field to given value.
+SetDestinationName sets DestinationName field to given value.
+
+
+### GetDestinationParentId
+
+`func (o *FolderCopyIn) GetDestinationParentId() string`
+
+GetDestinationParentId returns the DestinationParentId field if non-nil, zero value otherwise.
+
+### GetDestinationParentIdOk
+
+`func (o *FolderCopyIn) GetDestinationParentIdOk() (*string, bool)`
+
+GetDestinationParentIdOk returns a tuple with the DestinationParentId field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetDestinationParentId
+
+`func (o *FolderCopyIn) SetDestinationParentId(v string)`
+
+SetDestinationParentId sets DestinationParentId field to given value.
diff --git a/sdk/go/docs/FolderCopyOut.md b/sdk/go/docs/FolderCopyOut.md
deleted file mode 100644
index 5f1d2d7..0000000
--- a/sdk/go/docs/FolderCopyOut.md
+++ /dev/null
@@ -1,356 +0,0 @@
-# FolderCopyOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**CreatedAt** | **time.Time** | |
-**DeletedAt** | Pointer to **NullableTime** | | [optional]
-**Description** | Pointer to **NullableString** | | [optional]
-**DriveId** | **string** | |
-**Etag** | **string** | |
-**FromFldId** | **string** | |
-**Id** | **string** | |
-**InheritGrants** | Pointer to **bool** | | [optional] [default to true]
-**Metageneration** | Pointer to **int32** | | [optional] [default to 1]
-**NArtifactsCopied** | **int32** | |
-**Path** | **string** | |
-**PurgeAt** | Pointer to **NullableTime** | | [optional]
-**UpdatedAt** | **time.Time** | |
-
-## Methods
-
-### NewFolderCopyOut
-
-`func NewFolderCopyOut(createdAt time.Time, driveId string, etag string, fromFldId string, id string, nArtifactsCopied int32, path string, updatedAt time.Time, ) *FolderCopyOut`
-
-NewFolderCopyOut instantiates a new FolderCopyOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewFolderCopyOutWithDefaults
-
-`func NewFolderCopyOutWithDefaults() *FolderCopyOut`
-
-NewFolderCopyOutWithDefaults instantiates a new FolderCopyOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetCreatedAt
-
-`func (o *FolderCopyOut) GetCreatedAt() time.Time`
-
-GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
-
-### GetCreatedAtOk
-
-`func (o *FolderCopyOut) GetCreatedAtOk() (*time.Time, bool)`
-
-GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCreatedAt
-
-`func (o *FolderCopyOut) SetCreatedAt(v time.Time)`
-
-SetCreatedAt sets CreatedAt field to given value.
-
-
-### GetDeletedAt
-
-`func (o *FolderCopyOut) GetDeletedAt() time.Time`
-
-GetDeletedAt returns the DeletedAt field if non-nil, zero value otherwise.
-
-### GetDeletedAtOk
-
-`func (o *FolderCopyOut) GetDeletedAtOk() (*time.Time, bool)`
-
-GetDeletedAtOk returns a tuple with the DeletedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDeletedAt
-
-`func (o *FolderCopyOut) SetDeletedAt(v time.Time)`
-
-SetDeletedAt sets DeletedAt field to given value.
-
-### HasDeletedAt
-
-`func (o *FolderCopyOut) HasDeletedAt() bool`
-
-HasDeletedAt returns a boolean if a field has been set.
-
-### SetDeletedAtNil
-
-`func (o *FolderCopyOut) SetDeletedAtNil(b bool)`
-
- SetDeletedAtNil sets the value for DeletedAt to be an explicit nil
-
-### UnsetDeletedAt
-`func (o *FolderCopyOut) UnsetDeletedAt()`
-
-UnsetDeletedAt ensures that no value is present for DeletedAt, not even an explicit nil
-### GetDescription
-
-`func (o *FolderCopyOut) GetDescription() string`
-
-GetDescription returns the Description field if non-nil, zero value otherwise.
-
-### GetDescriptionOk
-
-`func (o *FolderCopyOut) GetDescriptionOk() (*string, bool)`
-
-GetDescriptionOk returns a tuple with the Description field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDescription
-
-`func (o *FolderCopyOut) SetDescription(v string)`
-
-SetDescription sets Description field to given value.
-
-### HasDescription
-
-`func (o *FolderCopyOut) HasDescription() bool`
-
-HasDescription returns a boolean if a field has been set.
-
-### SetDescriptionNil
-
-`func (o *FolderCopyOut) SetDescriptionNil(b bool)`
-
- SetDescriptionNil sets the value for Description to be an explicit nil
-
-### UnsetDescription
-`func (o *FolderCopyOut) UnsetDescription()`
-
-UnsetDescription ensures that no value is present for Description, not even an explicit nil
-### GetDriveId
-
-`func (o *FolderCopyOut) GetDriveId() string`
-
-GetDriveId returns the DriveId field if non-nil, zero value otherwise.
-
-### GetDriveIdOk
-
-`func (o *FolderCopyOut) GetDriveIdOk() (*string, bool)`
-
-GetDriveIdOk returns a tuple with the DriveId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDriveId
-
-`func (o *FolderCopyOut) SetDriveId(v string)`
-
-SetDriveId sets DriveId field to given value.
-
-
-### GetEtag
-
-`func (o *FolderCopyOut) GetEtag() string`
-
-GetEtag returns the Etag field if non-nil, zero value otherwise.
-
-### GetEtagOk
-
-`func (o *FolderCopyOut) GetEtagOk() (*string, bool)`
-
-GetEtagOk returns a tuple with the Etag field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEtag
-
-`func (o *FolderCopyOut) SetEtag(v string)`
-
-SetEtag sets Etag field to given value.
-
-
-### GetFromFldId
-
-`func (o *FolderCopyOut) GetFromFldId() string`
-
-GetFromFldId returns the FromFldId field if non-nil, zero value otherwise.
-
-### GetFromFldIdOk
-
-`func (o *FolderCopyOut) GetFromFldIdOk() (*string, bool)`
-
-GetFromFldIdOk returns a tuple with the FromFldId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetFromFldId
-
-`func (o *FolderCopyOut) SetFromFldId(v string)`
-
-SetFromFldId sets FromFldId field to given value.
-
-
-### GetId
-
-`func (o *FolderCopyOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *FolderCopyOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *FolderCopyOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetInheritGrants
-
-`func (o *FolderCopyOut) GetInheritGrants() bool`
-
-GetInheritGrants returns the InheritGrants field if non-nil, zero value otherwise.
-
-### GetInheritGrantsOk
-
-`func (o *FolderCopyOut) GetInheritGrantsOk() (*bool, bool)`
-
-GetInheritGrantsOk returns a tuple with the InheritGrants field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetInheritGrants
-
-`func (o *FolderCopyOut) SetInheritGrants(v bool)`
-
-SetInheritGrants sets InheritGrants field to given value.
-
-### HasInheritGrants
-
-`func (o *FolderCopyOut) HasInheritGrants() bool`
-
-HasInheritGrants returns a boolean if a field has been set.
-
-### GetMetageneration
-
-`func (o *FolderCopyOut) GetMetageneration() int32`
-
-GetMetageneration returns the Metageneration field if non-nil, zero value otherwise.
-
-### GetMetagenerationOk
-
-`func (o *FolderCopyOut) GetMetagenerationOk() (*int32, bool)`
-
-GetMetagenerationOk returns a tuple with the Metageneration field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetMetageneration
-
-`func (o *FolderCopyOut) SetMetageneration(v int32)`
-
-SetMetageneration sets Metageneration field to given value.
-
-### HasMetageneration
-
-`func (o *FolderCopyOut) HasMetageneration() bool`
-
-HasMetageneration returns a boolean if a field has been set.
-
-### GetNArtifactsCopied
-
-`func (o *FolderCopyOut) GetNArtifactsCopied() int32`
-
-GetNArtifactsCopied returns the NArtifactsCopied field if non-nil, zero value otherwise.
-
-### GetNArtifactsCopiedOk
-
-`func (o *FolderCopyOut) GetNArtifactsCopiedOk() (*int32, bool)`
-
-GetNArtifactsCopiedOk returns a tuple with the NArtifactsCopied field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetNArtifactsCopied
-
-`func (o *FolderCopyOut) SetNArtifactsCopied(v int32)`
-
-SetNArtifactsCopied sets NArtifactsCopied field to given value.
-
-
-### GetPath
-
-`func (o *FolderCopyOut) GetPath() string`
-
-GetPath returns the Path field if non-nil, zero value otherwise.
-
-### GetPathOk
-
-`func (o *FolderCopyOut) GetPathOk() (*string, bool)`
-
-GetPathOk returns a tuple with the Path field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPath
-
-`func (o *FolderCopyOut) SetPath(v string)`
-
-SetPath sets Path field to given value.
-
-
-### GetPurgeAt
-
-`func (o *FolderCopyOut) GetPurgeAt() time.Time`
-
-GetPurgeAt returns the PurgeAt field if non-nil, zero value otherwise.
-
-### GetPurgeAtOk
-
-`func (o *FolderCopyOut) GetPurgeAtOk() (*time.Time, bool)`
-
-GetPurgeAtOk returns a tuple with the PurgeAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPurgeAt
-
-`func (o *FolderCopyOut) SetPurgeAt(v time.Time)`
-
-SetPurgeAt sets PurgeAt field to given value.
-
-### HasPurgeAt
-
-`func (o *FolderCopyOut) HasPurgeAt() bool`
-
-HasPurgeAt returns a boolean if a field has been set.
-
-### SetPurgeAtNil
-
-`func (o *FolderCopyOut) SetPurgeAtNil(b bool)`
-
- SetPurgeAtNil sets the value for PurgeAt to be an explicit nil
-
-### UnsetPurgeAt
-`func (o *FolderCopyOut) UnsetPurgeAt()`
-
-UnsetPurgeAt ensures that no value is present for PurgeAt, not even an explicit nil
-### GetUpdatedAt
-
-`func (o *FolderCopyOut) GetUpdatedAt() time.Time`
-
-GetUpdatedAt returns the UpdatedAt field if non-nil, zero value otherwise.
-
-### GetUpdatedAtOk
-
-`func (o *FolderCopyOut) GetUpdatedAtOk() (*time.Time, bool)`
-
-GetUpdatedAtOk returns a tuple with the UpdatedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetUpdatedAt
-
-`func (o *FolderCopyOut) SetUpdatedAt(v time.Time)`
-
-SetUpdatedAt sets UpdatedAt field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/FolderCreateIn.md b/sdk/go/docs/FolderCreateIn.md
index a70b3d9..ebf9f94 100644
--- a/sdk/go/docs/FolderCreateIn.md
+++ b/sdk/go/docs/FolderCreateIn.md
@@ -4,13 +4,16 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**Description** | Pointer to **NullableString** | | [optional]
+**GrantInheritance** | Pointer to **string** | | [optional] [default to "inherit"]
+**Metadata** | Pointer to **map[string]interface{}** | | [optional]
+**Name** | **string** | |
+**ParentId** | **string** | |
## Methods
### NewFolderCreateIn
-`func NewFolderCreateIn() *FolderCreateIn`
+`func NewFolderCreateIn(name string, parentId string, ) *FolderCreateIn`
NewFolderCreateIn instantiates a new FolderCreateIn object
This constructor will assign default values to properties that have it defined,
@@ -25,40 +28,95 @@ NewFolderCreateInWithDefaults instantiates a new FolderCreateIn object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
-### GetDescription
+### GetGrantInheritance
-`func (o *FolderCreateIn) GetDescription() string`
+`func (o *FolderCreateIn) GetGrantInheritance() string`
-GetDescription returns the Description field if non-nil, zero value otherwise.
+GetGrantInheritance returns the GrantInheritance field if non-nil, zero value otherwise.
-### GetDescriptionOk
+### GetGrantInheritanceOk
-`func (o *FolderCreateIn) GetDescriptionOk() (*string, bool)`
+`func (o *FolderCreateIn) GetGrantInheritanceOk() (*string, bool)`
-GetDescriptionOk returns a tuple with the Description field if it's non-nil, zero value otherwise
+GetGrantInheritanceOk returns a tuple with the GrantInheritance field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetDescription
+### SetGrantInheritance
-`func (o *FolderCreateIn) SetDescription(v string)`
+`func (o *FolderCreateIn) SetGrantInheritance(v string)`
-SetDescription sets Description field to given value.
+SetGrantInheritance sets GrantInheritance field to given value.
-### HasDescription
+### HasGrantInheritance
-`func (o *FolderCreateIn) HasDescription() bool`
+`func (o *FolderCreateIn) HasGrantInheritance() bool`
-HasDescription returns a boolean if a field has been set.
+HasGrantInheritance returns a boolean if a field has been set.
-### SetDescriptionNil
+### GetMetadata
-`func (o *FolderCreateIn) SetDescriptionNil(b bool)`
+`func (o *FolderCreateIn) GetMetadata() map[string]interface{}`
- SetDescriptionNil sets the value for Description to be an explicit nil
+GetMetadata returns the Metadata field if non-nil, zero value otherwise.
+
+### GetMetadataOk
+
+`func (o *FolderCreateIn) GetMetadataOk() (*map[string]interface{}, bool)`
+
+GetMetadataOk returns a tuple with the Metadata field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetMetadata
+
+`func (o *FolderCreateIn) SetMetadata(v map[string]interface{})`
+
+SetMetadata sets Metadata field to given value.
+
+### HasMetadata
+
+`func (o *FolderCreateIn) HasMetadata() bool`
+
+HasMetadata returns a boolean if a field has been set.
+
+### GetName
+
+`func (o *FolderCreateIn) GetName() string`
+
+GetName returns the Name field if non-nil, zero value otherwise.
+
+### GetNameOk
+
+`func (o *FolderCreateIn) GetNameOk() (*string, bool)`
+
+GetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetName
+
+`func (o *FolderCreateIn) SetName(v string)`
+
+SetName sets Name field to given value.
+
+
+### GetParentId
+
+`func (o *FolderCreateIn) GetParentId() string`
+
+GetParentId returns the ParentId field if non-nil, zero value otherwise.
+
+### GetParentIdOk
+
+`func (o *FolderCreateIn) GetParentIdOk() (*string, bool)`
+
+GetParentIdOk returns a tuple with the ParentId field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetParentId
+
+`func (o *FolderCreateIn) SetParentId(v string)`
+
+SetParentId sets ParentId field to given value.
-### UnsetDescription
-`func (o *FolderCreateIn) UnsetDescription()`
-UnsetDescription ensures that no value is present for Description, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/FolderDeleteOut.md b/sdk/go/docs/FolderDeleteOut.md
deleted file mode 100644
index 6f35dcc..0000000
--- a/sdk/go/docs/FolderDeleteOut.md
+++ /dev/null
@@ -1,201 +0,0 @@
-# FolderDeleteOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**DeletedAt** | **time.Time** | |
-**Id** | **string** | |
-**NArtifactsDeleted** | **int32** | |
-**NSubfoldersDeleted** | **int32** | |
-**Ok** | Pointer to **bool** | | [optional] [default to true]
-**Path** | **string** | |
-**PurgeAt** | **time.Time** | |
-**RetentionDays** | **int32** | |
-
-## Methods
-
-### NewFolderDeleteOut
-
-`func NewFolderDeleteOut(deletedAt time.Time, id string, nArtifactsDeleted int32, nSubfoldersDeleted int32, path string, purgeAt time.Time, retentionDays int32, ) *FolderDeleteOut`
-
-NewFolderDeleteOut instantiates a new FolderDeleteOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewFolderDeleteOutWithDefaults
-
-`func NewFolderDeleteOutWithDefaults() *FolderDeleteOut`
-
-NewFolderDeleteOutWithDefaults instantiates a new FolderDeleteOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetDeletedAt
-
-`func (o *FolderDeleteOut) GetDeletedAt() time.Time`
-
-GetDeletedAt returns the DeletedAt field if non-nil, zero value otherwise.
-
-### GetDeletedAtOk
-
-`func (o *FolderDeleteOut) GetDeletedAtOk() (*time.Time, bool)`
-
-GetDeletedAtOk returns a tuple with the DeletedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDeletedAt
-
-`func (o *FolderDeleteOut) SetDeletedAt(v time.Time)`
-
-SetDeletedAt sets DeletedAt field to given value.
-
-
-### GetId
-
-`func (o *FolderDeleteOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *FolderDeleteOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *FolderDeleteOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetNArtifactsDeleted
-
-`func (o *FolderDeleteOut) GetNArtifactsDeleted() int32`
-
-GetNArtifactsDeleted returns the NArtifactsDeleted field if non-nil, zero value otherwise.
-
-### GetNArtifactsDeletedOk
-
-`func (o *FolderDeleteOut) GetNArtifactsDeletedOk() (*int32, bool)`
-
-GetNArtifactsDeletedOk returns a tuple with the NArtifactsDeleted field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetNArtifactsDeleted
-
-`func (o *FolderDeleteOut) SetNArtifactsDeleted(v int32)`
-
-SetNArtifactsDeleted sets NArtifactsDeleted field to given value.
-
-
-### GetNSubfoldersDeleted
-
-`func (o *FolderDeleteOut) GetNSubfoldersDeleted() int32`
-
-GetNSubfoldersDeleted returns the NSubfoldersDeleted field if non-nil, zero value otherwise.
-
-### GetNSubfoldersDeletedOk
-
-`func (o *FolderDeleteOut) GetNSubfoldersDeletedOk() (*int32, bool)`
-
-GetNSubfoldersDeletedOk returns a tuple with the NSubfoldersDeleted field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetNSubfoldersDeleted
-
-`func (o *FolderDeleteOut) SetNSubfoldersDeleted(v int32)`
-
-SetNSubfoldersDeleted sets NSubfoldersDeleted field to given value.
-
-
-### GetOk
-
-`func (o *FolderDeleteOut) GetOk() bool`
-
-GetOk returns the Ok field if non-nil, zero value otherwise.
-
-### GetOkOk
-
-`func (o *FolderDeleteOut) GetOkOk() (*bool, bool)`
-
-GetOkOk returns a tuple with the Ok field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetOk
-
-`func (o *FolderDeleteOut) SetOk(v bool)`
-
-SetOk sets Ok field to given value.
-
-### HasOk
-
-`func (o *FolderDeleteOut) HasOk() bool`
-
-HasOk returns a boolean if a field has been set.
-
-### GetPath
-
-`func (o *FolderDeleteOut) GetPath() string`
-
-GetPath returns the Path field if non-nil, zero value otherwise.
-
-### GetPathOk
-
-`func (o *FolderDeleteOut) GetPathOk() (*string, bool)`
-
-GetPathOk returns a tuple with the Path field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPath
-
-`func (o *FolderDeleteOut) SetPath(v string)`
-
-SetPath sets Path field to given value.
-
-
-### GetPurgeAt
-
-`func (o *FolderDeleteOut) GetPurgeAt() time.Time`
-
-GetPurgeAt returns the PurgeAt field if non-nil, zero value otherwise.
-
-### GetPurgeAtOk
-
-`func (o *FolderDeleteOut) GetPurgeAtOk() (*time.Time, bool)`
-
-GetPurgeAtOk returns a tuple with the PurgeAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPurgeAt
-
-`func (o *FolderDeleteOut) SetPurgeAt(v time.Time)`
-
-SetPurgeAt sets PurgeAt field to given value.
-
-
-### GetRetentionDays
-
-`func (o *FolderDeleteOut) GetRetentionDays() int32`
-
-GetRetentionDays returns the RetentionDays field if non-nil, zero value otherwise.
-
-### GetRetentionDaysOk
-
-`func (o *FolderDeleteOut) GetRetentionDaysOk() (*int32, bool)`
-
-GetRetentionDaysOk returns a tuple with the RetentionDays field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRetentionDays
-
-`func (o *FolderDeleteOut) SetRetentionDays(v int32)`
-
-SetRetentionDays sets RetentionDays field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/FolderListOut.md b/sdk/go/docs/FolderListOut.md
new file mode 100644
index 0000000..180fa32
--- /dev/null
+++ b/sdk/go/docs/FolderListOut.md
@@ -0,0 +1,80 @@
+# FolderListOut
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Items** | [**[]FolderOut**](FolderOut.md) | |
+**NextCursor** | **NullableString** | |
+
+## Methods
+
+### NewFolderListOut
+
+`func NewFolderListOut(items []FolderOut, nextCursor NullableString, ) *FolderListOut`
+
+NewFolderListOut instantiates a new FolderListOut object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewFolderListOutWithDefaults
+
+`func NewFolderListOutWithDefaults() *FolderListOut`
+
+NewFolderListOutWithDefaults instantiates a new FolderListOut object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetItems
+
+`func (o *FolderListOut) GetItems() []FolderOut`
+
+GetItems returns the Items field if non-nil, zero value otherwise.
+
+### GetItemsOk
+
+`func (o *FolderListOut) GetItemsOk() (*[]FolderOut, bool)`
+
+GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetItems
+
+`func (o *FolderListOut) SetItems(v []FolderOut)`
+
+SetItems sets Items field to given value.
+
+
+### GetNextCursor
+
+`func (o *FolderListOut) GetNextCursor() string`
+
+GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
+
+### GetNextCursorOk
+
+`func (o *FolderListOut) GetNextCursorOk() (*string, bool)`
+
+GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetNextCursor
+
+`func (o *FolderListOut) SetNextCursor(v string)`
+
+SetNextCursor sets NextCursor field to given value.
+
+
+### SetNextCursorNil
+
+`func (o *FolderListOut) SetNextCursorNil(b bool)`
+
+ SetNextCursorNil sets the value for NextCursor to be an explicit nil
+
+### UnsetNextCursor
+`func (o *FolderListOut) UnsetNextCursor()`
+
+UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/FolderMoveIn.md b/sdk/go/docs/FolderMoveIn.md
deleted file mode 100644
index db1c587..0000000
--- a/sdk/go/docs/FolderMoveIn.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# FolderMoveIn
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Path** | **string** | |
-
-## Methods
-
-### NewFolderMoveIn
-
-`func NewFolderMoveIn(path string, ) *FolderMoveIn`
-
-NewFolderMoveIn instantiates a new FolderMoveIn object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewFolderMoveInWithDefaults
-
-`func NewFolderMoveInWithDefaults() *FolderMoveIn`
-
-NewFolderMoveInWithDefaults instantiates a new FolderMoveIn object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetPath
-
-`func (o *FolderMoveIn) GetPath() string`
-
-GetPath returns the Path field if non-nil, zero value otherwise.
-
-### GetPathOk
-
-`func (o *FolderMoveIn) GetPathOk() (*string, bool)`
-
-GetPathOk returns a tuple with the Path field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPath
-
-`func (o *FolderMoveIn) SetPath(v string)`
-
-SetPath sets Path field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/FolderOut.md b/sdk/go/docs/FolderOut.md
index f34e333..9afbc0c 100644
--- a/sdk/go/docs/FolderOut.md
+++ b/sdk/go/docs/FolderOut.md
@@ -5,22 +5,22 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**CreatedAt** | **time.Time** | |
-**DeletedAt** | Pointer to **NullableTime** | | [optional]
-**Description** | Pointer to **NullableString** | | [optional]
+**DeletedAt** | **NullableTime** | |
**DriveId** | **string** | |
-**Etag** | **string** | |
+**GrantInheritance** | **string** | |
**Id** | **string** | |
-**InheritGrants** | Pointer to **bool** | | [optional] [default to true]
-**Metageneration** | Pointer to **int32** | | [optional] [default to 1]
-**Path** | **string** | |
-**PurgeAt** | Pointer to **NullableTime** | | [optional]
+**Metadata** | **map[string]interface{}** | |
+**Name** | **NullableString** | |
+**ParentId** | **NullableString** | |
+**Revision** | **string** | |
+**State** | **string** | |
**UpdatedAt** | **time.Time** | |
## Methods
### NewFolderOut
-`func NewFolderOut(createdAt time.Time, driveId string, etag string, id string, path string, updatedAt time.Time, ) *FolderOut`
+`func NewFolderOut(createdAt time.Time, deletedAt NullableTime, driveId string, grantInheritance string, id string, metadata map[string]interface{}, name NullableString, parentId NullableString, revision string, state string, updatedAt time.Time, ) *FolderOut`
NewFolderOut instantiates a new FolderOut object
This constructor will assign default values to properties that have it defined,
@@ -74,11 +74,6 @@ and a boolean to check if the value has been set.
SetDeletedAt sets DeletedAt field to given value.
-### HasDeletedAt
-
-`func (o *FolderOut) HasDeletedAt() bool`
-
-HasDeletedAt returns a boolean if a field has been set.
### SetDeletedAtNil
@@ -90,41 +85,6 @@ HasDeletedAt returns a boolean if a field has been set.
`func (o *FolderOut) UnsetDeletedAt()`
UnsetDeletedAt ensures that no value is present for DeletedAt, not even an explicit nil
-### GetDescription
-
-`func (o *FolderOut) GetDescription() string`
-
-GetDescription returns the Description field if non-nil, zero value otherwise.
-
-### GetDescriptionOk
-
-`func (o *FolderOut) GetDescriptionOk() (*string, bool)`
-
-GetDescriptionOk returns a tuple with the Description field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDescription
-
-`func (o *FolderOut) SetDescription(v string)`
-
-SetDescription sets Description field to given value.
-
-### HasDescription
-
-`func (o *FolderOut) HasDescription() bool`
-
-HasDescription returns a boolean if a field has been set.
-
-### SetDescriptionNil
-
-`func (o *FolderOut) SetDescriptionNil(b bool)`
-
- SetDescriptionNil sets the value for Description to be an explicit nil
-
-### UnsetDescription
-`func (o *FolderOut) UnsetDescription()`
-
-UnsetDescription ensures that no value is present for Description, not even an explicit nil
### GetDriveId
`func (o *FolderOut) GetDriveId() string`
@@ -145,24 +105,24 @@ and a boolean to check if the value has been set.
SetDriveId sets DriveId field to given value.
-### GetEtag
+### GetGrantInheritance
-`func (o *FolderOut) GetEtag() string`
+`func (o *FolderOut) GetGrantInheritance() string`
-GetEtag returns the Etag field if non-nil, zero value otherwise.
+GetGrantInheritance returns the GrantInheritance field if non-nil, zero value otherwise.
-### GetEtagOk
+### GetGrantInheritanceOk
-`func (o *FolderOut) GetEtagOk() (*string, bool)`
+`func (o *FolderOut) GetGrantInheritanceOk() (*string, bool)`
-GetEtagOk returns a tuple with the Etag field if it's non-nil, zero value otherwise
+GetGrantInheritanceOk returns a tuple with the GrantInheritance field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetEtag
+### SetGrantInheritance
-`func (o *FolderOut) SetEtag(v string)`
+`func (o *FolderOut) SetGrantInheritance(v string)`
-SetEtag sets Etag field to given value.
+SetGrantInheritance sets GrantInheritance field to given value.
### GetId
@@ -185,111 +145,126 @@ and a boolean to check if the value has been set.
SetId sets Id field to given value.
-### GetInheritGrants
+### GetMetadata
-`func (o *FolderOut) GetInheritGrants() bool`
+`func (o *FolderOut) GetMetadata() map[string]interface{}`
-GetInheritGrants returns the InheritGrants field if non-nil, zero value otherwise.
+GetMetadata returns the Metadata field if non-nil, zero value otherwise.
-### GetInheritGrantsOk
+### GetMetadataOk
-`func (o *FolderOut) GetInheritGrantsOk() (*bool, bool)`
+`func (o *FolderOut) GetMetadataOk() (*map[string]interface{}, bool)`
-GetInheritGrantsOk returns a tuple with the InheritGrants field if it's non-nil, zero value otherwise
+GetMetadataOk returns a tuple with the Metadata field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetInheritGrants
+### SetMetadata
-`func (o *FolderOut) SetInheritGrants(v bool)`
+`func (o *FolderOut) SetMetadata(v map[string]interface{})`
-SetInheritGrants sets InheritGrants field to given value.
+SetMetadata sets Metadata field to given value.
-### HasInheritGrants
-`func (o *FolderOut) HasInheritGrants() bool`
+### GetName
-HasInheritGrants returns a boolean if a field has been set.
+`func (o *FolderOut) GetName() string`
-### GetMetageneration
+GetName returns the Name field if non-nil, zero value otherwise.
-`func (o *FolderOut) GetMetageneration() int32`
+### GetNameOk
-GetMetageneration returns the Metageneration field if non-nil, zero value otherwise.
+`func (o *FolderOut) GetNameOk() (*string, bool)`
-### GetMetagenerationOk
+GetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
-`func (o *FolderOut) GetMetagenerationOk() (*int32, bool)`
+### SetName
-GetMetagenerationOk returns a tuple with the Metageneration field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
+`func (o *FolderOut) SetName(v string)`
-### SetMetageneration
+SetName sets Name field to given value.
-`func (o *FolderOut) SetMetageneration(v int32)`
-SetMetageneration sets Metageneration field to given value.
+### SetNameNil
-### HasMetageneration
+`func (o *FolderOut) SetNameNil(b bool)`
-`func (o *FolderOut) HasMetageneration() bool`
+ SetNameNil sets the value for Name to be an explicit nil
-HasMetageneration returns a boolean if a field has been set.
+### UnsetName
+`func (o *FolderOut) UnsetName()`
-### GetPath
+UnsetName ensures that no value is present for Name, not even an explicit nil
+### GetParentId
-`func (o *FolderOut) GetPath() string`
+`func (o *FolderOut) GetParentId() string`
-GetPath returns the Path field if non-nil, zero value otherwise.
+GetParentId returns the ParentId field if non-nil, zero value otherwise.
-### GetPathOk
+### GetParentIdOk
-`func (o *FolderOut) GetPathOk() (*string, bool)`
+`func (o *FolderOut) GetParentIdOk() (*string, bool)`
-GetPathOk returns a tuple with the Path field if it's non-nil, zero value otherwise
+GetParentIdOk returns a tuple with the ParentId field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetPath
+### SetParentId
+
+`func (o *FolderOut) SetParentId(v string)`
+
+SetParentId sets ParentId field to given value.
-`func (o *FolderOut) SetPath(v string)`
-SetPath sets Path field to given value.
+### SetParentIdNil
+`func (o *FolderOut) SetParentIdNil(b bool)`
-### GetPurgeAt
+ SetParentIdNil sets the value for ParentId to be an explicit nil
-`func (o *FolderOut) GetPurgeAt() time.Time`
+### UnsetParentId
+`func (o *FolderOut) UnsetParentId()`
-GetPurgeAt returns the PurgeAt field if non-nil, zero value otherwise.
+UnsetParentId ensures that no value is present for ParentId, not even an explicit nil
+### GetRevision
-### GetPurgeAtOk
+`func (o *FolderOut) GetRevision() string`
-`func (o *FolderOut) GetPurgeAtOk() (*time.Time, bool)`
+GetRevision returns the Revision field if non-nil, zero value otherwise.
-GetPurgeAtOk returns a tuple with the PurgeAt field if it's non-nil, zero value otherwise
+### GetRevisionOk
+
+`func (o *FolderOut) GetRevisionOk() (*string, bool)`
+
+GetRevisionOk returns a tuple with the Revision field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetPurgeAt
+### SetRevision
+
+`func (o *FolderOut) SetRevision(v string)`
+
+SetRevision sets Revision field to given value.
-`func (o *FolderOut) SetPurgeAt(v time.Time)`
-SetPurgeAt sets PurgeAt field to given value.
+### GetState
-### HasPurgeAt
+`func (o *FolderOut) GetState() string`
-`func (o *FolderOut) HasPurgeAt() bool`
+GetState returns the State field if non-nil, zero value otherwise.
-HasPurgeAt returns a boolean if a field has been set.
+### GetStateOk
+
+`func (o *FolderOut) GetStateOk() (*string, bool)`
+
+GetStateOk returns a tuple with the State field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
-### SetPurgeAtNil
+### SetState
-`func (o *FolderOut) SetPurgeAtNil(b bool)`
+`func (o *FolderOut) SetState(v string)`
- SetPurgeAtNil sets the value for PurgeAt to be an explicit nil
+SetState sets State field to given value.
-### UnsetPurgeAt
-`func (o *FolderOut) UnsetPurgeAt()`
-UnsetPurgeAt ensures that no value is present for PurgeAt, not even an explicit nil
### GetUpdatedAt
`func (o *FolderOut) GetUpdatedAt() time.Time`
diff --git a/sdk/go/docs/FolderPatchIn.md b/sdk/go/docs/FolderPatchIn.md
deleted file mode 100644
index 77d201f..0000000
--- a/sdk/go/docs/FolderPatchIn.md
+++ /dev/null
@@ -1,100 +0,0 @@
-# FolderPatchIn
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Description** | Pointer to **NullableString** | | [optional]
-**InheritGrants** | Pointer to **NullableBool** | | [optional]
-
-## Methods
-
-### NewFolderPatchIn
-
-`func NewFolderPatchIn() *FolderPatchIn`
-
-NewFolderPatchIn instantiates a new FolderPatchIn object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewFolderPatchInWithDefaults
-
-`func NewFolderPatchInWithDefaults() *FolderPatchIn`
-
-NewFolderPatchInWithDefaults instantiates a new FolderPatchIn object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetDescription
-
-`func (o *FolderPatchIn) GetDescription() string`
-
-GetDescription returns the Description field if non-nil, zero value otherwise.
-
-### GetDescriptionOk
-
-`func (o *FolderPatchIn) GetDescriptionOk() (*string, bool)`
-
-GetDescriptionOk returns a tuple with the Description field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDescription
-
-`func (o *FolderPatchIn) SetDescription(v string)`
-
-SetDescription sets Description field to given value.
-
-### HasDescription
-
-`func (o *FolderPatchIn) HasDescription() bool`
-
-HasDescription returns a boolean if a field has been set.
-
-### SetDescriptionNil
-
-`func (o *FolderPatchIn) SetDescriptionNil(b bool)`
-
- SetDescriptionNil sets the value for Description to be an explicit nil
-
-### UnsetDescription
-`func (o *FolderPatchIn) UnsetDescription()`
-
-UnsetDescription ensures that no value is present for Description, not even an explicit nil
-### GetInheritGrants
-
-`func (o *FolderPatchIn) GetInheritGrants() bool`
-
-GetInheritGrants returns the InheritGrants field if non-nil, zero value otherwise.
-
-### GetInheritGrantsOk
-
-`func (o *FolderPatchIn) GetInheritGrantsOk() (*bool, bool)`
-
-GetInheritGrantsOk returns a tuple with the InheritGrants field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetInheritGrants
-
-`func (o *FolderPatchIn) SetInheritGrants(v bool)`
-
-SetInheritGrants sets InheritGrants field to given value.
-
-### HasInheritGrants
-
-`func (o *FolderPatchIn) HasInheritGrants() bool`
-
-HasInheritGrants returns a boolean if a field has been set.
-
-### SetInheritGrantsNil
-
-`func (o *FolderPatchIn) SetInheritGrantsNil(b bool)`
-
- SetInheritGrantsNil sets the value for InheritGrants to be an explicit nil
-
-### UnsetInheritGrants
-`func (o *FolderPatchIn) UnsetInheritGrants()`
-
-UnsetInheritGrants ensures that no value is present for InheritGrants, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/FolderRestoreOut.md b/sdk/go/docs/FolderRestoreOut.md
deleted file mode 100644
index 9447150..0000000
--- a/sdk/go/docs/FolderRestoreOut.md
+++ /dev/null
@@ -1,356 +0,0 @@
-# FolderRestoreOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**CreatedAt** | **time.Time** | |
-**DeletedAt** | Pointer to **NullableTime** | | [optional]
-**Description** | Pointer to **NullableString** | | [optional]
-**DriveId** | **string** | |
-**Etag** | **string** | |
-**Id** | **string** | |
-**InheritGrants** | Pointer to **bool** | | [optional] [default to true]
-**Metageneration** | Pointer to **int32** | | [optional] [default to 1]
-**NArtifactsRestored** | **int32** | |
-**NSubfoldersRestored** | **int32** | |
-**Path** | **string** | |
-**PurgeAt** | Pointer to **NullableTime** | | [optional]
-**UpdatedAt** | **time.Time** | |
-
-## Methods
-
-### NewFolderRestoreOut
-
-`func NewFolderRestoreOut(createdAt time.Time, driveId string, etag string, id string, nArtifactsRestored int32, nSubfoldersRestored int32, path string, updatedAt time.Time, ) *FolderRestoreOut`
-
-NewFolderRestoreOut instantiates a new FolderRestoreOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewFolderRestoreOutWithDefaults
-
-`func NewFolderRestoreOutWithDefaults() *FolderRestoreOut`
-
-NewFolderRestoreOutWithDefaults instantiates a new FolderRestoreOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetCreatedAt
-
-`func (o *FolderRestoreOut) GetCreatedAt() time.Time`
-
-GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
-
-### GetCreatedAtOk
-
-`func (o *FolderRestoreOut) GetCreatedAtOk() (*time.Time, bool)`
-
-GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCreatedAt
-
-`func (o *FolderRestoreOut) SetCreatedAt(v time.Time)`
-
-SetCreatedAt sets CreatedAt field to given value.
-
-
-### GetDeletedAt
-
-`func (o *FolderRestoreOut) GetDeletedAt() time.Time`
-
-GetDeletedAt returns the DeletedAt field if non-nil, zero value otherwise.
-
-### GetDeletedAtOk
-
-`func (o *FolderRestoreOut) GetDeletedAtOk() (*time.Time, bool)`
-
-GetDeletedAtOk returns a tuple with the DeletedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDeletedAt
-
-`func (o *FolderRestoreOut) SetDeletedAt(v time.Time)`
-
-SetDeletedAt sets DeletedAt field to given value.
-
-### HasDeletedAt
-
-`func (o *FolderRestoreOut) HasDeletedAt() bool`
-
-HasDeletedAt returns a boolean if a field has been set.
-
-### SetDeletedAtNil
-
-`func (o *FolderRestoreOut) SetDeletedAtNil(b bool)`
-
- SetDeletedAtNil sets the value for DeletedAt to be an explicit nil
-
-### UnsetDeletedAt
-`func (o *FolderRestoreOut) UnsetDeletedAt()`
-
-UnsetDeletedAt ensures that no value is present for DeletedAt, not even an explicit nil
-### GetDescription
-
-`func (o *FolderRestoreOut) GetDescription() string`
-
-GetDescription returns the Description field if non-nil, zero value otherwise.
-
-### GetDescriptionOk
-
-`func (o *FolderRestoreOut) GetDescriptionOk() (*string, bool)`
-
-GetDescriptionOk returns a tuple with the Description field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDescription
-
-`func (o *FolderRestoreOut) SetDescription(v string)`
-
-SetDescription sets Description field to given value.
-
-### HasDescription
-
-`func (o *FolderRestoreOut) HasDescription() bool`
-
-HasDescription returns a boolean if a field has been set.
-
-### SetDescriptionNil
-
-`func (o *FolderRestoreOut) SetDescriptionNil(b bool)`
-
- SetDescriptionNil sets the value for Description to be an explicit nil
-
-### UnsetDescription
-`func (o *FolderRestoreOut) UnsetDescription()`
-
-UnsetDescription ensures that no value is present for Description, not even an explicit nil
-### GetDriveId
-
-`func (o *FolderRestoreOut) GetDriveId() string`
-
-GetDriveId returns the DriveId field if non-nil, zero value otherwise.
-
-### GetDriveIdOk
-
-`func (o *FolderRestoreOut) GetDriveIdOk() (*string, bool)`
-
-GetDriveIdOk returns a tuple with the DriveId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDriveId
-
-`func (o *FolderRestoreOut) SetDriveId(v string)`
-
-SetDriveId sets DriveId field to given value.
-
-
-### GetEtag
-
-`func (o *FolderRestoreOut) GetEtag() string`
-
-GetEtag returns the Etag field if non-nil, zero value otherwise.
-
-### GetEtagOk
-
-`func (o *FolderRestoreOut) GetEtagOk() (*string, bool)`
-
-GetEtagOk returns a tuple with the Etag field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEtag
-
-`func (o *FolderRestoreOut) SetEtag(v string)`
-
-SetEtag sets Etag field to given value.
-
-
-### GetId
-
-`func (o *FolderRestoreOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *FolderRestoreOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *FolderRestoreOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetInheritGrants
-
-`func (o *FolderRestoreOut) GetInheritGrants() bool`
-
-GetInheritGrants returns the InheritGrants field if non-nil, zero value otherwise.
-
-### GetInheritGrantsOk
-
-`func (o *FolderRestoreOut) GetInheritGrantsOk() (*bool, bool)`
-
-GetInheritGrantsOk returns a tuple with the InheritGrants field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetInheritGrants
-
-`func (o *FolderRestoreOut) SetInheritGrants(v bool)`
-
-SetInheritGrants sets InheritGrants field to given value.
-
-### HasInheritGrants
-
-`func (o *FolderRestoreOut) HasInheritGrants() bool`
-
-HasInheritGrants returns a boolean if a field has been set.
-
-### GetMetageneration
-
-`func (o *FolderRestoreOut) GetMetageneration() int32`
-
-GetMetageneration returns the Metageneration field if non-nil, zero value otherwise.
-
-### GetMetagenerationOk
-
-`func (o *FolderRestoreOut) GetMetagenerationOk() (*int32, bool)`
-
-GetMetagenerationOk returns a tuple with the Metageneration field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetMetageneration
-
-`func (o *FolderRestoreOut) SetMetageneration(v int32)`
-
-SetMetageneration sets Metageneration field to given value.
-
-### HasMetageneration
-
-`func (o *FolderRestoreOut) HasMetageneration() bool`
-
-HasMetageneration returns a boolean if a field has been set.
-
-### GetNArtifactsRestored
-
-`func (o *FolderRestoreOut) GetNArtifactsRestored() int32`
-
-GetNArtifactsRestored returns the NArtifactsRestored field if non-nil, zero value otherwise.
-
-### GetNArtifactsRestoredOk
-
-`func (o *FolderRestoreOut) GetNArtifactsRestoredOk() (*int32, bool)`
-
-GetNArtifactsRestoredOk returns a tuple with the NArtifactsRestored field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetNArtifactsRestored
-
-`func (o *FolderRestoreOut) SetNArtifactsRestored(v int32)`
-
-SetNArtifactsRestored sets NArtifactsRestored field to given value.
-
-
-### GetNSubfoldersRestored
-
-`func (o *FolderRestoreOut) GetNSubfoldersRestored() int32`
-
-GetNSubfoldersRestored returns the NSubfoldersRestored field if non-nil, zero value otherwise.
-
-### GetNSubfoldersRestoredOk
-
-`func (o *FolderRestoreOut) GetNSubfoldersRestoredOk() (*int32, bool)`
-
-GetNSubfoldersRestoredOk returns a tuple with the NSubfoldersRestored field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetNSubfoldersRestored
-
-`func (o *FolderRestoreOut) SetNSubfoldersRestored(v int32)`
-
-SetNSubfoldersRestored sets NSubfoldersRestored field to given value.
-
-
-### GetPath
-
-`func (o *FolderRestoreOut) GetPath() string`
-
-GetPath returns the Path field if non-nil, zero value otherwise.
-
-### GetPathOk
-
-`func (o *FolderRestoreOut) GetPathOk() (*string, bool)`
-
-GetPathOk returns a tuple with the Path field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPath
-
-`func (o *FolderRestoreOut) SetPath(v string)`
-
-SetPath sets Path field to given value.
-
-
-### GetPurgeAt
-
-`func (o *FolderRestoreOut) GetPurgeAt() time.Time`
-
-GetPurgeAt returns the PurgeAt field if non-nil, zero value otherwise.
-
-### GetPurgeAtOk
-
-`func (o *FolderRestoreOut) GetPurgeAtOk() (*time.Time, bool)`
-
-GetPurgeAtOk returns a tuple with the PurgeAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPurgeAt
-
-`func (o *FolderRestoreOut) SetPurgeAt(v time.Time)`
-
-SetPurgeAt sets PurgeAt field to given value.
-
-### HasPurgeAt
-
-`func (o *FolderRestoreOut) HasPurgeAt() bool`
-
-HasPurgeAt returns a boolean if a field has been set.
-
-### SetPurgeAtNil
-
-`func (o *FolderRestoreOut) SetPurgeAtNil(b bool)`
-
- SetPurgeAtNil sets the value for PurgeAt to be an explicit nil
-
-### UnsetPurgeAt
-`func (o *FolderRestoreOut) UnsetPurgeAt()`
-
-UnsetPurgeAt ensures that no value is present for PurgeAt, not even an explicit nil
-### GetUpdatedAt
-
-`func (o *FolderRestoreOut) GetUpdatedAt() time.Time`
-
-GetUpdatedAt returns the UpdatedAt field if non-nil, zero value otherwise.
-
-### GetUpdatedAtOk
-
-`func (o *FolderRestoreOut) GetUpdatedAtOk() (*time.Time, bool)`
-
-GetUpdatedAtOk returns a tuple with the UpdatedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetUpdatedAt
-
-`func (o *FolderRestoreOut) SetUpdatedAt(v time.Time)`
-
-SetUpdatedAt sets UpdatedAt field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/FolderUpdateIn.md b/sdk/go/docs/FolderUpdateIn.md
new file mode 100644
index 0000000..eb98029
--- /dev/null
+++ b/sdk/go/docs/FolderUpdateIn.md
@@ -0,0 +1,172 @@
+# FolderUpdateIn
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**GrantInheritance** | Pointer to **NullableString** | | [optional]
+**Metadata** | Pointer to **map[string]interface{}** | | [optional]
+**Name** | Pointer to **NullableString** | | [optional]
+**ParentId** | Pointer to **NullableString** | | [optional]
+
+## Methods
+
+### NewFolderUpdateIn
+
+`func NewFolderUpdateIn() *FolderUpdateIn`
+
+NewFolderUpdateIn instantiates a new FolderUpdateIn object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewFolderUpdateInWithDefaults
+
+`func NewFolderUpdateInWithDefaults() *FolderUpdateIn`
+
+NewFolderUpdateInWithDefaults instantiates a new FolderUpdateIn object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetGrantInheritance
+
+`func (o *FolderUpdateIn) GetGrantInheritance() string`
+
+GetGrantInheritance returns the GrantInheritance field if non-nil, zero value otherwise.
+
+### GetGrantInheritanceOk
+
+`func (o *FolderUpdateIn) GetGrantInheritanceOk() (*string, bool)`
+
+GetGrantInheritanceOk returns a tuple with the GrantInheritance field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetGrantInheritance
+
+`func (o *FolderUpdateIn) SetGrantInheritance(v string)`
+
+SetGrantInheritance sets GrantInheritance field to given value.
+
+### HasGrantInheritance
+
+`func (o *FolderUpdateIn) HasGrantInheritance() bool`
+
+HasGrantInheritance returns a boolean if a field has been set.
+
+### SetGrantInheritanceNil
+
+`func (o *FolderUpdateIn) SetGrantInheritanceNil(b bool)`
+
+ SetGrantInheritanceNil sets the value for GrantInheritance to be an explicit nil
+
+### UnsetGrantInheritance
+`func (o *FolderUpdateIn) UnsetGrantInheritance()`
+
+UnsetGrantInheritance ensures that no value is present for GrantInheritance, not even an explicit nil
+### GetMetadata
+
+`func (o *FolderUpdateIn) GetMetadata() map[string]interface{}`
+
+GetMetadata returns the Metadata field if non-nil, zero value otherwise.
+
+### GetMetadataOk
+
+`func (o *FolderUpdateIn) GetMetadataOk() (*map[string]interface{}, bool)`
+
+GetMetadataOk returns a tuple with the Metadata field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetMetadata
+
+`func (o *FolderUpdateIn) SetMetadata(v map[string]interface{})`
+
+SetMetadata sets Metadata field to given value.
+
+### HasMetadata
+
+`func (o *FolderUpdateIn) HasMetadata() bool`
+
+HasMetadata returns a boolean if a field has been set.
+
+### SetMetadataNil
+
+`func (o *FolderUpdateIn) SetMetadataNil(b bool)`
+
+ SetMetadataNil sets the value for Metadata to be an explicit nil
+
+### UnsetMetadata
+`func (o *FolderUpdateIn) UnsetMetadata()`
+
+UnsetMetadata ensures that no value is present for Metadata, not even an explicit nil
+### GetName
+
+`func (o *FolderUpdateIn) GetName() string`
+
+GetName returns the Name field if non-nil, zero value otherwise.
+
+### GetNameOk
+
+`func (o *FolderUpdateIn) GetNameOk() (*string, bool)`
+
+GetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetName
+
+`func (o *FolderUpdateIn) SetName(v string)`
+
+SetName sets Name field to given value.
+
+### HasName
+
+`func (o *FolderUpdateIn) HasName() bool`
+
+HasName returns a boolean if a field has been set.
+
+### SetNameNil
+
+`func (o *FolderUpdateIn) SetNameNil(b bool)`
+
+ SetNameNil sets the value for Name to be an explicit nil
+
+### UnsetName
+`func (o *FolderUpdateIn) UnsetName()`
+
+UnsetName ensures that no value is present for Name, not even an explicit nil
+### GetParentId
+
+`func (o *FolderUpdateIn) GetParentId() string`
+
+GetParentId returns the ParentId field if non-nil, zero value otherwise.
+
+### GetParentIdOk
+
+`func (o *FolderUpdateIn) GetParentIdOk() (*string, bool)`
+
+GetParentIdOk returns a tuple with the ParentId field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetParentId
+
+`func (o *FolderUpdateIn) SetParentId(v string)`
+
+SetParentId sets ParentId field to given value.
+
+### HasParentId
+
+`func (o *FolderUpdateIn) HasParentId() bool`
+
+HasParentId returns a boolean if a field has been set.
+
+### SetParentIdNil
+
+`func (o *FolderUpdateIn) SetParentIdNil(b bool)`
+
+ SetParentIdNil sets the value for ParentId to be an explicit nil
+
+### UnsetParentId
+`func (o *FolderUpdateIn) UnsetParentId()`
+
+UnsetParentId ensures that no value is present for ParentId, not even an explicit nil
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/FoldersAPI.md b/sdk/go/docs/FoldersAPI.md
new file mode 100644
index 0000000..5bb0441
--- /dev/null
+++ b/sdk/go/docs/FoldersAPI.md
@@ -0,0 +1,571 @@
+# \FoldersAPI
+
+All URIs are relative to *https://api.agentdrive.run*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**FoldersCopy**](FoldersAPI.md#FoldersCopy) | **Post** /v0/drives/{drive_id}/folders/{folder_id}/copy | Copy Folder
+[**FoldersCreate**](FoldersAPI.md#FoldersCreate) | **Post** /v0/drives/{drive_id}/folders | Create Folder
+[**FoldersDelete**](FoldersAPI.md#FoldersDelete) | **Delete** /v0/drives/{drive_id}/folders/{folder_id} | Delete Folder
+[**FoldersList**](FoldersAPI.md#FoldersList) | **Get** /v0/drives/{drive_id}/folders | List Folders
+[**FoldersRead**](FoldersAPI.md#FoldersRead) | **Get** /v0/drives/{drive_id}/folders/{folder_id} | Read Folder
+[**FoldersRestore**](FoldersAPI.md#FoldersRestore) | **Post** /v0/drives/{drive_id}/folders/{folder_id}/restore | Restore Folder
+[**FoldersUpdate**](FoldersAPI.md#FoldersUpdate) | **Patch** /v0/drives/{drive_id}/folders/{folder_id} | Update Folder
+
+
+
+## FoldersCopy
+
+> FolderOut FoldersCopy(ctx, driveId, folderId).IdempotencyKey(idempotencyKey).FolderCopyIn(folderCopyIn).IfMatch(ifMatch).Authorization(authorization).Execute()
+
+Copy Folder
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ folderId := "folderId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ folderCopyIn := *openapiclient.NewFolderCopyIn("DestinationName_example", "DestinationParentId_example") // FolderCopyIn |
+ ifMatch := "ifMatch_example" // string | (optional)
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.FoldersAPI.FoldersCopy(context.Background(), driveId, folderId).IdempotencyKey(idempotencyKey).FolderCopyIn(folderCopyIn).IfMatch(ifMatch).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `FoldersAPI.FoldersCopy``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `FoldersCopy`: FolderOut
+ fmt.Fprintf(os.Stdout, "Response from `FoldersAPI.FoldersCopy`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**folderId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiFoldersCopyRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **idempotencyKey** | **string** | |
+ **folderCopyIn** | [**FolderCopyIn**](FolderCopyIn.md) | |
+ **ifMatch** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**FolderOut**](FolderOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## FoldersCreate
+
+> FolderOut FoldersCreate(ctx, driveId).IdempotencyKey(idempotencyKey).FolderCreateIn(folderCreateIn).Authorization(authorization).Execute()
+
+Create Folder
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ folderCreateIn := *openapiclient.NewFolderCreateIn("Name_example", "ParentId_example") // FolderCreateIn |
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.FoldersAPI.FoldersCreate(context.Background(), driveId).IdempotencyKey(idempotencyKey).FolderCreateIn(folderCreateIn).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `FoldersAPI.FoldersCreate``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `FoldersCreate`: FolderOut
+ fmt.Fprintf(os.Stdout, "Response from `FoldersAPI.FoldersCreate`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiFoldersCreateRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+ **idempotencyKey** | **string** | |
+ **folderCreateIn** | [**FolderCreateIn**](FolderCreateIn.md) | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**FolderOut**](FolderOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## FoldersDelete
+
+> FolderCascadeOut FoldersDelete(ctx, driveId, folderId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Recursive(recursive).Authorization(authorization).Execute()
+
+Delete Folder
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ folderId := "folderId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ ifMatch := "ifMatch_example" // string |
+ recursive := true // bool | (optional) (default to false)
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.FoldersAPI.FoldersDelete(context.Background(), driveId, folderId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Recursive(recursive).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `FoldersAPI.FoldersDelete``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `FoldersDelete`: FolderCascadeOut
+ fmt.Fprintf(os.Stdout, "Response from `FoldersAPI.FoldersDelete`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**folderId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiFoldersDeleteRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **idempotencyKey** | **string** | |
+ **ifMatch** | **string** | |
+ **recursive** | **bool** | | [default to false]
+ **authorization** | **string** | |
+
+### Return type
+
+[**FolderCascadeOut**](FolderCascadeOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## FoldersList
+
+> FolderListOut FoldersList(ctx, driveId).Lifecycle(lifecycle).Limit(limit).Cursor(cursor).ParentId(parentId).Name(name).Authorization(authorization).Execute()
+
+List Folders
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ lifecycle := "lifecycle_example" // string | (optional) (default to "active")
+ limit := int32(56) // int32 | (optional)
+ cursor := "cursor_example" // string | (optional)
+ parentId := "parentId_example" // string | (optional)
+ name := "name_example" // string | (optional)
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.FoldersAPI.FoldersList(context.Background(), driveId).Lifecycle(lifecycle).Limit(limit).Cursor(cursor).ParentId(parentId).Name(name).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `FoldersAPI.FoldersList``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `FoldersList`: FolderListOut
+ fmt.Fprintf(os.Stdout, "Response from `FoldersAPI.FoldersList`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiFoldersListRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+ **lifecycle** | **string** | | [default to "active"]
+ **limit** | **int32** | |
+ **cursor** | **string** | |
+ **parentId** | **string** | |
+ **name** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**FolderListOut**](FolderListOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## FoldersRead
+
+> FolderOut FoldersRead(ctx, driveId, folderId).IfNoneMatch(ifNoneMatch).Authorization(authorization).Execute()
+
+Read Folder
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ folderId := "folderId_example" // string |
+ ifNoneMatch := "ifNoneMatch_example" // string | (optional)
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.FoldersAPI.FoldersRead(context.Background(), driveId, folderId).IfNoneMatch(ifNoneMatch).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `FoldersAPI.FoldersRead``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `FoldersRead`: FolderOut
+ fmt.Fprintf(os.Stdout, "Response from `FoldersAPI.FoldersRead`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**folderId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiFoldersReadRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **ifNoneMatch** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**FolderOut**](FolderOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## FoldersRestore
+
+> FolderCascadeOut FoldersRestore(ctx, driveId, folderId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Authorization(authorization).Execute()
+
+Restore Folder
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ folderId := "folderId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ ifMatch := "ifMatch_example" // string |
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.FoldersAPI.FoldersRestore(context.Background(), driveId, folderId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `FoldersAPI.FoldersRestore``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `FoldersRestore`: FolderCascadeOut
+ fmt.Fprintf(os.Stdout, "Response from `FoldersAPI.FoldersRestore`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**folderId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiFoldersRestoreRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **idempotencyKey** | **string** | |
+ **ifMatch** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**FolderCascadeOut**](FolderCascadeOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## FoldersUpdate
+
+> FolderOut FoldersUpdate(ctx, driveId, folderId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).FolderUpdateIn(folderUpdateIn).Authorization(authorization).Execute()
+
+Update Folder
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ folderId := "folderId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ ifMatch := "ifMatch_example" // string |
+ folderUpdateIn := *openapiclient.NewFolderUpdateIn() // FolderUpdateIn |
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.FoldersAPI.FoldersUpdate(context.Background(), driveId, folderId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).FolderUpdateIn(folderUpdateIn).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `FoldersAPI.FoldersUpdate``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `FoldersUpdate`: FolderOut
+ fmt.Fprintf(os.Stdout, "Response from `FoldersAPI.FoldersUpdate`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**folderId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiFoldersUpdateRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **idempotencyKey** | **string** | |
+ **ifMatch** | **string** | |
+ **folderUpdateIn** | [**FolderUpdateIn**](FolderUpdateIn.md) | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**FolderOut**](FolderOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
diff --git a/sdk/go/docs/GrantCreateIn.md b/sdk/go/docs/GrantCreateIn.md
index 5d90665..1058c77 100644
--- a/sdk/go/docs/GrantCreateIn.md
+++ b/sdk/go/docs/GrantCreateIn.md
@@ -4,16 +4,18 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**ExpiresIn** | Pointer to **NullableInt32** | | [optional]
-**Principal** | [**GrantPrincipalIn**](GrantPrincipalIn.md) | |
-**Resource** | **string** | |
+**ExpiresAt** | Pointer to **NullableTime** | | [optional]
+**PrincipalId** | Pointer to **NullableString** | | [optional]
+**PrincipalType** | **string** | |
+**ResourceId** | **string** | |
+**ResourceType** | **string** | |
**Role** | **string** | |
## Methods
### NewGrantCreateIn
-`func NewGrantCreateIn(principal GrantPrincipalIn, resource string, role string, ) *GrantCreateIn`
+`func NewGrantCreateIn(principalType string, resourceId string, resourceType string, role string, ) *GrantCreateIn`
NewGrantCreateIn instantiates a new GrantCreateIn object
This constructor will assign default values to properties that have it defined,
@@ -28,79 +30,134 @@ NewGrantCreateInWithDefaults instantiates a new GrantCreateIn object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
-### GetExpiresIn
+### GetExpiresAt
-`func (o *GrantCreateIn) GetExpiresIn() int32`
+`func (o *GrantCreateIn) GetExpiresAt() time.Time`
-GetExpiresIn returns the ExpiresIn field if non-nil, zero value otherwise.
+GetExpiresAt returns the ExpiresAt field if non-nil, zero value otherwise.
-### GetExpiresInOk
+### GetExpiresAtOk
-`func (o *GrantCreateIn) GetExpiresInOk() (*int32, bool)`
+`func (o *GrantCreateIn) GetExpiresAtOk() (*time.Time, bool)`
-GetExpiresInOk returns a tuple with the ExpiresIn field if it's non-nil, zero value otherwise
+GetExpiresAtOk returns a tuple with the ExpiresAt field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetExpiresIn
+### SetExpiresAt
-`func (o *GrantCreateIn) SetExpiresIn(v int32)`
+`func (o *GrantCreateIn) SetExpiresAt(v time.Time)`
-SetExpiresIn sets ExpiresIn field to given value.
+SetExpiresAt sets ExpiresAt field to given value.
-### HasExpiresIn
+### HasExpiresAt
-`func (o *GrantCreateIn) HasExpiresIn() bool`
+`func (o *GrantCreateIn) HasExpiresAt() bool`
-HasExpiresIn returns a boolean if a field has been set.
+HasExpiresAt returns a boolean if a field has been set.
-### SetExpiresInNil
+### SetExpiresAtNil
-`func (o *GrantCreateIn) SetExpiresInNil(b bool)`
+`func (o *GrantCreateIn) SetExpiresAtNil(b bool)`
- SetExpiresInNil sets the value for ExpiresIn to be an explicit nil
+ SetExpiresAtNil sets the value for ExpiresAt to be an explicit nil
-### UnsetExpiresIn
-`func (o *GrantCreateIn) UnsetExpiresIn()`
+### UnsetExpiresAt
+`func (o *GrantCreateIn) UnsetExpiresAt()`
-UnsetExpiresIn ensures that no value is present for ExpiresIn, not even an explicit nil
-### GetPrincipal
+UnsetExpiresAt ensures that no value is present for ExpiresAt, not even an explicit nil
+### GetPrincipalId
-`func (o *GrantCreateIn) GetPrincipal() GrantPrincipalIn`
+`func (o *GrantCreateIn) GetPrincipalId() string`
-GetPrincipal returns the Principal field if non-nil, zero value otherwise.
+GetPrincipalId returns the PrincipalId field if non-nil, zero value otherwise.
-### GetPrincipalOk
+### GetPrincipalIdOk
-`func (o *GrantCreateIn) GetPrincipalOk() (*GrantPrincipalIn, bool)`
+`func (o *GrantCreateIn) GetPrincipalIdOk() (*string, bool)`
-GetPrincipalOk returns a tuple with the Principal field if it's non-nil, zero value otherwise
+GetPrincipalIdOk returns a tuple with the PrincipalId field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetPrincipal
+### SetPrincipalId
-`func (o *GrantCreateIn) SetPrincipal(v GrantPrincipalIn)`
+`func (o *GrantCreateIn) SetPrincipalId(v string)`
-SetPrincipal sets Principal field to given value.
+SetPrincipalId sets PrincipalId field to given value.
+### HasPrincipalId
-### GetResource
+`func (o *GrantCreateIn) HasPrincipalId() bool`
-`func (o *GrantCreateIn) GetResource() string`
+HasPrincipalId returns a boolean if a field has been set.
-GetResource returns the Resource field if non-nil, zero value otherwise.
+### SetPrincipalIdNil
-### GetResourceOk
+`func (o *GrantCreateIn) SetPrincipalIdNil(b bool)`
-`func (o *GrantCreateIn) GetResourceOk() (*string, bool)`
+ SetPrincipalIdNil sets the value for PrincipalId to be an explicit nil
-GetResourceOk returns a tuple with the Resource field if it's non-nil, zero value otherwise
+### UnsetPrincipalId
+`func (o *GrantCreateIn) UnsetPrincipalId()`
+
+UnsetPrincipalId ensures that no value is present for PrincipalId, not even an explicit nil
+### GetPrincipalType
+
+`func (o *GrantCreateIn) GetPrincipalType() string`
+
+GetPrincipalType returns the PrincipalType field if non-nil, zero value otherwise.
+
+### GetPrincipalTypeOk
+
+`func (o *GrantCreateIn) GetPrincipalTypeOk() (*string, bool)`
+
+GetPrincipalTypeOk returns a tuple with the PrincipalType field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetPrincipalType
+
+`func (o *GrantCreateIn) SetPrincipalType(v string)`
+
+SetPrincipalType sets PrincipalType field to given value.
+
+
+### GetResourceId
+
+`func (o *GrantCreateIn) GetResourceId() string`
+
+GetResourceId returns the ResourceId field if non-nil, zero value otherwise.
+
+### GetResourceIdOk
+
+`func (o *GrantCreateIn) GetResourceIdOk() (*string, bool)`
+
+GetResourceIdOk returns a tuple with the ResourceId field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetResourceId
+
+`func (o *GrantCreateIn) SetResourceId(v string)`
+
+SetResourceId sets ResourceId field to given value.
+
+
+### GetResourceType
+
+`func (o *GrantCreateIn) GetResourceType() string`
+
+GetResourceType returns the ResourceType field if non-nil, zero value otherwise.
+
+### GetResourceTypeOk
+
+`func (o *GrantCreateIn) GetResourceTypeOk() (*string, bool)`
+
+GetResourceTypeOk returns a tuple with the ResourceType field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetResource
+### SetResourceType
-`func (o *GrantCreateIn) SetResource(v string)`
+`func (o *GrantCreateIn) SetResourceType(v string)`
-SetResource sets Resource field to given value.
+SetResourceType sets ResourceType field to given value.
### GetRole
diff --git a/sdk/go/docs/GrantList.md b/sdk/go/docs/GrantList.md
deleted file mode 100644
index f498f3b..0000000
--- a/sdk/go/docs/GrantList.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# GrantList
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Items** | [**[]GrantOut**](GrantOut.md) | |
-**NextCursor** | Pointer to **NullableString** | | [optional]
-
-## Methods
-
-### NewGrantList
-
-`func NewGrantList(items []GrantOut, ) *GrantList`
-
-NewGrantList instantiates a new GrantList object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewGrantListWithDefaults
-
-`func NewGrantListWithDefaults() *GrantList`
-
-NewGrantListWithDefaults instantiates a new GrantList object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetItems
-
-`func (o *GrantList) GetItems() []GrantOut`
-
-GetItems returns the Items field if non-nil, zero value otherwise.
-
-### GetItemsOk
-
-`func (o *GrantList) GetItemsOk() (*[]GrantOut, bool)`
-
-GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetItems
-
-`func (o *GrantList) SetItems(v []GrantOut)`
-
-SetItems sets Items field to given value.
-
-
-### GetNextCursor
-
-`func (o *GrantList) GetNextCursor() string`
-
-GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
-
-### GetNextCursorOk
-
-`func (o *GrantList) GetNextCursorOk() (*string, bool)`
-
-GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetNextCursor
-
-`func (o *GrantList) SetNextCursor(v string)`
-
-SetNextCursor sets NextCursor field to given value.
-
-### HasNextCursor
-
-`func (o *GrantList) HasNextCursor() bool`
-
-HasNextCursor returns a boolean if a field has been set.
-
-### SetNextCursorNil
-
-`func (o *GrantList) SetNextCursorNil(b bool)`
-
- SetNextCursorNil sets the value for NextCursor to be an explicit nil
-
-### UnsetNextCursor
-`func (o *GrantList) UnsetNextCursor()`
-
-UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/GrantListOut.md b/sdk/go/docs/GrantListOut.md
new file mode 100644
index 0000000..00a6a96
--- /dev/null
+++ b/sdk/go/docs/GrantListOut.md
@@ -0,0 +1,80 @@
+# GrantListOut
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Items** | [**[]GrantOut**](GrantOut.md) | |
+**NextCursor** | **NullableString** | |
+
+## Methods
+
+### NewGrantListOut
+
+`func NewGrantListOut(items []GrantOut, nextCursor NullableString, ) *GrantListOut`
+
+NewGrantListOut instantiates a new GrantListOut object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewGrantListOutWithDefaults
+
+`func NewGrantListOutWithDefaults() *GrantListOut`
+
+NewGrantListOutWithDefaults instantiates a new GrantListOut object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetItems
+
+`func (o *GrantListOut) GetItems() []GrantOut`
+
+GetItems returns the Items field if non-nil, zero value otherwise.
+
+### GetItemsOk
+
+`func (o *GrantListOut) GetItemsOk() (*[]GrantOut, bool)`
+
+GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetItems
+
+`func (o *GrantListOut) SetItems(v []GrantOut)`
+
+SetItems sets Items field to given value.
+
+
+### GetNextCursor
+
+`func (o *GrantListOut) GetNextCursor() string`
+
+GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
+
+### GetNextCursorOk
+
+`func (o *GrantListOut) GetNextCursorOk() (*string, bool)`
+
+GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetNextCursor
+
+`func (o *GrantListOut) SetNextCursor(v string)`
+
+SetNextCursor sets NextCursor field to given value.
+
+
+### SetNextCursorNil
+
+`func (o *GrantListOut) SetNextCursorNil(b bool)`
+
+ SetNextCursorNil sets the value for NextCursor to be an explicit nil
+
+### UnsetNextCursor
+`func (o *GrantListOut) UnsetNextCursor()`
+
+UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/GrantOut.md b/sdk/go/docs/GrantOut.md
index 26d2674..3857e55 100644
--- a/sdk/go/docs/GrantOut.md
+++ b/sdk/go/docs/GrantOut.md
@@ -4,25 +4,24 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**ArtifactsAffected** | Pointer to **NullableInt32** | | [optional]
**CreatedAt** | **time.Time** | |
-**ExpiresAt** | Pointer to **NullableTime** | | [optional]
-**GrantedById** | **string** | |
-**GrantedByType** | **string** | |
+**DriveId** | **string** | |
+**ExpiresAt** | **NullableTime** | |
**Id** | **string** | |
-**OnBehalfOf** | Pointer to **NullableString** | | [optional]
-**PrincipalEmail** | Pointer to **NullableString** | | [optional]
-**PrincipalId** | Pointer to **NullableString** | | [optional]
+**PrincipalId** | **NullableString** | |
**PrincipalType** | **string** | |
**ResourceId** | **string** | |
**ResourceType** | **string** | |
+**Revision** | **string** | |
+**RevokedAt** | **NullableTime** | |
**Role** | **string** | |
+**State** | **string** | |
## Methods
### NewGrantOut
-`func NewGrantOut(createdAt time.Time, grantedById string, grantedByType string, id string, principalType string, resourceId string, resourceType string, role string, ) *GrantOut`
+`func NewGrantOut(createdAt time.Time, driveId string, expiresAt NullableTime, id string, principalId NullableString, principalType string, resourceId string, resourceType string, revision string, revokedAt NullableTime, role string, state string, ) *GrantOut`
NewGrantOut instantiates a new GrantOut object
This constructor will assign default values to properties that have it defined,
@@ -37,59 +36,44 @@ NewGrantOutWithDefaults instantiates a new GrantOut object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
-### GetArtifactsAffected
+### GetCreatedAt
-`func (o *GrantOut) GetArtifactsAffected() int32`
+`func (o *GrantOut) GetCreatedAt() time.Time`
-GetArtifactsAffected returns the ArtifactsAffected field if non-nil, zero value otherwise.
+GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
-### GetArtifactsAffectedOk
+### GetCreatedAtOk
-`func (o *GrantOut) GetArtifactsAffectedOk() (*int32, bool)`
+`func (o *GrantOut) GetCreatedAtOk() (*time.Time, bool)`
-GetArtifactsAffectedOk returns a tuple with the ArtifactsAffected field if it's non-nil, zero value otherwise
+GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetArtifactsAffected
-
-`func (o *GrantOut) SetArtifactsAffected(v int32)`
-
-SetArtifactsAffected sets ArtifactsAffected field to given value.
-
-### HasArtifactsAffected
-
-`func (o *GrantOut) HasArtifactsAffected() bool`
+### SetCreatedAt
-HasArtifactsAffected returns a boolean if a field has been set.
+`func (o *GrantOut) SetCreatedAt(v time.Time)`
-### SetArtifactsAffectedNil
+SetCreatedAt sets CreatedAt field to given value.
-`func (o *GrantOut) SetArtifactsAffectedNil(b bool)`
- SetArtifactsAffectedNil sets the value for ArtifactsAffected to be an explicit nil
+### GetDriveId
-### UnsetArtifactsAffected
-`func (o *GrantOut) UnsetArtifactsAffected()`
+`func (o *GrantOut) GetDriveId() string`
-UnsetArtifactsAffected ensures that no value is present for ArtifactsAffected, not even an explicit nil
-### GetCreatedAt
+GetDriveId returns the DriveId field if non-nil, zero value otherwise.
-`func (o *GrantOut) GetCreatedAt() time.Time`
+### GetDriveIdOk
-GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
+`func (o *GrantOut) GetDriveIdOk() (*string, bool)`
-### GetCreatedAtOk
-
-`func (o *GrantOut) GetCreatedAtOk() (*time.Time, bool)`
-
-GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
+GetDriveIdOk returns a tuple with the DriveId field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetCreatedAt
+### SetDriveId
-`func (o *GrantOut) SetCreatedAt(v time.Time)`
+`func (o *GrantOut) SetDriveId(v string)`
-SetCreatedAt sets CreatedAt field to given value.
+SetDriveId sets DriveId field to given value.
### GetExpiresAt
@@ -111,11 +95,6 @@ and a boolean to check if the value has been set.
SetExpiresAt sets ExpiresAt field to given value.
-### HasExpiresAt
-
-`func (o *GrantOut) HasExpiresAt() bool`
-
-HasExpiresAt returns a boolean if a field has been set.
### SetExpiresAtNil
@@ -127,46 +106,6 @@ HasExpiresAt returns a boolean if a field has been set.
`func (o *GrantOut) UnsetExpiresAt()`
UnsetExpiresAt ensures that no value is present for ExpiresAt, not even an explicit nil
-### GetGrantedById
-
-`func (o *GrantOut) GetGrantedById() string`
-
-GetGrantedById returns the GrantedById field if non-nil, zero value otherwise.
-
-### GetGrantedByIdOk
-
-`func (o *GrantOut) GetGrantedByIdOk() (*string, bool)`
-
-GetGrantedByIdOk returns a tuple with the GrantedById field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetGrantedById
-
-`func (o *GrantOut) SetGrantedById(v string)`
-
-SetGrantedById sets GrantedById field to given value.
-
-
-### GetGrantedByType
-
-`func (o *GrantOut) GetGrantedByType() string`
-
-GetGrantedByType returns the GrantedByType field if non-nil, zero value otherwise.
-
-### GetGrantedByTypeOk
-
-`func (o *GrantOut) GetGrantedByTypeOk() (*string, bool)`
-
-GetGrantedByTypeOk returns a tuple with the GrantedByType field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetGrantedByType
-
-`func (o *GrantOut) SetGrantedByType(v string)`
-
-SetGrantedByType sets GrantedByType field to given value.
-
-
### GetId
`func (o *GrantOut) GetId() string`
@@ -187,76 +126,6 @@ and a boolean to check if the value has been set.
SetId sets Id field to given value.
-### GetOnBehalfOf
-
-`func (o *GrantOut) GetOnBehalfOf() string`
-
-GetOnBehalfOf returns the OnBehalfOf field if non-nil, zero value otherwise.
-
-### GetOnBehalfOfOk
-
-`func (o *GrantOut) GetOnBehalfOfOk() (*string, bool)`
-
-GetOnBehalfOfOk returns a tuple with the OnBehalfOf field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetOnBehalfOf
-
-`func (o *GrantOut) SetOnBehalfOf(v string)`
-
-SetOnBehalfOf sets OnBehalfOf field to given value.
-
-### HasOnBehalfOf
-
-`func (o *GrantOut) HasOnBehalfOf() bool`
-
-HasOnBehalfOf returns a boolean if a field has been set.
-
-### SetOnBehalfOfNil
-
-`func (o *GrantOut) SetOnBehalfOfNil(b bool)`
-
- SetOnBehalfOfNil sets the value for OnBehalfOf to be an explicit nil
-
-### UnsetOnBehalfOf
-`func (o *GrantOut) UnsetOnBehalfOf()`
-
-UnsetOnBehalfOf ensures that no value is present for OnBehalfOf, not even an explicit nil
-### GetPrincipalEmail
-
-`func (o *GrantOut) GetPrincipalEmail() string`
-
-GetPrincipalEmail returns the PrincipalEmail field if non-nil, zero value otherwise.
-
-### GetPrincipalEmailOk
-
-`func (o *GrantOut) GetPrincipalEmailOk() (*string, bool)`
-
-GetPrincipalEmailOk returns a tuple with the PrincipalEmail field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPrincipalEmail
-
-`func (o *GrantOut) SetPrincipalEmail(v string)`
-
-SetPrincipalEmail sets PrincipalEmail field to given value.
-
-### HasPrincipalEmail
-
-`func (o *GrantOut) HasPrincipalEmail() bool`
-
-HasPrincipalEmail returns a boolean if a field has been set.
-
-### SetPrincipalEmailNil
-
-`func (o *GrantOut) SetPrincipalEmailNil(b bool)`
-
- SetPrincipalEmailNil sets the value for PrincipalEmail to be an explicit nil
-
-### UnsetPrincipalEmail
-`func (o *GrantOut) UnsetPrincipalEmail()`
-
-UnsetPrincipalEmail ensures that no value is present for PrincipalEmail, not even an explicit nil
### GetPrincipalId
`func (o *GrantOut) GetPrincipalId() string`
@@ -276,11 +145,6 @@ and a boolean to check if the value has been set.
SetPrincipalId sets PrincipalId field to given value.
-### HasPrincipalId
-
-`func (o *GrantOut) HasPrincipalId() bool`
-
-HasPrincipalId returns a boolean if a field has been set.
### SetPrincipalIdNil
@@ -352,6 +216,56 @@ and a boolean to check if the value has been set.
SetResourceType sets ResourceType field to given value.
+### GetRevision
+
+`func (o *GrantOut) GetRevision() string`
+
+GetRevision returns the Revision field if non-nil, zero value otherwise.
+
+### GetRevisionOk
+
+`func (o *GrantOut) GetRevisionOk() (*string, bool)`
+
+GetRevisionOk returns a tuple with the Revision field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetRevision
+
+`func (o *GrantOut) SetRevision(v string)`
+
+SetRevision sets Revision field to given value.
+
+
+### GetRevokedAt
+
+`func (o *GrantOut) GetRevokedAt() time.Time`
+
+GetRevokedAt returns the RevokedAt field if non-nil, zero value otherwise.
+
+### GetRevokedAtOk
+
+`func (o *GrantOut) GetRevokedAtOk() (*time.Time, bool)`
+
+GetRevokedAtOk returns a tuple with the RevokedAt field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetRevokedAt
+
+`func (o *GrantOut) SetRevokedAt(v time.Time)`
+
+SetRevokedAt sets RevokedAt field to given value.
+
+
+### SetRevokedAtNil
+
+`func (o *GrantOut) SetRevokedAtNil(b bool)`
+
+ SetRevokedAtNil sets the value for RevokedAt to be an explicit nil
+
+### UnsetRevokedAt
+`func (o *GrantOut) UnsetRevokedAt()`
+
+UnsetRevokedAt ensures that no value is present for RevokedAt, not even an explicit nil
### GetRole
`func (o *GrantOut) GetRole() string`
@@ -372,5 +286,25 @@ and a boolean to check if the value has been set.
SetRole sets Role field to given value.
+### GetState
+
+`func (o *GrantOut) GetState() string`
+
+GetState returns the State field if non-nil, zero value otherwise.
+
+### GetStateOk
+
+`func (o *GrantOut) GetStateOk() (*string, bool)`
+
+GetStateOk returns a tuple with the State field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetState
+
+`func (o *GrantOut) SetState(v string)`
+
+SetState sets State field to given value.
+
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/GrantPatchIn.md b/sdk/go/docs/GrantPatchIn.md
deleted file mode 100644
index b9e2357..0000000
--- a/sdk/go/docs/GrantPatchIn.md
+++ /dev/null
@@ -1,100 +0,0 @@
-# GrantPatchIn
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**ExpiresIn** | Pointer to **NullableInt32** | | [optional]
-**Role** | Pointer to **NullableString** | | [optional]
-
-## Methods
-
-### NewGrantPatchIn
-
-`func NewGrantPatchIn() *GrantPatchIn`
-
-NewGrantPatchIn instantiates a new GrantPatchIn object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewGrantPatchInWithDefaults
-
-`func NewGrantPatchInWithDefaults() *GrantPatchIn`
-
-NewGrantPatchInWithDefaults instantiates a new GrantPatchIn object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetExpiresIn
-
-`func (o *GrantPatchIn) GetExpiresIn() int32`
-
-GetExpiresIn returns the ExpiresIn field if non-nil, zero value otherwise.
-
-### GetExpiresInOk
-
-`func (o *GrantPatchIn) GetExpiresInOk() (*int32, bool)`
-
-GetExpiresInOk returns a tuple with the ExpiresIn field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetExpiresIn
-
-`func (o *GrantPatchIn) SetExpiresIn(v int32)`
-
-SetExpiresIn sets ExpiresIn field to given value.
-
-### HasExpiresIn
-
-`func (o *GrantPatchIn) HasExpiresIn() bool`
-
-HasExpiresIn returns a boolean if a field has been set.
-
-### SetExpiresInNil
-
-`func (o *GrantPatchIn) SetExpiresInNil(b bool)`
-
- SetExpiresInNil sets the value for ExpiresIn to be an explicit nil
-
-### UnsetExpiresIn
-`func (o *GrantPatchIn) UnsetExpiresIn()`
-
-UnsetExpiresIn ensures that no value is present for ExpiresIn, not even an explicit nil
-### GetRole
-
-`func (o *GrantPatchIn) GetRole() string`
-
-GetRole returns the Role field if non-nil, zero value otherwise.
-
-### GetRoleOk
-
-`func (o *GrantPatchIn) GetRoleOk() (*string, bool)`
-
-GetRoleOk returns a tuple with the Role field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRole
-
-`func (o *GrantPatchIn) SetRole(v string)`
-
-SetRole sets Role field to given value.
-
-### HasRole
-
-`func (o *GrantPatchIn) HasRole() bool`
-
-HasRole returns a boolean if a field has been set.
-
-### SetRoleNil
-
-`func (o *GrantPatchIn) SetRoleNil(b bool)`
-
- SetRoleNil sets the value for Role to be an explicit nil
-
-### UnsetRole
-`func (o *GrantPatchIn) UnsetRole()`
-
-UnsetRole ensures that no value is present for Role, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/GrantPrincipalIn.md b/sdk/go/docs/GrantPrincipalIn.md
deleted file mode 100644
index f29070d..0000000
--- a/sdk/go/docs/GrantPrincipalIn.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# GrantPrincipalIn
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Email** | Pointer to **NullableString** | | [optional]
-**Id** | Pointer to **NullableString** | | [optional]
-**Type** | **string** | |
-
-## Methods
-
-### NewGrantPrincipalIn
-
-`func NewGrantPrincipalIn(type_ string, ) *GrantPrincipalIn`
-
-NewGrantPrincipalIn instantiates a new GrantPrincipalIn object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewGrantPrincipalInWithDefaults
-
-`func NewGrantPrincipalInWithDefaults() *GrantPrincipalIn`
-
-NewGrantPrincipalInWithDefaults instantiates a new GrantPrincipalIn object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetEmail
-
-`func (o *GrantPrincipalIn) GetEmail() string`
-
-GetEmail returns the Email field if non-nil, zero value otherwise.
-
-### GetEmailOk
-
-`func (o *GrantPrincipalIn) GetEmailOk() (*string, bool)`
-
-GetEmailOk returns a tuple with the Email field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEmail
-
-`func (o *GrantPrincipalIn) SetEmail(v string)`
-
-SetEmail sets Email field to given value.
-
-### HasEmail
-
-`func (o *GrantPrincipalIn) HasEmail() bool`
-
-HasEmail returns a boolean if a field has been set.
-
-### SetEmailNil
-
-`func (o *GrantPrincipalIn) SetEmailNil(b bool)`
-
- SetEmailNil sets the value for Email to be an explicit nil
-
-### UnsetEmail
-`func (o *GrantPrincipalIn) UnsetEmail()`
-
-UnsetEmail ensures that no value is present for Email, not even an explicit nil
-### GetId
-
-`func (o *GrantPrincipalIn) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *GrantPrincipalIn) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *GrantPrincipalIn) SetId(v string)`
-
-SetId sets Id field to given value.
-
-### HasId
-
-`func (o *GrantPrincipalIn) HasId() bool`
-
-HasId returns a boolean if a field has been set.
-
-### SetIdNil
-
-`func (o *GrantPrincipalIn) SetIdNil(b bool)`
-
- SetIdNil sets the value for Id to be an explicit nil
-
-### UnsetId
-`func (o *GrantPrincipalIn) UnsetId()`
-
-UnsetId ensures that no value is present for Id, not even an explicit nil
-### GetType
-
-`func (o *GrantPrincipalIn) GetType() string`
-
-GetType returns the Type field if non-nil, zero value otherwise.
-
-### GetTypeOk
-
-`func (o *GrantPrincipalIn) GetTypeOk() (*string, bool)`
-
-GetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetType
-
-`func (o *GrantPrincipalIn) SetType(v string)`
-
-SetType sets Type field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/GrantUpdateIn.md b/sdk/go/docs/GrantUpdateIn.md
new file mode 100644
index 0000000..cabca6f
--- /dev/null
+++ b/sdk/go/docs/GrantUpdateIn.md
@@ -0,0 +1,100 @@
+# GrantUpdateIn
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**ExpiresAt** | Pointer to **NullableTime** | | [optional]
+**Role** | Pointer to **NullableString** | | [optional]
+
+## Methods
+
+### NewGrantUpdateIn
+
+`func NewGrantUpdateIn() *GrantUpdateIn`
+
+NewGrantUpdateIn instantiates a new GrantUpdateIn object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewGrantUpdateInWithDefaults
+
+`func NewGrantUpdateInWithDefaults() *GrantUpdateIn`
+
+NewGrantUpdateInWithDefaults instantiates a new GrantUpdateIn object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetExpiresAt
+
+`func (o *GrantUpdateIn) GetExpiresAt() time.Time`
+
+GetExpiresAt returns the ExpiresAt field if non-nil, zero value otherwise.
+
+### GetExpiresAtOk
+
+`func (o *GrantUpdateIn) GetExpiresAtOk() (*time.Time, bool)`
+
+GetExpiresAtOk returns a tuple with the ExpiresAt field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetExpiresAt
+
+`func (o *GrantUpdateIn) SetExpiresAt(v time.Time)`
+
+SetExpiresAt sets ExpiresAt field to given value.
+
+### HasExpiresAt
+
+`func (o *GrantUpdateIn) HasExpiresAt() bool`
+
+HasExpiresAt returns a boolean if a field has been set.
+
+### SetExpiresAtNil
+
+`func (o *GrantUpdateIn) SetExpiresAtNil(b bool)`
+
+ SetExpiresAtNil sets the value for ExpiresAt to be an explicit nil
+
+### UnsetExpiresAt
+`func (o *GrantUpdateIn) UnsetExpiresAt()`
+
+UnsetExpiresAt ensures that no value is present for ExpiresAt, not even an explicit nil
+### GetRole
+
+`func (o *GrantUpdateIn) GetRole() string`
+
+GetRole returns the Role field if non-nil, zero value otherwise.
+
+### GetRoleOk
+
+`func (o *GrantUpdateIn) GetRoleOk() (*string, bool)`
+
+GetRoleOk returns a tuple with the Role field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetRole
+
+`func (o *GrantUpdateIn) SetRole(v string)`
+
+SetRole sets Role field to given value.
+
+### HasRole
+
+`func (o *GrantUpdateIn) HasRole() bool`
+
+HasRole returns a boolean if a field has been set.
+
+### SetRoleNil
+
+`func (o *GrantUpdateIn) SetRoleNil(b bool)`
+
+ SetRoleNil sets the value for Role to be an explicit nil
+
+### UnsetRole
+`func (o *GrantUpdateIn) UnsetRole()`
+
+UnsetRole ensures that no value is present for Role, not even an explicit nil
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/GrantsAPI.md b/sdk/go/docs/GrantsAPI.md
new file mode 100644
index 0000000..e8130b5
--- /dev/null
+++ b/sdk/go/docs/GrantsAPI.md
@@ -0,0 +1,409 @@
+# \GrantsAPI
+
+All URIs are relative to *https://api.agentdrive.run*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**GrantsCreate**](GrantsAPI.md#GrantsCreate) | **Post** /v0/drives/{drive_id}/grants | Create Grant
+[**GrantsList**](GrantsAPI.md#GrantsList) | **Get** /v0/drives/{drive_id}/grants | List Grants
+[**GrantsRead**](GrantsAPI.md#GrantsRead) | **Get** /v0/drives/{drive_id}/grants/{grant_id} | Read Grant
+[**GrantsRevoke**](GrantsAPI.md#GrantsRevoke) | **Delete** /v0/drives/{drive_id}/grants/{grant_id} | Revoke Grant
+[**GrantsUpdate**](GrantsAPI.md#GrantsUpdate) | **Patch** /v0/drives/{drive_id}/grants/{grant_id} | Update Grant
+
+
+
+## GrantsCreate
+
+> GrantOut GrantsCreate(ctx, driveId).IdempotencyKey(idempotencyKey).GrantCreateIn(grantCreateIn).Authorization(authorization).Execute()
+
+Create Grant
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ grantCreateIn := *openapiclient.NewGrantCreateIn("PrincipalType_example", "ResourceId_example", "ResourceType_example", "Role_example") // GrantCreateIn |
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.GrantsAPI.GrantsCreate(context.Background(), driveId).IdempotencyKey(idempotencyKey).GrantCreateIn(grantCreateIn).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `GrantsAPI.GrantsCreate``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `GrantsCreate`: GrantOut
+ fmt.Fprintf(os.Stdout, "Response from `GrantsAPI.GrantsCreate`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiGrantsCreateRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+ **idempotencyKey** | **string** | |
+ **grantCreateIn** | [**GrantCreateIn**](GrantCreateIn.md) | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**GrantOut**](GrantOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## GrantsList
+
+> GrantListOut GrantsList(ctx, driveId).Lifecycle(lifecycle).Limit(limit).Cursor(cursor).ResourceType(resourceType).ResourceId(resourceId).PrincipalType(principalType).Authorization(authorization).Execute()
+
+List Grants
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ lifecycle := "lifecycle_example" // string | (optional) (default to "active")
+ limit := int32(56) // int32 | (optional)
+ cursor := "cursor_example" // string | (optional)
+ resourceType := "resourceType_example" // string | (optional)
+ resourceId := "resourceId_example" // string | (optional)
+ principalType := "principalType_example" // string | (optional)
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.GrantsAPI.GrantsList(context.Background(), driveId).Lifecycle(lifecycle).Limit(limit).Cursor(cursor).ResourceType(resourceType).ResourceId(resourceId).PrincipalType(principalType).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `GrantsAPI.GrantsList``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `GrantsList`: GrantListOut
+ fmt.Fprintf(os.Stdout, "Response from `GrantsAPI.GrantsList`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiGrantsListRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+ **lifecycle** | **string** | | [default to "active"]
+ **limit** | **int32** | |
+ **cursor** | **string** | |
+ **resourceType** | **string** | |
+ **resourceId** | **string** | |
+ **principalType** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**GrantListOut**](GrantListOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## GrantsRead
+
+> GrantOut GrantsRead(ctx, driveId, grantId).IfNoneMatch(ifNoneMatch).Authorization(authorization).Execute()
+
+Read Grant
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ grantId := "grantId_example" // string |
+ ifNoneMatch := "ifNoneMatch_example" // string | (optional)
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.GrantsAPI.GrantsRead(context.Background(), driveId, grantId).IfNoneMatch(ifNoneMatch).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `GrantsAPI.GrantsRead``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `GrantsRead`: GrantOut
+ fmt.Fprintf(os.Stdout, "Response from `GrantsAPI.GrantsRead`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**grantId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiGrantsReadRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **ifNoneMatch** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**GrantOut**](GrantOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## GrantsRevoke
+
+> GrantOut GrantsRevoke(ctx, driveId, grantId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Authorization(authorization).Execute()
+
+Revoke Grant
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ grantId := "grantId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ ifMatch := "ifMatch_example" // string |
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.GrantsAPI.GrantsRevoke(context.Background(), driveId, grantId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `GrantsAPI.GrantsRevoke``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `GrantsRevoke`: GrantOut
+ fmt.Fprintf(os.Stdout, "Response from `GrantsAPI.GrantsRevoke`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**grantId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiGrantsRevokeRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **idempotencyKey** | **string** | |
+ **ifMatch** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**GrantOut**](GrantOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## GrantsUpdate
+
+> GrantOut GrantsUpdate(ctx, driveId, grantId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).GrantUpdateIn(grantUpdateIn).Authorization(authorization).Execute()
+
+Update Grant
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ grantId := "grantId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ ifMatch := "ifMatch_example" // string |
+ grantUpdateIn := *openapiclient.NewGrantUpdateIn() // GrantUpdateIn |
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.GrantsAPI.GrantsUpdate(context.Background(), driveId, grantId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).GrantUpdateIn(grantUpdateIn).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `GrantsAPI.GrantsUpdate``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `GrantsUpdate`: GrantOut
+ fmt.Fprintf(os.Stdout, "Response from `GrantsAPI.GrantsUpdate`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**grantId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiGrantsUpdateRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **idempotencyKey** | **string** | |
+ **ifMatch** | **string** | |
+ **grantUpdateIn** | [**GrantUpdateIn**](GrantUpdateIn.md) | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**GrantOut**](GrantOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
diff --git a/sdk/go/docs/HourlyUsageCounterOut.md b/sdk/go/docs/HourlyUsageCounterOut.md
deleted file mode 100644
index bbbf634..0000000
--- a/sdk/go/docs/HourlyUsageCounterOut.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# HourlyUsageCounterOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Limit** | **int32** | |
-**ResetAt** | **time.Time** | |
-**Used** | **int32** | |
-
-## Methods
-
-### NewHourlyUsageCounterOut
-
-`func NewHourlyUsageCounterOut(limit int32, resetAt time.Time, used int32, ) *HourlyUsageCounterOut`
-
-NewHourlyUsageCounterOut instantiates a new HourlyUsageCounterOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewHourlyUsageCounterOutWithDefaults
-
-`func NewHourlyUsageCounterOutWithDefaults() *HourlyUsageCounterOut`
-
-NewHourlyUsageCounterOutWithDefaults instantiates a new HourlyUsageCounterOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetLimit
-
-`func (o *HourlyUsageCounterOut) GetLimit() int32`
-
-GetLimit returns the Limit field if non-nil, zero value otherwise.
-
-### GetLimitOk
-
-`func (o *HourlyUsageCounterOut) GetLimitOk() (*int32, bool)`
-
-GetLimitOk returns a tuple with the Limit field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLimit
-
-`func (o *HourlyUsageCounterOut) SetLimit(v int32)`
-
-SetLimit sets Limit field to given value.
-
-
-### GetResetAt
-
-`func (o *HourlyUsageCounterOut) GetResetAt() time.Time`
-
-GetResetAt returns the ResetAt field if non-nil, zero value otherwise.
-
-### GetResetAtOk
-
-`func (o *HourlyUsageCounterOut) GetResetAtOk() (*time.Time, bool)`
-
-GetResetAtOk returns a tuple with the ResetAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetResetAt
-
-`func (o *HourlyUsageCounterOut) SetResetAt(v time.Time)`
-
-SetResetAt sets ResetAt field to given value.
-
-
-### GetUsed
-
-`func (o *HourlyUsageCounterOut) GetUsed() int32`
-
-GetUsed returns the Used field if non-nil, zero value otherwise.
-
-### GetUsedOk
-
-`func (o *HourlyUsageCounterOut) GetUsedOk() (*int32, bool)`
-
-GetUsedOk returns a tuple with the Used field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetUsed
-
-`func (o *HourlyUsageCounterOut) SetUsed(v int32)`
-
-SetUsed sets Used field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/IdentityAssertionMetadataOut.md b/sdk/go/docs/IdentityAssertionMetadataOut.md
deleted file mode 100644
index 519ab3e..0000000
--- a/sdk/go/docs/IdentityAssertionMetadataOut.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# IdentityAssertionMetadataOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Alg** | **string** | |
-**Iss** | **string** | |
-**Version** | **int32** | |
-
-## Methods
-
-### NewIdentityAssertionMetadataOut
-
-`func NewIdentityAssertionMetadataOut(alg string, iss string, version int32, ) *IdentityAssertionMetadataOut`
-
-NewIdentityAssertionMetadataOut instantiates a new IdentityAssertionMetadataOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewIdentityAssertionMetadataOutWithDefaults
-
-`func NewIdentityAssertionMetadataOutWithDefaults() *IdentityAssertionMetadataOut`
-
-NewIdentityAssertionMetadataOutWithDefaults instantiates a new IdentityAssertionMetadataOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetAlg
-
-`func (o *IdentityAssertionMetadataOut) GetAlg() string`
-
-GetAlg returns the Alg field if non-nil, zero value otherwise.
-
-### GetAlgOk
-
-`func (o *IdentityAssertionMetadataOut) GetAlgOk() (*string, bool)`
-
-GetAlgOk returns a tuple with the Alg field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetAlg
-
-`func (o *IdentityAssertionMetadataOut) SetAlg(v string)`
-
-SetAlg sets Alg field to given value.
-
-
-### GetIss
-
-`func (o *IdentityAssertionMetadataOut) GetIss() string`
-
-GetIss returns the Iss field if non-nil, zero value otherwise.
-
-### GetIssOk
-
-`func (o *IdentityAssertionMetadataOut) GetIssOk() (*string, bool)`
-
-GetIssOk returns a tuple with the Iss field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetIss
-
-`func (o *IdentityAssertionMetadataOut) SetIss(v string)`
-
-SetIss sets Iss field to given value.
-
-
-### GetVersion
-
-`func (o *IdentityAssertionMetadataOut) GetVersion() int32`
-
-GetVersion returns the Version field if non-nil, zero value otherwise.
-
-### GetVersionOk
-
-`func (o *IdentityAssertionMetadataOut) GetVersionOk() (*int32, bool)`
-
-GetVersionOk returns a tuple with the Version field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetVersion
-
-`func (o *IdentityAssertionMetadataOut) SetVersion(v int32)`
-
-SetVersion sets Version field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/InvitationList.md b/sdk/go/docs/InvitationList.md
deleted file mode 100644
index 1872785..0000000
--- a/sdk/go/docs/InvitationList.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# InvitationList
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Items** | [**[]InvitationOut**](InvitationOut.md) | |
-**NextCursor** | Pointer to **NullableString** | | [optional]
-
-## Methods
-
-### NewInvitationList
-
-`func NewInvitationList(items []InvitationOut, ) *InvitationList`
-
-NewInvitationList instantiates a new InvitationList object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewInvitationListWithDefaults
-
-`func NewInvitationListWithDefaults() *InvitationList`
-
-NewInvitationListWithDefaults instantiates a new InvitationList object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetItems
-
-`func (o *InvitationList) GetItems() []InvitationOut`
-
-GetItems returns the Items field if non-nil, zero value otherwise.
-
-### GetItemsOk
-
-`func (o *InvitationList) GetItemsOk() (*[]InvitationOut, bool)`
-
-GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetItems
-
-`func (o *InvitationList) SetItems(v []InvitationOut)`
-
-SetItems sets Items field to given value.
-
-
-### GetNextCursor
-
-`func (o *InvitationList) GetNextCursor() string`
-
-GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
-
-### GetNextCursorOk
-
-`func (o *InvitationList) GetNextCursorOk() (*string, bool)`
-
-GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetNextCursor
-
-`func (o *InvitationList) SetNextCursor(v string)`
-
-SetNextCursor sets NextCursor field to given value.
-
-### HasNextCursor
-
-`func (o *InvitationList) HasNextCursor() bool`
-
-HasNextCursor returns a boolean if a field has been set.
-
-### SetNextCursorNil
-
-`func (o *InvitationList) SetNextCursorNil(b bool)`
-
- SetNextCursorNil sets the value for NextCursor to be an explicit nil
-
-### UnsetNextCursor
-`func (o *InvitationList) UnsetNextCursor()`
-
-UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/InvitationOut.md b/sdk/go/docs/InvitationOut.md
deleted file mode 100644
index 7b91e2e..0000000
--- a/sdk/go/docs/InvitationOut.md
+++ /dev/null
@@ -1,211 +0,0 @@
-# InvitationOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**CreatedAt** | **time.Time** | |
-**Email** | **string** | |
-**ExpiresAt** | **time.Time** | |
-**Id** | **string** | |
-**InvitedBy** | Pointer to **NullableString** | | [optional]
-**OrganizationId** | **string** | |
-**Role** | **string** | |
-**Status** | **string** | |
-
-## Methods
-
-### NewInvitationOut
-
-`func NewInvitationOut(createdAt time.Time, email string, expiresAt time.Time, id string, organizationId string, role string, status string, ) *InvitationOut`
-
-NewInvitationOut instantiates a new InvitationOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewInvitationOutWithDefaults
-
-`func NewInvitationOutWithDefaults() *InvitationOut`
-
-NewInvitationOutWithDefaults instantiates a new InvitationOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetCreatedAt
-
-`func (o *InvitationOut) GetCreatedAt() time.Time`
-
-GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
-
-### GetCreatedAtOk
-
-`func (o *InvitationOut) GetCreatedAtOk() (*time.Time, bool)`
-
-GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCreatedAt
-
-`func (o *InvitationOut) SetCreatedAt(v time.Time)`
-
-SetCreatedAt sets CreatedAt field to given value.
-
-
-### GetEmail
-
-`func (o *InvitationOut) GetEmail() string`
-
-GetEmail returns the Email field if non-nil, zero value otherwise.
-
-### GetEmailOk
-
-`func (o *InvitationOut) GetEmailOk() (*string, bool)`
-
-GetEmailOk returns a tuple with the Email field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEmail
-
-`func (o *InvitationOut) SetEmail(v string)`
-
-SetEmail sets Email field to given value.
-
-
-### GetExpiresAt
-
-`func (o *InvitationOut) GetExpiresAt() time.Time`
-
-GetExpiresAt returns the ExpiresAt field if non-nil, zero value otherwise.
-
-### GetExpiresAtOk
-
-`func (o *InvitationOut) GetExpiresAtOk() (*time.Time, bool)`
-
-GetExpiresAtOk returns a tuple with the ExpiresAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetExpiresAt
-
-`func (o *InvitationOut) SetExpiresAt(v time.Time)`
-
-SetExpiresAt sets ExpiresAt field to given value.
-
-
-### GetId
-
-`func (o *InvitationOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *InvitationOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *InvitationOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetInvitedBy
-
-`func (o *InvitationOut) GetInvitedBy() string`
-
-GetInvitedBy returns the InvitedBy field if non-nil, zero value otherwise.
-
-### GetInvitedByOk
-
-`func (o *InvitationOut) GetInvitedByOk() (*string, bool)`
-
-GetInvitedByOk returns a tuple with the InvitedBy field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetInvitedBy
-
-`func (o *InvitationOut) SetInvitedBy(v string)`
-
-SetInvitedBy sets InvitedBy field to given value.
-
-### HasInvitedBy
-
-`func (o *InvitationOut) HasInvitedBy() bool`
-
-HasInvitedBy returns a boolean if a field has been set.
-
-### SetInvitedByNil
-
-`func (o *InvitationOut) SetInvitedByNil(b bool)`
-
- SetInvitedByNil sets the value for InvitedBy to be an explicit nil
-
-### UnsetInvitedBy
-`func (o *InvitationOut) UnsetInvitedBy()`
-
-UnsetInvitedBy ensures that no value is present for InvitedBy, not even an explicit nil
-### GetOrganizationId
-
-`func (o *InvitationOut) GetOrganizationId() string`
-
-GetOrganizationId returns the OrganizationId field if non-nil, zero value otherwise.
-
-### GetOrganizationIdOk
-
-`func (o *InvitationOut) GetOrganizationIdOk() (*string, bool)`
-
-GetOrganizationIdOk returns a tuple with the OrganizationId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetOrganizationId
-
-`func (o *InvitationOut) SetOrganizationId(v string)`
-
-SetOrganizationId sets OrganizationId field to given value.
-
-
-### GetRole
-
-`func (o *InvitationOut) GetRole() string`
-
-GetRole returns the Role field if non-nil, zero value otherwise.
-
-### GetRoleOk
-
-`func (o *InvitationOut) GetRoleOk() (*string, bool)`
-
-GetRoleOk returns a tuple with the Role field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRole
-
-`func (o *InvitationOut) SetRole(v string)`
-
-SetRole sets Role field to given value.
-
-
-### GetStatus
-
-`func (o *InvitationOut) GetStatus() string`
-
-GetStatus returns the Status field if non-nil, zero value otherwise.
-
-### GetStatusOk
-
-`func (o *InvitationOut) GetStatusOk() (*string, bool)`
-
-GetStatusOk returns a tuple with the Status field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetStatus
-
-`func (o *InvitationOut) SetStatus(v string)`
-
-SetStatus sets Status field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/InviteCreateOut.md b/sdk/go/docs/InviteCreateOut.md
deleted file mode 100644
index 0252572..0000000
--- a/sdk/go/docs/InviteCreateOut.md
+++ /dev/null
@@ -1,116 +0,0 @@
-# InviteCreateOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**AlreadyMember** | Pointer to **bool** | | [optional] [default to false]
-**EmailDelivered** | Pointer to **bool** | | [optional] [default to true]
-**Invitation** | Pointer to [**NullableInvitationOut**](InvitationOut.md) | | [optional]
-
-## Methods
-
-### NewInviteCreateOut
-
-`func NewInviteCreateOut() *InviteCreateOut`
-
-NewInviteCreateOut instantiates a new InviteCreateOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewInviteCreateOutWithDefaults
-
-`func NewInviteCreateOutWithDefaults() *InviteCreateOut`
-
-NewInviteCreateOutWithDefaults instantiates a new InviteCreateOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetAlreadyMember
-
-`func (o *InviteCreateOut) GetAlreadyMember() bool`
-
-GetAlreadyMember returns the AlreadyMember field if non-nil, zero value otherwise.
-
-### GetAlreadyMemberOk
-
-`func (o *InviteCreateOut) GetAlreadyMemberOk() (*bool, bool)`
-
-GetAlreadyMemberOk returns a tuple with the AlreadyMember field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetAlreadyMember
-
-`func (o *InviteCreateOut) SetAlreadyMember(v bool)`
-
-SetAlreadyMember sets AlreadyMember field to given value.
-
-### HasAlreadyMember
-
-`func (o *InviteCreateOut) HasAlreadyMember() bool`
-
-HasAlreadyMember returns a boolean if a field has been set.
-
-### GetEmailDelivered
-
-`func (o *InviteCreateOut) GetEmailDelivered() bool`
-
-GetEmailDelivered returns the EmailDelivered field if non-nil, zero value otherwise.
-
-### GetEmailDeliveredOk
-
-`func (o *InviteCreateOut) GetEmailDeliveredOk() (*bool, bool)`
-
-GetEmailDeliveredOk returns a tuple with the EmailDelivered field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEmailDelivered
-
-`func (o *InviteCreateOut) SetEmailDelivered(v bool)`
-
-SetEmailDelivered sets EmailDelivered field to given value.
-
-### HasEmailDelivered
-
-`func (o *InviteCreateOut) HasEmailDelivered() bool`
-
-HasEmailDelivered returns a boolean if a field has been set.
-
-### GetInvitation
-
-`func (o *InviteCreateOut) GetInvitation() InvitationOut`
-
-GetInvitation returns the Invitation field if non-nil, zero value otherwise.
-
-### GetInvitationOk
-
-`func (o *InviteCreateOut) GetInvitationOk() (*InvitationOut, bool)`
-
-GetInvitationOk returns a tuple with the Invitation field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetInvitation
-
-`func (o *InviteCreateOut) SetInvitation(v InvitationOut)`
-
-SetInvitation sets Invitation field to given value.
-
-### HasInvitation
-
-`func (o *InviteCreateOut) HasInvitation() bool`
-
-HasInvitation returns a boolean if a field has been set.
-
-### SetInvitationNil
-
-`func (o *InviteCreateOut) SetInvitationNil(b bool)`
-
- SetInvitationNil sets the value for Invitation to be an explicit nil
-
-### UnsetInvitation
-`func (o *InviteCreateOut) UnsetInvitation()`
-
-UnsetInvitation ensures that no value is present for Invitation, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/JwkOut.md b/sdk/go/docs/JwkOut.md
deleted file mode 100644
index 90a2086..0000000
--- a/sdk/go/docs/JwkOut.md
+++ /dev/null
@@ -1,154 +0,0 @@
-# JwkOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Alg** | **string** | |
-**E** | **string** | |
-**Kid** | **string** | |
-**Kty** | **string** | |
-**N** | **string** | |
-**Use** | **string** | |
-
-## Methods
-
-### NewJwkOut
-
-`func NewJwkOut(alg string, e string, kid string, kty string, n string, use string, ) *JwkOut`
-
-NewJwkOut instantiates a new JwkOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewJwkOutWithDefaults
-
-`func NewJwkOutWithDefaults() *JwkOut`
-
-NewJwkOutWithDefaults instantiates a new JwkOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetAlg
-
-`func (o *JwkOut) GetAlg() string`
-
-GetAlg returns the Alg field if non-nil, zero value otherwise.
-
-### GetAlgOk
-
-`func (o *JwkOut) GetAlgOk() (*string, bool)`
-
-GetAlgOk returns a tuple with the Alg field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetAlg
-
-`func (o *JwkOut) SetAlg(v string)`
-
-SetAlg sets Alg field to given value.
-
-
-### GetE
-
-`func (o *JwkOut) GetE() string`
-
-GetE returns the E field if non-nil, zero value otherwise.
-
-### GetEOk
-
-`func (o *JwkOut) GetEOk() (*string, bool)`
-
-GetEOk returns a tuple with the E field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetE
-
-`func (o *JwkOut) SetE(v string)`
-
-SetE sets E field to given value.
-
-
-### GetKid
-
-`func (o *JwkOut) GetKid() string`
-
-GetKid returns the Kid field if non-nil, zero value otherwise.
-
-### GetKidOk
-
-`func (o *JwkOut) GetKidOk() (*string, bool)`
-
-GetKidOk returns a tuple with the Kid field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetKid
-
-`func (o *JwkOut) SetKid(v string)`
-
-SetKid sets Kid field to given value.
-
-
-### GetKty
-
-`func (o *JwkOut) GetKty() string`
-
-GetKty returns the Kty field if non-nil, zero value otherwise.
-
-### GetKtyOk
-
-`func (o *JwkOut) GetKtyOk() (*string, bool)`
-
-GetKtyOk returns a tuple with the Kty field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetKty
-
-`func (o *JwkOut) SetKty(v string)`
-
-SetKty sets Kty field to given value.
-
-
-### GetN
-
-`func (o *JwkOut) GetN() string`
-
-GetN returns the N field if non-nil, zero value otherwise.
-
-### GetNOk
-
-`func (o *JwkOut) GetNOk() (*string, bool)`
-
-GetNOk returns a tuple with the N field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetN
-
-`func (o *JwkOut) SetN(v string)`
-
-SetN sets N field to given value.
-
-
-### GetUse
-
-`func (o *JwkOut) GetUse() string`
-
-GetUse returns the Use field if non-nil, zero value otherwise.
-
-### GetUseOk
-
-`func (o *JwkOut) GetUseOk() (*string, bool)`
-
-GetUseOk returns a tuple with the Use field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetUse
-
-`func (o *JwkOut) SetUse(v string)`
-
-SetUse sets Use field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/JwksOut.md b/sdk/go/docs/JwksOut.md
deleted file mode 100644
index c5535ac..0000000
--- a/sdk/go/docs/JwksOut.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# JwksOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Keys** | [**[]JwkOut**](JwkOut.md) | |
-
-## Methods
-
-### NewJwksOut
-
-`func NewJwksOut(keys []JwkOut, ) *JwksOut`
-
-NewJwksOut instantiates a new JwksOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewJwksOutWithDefaults
-
-`func NewJwksOutWithDefaults() *JwksOut`
-
-NewJwksOutWithDefaults instantiates a new JwksOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetKeys
-
-`func (o *JwksOut) GetKeys() []JwkOut`
-
-GetKeys returns the Keys field if non-nil, zero value otherwise.
-
-### GetKeysOk
-
-`func (o *JwksOut) GetKeysOk() (*[]JwkOut, bool)`
-
-GetKeysOk returns a tuple with the Keys field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetKeys
-
-`func (o *JwksOut) SetKeys(v []JwkOut)`
-
-SetKeys sets Keys field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/LookupValuesIn.md b/sdk/go/docs/LookupValuesIn.md
deleted file mode 100644
index 85641cb..0000000
--- a/sdk/go/docs/LookupValuesIn.md
+++ /dev/null
@@ -1,96 +0,0 @@
-# LookupValuesIn
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Column** | **string** | |
-**Dataset** | **string** | |
-**Limit** | Pointer to **int32** | | [optional] [default to 50]
-
-## Methods
-
-### NewLookupValuesIn
-
-`func NewLookupValuesIn(column string, dataset string, ) *LookupValuesIn`
-
-NewLookupValuesIn instantiates a new LookupValuesIn object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewLookupValuesInWithDefaults
-
-`func NewLookupValuesInWithDefaults() *LookupValuesIn`
-
-NewLookupValuesInWithDefaults instantiates a new LookupValuesIn object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetColumn
-
-`func (o *LookupValuesIn) GetColumn() string`
-
-GetColumn returns the Column field if non-nil, zero value otherwise.
-
-### GetColumnOk
-
-`func (o *LookupValuesIn) GetColumnOk() (*string, bool)`
-
-GetColumnOk returns a tuple with the Column field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetColumn
-
-`func (o *LookupValuesIn) SetColumn(v string)`
-
-SetColumn sets Column field to given value.
-
-
-### GetDataset
-
-`func (o *LookupValuesIn) GetDataset() string`
-
-GetDataset returns the Dataset field if non-nil, zero value otherwise.
-
-### GetDatasetOk
-
-`func (o *LookupValuesIn) GetDatasetOk() (*string, bool)`
-
-GetDatasetOk returns a tuple with the Dataset field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDataset
-
-`func (o *LookupValuesIn) SetDataset(v string)`
-
-SetDataset sets Dataset field to given value.
-
-
-### GetLimit
-
-`func (o *LookupValuesIn) GetLimit() int32`
-
-GetLimit returns the Limit field if non-nil, zero value otherwise.
-
-### GetLimitOk
-
-`func (o *LookupValuesIn) GetLimitOk() (*int32, bool)`
-
-GetLimitOk returns a tuple with the Limit field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLimit
-
-`func (o *LookupValuesIn) SetLimit(v int32)`
-
-SetLimit sets Limit field to given value.
-
-### HasLimit
-
-`func (o *LookupValuesIn) HasLimit() bool`
-
-HasLimit returns a boolean if a field has been set.
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/LookupValuesOut.md b/sdk/go/docs/LookupValuesOut.md
deleted file mode 100644
index 1dc80e5..0000000
--- a/sdk/go/docs/LookupValuesOut.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# LookupValuesOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Column** | **string** | |
-**Dataset** | **string** | |
-**Values** | **[]interface{}** | |
-
-## Methods
-
-### NewLookupValuesOut
-
-`func NewLookupValuesOut(column string, dataset string, values []interface{}, ) *LookupValuesOut`
-
-NewLookupValuesOut instantiates a new LookupValuesOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewLookupValuesOutWithDefaults
-
-`func NewLookupValuesOutWithDefaults() *LookupValuesOut`
-
-NewLookupValuesOutWithDefaults instantiates a new LookupValuesOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetColumn
-
-`func (o *LookupValuesOut) GetColumn() string`
-
-GetColumn returns the Column field if non-nil, zero value otherwise.
-
-### GetColumnOk
-
-`func (o *LookupValuesOut) GetColumnOk() (*string, bool)`
-
-GetColumnOk returns a tuple with the Column field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetColumn
-
-`func (o *LookupValuesOut) SetColumn(v string)`
-
-SetColumn sets Column field to given value.
-
-
-### GetDataset
-
-`func (o *LookupValuesOut) GetDataset() string`
-
-GetDataset returns the Dataset field if non-nil, zero value otherwise.
-
-### GetDatasetOk
-
-`func (o *LookupValuesOut) GetDatasetOk() (*string, bool)`
-
-GetDatasetOk returns a tuple with the Dataset field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDataset
-
-`func (o *LookupValuesOut) SetDataset(v string)`
-
-SetDataset sets Dataset field to given value.
-
-
-### GetValues
-
-`func (o *LookupValuesOut) GetValues() []interface{}`
-
-GetValues returns the Values field if non-nil, zero value otherwise.
-
-### GetValuesOk
-
-`func (o *LookupValuesOut) GetValuesOk() (*[]interface{}, bool)`
-
-GetValuesOk returns a tuple with the Values field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetValues
-
-`func (o *LookupValuesOut) SetValues(v []interface{})`
-
-SetValues sets Values field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/McpOauthAPI.md b/sdk/go/docs/McpOauthAPI.md
deleted file mode 100644
index 4ef650d..0000000
--- a/sdk/go/docs/McpOauthAPI.md
+++ /dev/null
@@ -1,131 +0,0 @@
-# \McpOauthAPI
-
-All URIs are relative to *https://api.agentdrive.run*
-
-Method | HTTP request | Description
-------------- | ------------- | -------------
-[**Oauth2RegisterOauth2RegisterPost**](McpOauthAPI.md#Oauth2RegisterOauth2RegisterPost) | **Post** /oauth2/register | Dynamic Client Registration (RFC 7591)
-[**Oauth2RevokeOauth2RevokePost**](McpOauthAPI.md#Oauth2RevokeOauth2RevokePost) | **Post** /oauth2/revoke | Token revocation (RFC 7009)
-
-
-
-## Oauth2RegisterOauth2RegisterPost
-
-> ClientRegistrationOut Oauth2RegisterOauth2RegisterPost(ctx).Execute()
-
-Dynamic Client Registration (RFC 7591)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.McpOauthAPI.Oauth2RegisterOauth2RegisterPost(context.Background()).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `McpOauthAPI.Oauth2RegisterOauth2RegisterPost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `Oauth2RegisterOauth2RegisterPost`: ClientRegistrationOut
- fmt.Fprintf(os.Stdout, "Response from `McpOauthAPI.Oauth2RegisterOauth2RegisterPost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-This endpoint does not need any parameter.
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiOauth2RegisterOauth2RegisterPostRequest struct via the builder pattern
-
-
-### Return type
-
-[**ClientRegistrationOut**](ClientRegistrationOut.md)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## Oauth2RevokeOauth2RevokePost
-
-> map[string]interface{} Oauth2RevokeOauth2RevokePost(ctx).Execute()
-
-Token revocation (RFC 7009)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.McpOauthAPI.Oauth2RevokeOauth2RevokePost(context.Background()).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `McpOauthAPI.Oauth2RevokeOauth2RevokePost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `Oauth2RevokeOauth2RevokePost`: map[string]interface{}
- fmt.Fprintf(os.Stdout, "Response from `McpOauthAPI.Oauth2RevokeOauth2RevokePost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-This endpoint does not need any parameter.
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiOauth2RevokeOauth2RevokePostRequest struct via the builder pattern
-
-
-### Return type
-
-**map[string]interface{}**
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
diff --git a/sdk/go/docs/McpOauthUiAPI.md b/sdk/go/docs/McpOauthUiAPI.md
deleted file mode 100644
index 9a52360..0000000
--- a/sdk/go/docs/McpOauthUiAPI.md
+++ /dev/null
@@ -1,130 +0,0 @@
-# \McpOauthUiAPI
-
-All URIs are relative to *https://api.agentdrive.run*
-
-Method | HTTP request | Description
-------------- | ------------- | -------------
-[**AuthorizeDecisionOauth2AuthorizePost**](McpOauthUiAPI.md#AuthorizeDecisionOauth2AuthorizePost) | **Post** /oauth2/authorize | Authorize Decision
-[**AuthorizePageOauth2AuthorizeGet**](McpOauthUiAPI.md#AuthorizePageOauth2AuthorizeGet) | **Get** /oauth2/authorize | Authorize Page
-
-
-
-## AuthorizeDecisionOauth2AuthorizePost
-
-> AuthorizeDecisionOauth2AuthorizePost(ctx).Csrf(csrf).Execute()
-
-Authorize Decision
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- csrf := "csrf_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- r, err := apiClient.McpOauthUiAPI.AuthorizeDecisionOauth2AuthorizePost(context.Background()).Csrf(csrf).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `McpOauthUiAPI.AuthorizeDecisionOauth2AuthorizePost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiAuthorizeDecisionOauth2AuthorizePostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **csrf** | **string** | |
-
-### Return type
-
- (empty response body)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: application/x-www-form-urlencoded
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## AuthorizePageOauth2AuthorizeGet
-
-> string AuthorizePageOauth2AuthorizeGet(ctx).Execute()
-
-Authorize Page
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.McpOauthUiAPI.AuthorizePageOauth2AuthorizeGet(context.Background()).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `McpOauthUiAPI.AuthorizePageOauth2AuthorizeGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `AuthorizePageOauth2AuthorizeGet`: string
- fmt.Fprintf(os.Stdout, "Response from `McpOauthUiAPI.AuthorizePageOauth2AuthorizeGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-This endpoint does not need any parameter.
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiAuthorizePageOauth2AuthorizeGetRequest struct via the builder pattern
-
-
-### Return type
-
-**string**
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: text/html, application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
diff --git a/sdk/go/docs/MemberInviteIn.md b/sdk/go/docs/MemberInviteIn.md
deleted file mode 100644
index a3e9950..0000000
--- a/sdk/go/docs/MemberInviteIn.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# MemberInviteIn
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Email** | **string** | |
-**Role** | Pointer to **string** | | [optional] [default to "member"]
-
-## Methods
-
-### NewMemberInviteIn
-
-`func NewMemberInviteIn(email string, ) *MemberInviteIn`
-
-NewMemberInviteIn instantiates a new MemberInviteIn object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewMemberInviteInWithDefaults
-
-`func NewMemberInviteInWithDefaults() *MemberInviteIn`
-
-NewMemberInviteInWithDefaults instantiates a new MemberInviteIn object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetEmail
-
-`func (o *MemberInviteIn) GetEmail() string`
-
-GetEmail returns the Email field if non-nil, zero value otherwise.
-
-### GetEmailOk
-
-`func (o *MemberInviteIn) GetEmailOk() (*string, bool)`
-
-GetEmailOk returns a tuple with the Email field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEmail
-
-`func (o *MemberInviteIn) SetEmail(v string)`
-
-SetEmail sets Email field to given value.
-
-
-### GetRole
-
-`func (o *MemberInviteIn) GetRole() string`
-
-GetRole returns the Role field if non-nil, zero value otherwise.
-
-### GetRoleOk
-
-`func (o *MemberInviteIn) GetRoleOk() (*string, bool)`
-
-GetRoleOk returns a tuple with the Role field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRole
-
-`func (o *MemberInviteIn) SetRole(v string)`
-
-SetRole sets Role field to given value.
-
-### HasRole
-
-`func (o *MemberInviteIn) HasRole() bool`
-
-HasRole returns a boolean if a field has been set.
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/MemberList.md b/sdk/go/docs/MemberList.md
deleted file mode 100644
index f748e36..0000000
--- a/sdk/go/docs/MemberList.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# MemberList
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Items** | [**[]MemberOut**](MemberOut.md) | |
-**NextCursor** | Pointer to **NullableString** | | [optional]
-
-## Methods
-
-### NewMemberList
-
-`func NewMemberList(items []MemberOut, ) *MemberList`
-
-NewMemberList instantiates a new MemberList object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewMemberListWithDefaults
-
-`func NewMemberListWithDefaults() *MemberList`
-
-NewMemberListWithDefaults instantiates a new MemberList object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetItems
-
-`func (o *MemberList) GetItems() []MemberOut`
-
-GetItems returns the Items field if non-nil, zero value otherwise.
-
-### GetItemsOk
-
-`func (o *MemberList) GetItemsOk() (*[]MemberOut, bool)`
-
-GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetItems
-
-`func (o *MemberList) SetItems(v []MemberOut)`
-
-SetItems sets Items field to given value.
-
-
-### GetNextCursor
-
-`func (o *MemberList) GetNextCursor() string`
-
-GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
-
-### GetNextCursorOk
-
-`func (o *MemberList) GetNextCursorOk() (*string, bool)`
-
-GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetNextCursor
-
-`func (o *MemberList) SetNextCursor(v string)`
-
-SetNextCursor sets NextCursor field to given value.
-
-### HasNextCursor
-
-`func (o *MemberList) HasNextCursor() bool`
-
-HasNextCursor returns a boolean if a field has been set.
-
-### SetNextCursorNil
-
-`func (o *MemberList) SetNextCursorNil(b bool)`
-
- SetNextCursorNil sets the value for NextCursor to be an explicit nil
-
-### UnsetNextCursor
-`func (o *MemberList) UnsetNextCursor()`
-
-UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/MemberOut.md b/sdk/go/docs/MemberOut.md
deleted file mode 100644
index 1778757..0000000
--- a/sdk/go/docs/MemberOut.md
+++ /dev/null
@@ -1,184 +0,0 @@
-# MemberOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**CreatedAt** | **time.Time** | |
-**Email** | **string** | |
-**FirstName** | Pointer to **NullableString** | | [optional]
-**LastName** | Pointer to **NullableString** | | [optional]
-**Role** | **string** | |
-**UserId** | **string** | |
-
-## Methods
-
-### NewMemberOut
-
-`func NewMemberOut(createdAt time.Time, email string, role string, userId string, ) *MemberOut`
-
-NewMemberOut instantiates a new MemberOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewMemberOutWithDefaults
-
-`func NewMemberOutWithDefaults() *MemberOut`
-
-NewMemberOutWithDefaults instantiates a new MemberOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetCreatedAt
-
-`func (o *MemberOut) GetCreatedAt() time.Time`
-
-GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
-
-### GetCreatedAtOk
-
-`func (o *MemberOut) GetCreatedAtOk() (*time.Time, bool)`
-
-GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCreatedAt
-
-`func (o *MemberOut) SetCreatedAt(v time.Time)`
-
-SetCreatedAt sets CreatedAt field to given value.
-
-
-### GetEmail
-
-`func (o *MemberOut) GetEmail() string`
-
-GetEmail returns the Email field if non-nil, zero value otherwise.
-
-### GetEmailOk
-
-`func (o *MemberOut) GetEmailOk() (*string, bool)`
-
-GetEmailOk returns a tuple with the Email field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEmail
-
-`func (o *MemberOut) SetEmail(v string)`
-
-SetEmail sets Email field to given value.
-
-
-### GetFirstName
-
-`func (o *MemberOut) GetFirstName() string`
-
-GetFirstName returns the FirstName field if non-nil, zero value otherwise.
-
-### GetFirstNameOk
-
-`func (o *MemberOut) GetFirstNameOk() (*string, bool)`
-
-GetFirstNameOk returns a tuple with the FirstName field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetFirstName
-
-`func (o *MemberOut) SetFirstName(v string)`
-
-SetFirstName sets FirstName field to given value.
-
-### HasFirstName
-
-`func (o *MemberOut) HasFirstName() bool`
-
-HasFirstName returns a boolean if a field has been set.
-
-### SetFirstNameNil
-
-`func (o *MemberOut) SetFirstNameNil(b bool)`
-
- SetFirstNameNil sets the value for FirstName to be an explicit nil
-
-### UnsetFirstName
-`func (o *MemberOut) UnsetFirstName()`
-
-UnsetFirstName ensures that no value is present for FirstName, not even an explicit nil
-### GetLastName
-
-`func (o *MemberOut) GetLastName() string`
-
-GetLastName returns the LastName field if non-nil, zero value otherwise.
-
-### GetLastNameOk
-
-`func (o *MemberOut) GetLastNameOk() (*string, bool)`
-
-GetLastNameOk returns a tuple with the LastName field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLastName
-
-`func (o *MemberOut) SetLastName(v string)`
-
-SetLastName sets LastName field to given value.
-
-### HasLastName
-
-`func (o *MemberOut) HasLastName() bool`
-
-HasLastName returns a boolean if a field has been set.
-
-### SetLastNameNil
-
-`func (o *MemberOut) SetLastNameNil(b bool)`
-
- SetLastNameNil sets the value for LastName to be an explicit nil
-
-### UnsetLastName
-`func (o *MemberOut) UnsetLastName()`
-
-UnsetLastName ensures that no value is present for LastName, not even an explicit nil
-### GetRole
-
-`func (o *MemberOut) GetRole() string`
-
-GetRole returns the Role field if non-nil, zero value otherwise.
-
-### GetRoleOk
-
-`func (o *MemberOut) GetRoleOk() (*string, bool)`
-
-GetRoleOk returns a tuple with the Role field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRole
-
-`func (o *MemberOut) SetRole(v string)`
-
-SetRole sets Role field to given value.
-
-
-### GetUserId
-
-`func (o *MemberOut) GetUserId() string`
-
-GetUserId returns the UserId field if non-nil, zero value otherwise.
-
-### GetUserIdOk
-
-`func (o *MemberOut) GetUserIdOk() (*string, bool)`
-
-GetUserIdOk returns a tuple with the UserId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetUserId
-
-`func (o *MemberOut) SetUserId(v string)`
-
-SetUserId sets UserId field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/MemberRemoveOut.md b/sdk/go/docs/MemberRemoveOut.md
deleted file mode 100644
index 43a5230..0000000
--- a/sdk/go/docs/MemberRemoveOut.md
+++ /dev/null
@@ -1,96 +0,0 @@
-# MemberRemoveOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Id** | **string** | |
-**Ok** | Pointer to **bool** | | [optional] [default to true]
-**OrganizationId** | **string** | |
-
-## Methods
-
-### NewMemberRemoveOut
-
-`func NewMemberRemoveOut(id string, organizationId string, ) *MemberRemoveOut`
-
-NewMemberRemoveOut instantiates a new MemberRemoveOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewMemberRemoveOutWithDefaults
-
-`func NewMemberRemoveOutWithDefaults() *MemberRemoveOut`
-
-NewMemberRemoveOutWithDefaults instantiates a new MemberRemoveOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetId
-
-`func (o *MemberRemoveOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *MemberRemoveOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *MemberRemoveOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetOk
-
-`func (o *MemberRemoveOut) GetOk() bool`
-
-GetOk returns the Ok field if non-nil, zero value otherwise.
-
-### GetOkOk
-
-`func (o *MemberRemoveOut) GetOkOk() (*bool, bool)`
-
-GetOkOk returns a tuple with the Ok field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetOk
-
-`func (o *MemberRemoveOut) SetOk(v bool)`
-
-SetOk sets Ok field to given value.
-
-### HasOk
-
-`func (o *MemberRemoveOut) HasOk() bool`
-
-HasOk returns a boolean if a field has been set.
-
-### GetOrganizationId
-
-`func (o *MemberRemoveOut) GetOrganizationId() string`
-
-GetOrganizationId returns the OrganizationId field if non-nil, zero value otherwise.
-
-### GetOrganizationIdOk
-
-`func (o *MemberRemoveOut) GetOrganizationIdOk() (*string, bool)`
-
-GetOrganizationIdOk returns a tuple with the OrganizationId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetOrganizationId
-
-`func (o *MemberRemoveOut) SetOrganizationId(v string)`
-
-SetOrganizationId sets OrganizationId field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/MemberRoleIn.md b/sdk/go/docs/MemberRoleIn.md
deleted file mode 100644
index cc8de5f..0000000
--- a/sdk/go/docs/MemberRoleIn.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# MemberRoleIn
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Role** | **string** | |
-
-## Methods
-
-### NewMemberRoleIn
-
-`func NewMemberRoleIn(role string, ) *MemberRoleIn`
-
-NewMemberRoleIn instantiates a new MemberRoleIn object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewMemberRoleInWithDefaults
-
-`func NewMemberRoleInWithDefaults() *MemberRoleIn`
-
-NewMemberRoleInWithDefaults instantiates a new MemberRoleIn object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetRole
-
-`func (o *MemberRoleIn) GetRole() string`
-
-GetRole returns the Role field if non-nil, zero value otherwise.
-
-### GetRoleOk
-
-`func (o *MemberRoleIn) GetRoleOk() (*string, bool)`
-
-GetRoleOk returns a tuple with the Role field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRole
-
-`func (o *MemberRoleIn) SetRole(v string)`
-
-SetRole sets Role field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/MembersAPI.md b/sdk/go/docs/MembersAPI.md
deleted file mode 100644
index ff28da8..0000000
--- a/sdk/go/docs/MembersAPI.md
+++ /dev/null
@@ -1,429 +0,0 @@
-# \MembersAPI
-
-All URIs are relative to *https://api.agentdrive.run*
-
-Method | HTTP request | Description
-------------- | ------------- | -------------
-[**InviteMemberV0MembersInvitePost**](MembersAPI.md#InviteMemberV0MembersInvitePost) | **Post** /v0/members/invite | Invite a person to your workspace by email
-[**ListInvitationsV0InvitationsGet**](MembersAPI.md#ListInvitationsV0InvitationsGet) | **Get** /v0/invitations | List pending invitations
-[**ListMembersV0MembersGet**](MembersAPI.md#ListMembersV0MembersGet) | **Get** /v0/members | List the members of your active workspace
-[**RemoveMemberV0MembersTargetUserIdDelete**](MembersAPI.md#RemoveMemberV0MembersTargetUserIdDelete) | **Delete** /v0/members/{target_user_id} | Remove a member (or leave)
-[**RevokeInvitationV0InvitationsInvitationIdDelete**](MembersAPI.md#RevokeInvitationV0InvitationsInvitationIdDelete) | **Delete** /v0/invitations/{invitation_id} | Revoke a pending invitation
-[**SetMemberRoleV0MembersTargetUserIdPatch**](MembersAPI.md#SetMemberRoleV0MembersTargetUserIdPatch) | **Patch** /v0/members/{target_user_id} | Change a member's role
-
-
-
-## InviteMemberV0MembersInvitePost
-
-> InviteCreateOut InviteMemberV0MembersInvitePost(ctx).MemberInviteIn(memberInviteIn).Execute()
-
-Invite a person to your workspace by email
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- memberInviteIn := *openapiclient.NewMemberInviteIn("Email_example") // MemberInviteIn |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.MembersAPI.InviteMemberV0MembersInvitePost(context.Background()).MemberInviteIn(memberInviteIn).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `MembersAPI.InviteMemberV0MembersInvitePost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `InviteMemberV0MembersInvitePost`: InviteCreateOut
- fmt.Fprintf(os.Stdout, "Response from `MembersAPI.InviteMemberV0MembersInvitePost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiInviteMemberV0MembersInvitePostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **memberInviteIn** | [**MemberInviteIn**](MemberInviteIn.md) | |
-
-### Return type
-
-[**InviteCreateOut**](InviteCreateOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## ListInvitationsV0InvitationsGet
-
-> InvitationList ListInvitationsV0InvitationsGet(ctx).Cursor(cursor).Limit(limit).Execute()
-
-List pending invitations
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- cursor := "cursor_example" // string | (optional)
- limit := int32(56) // int32 | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.MembersAPI.ListInvitationsV0InvitationsGet(context.Background()).Cursor(cursor).Limit(limit).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `MembersAPI.ListInvitationsV0InvitationsGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `ListInvitationsV0InvitationsGet`: InvitationList
- fmt.Fprintf(os.Stdout, "Response from `MembersAPI.ListInvitationsV0InvitationsGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiListInvitationsV0InvitationsGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **cursor** | **string** | |
- **limit** | **int32** | |
-
-### Return type
-
-[**InvitationList**](InvitationList.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## ListMembersV0MembersGet
-
-> MemberList ListMembersV0MembersGet(ctx).Cursor(cursor).Limit(limit).Execute()
-
-List the members of your active workspace
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- cursor := "cursor_example" // string | (optional)
- limit := int32(56) // int32 | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.MembersAPI.ListMembersV0MembersGet(context.Background()).Cursor(cursor).Limit(limit).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `MembersAPI.ListMembersV0MembersGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `ListMembersV0MembersGet`: MemberList
- fmt.Fprintf(os.Stdout, "Response from `MembersAPI.ListMembersV0MembersGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiListMembersV0MembersGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **cursor** | **string** | |
- **limit** | **int32** | |
-
-### Return type
-
-[**MemberList**](MemberList.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## RemoveMemberV0MembersTargetUserIdDelete
-
-> MemberRemoveOut RemoveMemberV0MembersTargetUserIdDelete(ctx, targetUserId).Confirm(confirm).Execute()
-
-Remove a member (or leave)
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- targetUserId := "targetUserId_example" // string |
- confirm := "confirm_example" // string | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.MembersAPI.RemoveMemberV0MembersTargetUserIdDelete(context.Background(), targetUserId).Confirm(confirm).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `MembersAPI.RemoveMemberV0MembersTargetUserIdDelete``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `RemoveMemberV0MembersTargetUserIdDelete`: MemberRemoveOut
- fmt.Fprintf(os.Stdout, "Response from `MembersAPI.RemoveMemberV0MembersTargetUserIdDelete`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**targetUserId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiRemoveMemberV0MembersTargetUserIdDeleteRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **confirm** | **string** | |
-
-### Return type
-
-[**MemberRemoveOut**](MemberRemoveOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## RevokeInvitationV0InvitationsInvitationIdDelete
-
-> RevokeOut RevokeInvitationV0InvitationsInvitationIdDelete(ctx, invitationId).Execute()
-
-Revoke a pending invitation
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- invitationId := "invitationId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.MembersAPI.RevokeInvitationV0InvitationsInvitationIdDelete(context.Background(), invitationId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `MembersAPI.RevokeInvitationV0InvitationsInvitationIdDelete``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `RevokeInvitationV0InvitationsInvitationIdDelete`: RevokeOut
- fmt.Fprintf(os.Stdout, "Response from `MembersAPI.RevokeInvitationV0InvitationsInvitationIdDelete`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**invitationId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiRevokeInvitationV0InvitationsInvitationIdDeleteRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**RevokeOut**](RevokeOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## SetMemberRoleV0MembersTargetUserIdPatch
-
-> MemberOut SetMemberRoleV0MembersTargetUserIdPatch(ctx, targetUserId).MemberRoleIn(memberRoleIn).Execute()
-
-Change a member's role
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- targetUserId := "targetUserId_example" // string |
- memberRoleIn := *openapiclient.NewMemberRoleIn("Role_example") // MemberRoleIn |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.MembersAPI.SetMemberRoleV0MembersTargetUserIdPatch(context.Background(), targetUserId).MemberRoleIn(memberRoleIn).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `MembersAPI.SetMemberRoleV0MembersTargetUserIdPatch``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `SetMemberRoleV0MembersTargetUserIdPatch`: MemberOut
- fmt.Fprintf(os.Stdout, "Response from `MembersAPI.SetMemberRoleV0MembersTargetUserIdPatch`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**targetUserId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiSetMemberRoleV0MembersTargetUserIdPatchRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **memberRoleIn** | [**MemberRoleIn**](MemberRoleIn.md) | |
-
-### Return type
-
-[**MemberOut**](MemberOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
diff --git a/sdk/go/docs/OAuthProtocolErrorOut.md b/sdk/go/docs/OAuthProtocolErrorOut.md
deleted file mode 100644
index c6f8607..0000000
--- a/sdk/go/docs/OAuthProtocolErrorOut.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# OAuthProtocolErrorOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Error** | **string** | |
-**ErrorDescription** | Pointer to **NullableString** | | [optional]
-
-## Methods
-
-### NewOAuthProtocolErrorOut
-
-`func NewOAuthProtocolErrorOut(error_ string, ) *OAuthProtocolErrorOut`
-
-NewOAuthProtocolErrorOut instantiates a new OAuthProtocolErrorOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewOAuthProtocolErrorOutWithDefaults
-
-`func NewOAuthProtocolErrorOutWithDefaults() *OAuthProtocolErrorOut`
-
-NewOAuthProtocolErrorOutWithDefaults instantiates a new OAuthProtocolErrorOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetError
-
-`func (o *OAuthProtocolErrorOut) GetError() string`
-
-GetError returns the Error field if non-nil, zero value otherwise.
-
-### GetErrorOk
-
-`func (o *OAuthProtocolErrorOut) GetErrorOk() (*string, bool)`
-
-GetErrorOk returns a tuple with the Error field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetError
-
-`func (o *OAuthProtocolErrorOut) SetError(v string)`
-
-SetError sets Error field to given value.
-
-
-### GetErrorDescription
-
-`func (o *OAuthProtocolErrorOut) GetErrorDescription() string`
-
-GetErrorDescription returns the ErrorDescription field if non-nil, zero value otherwise.
-
-### GetErrorDescriptionOk
-
-`func (o *OAuthProtocolErrorOut) GetErrorDescriptionOk() (*string, bool)`
-
-GetErrorDescriptionOk returns a tuple with the ErrorDescription field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetErrorDescription
-
-`func (o *OAuthProtocolErrorOut) SetErrorDescription(v string)`
-
-SetErrorDescription sets ErrorDescription field to given value.
-
-### HasErrorDescription
-
-`func (o *OAuthProtocolErrorOut) HasErrorDescription() bool`
-
-HasErrorDescription returns a boolean if a field has been set.
-
-### SetErrorDescriptionNil
-
-`func (o *OAuthProtocolErrorOut) SetErrorDescriptionNil(b bool)`
-
- SetErrorDescriptionNil sets the value for ErrorDescription to be an explicit nil
-
-### UnsetErrorDescription
-`func (o *OAuthProtocolErrorOut) UnsetErrorDescription()`
-
-UnsetErrorDescription ensures that no value is present for ErrorDescription, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/OperationUsageOut.md b/sdk/go/docs/OperationUsageOut.md
deleted file mode 100644
index 3396b5a..0000000
--- a/sdk/go/docs/OperationUsageOut.md
+++ /dev/null
@@ -1,70 +0,0 @@
-# OperationUsageOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Reads** | **int32** | |
-**Writes** | **int32** | |
-
-## Methods
-
-### NewOperationUsageOut
-
-`func NewOperationUsageOut(reads int32, writes int32, ) *OperationUsageOut`
-
-NewOperationUsageOut instantiates a new OperationUsageOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewOperationUsageOutWithDefaults
-
-`func NewOperationUsageOutWithDefaults() *OperationUsageOut`
-
-NewOperationUsageOutWithDefaults instantiates a new OperationUsageOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetReads
-
-`func (o *OperationUsageOut) GetReads() int32`
-
-GetReads returns the Reads field if non-nil, zero value otherwise.
-
-### GetReadsOk
-
-`func (o *OperationUsageOut) GetReadsOk() (*int32, bool)`
-
-GetReadsOk returns a tuple with the Reads field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetReads
-
-`func (o *OperationUsageOut) SetReads(v int32)`
-
-SetReads sets Reads field to given value.
-
-
-### GetWrites
-
-`func (o *OperationUsageOut) GetWrites() int32`
-
-GetWrites returns the Writes field if non-nil, zero value otherwise.
-
-### GetWritesOk
-
-`func (o *OperationUsageOut) GetWritesOk() (*int32, bool)`
-
-GetWritesOk returns a tuple with the Writes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetWrites
-
-`func (o *OperationUsageOut) SetWrites(v int32)`
-
-SetWrites sets Writes field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/Page.md b/sdk/go/docs/Page.md
deleted file mode 100644
index 4e1301a..0000000
--- a/sdk/go/docs/Page.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# Page
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Items** | [**[]ArtifactOut**](ArtifactOut.md) | |
-**NextCursor** | Pointer to **NullableString** | | [optional]
-
-## Methods
-
-### NewPage
-
-`func NewPage(items []ArtifactOut, ) *Page`
-
-NewPage instantiates a new Page object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewPageWithDefaults
-
-`func NewPageWithDefaults() *Page`
-
-NewPageWithDefaults instantiates a new Page object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetItems
-
-`func (o *Page) GetItems() []ArtifactOut`
-
-GetItems returns the Items field if non-nil, zero value otherwise.
-
-### GetItemsOk
-
-`func (o *Page) GetItemsOk() (*[]ArtifactOut, bool)`
-
-GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetItems
-
-`func (o *Page) SetItems(v []ArtifactOut)`
-
-SetItems sets Items field to given value.
-
-
-### GetNextCursor
-
-`func (o *Page) GetNextCursor() string`
-
-GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
-
-### GetNextCursorOk
-
-`func (o *Page) GetNextCursorOk() (*string, bool)`
-
-GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetNextCursor
-
-`func (o *Page) SetNextCursor(v string)`
-
-SetNextCursor sets NextCursor field to given value.
-
-### HasNextCursor
-
-`func (o *Page) HasNextCursor() bool`
-
-HasNextCursor returns a boolean if a field has been set.
-
-### SetNextCursorNil
-
-`func (o *Page) SetNextCursorNil(b bool)`
-
- SetNextCursorNil sets the value for NextCursor to be an explicit nil
-
-### UnsetNextCursor
-`func (o *Page) UnsetNextCursor()`
-
-UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ProjectConfigIn.md b/sdk/go/docs/ProjectConfigIn.md
deleted file mode 100644
index b44cf5a..0000000
--- a/sdk/go/docs/ProjectConfigIn.md
+++ /dev/null
@@ -1,111 +0,0 @@
-# ProjectConfigIn
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**AutoCompile** | Pointer to **bool** | | [optional] [default to false]
-**Engine** | Pointer to **NullableString** | | [optional]
-**Entrypoint** | **string** | |
-
-## Methods
-
-### NewProjectConfigIn
-
-`func NewProjectConfigIn(entrypoint string, ) *ProjectConfigIn`
-
-NewProjectConfigIn instantiates a new ProjectConfigIn object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewProjectConfigInWithDefaults
-
-`func NewProjectConfigInWithDefaults() *ProjectConfigIn`
-
-NewProjectConfigInWithDefaults instantiates a new ProjectConfigIn object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetAutoCompile
-
-`func (o *ProjectConfigIn) GetAutoCompile() bool`
-
-GetAutoCompile returns the AutoCompile field if non-nil, zero value otherwise.
-
-### GetAutoCompileOk
-
-`func (o *ProjectConfigIn) GetAutoCompileOk() (*bool, bool)`
-
-GetAutoCompileOk returns a tuple with the AutoCompile field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetAutoCompile
-
-`func (o *ProjectConfigIn) SetAutoCompile(v bool)`
-
-SetAutoCompile sets AutoCompile field to given value.
-
-### HasAutoCompile
-
-`func (o *ProjectConfigIn) HasAutoCompile() bool`
-
-HasAutoCompile returns a boolean if a field has been set.
-
-### GetEngine
-
-`func (o *ProjectConfigIn) GetEngine() string`
-
-GetEngine returns the Engine field if non-nil, zero value otherwise.
-
-### GetEngineOk
-
-`func (o *ProjectConfigIn) GetEngineOk() (*string, bool)`
-
-GetEngineOk returns a tuple with the Engine field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEngine
-
-`func (o *ProjectConfigIn) SetEngine(v string)`
-
-SetEngine sets Engine field to given value.
-
-### HasEngine
-
-`func (o *ProjectConfigIn) HasEngine() bool`
-
-HasEngine returns a boolean if a field has been set.
-
-### SetEngineNil
-
-`func (o *ProjectConfigIn) SetEngineNil(b bool)`
-
- SetEngineNil sets the value for Engine to be an explicit nil
-
-### UnsetEngine
-`func (o *ProjectConfigIn) UnsetEngine()`
-
-UnsetEngine ensures that no value is present for Engine, not even an explicit nil
-### GetEntrypoint
-
-`func (o *ProjectConfigIn) GetEntrypoint() string`
-
-GetEntrypoint returns the Entrypoint field if non-nil, zero value otherwise.
-
-### GetEntrypointOk
-
-`func (o *ProjectConfigIn) GetEntrypointOk() (*string, bool)`
-
-GetEntrypointOk returns a tuple with the Entrypoint field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEntrypoint
-
-`func (o *ProjectConfigIn) SetEntrypoint(v string)`
-
-SetEntrypoint sets Entrypoint field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ProtectedResourceMetadataOut.md b/sdk/go/docs/ProtectedResourceMetadataOut.md
deleted file mode 100644
index 91d7802..0000000
--- a/sdk/go/docs/ProtectedResourceMetadataOut.md
+++ /dev/null
@@ -1,112 +0,0 @@
-# ProtectedResourceMetadataOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**AuthorizationServers** | **[]string** | |
-**BearerMethodsSupported** | **[]string** | |
-**Resource** | **string** | |
-**ScopesSupported** | **[]string** | |
-
-## Methods
-
-### NewProtectedResourceMetadataOut
-
-`func NewProtectedResourceMetadataOut(authorizationServers []string, bearerMethodsSupported []string, resource string, scopesSupported []string, ) *ProtectedResourceMetadataOut`
-
-NewProtectedResourceMetadataOut instantiates a new ProtectedResourceMetadataOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewProtectedResourceMetadataOutWithDefaults
-
-`func NewProtectedResourceMetadataOutWithDefaults() *ProtectedResourceMetadataOut`
-
-NewProtectedResourceMetadataOutWithDefaults instantiates a new ProtectedResourceMetadataOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetAuthorizationServers
-
-`func (o *ProtectedResourceMetadataOut) GetAuthorizationServers() []string`
-
-GetAuthorizationServers returns the AuthorizationServers field if non-nil, zero value otherwise.
-
-### GetAuthorizationServersOk
-
-`func (o *ProtectedResourceMetadataOut) GetAuthorizationServersOk() (*[]string, bool)`
-
-GetAuthorizationServersOk returns a tuple with the AuthorizationServers field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetAuthorizationServers
-
-`func (o *ProtectedResourceMetadataOut) SetAuthorizationServers(v []string)`
-
-SetAuthorizationServers sets AuthorizationServers field to given value.
-
-
-### GetBearerMethodsSupported
-
-`func (o *ProtectedResourceMetadataOut) GetBearerMethodsSupported() []string`
-
-GetBearerMethodsSupported returns the BearerMethodsSupported field if non-nil, zero value otherwise.
-
-### GetBearerMethodsSupportedOk
-
-`func (o *ProtectedResourceMetadataOut) GetBearerMethodsSupportedOk() (*[]string, bool)`
-
-GetBearerMethodsSupportedOk returns a tuple with the BearerMethodsSupported field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetBearerMethodsSupported
-
-`func (o *ProtectedResourceMetadataOut) SetBearerMethodsSupported(v []string)`
-
-SetBearerMethodsSupported sets BearerMethodsSupported field to given value.
-
-
-### GetResource
-
-`func (o *ProtectedResourceMetadataOut) GetResource() string`
-
-GetResource returns the Resource field if non-nil, zero value otherwise.
-
-### GetResourceOk
-
-`func (o *ProtectedResourceMetadataOut) GetResourceOk() (*string, bool)`
-
-GetResourceOk returns a tuple with the Resource field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetResource
-
-`func (o *ProtectedResourceMetadataOut) SetResource(v string)`
-
-SetResource sets Resource field to given value.
-
-
-### GetScopesSupported
-
-`func (o *ProtectedResourceMetadataOut) GetScopesSupported() []string`
-
-GetScopesSupported returns the ScopesSupported field if non-nil, zero value otherwise.
-
-### GetScopesSupportedOk
-
-`func (o *ProtectedResourceMetadataOut) GetScopesSupportedOk() (*[]string, bool)`
-
-GetScopesSupportedOk returns a tuple with the ScopesSupported field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetScopesSupported
-
-`func (o *ProtectedResourceMetadataOut) SetScopesSupported(v []string)`
-
-SetScopesSupported sets ScopesSupported field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/QueryColumnOut.md b/sdk/go/docs/QueryColumnOut.md
deleted file mode 100644
index 0af4c5c..0000000
--- a/sdk/go/docs/QueryColumnOut.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# QueryColumnOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Name** | **string** | |
-**Type** | Pointer to **NullableString** | | [optional]
-
-## Methods
-
-### NewQueryColumnOut
-
-`func NewQueryColumnOut(name string, ) *QueryColumnOut`
-
-NewQueryColumnOut instantiates a new QueryColumnOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewQueryColumnOutWithDefaults
-
-`func NewQueryColumnOutWithDefaults() *QueryColumnOut`
-
-NewQueryColumnOutWithDefaults instantiates a new QueryColumnOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetName
-
-`func (o *QueryColumnOut) GetName() string`
-
-GetName returns the Name field if non-nil, zero value otherwise.
-
-### GetNameOk
-
-`func (o *QueryColumnOut) GetNameOk() (*string, bool)`
-
-GetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetName
-
-`func (o *QueryColumnOut) SetName(v string)`
-
-SetName sets Name field to given value.
-
-
-### GetType
-
-`func (o *QueryColumnOut) GetType() string`
-
-GetType returns the Type field if non-nil, zero value otherwise.
-
-### GetTypeOk
-
-`func (o *QueryColumnOut) GetTypeOk() (*string, bool)`
-
-GetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetType
-
-`func (o *QueryColumnOut) SetType(v string)`
-
-SetType sets Type field to given value.
-
-### HasType
-
-`func (o *QueryColumnOut) HasType() bool`
-
-HasType returns a boolean if a field has been set.
-
-### SetTypeNil
-
-`func (o *QueryColumnOut) SetTypeNil(b bool)`
-
- SetTypeNil sets the value for Type to be an explicit nil
-
-### UnsetType
-`func (o *QueryColumnOut) UnsetType()`
-
-UnsetType ensures that no value is present for Type, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/QueryDryRunOut.md b/sdk/go/docs/QueryDryRunOut.md
deleted file mode 100644
index 0e81ec2..0000000
--- a/sdk/go/docs/QueryDryRunOut.md
+++ /dev/null
@@ -1,133 +0,0 @@
-# QueryDryRunOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**DryRun** | **bool** | |
-**Engine** | **string** | |
-**EstimatedBytesProcessed** | **int32** | |
-**ResultSchema** | [**[]QueryColumnOut**](QueryColumnOut.md) | |
-**Valid** | **bool** | |
-
-## Methods
-
-### NewQueryDryRunOut
-
-`func NewQueryDryRunOut(dryRun bool, engine string, estimatedBytesProcessed int32, resultSchema []QueryColumnOut, valid bool, ) *QueryDryRunOut`
-
-NewQueryDryRunOut instantiates a new QueryDryRunOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewQueryDryRunOutWithDefaults
-
-`func NewQueryDryRunOutWithDefaults() *QueryDryRunOut`
-
-NewQueryDryRunOutWithDefaults instantiates a new QueryDryRunOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetDryRun
-
-`func (o *QueryDryRunOut) GetDryRun() bool`
-
-GetDryRun returns the DryRun field if non-nil, zero value otherwise.
-
-### GetDryRunOk
-
-`func (o *QueryDryRunOut) GetDryRunOk() (*bool, bool)`
-
-GetDryRunOk returns a tuple with the DryRun field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDryRun
-
-`func (o *QueryDryRunOut) SetDryRun(v bool)`
-
-SetDryRun sets DryRun field to given value.
-
-
-### GetEngine
-
-`func (o *QueryDryRunOut) GetEngine() string`
-
-GetEngine returns the Engine field if non-nil, zero value otherwise.
-
-### GetEngineOk
-
-`func (o *QueryDryRunOut) GetEngineOk() (*string, bool)`
-
-GetEngineOk returns a tuple with the Engine field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEngine
-
-`func (o *QueryDryRunOut) SetEngine(v string)`
-
-SetEngine sets Engine field to given value.
-
-
-### GetEstimatedBytesProcessed
-
-`func (o *QueryDryRunOut) GetEstimatedBytesProcessed() int32`
-
-GetEstimatedBytesProcessed returns the EstimatedBytesProcessed field if non-nil, zero value otherwise.
-
-### GetEstimatedBytesProcessedOk
-
-`func (o *QueryDryRunOut) GetEstimatedBytesProcessedOk() (*int32, bool)`
-
-GetEstimatedBytesProcessedOk returns a tuple with the EstimatedBytesProcessed field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEstimatedBytesProcessed
-
-`func (o *QueryDryRunOut) SetEstimatedBytesProcessed(v int32)`
-
-SetEstimatedBytesProcessed sets EstimatedBytesProcessed field to given value.
-
-
-### GetResultSchema
-
-`func (o *QueryDryRunOut) GetResultSchema() []QueryColumnOut`
-
-GetResultSchema returns the ResultSchema field if non-nil, zero value otherwise.
-
-### GetResultSchemaOk
-
-`func (o *QueryDryRunOut) GetResultSchemaOk() (*[]QueryColumnOut, bool)`
-
-GetResultSchemaOk returns a tuple with the ResultSchema field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetResultSchema
-
-`func (o *QueryDryRunOut) SetResultSchema(v []QueryColumnOut)`
-
-SetResultSchema sets ResultSchema field to given value.
-
-
-### GetValid
-
-`func (o *QueryDryRunOut) GetValid() bool`
-
-GetValid returns the Valid field if non-nil, zero value otherwise.
-
-### GetValidOk
-
-`func (o *QueryDryRunOut) GetValidOk() (*bool, bool)`
-
-GetValidOk returns a tuple with the Valid field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetValid
-
-`func (o *QueryDryRunOut) SetValid(v bool)`
-
-SetValid sets Valid field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/QueryIn.md b/sdk/go/docs/QueryIn.md
deleted file mode 100644
index c883822..0000000
--- a/sdk/go/docs/QueryIn.md
+++ /dev/null
@@ -1,101 +0,0 @@
-# QueryIn
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**DryRun** | Pointer to **bool** | | [optional] [default to false]
-**Inputs** | Pointer to **map[string]string** | | [optional]
-**Sql** | **string** | |
-
-## Methods
-
-### NewQueryIn
-
-`func NewQueryIn(sql string, ) *QueryIn`
-
-NewQueryIn instantiates a new QueryIn object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewQueryInWithDefaults
-
-`func NewQueryInWithDefaults() *QueryIn`
-
-NewQueryInWithDefaults instantiates a new QueryIn object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetDryRun
-
-`func (o *QueryIn) GetDryRun() bool`
-
-GetDryRun returns the DryRun field if non-nil, zero value otherwise.
-
-### GetDryRunOk
-
-`func (o *QueryIn) GetDryRunOk() (*bool, bool)`
-
-GetDryRunOk returns a tuple with the DryRun field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDryRun
-
-`func (o *QueryIn) SetDryRun(v bool)`
-
-SetDryRun sets DryRun field to given value.
-
-### HasDryRun
-
-`func (o *QueryIn) HasDryRun() bool`
-
-HasDryRun returns a boolean if a field has been set.
-
-### GetInputs
-
-`func (o *QueryIn) GetInputs() map[string]string`
-
-GetInputs returns the Inputs field if non-nil, zero value otherwise.
-
-### GetInputsOk
-
-`func (o *QueryIn) GetInputsOk() (*map[string]string, bool)`
-
-GetInputsOk returns a tuple with the Inputs field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetInputs
-
-`func (o *QueryIn) SetInputs(v map[string]string)`
-
-SetInputs sets Inputs field to given value.
-
-### HasInputs
-
-`func (o *QueryIn) HasInputs() bool`
-
-HasInputs returns a boolean if a field has been set.
-
-### GetSql
-
-`func (o *QueryIn) GetSql() string`
-
-GetSql returns the Sql field if non-nil, zero value otherwise.
-
-### GetSqlOk
-
-`func (o *QueryIn) GetSqlOk() (*string, bool)`
-
-GetSqlOk returns a tuple with the Sql field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetSql
-
-`func (o *QueryIn) SetSql(v string)`
-
-SetSql sets Sql field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/QueryResultOut.md b/sdk/go/docs/QueryResultOut.md
deleted file mode 100644
index fe39ce7..0000000
--- a/sdk/go/docs/QueryResultOut.md
+++ /dev/null
@@ -1,175 +0,0 @@
-# QueryResultOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**BytesProcessed** | **int32** | |
-**CacheHit** | **bool** | |
-**Engine** | **string** | |
-**Preview** | **[]map[string]interface{}** | |
-**ResultArtId** | **string** | |
-**ResultSchema** | [**[]QueryColumnOut**](QueryColumnOut.md) | |
-**RowCount** | **int32** | |
-
-## Methods
-
-### NewQueryResultOut
-
-`func NewQueryResultOut(bytesProcessed int32, cacheHit bool, engine string, preview []*map[string]interface{}, resultArtId string, resultSchema []QueryColumnOut, rowCount int32, ) *QueryResultOut`
-
-NewQueryResultOut instantiates a new QueryResultOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewQueryResultOutWithDefaults
-
-`func NewQueryResultOutWithDefaults() *QueryResultOut`
-
-NewQueryResultOutWithDefaults instantiates a new QueryResultOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetBytesProcessed
-
-`func (o *QueryResultOut) GetBytesProcessed() int32`
-
-GetBytesProcessed returns the BytesProcessed field if non-nil, zero value otherwise.
-
-### GetBytesProcessedOk
-
-`func (o *QueryResultOut) GetBytesProcessedOk() (*int32, bool)`
-
-GetBytesProcessedOk returns a tuple with the BytesProcessed field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetBytesProcessed
-
-`func (o *QueryResultOut) SetBytesProcessed(v int32)`
-
-SetBytesProcessed sets BytesProcessed field to given value.
-
-
-### GetCacheHit
-
-`func (o *QueryResultOut) GetCacheHit() bool`
-
-GetCacheHit returns the CacheHit field if non-nil, zero value otherwise.
-
-### GetCacheHitOk
-
-`func (o *QueryResultOut) GetCacheHitOk() (*bool, bool)`
-
-GetCacheHitOk returns a tuple with the CacheHit field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCacheHit
-
-`func (o *QueryResultOut) SetCacheHit(v bool)`
-
-SetCacheHit sets CacheHit field to given value.
-
-
-### GetEngine
-
-`func (o *QueryResultOut) GetEngine() string`
-
-GetEngine returns the Engine field if non-nil, zero value otherwise.
-
-### GetEngineOk
-
-`func (o *QueryResultOut) GetEngineOk() (*string, bool)`
-
-GetEngineOk returns a tuple with the Engine field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEngine
-
-`func (o *QueryResultOut) SetEngine(v string)`
-
-SetEngine sets Engine field to given value.
-
-
-### GetPreview
-
-`func (o *QueryResultOut) GetPreview() []*map[string]interface{}`
-
-GetPreview returns the Preview field if non-nil, zero value otherwise.
-
-### GetPreviewOk
-
-`func (o *QueryResultOut) GetPreviewOk() (*[]*map[string]interface{}, bool)`
-
-GetPreviewOk returns a tuple with the Preview field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPreview
-
-`func (o *QueryResultOut) SetPreview(v []*map[string]interface{})`
-
-SetPreview sets Preview field to given value.
-
-
-### GetResultArtId
-
-`func (o *QueryResultOut) GetResultArtId() string`
-
-GetResultArtId returns the ResultArtId field if non-nil, zero value otherwise.
-
-### GetResultArtIdOk
-
-`func (o *QueryResultOut) GetResultArtIdOk() (*string, bool)`
-
-GetResultArtIdOk returns a tuple with the ResultArtId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetResultArtId
-
-`func (o *QueryResultOut) SetResultArtId(v string)`
-
-SetResultArtId sets ResultArtId field to given value.
-
-
-### GetResultSchema
-
-`func (o *QueryResultOut) GetResultSchema() []QueryColumnOut`
-
-GetResultSchema returns the ResultSchema field if non-nil, zero value otherwise.
-
-### GetResultSchemaOk
-
-`func (o *QueryResultOut) GetResultSchemaOk() (*[]QueryColumnOut, bool)`
-
-GetResultSchemaOk returns a tuple with the ResultSchema field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetResultSchema
-
-`func (o *QueryResultOut) SetResultSchema(v []QueryColumnOut)`
-
-SetResultSchema sets ResultSchema field to given value.
-
-
-### GetRowCount
-
-`func (o *QueryResultOut) GetRowCount() int32`
-
-GetRowCount returns the RowCount field if non-nil, zero value otherwise.
-
-### GetRowCountOk
-
-`func (o *QueryResultOut) GetRowCountOk() (*int32, bool)`
-
-GetRowCountOk returns a tuple with the RowCount field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRowCount
-
-`func (o *QueryResultOut) SetRowCount(v int32)`
-
-SetRowCount sets RowCount field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/RegisterAgentIdentityAgentIdentityPost422Response.md b/sdk/go/docs/RegisterAgentIdentityAgentIdentityPost422Response.md
deleted file mode 100644
index bd5c5a1..0000000
--- a/sdk/go/docs/RegisterAgentIdentityAgentIdentityPost422Response.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# RegisterAgentIdentityAgentIdentityPost422Response
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Detail** | [**ErrorDetail**](ErrorDetail.md) | |
-
-## Methods
-
-### NewRegisterAgentIdentityAgentIdentityPost422Response
-
-`func NewRegisterAgentIdentityAgentIdentityPost422Response(detail ErrorDetail, ) *RegisterAgentIdentityAgentIdentityPost422Response`
-
-NewRegisterAgentIdentityAgentIdentityPost422Response instantiates a new RegisterAgentIdentityAgentIdentityPost422Response object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewRegisterAgentIdentityAgentIdentityPost422ResponseWithDefaults
-
-`func NewRegisterAgentIdentityAgentIdentityPost422ResponseWithDefaults() *RegisterAgentIdentityAgentIdentityPost422Response`
-
-NewRegisterAgentIdentityAgentIdentityPost422ResponseWithDefaults instantiates a new RegisterAgentIdentityAgentIdentityPost422Response object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetDetail
-
-`func (o *RegisterAgentIdentityAgentIdentityPost422Response) GetDetail() ErrorDetail`
-
-GetDetail returns the Detail field if non-nil, zero value otherwise.
-
-### GetDetailOk
-
-`func (o *RegisterAgentIdentityAgentIdentityPost422Response) GetDetailOk() (*ErrorDetail, bool)`
-
-GetDetailOk returns a tuple with the Detail field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDetail
-
-`func (o *RegisterAgentIdentityAgentIdentityPost422Response) SetDetail(v ErrorDetail)`
-
-SetDetail sets Detail field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ResponsePostQueryV0QueryPost.md b/sdk/go/docs/ResponsePostQueryV0QueryPost.md
deleted file mode 100644
index 0fd1101..0000000
--- a/sdk/go/docs/ResponsePostQueryV0QueryPost.md
+++ /dev/null
@@ -1,238 +0,0 @@
-# ResponsePostQueryV0QueryPost
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**DryRun** | **bool** | |
-**Engine** | **string** | |
-**EstimatedBytesProcessed** | **int32** | |
-**ResultSchema** | [**[]QueryColumnOut**](QueryColumnOut.md) | |
-**Valid** | **bool** | |
-**BytesProcessed** | **int32** | |
-**CacheHit** | **bool** | |
-**Preview** | **[]map[string]interface{}** | |
-**ResultArtId** | **string** | |
-**RowCount** | **int32** | |
-
-## Methods
-
-### NewResponsePostQueryV0QueryPost
-
-`func NewResponsePostQueryV0QueryPost(dryRun bool, engine string, estimatedBytesProcessed int32, resultSchema []QueryColumnOut, valid bool, bytesProcessed int32, cacheHit bool, preview []map[string]interface{}, resultArtId string, rowCount int32, ) *ResponsePostQueryV0QueryPost`
-
-NewResponsePostQueryV0QueryPost instantiates a new ResponsePostQueryV0QueryPost object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewResponsePostQueryV0QueryPostWithDefaults
-
-`func NewResponsePostQueryV0QueryPostWithDefaults() *ResponsePostQueryV0QueryPost`
-
-NewResponsePostQueryV0QueryPostWithDefaults instantiates a new ResponsePostQueryV0QueryPost object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetDryRun
-
-`func (o *ResponsePostQueryV0QueryPost) GetDryRun() bool`
-
-GetDryRun returns the DryRun field if non-nil, zero value otherwise.
-
-### GetDryRunOk
-
-`func (o *ResponsePostQueryV0QueryPost) GetDryRunOk() (*bool, bool)`
-
-GetDryRunOk returns a tuple with the DryRun field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDryRun
-
-`func (o *ResponsePostQueryV0QueryPost) SetDryRun(v bool)`
-
-SetDryRun sets DryRun field to given value.
-
-
-### GetEngine
-
-`func (o *ResponsePostQueryV0QueryPost) GetEngine() string`
-
-GetEngine returns the Engine field if non-nil, zero value otherwise.
-
-### GetEngineOk
-
-`func (o *ResponsePostQueryV0QueryPost) GetEngineOk() (*string, bool)`
-
-GetEngineOk returns a tuple with the Engine field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEngine
-
-`func (o *ResponsePostQueryV0QueryPost) SetEngine(v string)`
-
-SetEngine sets Engine field to given value.
-
-
-### GetEstimatedBytesProcessed
-
-`func (o *ResponsePostQueryV0QueryPost) GetEstimatedBytesProcessed() int32`
-
-GetEstimatedBytesProcessed returns the EstimatedBytesProcessed field if non-nil, zero value otherwise.
-
-### GetEstimatedBytesProcessedOk
-
-`func (o *ResponsePostQueryV0QueryPost) GetEstimatedBytesProcessedOk() (*int32, bool)`
-
-GetEstimatedBytesProcessedOk returns a tuple with the EstimatedBytesProcessed field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEstimatedBytesProcessed
-
-`func (o *ResponsePostQueryV0QueryPost) SetEstimatedBytesProcessed(v int32)`
-
-SetEstimatedBytesProcessed sets EstimatedBytesProcessed field to given value.
-
-
-### GetResultSchema
-
-`func (o *ResponsePostQueryV0QueryPost) GetResultSchema() []QueryColumnOut`
-
-GetResultSchema returns the ResultSchema field if non-nil, zero value otherwise.
-
-### GetResultSchemaOk
-
-`func (o *ResponsePostQueryV0QueryPost) GetResultSchemaOk() (*[]QueryColumnOut, bool)`
-
-GetResultSchemaOk returns a tuple with the ResultSchema field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetResultSchema
-
-`func (o *ResponsePostQueryV0QueryPost) SetResultSchema(v []QueryColumnOut)`
-
-SetResultSchema sets ResultSchema field to given value.
-
-
-### GetValid
-
-`func (o *ResponsePostQueryV0QueryPost) GetValid() bool`
-
-GetValid returns the Valid field if non-nil, zero value otherwise.
-
-### GetValidOk
-
-`func (o *ResponsePostQueryV0QueryPost) GetValidOk() (*bool, bool)`
-
-GetValidOk returns a tuple with the Valid field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetValid
-
-`func (o *ResponsePostQueryV0QueryPost) SetValid(v bool)`
-
-SetValid sets Valid field to given value.
-
-
-### GetBytesProcessed
-
-`func (o *ResponsePostQueryV0QueryPost) GetBytesProcessed() int32`
-
-GetBytesProcessed returns the BytesProcessed field if non-nil, zero value otherwise.
-
-### GetBytesProcessedOk
-
-`func (o *ResponsePostQueryV0QueryPost) GetBytesProcessedOk() (*int32, bool)`
-
-GetBytesProcessedOk returns a tuple with the BytesProcessed field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetBytesProcessed
-
-`func (o *ResponsePostQueryV0QueryPost) SetBytesProcessed(v int32)`
-
-SetBytesProcessed sets BytesProcessed field to given value.
-
-
-### GetCacheHit
-
-`func (o *ResponsePostQueryV0QueryPost) GetCacheHit() bool`
-
-GetCacheHit returns the CacheHit field if non-nil, zero value otherwise.
-
-### GetCacheHitOk
-
-`func (o *ResponsePostQueryV0QueryPost) GetCacheHitOk() (*bool, bool)`
-
-GetCacheHitOk returns a tuple with the CacheHit field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCacheHit
-
-`func (o *ResponsePostQueryV0QueryPost) SetCacheHit(v bool)`
-
-SetCacheHit sets CacheHit field to given value.
-
-
-### GetPreview
-
-`func (o *ResponsePostQueryV0QueryPost) GetPreview() []map[string]interface{}`
-
-GetPreview returns the Preview field if non-nil, zero value otherwise.
-
-### GetPreviewOk
-
-`func (o *ResponsePostQueryV0QueryPost) GetPreviewOk() (*[]map[string]interface{}, bool)`
-
-GetPreviewOk returns a tuple with the Preview field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPreview
-
-`func (o *ResponsePostQueryV0QueryPost) SetPreview(v []map[string]interface{})`
-
-SetPreview sets Preview field to given value.
-
-
-### GetResultArtId
-
-`func (o *ResponsePostQueryV0QueryPost) GetResultArtId() string`
-
-GetResultArtId returns the ResultArtId field if non-nil, zero value otherwise.
-
-### GetResultArtIdOk
-
-`func (o *ResponsePostQueryV0QueryPost) GetResultArtIdOk() (*string, bool)`
-
-GetResultArtIdOk returns a tuple with the ResultArtId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetResultArtId
-
-`func (o *ResponsePostQueryV0QueryPost) SetResultArtId(v string)`
-
-SetResultArtId sets ResultArtId field to given value.
-
-
-### GetRowCount
-
-`func (o *ResponsePostQueryV0QueryPost) GetRowCount() int32`
-
-GetRowCount returns the RowCount field if non-nil, zero value otherwise.
-
-### GetRowCountOk
-
-`func (o *ResponsePostQueryV0QueryPost) GetRowCountOk() (*int32, bool)`
-
-GetRowCountOk returns a tuple with the RowCount field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRowCount
-
-`func (o *ResponsePostQueryV0QueryPost) SetRowCount(v int32)`
-
-SetRowCount sets RowCount field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/RevokeOut.md b/sdk/go/docs/RevokeOut.md
deleted file mode 100644
index 14ad785..0000000
--- a/sdk/go/docs/RevokeOut.md
+++ /dev/null
@@ -1,96 +0,0 @@
-# RevokeOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Id** | **string** | |
-**Ok** | Pointer to **bool** | | [optional] [default to true]
-**Revoked** | **int32** | |
-
-## Methods
-
-### NewRevokeOut
-
-`func NewRevokeOut(id string, revoked int32, ) *RevokeOut`
-
-NewRevokeOut instantiates a new RevokeOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewRevokeOutWithDefaults
-
-`func NewRevokeOutWithDefaults() *RevokeOut`
-
-NewRevokeOutWithDefaults instantiates a new RevokeOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetId
-
-`func (o *RevokeOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *RevokeOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *RevokeOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetOk
-
-`func (o *RevokeOut) GetOk() bool`
-
-GetOk returns the Ok field if non-nil, zero value otherwise.
-
-### GetOkOk
-
-`func (o *RevokeOut) GetOkOk() (*bool, bool)`
-
-GetOkOk returns a tuple with the Ok field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetOk
-
-`func (o *RevokeOut) SetOk(v bool)`
-
-SetOk sets Ok field to given value.
-
-### HasOk
-
-`func (o *RevokeOut) HasOk() bool`
-
-HasOk returns a boolean if a field has been set.
-
-### GetRevoked
-
-`func (o *RevokeOut) GetRevoked() int32`
-
-GetRevoked returns the Revoked field if non-nil, zero value otherwise.
-
-### GetRevokedOk
-
-`func (o *RevokeOut) GetRevokedOk() (*int32, bool)`
-
-GetRevokedOk returns a tuple with the Revoked field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRevoked
-
-`func (o *RevokeOut) SetRevoked(v int32)`
-
-SetRevoked sets Revoked field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/SearchAPI.md b/sdk/go/docs/SearchAPI.md
new file mode 100644
index 0000000..881771e
--- /dev/null
+++ b/sdk/go/docs/SearchAPI.md
@@ -0,0 +1,99 @@
+# \SearchAPI
+
+All URIs are relative to *https://api.agentdrive.run*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**DriveSearch**](SearchAPI.md#DriveSearch) | **Get** /v0/drives/{drive_id}/search | Drive Search
+
+
+
+## DriveSearch
+
+> SearchPageOut DriveSearch(ctx, driveId).Q(q).Mode(mode).Limit(limit).Cursor(cursor).ParentId(parentId).ContentType(contentType).Label(label).UpdatedAfter(updatedAfter).UpdatedBefore(updatedBefore).Authorization(authorization).Execute()
+
+Drive Search
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ "time"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ q := "q_example" // string |
+ mode := "mode_example" // string | (optional) (default to "lexical")
+ limit := int32(56) // int32 | (optional)
+ cursor := "cursor_example" // string | (optional)
+ parentId := "parentId_example" // string | (optional)
+ contentType := "contentType_example" // string | (optional)
+ label := "label_example" // string | (optional)
+ updatedAfter := time.Now() // time.Time | (optional)
+ updatedBefore := time.Now() // time.Time | (optional)
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.SearchAPI.DriveSearch(context.Background(), driveId).Q(q).Mode(mode).Limit(limit).Cursor(cursor).ParentId(parentId).ContentType(contentType).Label(label).UpdatedAfter(updatedAfter).UpdatedBefore(updatedBefore).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `SearchAPI.DriveSearch``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `DriveSearch`: SearchPageOut
+ fmt.Fprintf(os.Stdout, "Response from `SearchAPI.DriveSearch`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiDriveSearchRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+ **q** | **string** | |
+ **mode** | **string** | | [default to "lexical"]
+ **limit** | **int32** | |
+ **cursor** | **string** | |
+ **parentId** | **string** | |
+ **contentType** | **string** | |
+ **label** | **string** | |
+ **updatedAfter** | **time.Time** | |
+ **updatedBefore** | **time.Time** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**SearchPageOut**](SearchPageOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
diff --git a/sdk/go/docs/SearchHitOut.md b/sdk/go/docs/SearchHitOut.md
index 2d103aa..d66c9ad 100644
--- a/sdk/go/docs/SearchHitOut.md
+++ b/sdk/go/docs/SearchHitOut.md
@@ -4,23 +4,21 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**ArtId** | **string** | |
-**ContentType** | **string** | |
+**ContentType** | **NullableString** | |
**DriveId** | **string** | |
-**FileType** | **string** | |
-**Labels** | Pointer to **[]string** | | [optional]
-**Path** | **string** | |
-**Score** | **float32** | |
-**Snippet** | **string** | |
+**Id** | **string** | |
+**Name** | **string** | |
+**ParentId** | **NullableString** | |
+**Rank** | **float32** | |
+**Snippet** | **string** | HTML-safe highlighted excerpt. The ONLY markup it may contain is the server's own <mark>...</mark> highlight pair; artifact content is entity-escaped, so this may be rendered as HTML. |
**UpdatedAt** | **time.Time** | |
-**Url** | **string** | |
-**VersionNumber** | **int32** | |
+**VersionId** | **NullableString** | |
## Methods
### NewSearchHitOut
-`func NewSearchHitOut(artId string, contentType string, driveId string, fileType string, path string, score float32, snippet string, updatedAt time.Time, url string, versionNumber int32, ) *SearchHitOut`
+`func NewSearchHitOut(contentType NullableString, driveId string, id string, name string, parentId NullableString, rank float32, snippet string, updatedAt time.Time, versionId NullableString, ) *SearchHitOut`
NewSearchHitOut instantiates a new SearchHitOut object
This constructor will assign default values to properties that have it defined,
@@ -35,26 +33,6 @@ NewSearchHitOutWithDefaults instantiates a new SearchHitOut object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
-### GetArtId
-
-`func (o *SearchHitOut) GetArtId() string`
-
-GetArtId returns the ArtId field if non-nil, zero value otherwise.
-
-### GetArtIdOk
-
-`func (o *SearchHitOut) GetArtIdOk() (*string, bool)`
-
-GetArtIdOk returns a tuple with the ArtId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetArtId
-
-`func (o *SearchHitOut) SetArtId(v string)`
-
-SetArtId sets ArtId field to given value.
-
-
### GetContentType
`func (o *SearchHitOut) GetContentType() string`
@@ -75,6 +53,16 @@ and a boolean to check if the value has been set.
SetContentType sets ContentType field to given value.
+### SetContentTypeNil
+
+`func (o *SearchHitOut) SetContentTypeNil(b bool)`
+
+ SetContentTypeNil sets the value for ContentType to be an explicit nil
+
+### UnsetContentType
+`func (o *SearchHitOut) UnsetContentType()`
+
+UnsetContentType ensures that no value is present for ContentType, not even an explicit nil
### GetDriveId
`func (o *SearchHitOut) GetDriveId() string`
@@ -95,89 +83,94 @@ and a boolean to check if the value has been set.
SetDriveId sets DriveId field to given value.
-### GetFileType
+### GetId
-`func (o *SearchHitOut) GetFileType() string`
+`func (o *SearchHitOut) GetId() string`
-GetFileType returns the FileType field if non-nil, zero value otherwise.
+GetId returns the Id field if non-nil, zero value otherwise.
-### GetFileTypeOk
+### GetIdOk
-`func (o *SearchHitOut) GetFileTypeOk() (*string, bool)`
+`func (o *SearchHitOut) GetIdOk() (*string, bool)`
-GetFileTypeOk returns a tuple with the FileType field if it's non-nil, zero value otherwise
+GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetFileType
+### SetId
-`func (o *SearchHitOut) SetFileType(v string)`
+`func (o *SearchHitOut) SetId(v string)`
-SetFileType sets FileType field to given value.
+SetId sets Id field to given value.
-### GetLabels
+### GetName
-`func (o *SearchHitOut) GetLabels() []string`
+`func (o *SearchHitOut) GetName() string`
-GetLabels returns the Labels field if non-nil, zero value otherwise.
+GetName returns the Name field if non-nil, zero value otherwise.
-### GetLabelsOk
+### GetNameOk
-`func (o *SearchHitOut) GetLabelsOk() (*[]string, bool)`
+`func (o *SearchHitOut) GetNameOk() (*string, bool)`
-GetLabelsOk returns a tuple with the Labels field if it's non-nil, zero value otherwise
+GetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetLabels
+### SetName
-`func (o *SearchHitOut) SetLabels(v []string)`
+`func (o *SearchHitOut) SetName(v string)`
-SetLabels sets Labels field to given value.
+SetName sets Name field to given value.
-### HasLabels
-`func (o *SearchHitOut) HasLabels() bool`
+### GetParentId
-HasLabels returns a boolean if a field has been set.
+`func (o *SearchHitOut) GetParentId() string`
-### GetPath
+GetParentId returns the ParentId field if non-nil, zero value otherwise.
-`func (o *SearchHitOut) GetPath() string`
+### GetParentIdOk
-GetPath returns the Path field if non-nil, zero value otherwise.
+`func (o *SearchHitOut) GetParentIdOk() (*string, bool)`
-### GetPathOk
+GetParentIdOk returns a tuple with the ParentId field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
-`func (o *SearchHitOut) GetPathOk() (*string, bool)`
+### SetParentId
-GetPathOk returns a tuple with the Path field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
+`func (o *SearchHitOut) SetParentId(v string)`
-### SetPath
+SetParentId sets ParentId field to given value.
-`func (o *SearchHitOut) SetPath(v string)`
-SetPath sets Path field to given value.
+### SetParentIdNil
+`func (o *SearchHitOut) SetParentIdNil(b bool)`
-### GetScore
+ SetParentIdNil sets the value for ParentId to be an explicit nil
-`func (o *SearchHitOut) GetScore() float32`
+### UnsetParentId
+`func (o *SearchHitOut) UnsetParentId()`
-GetScore returns the Score field if non-nil, zero value otherwise.
+UnsetParentId ensures that no value is present for ParentId, not even an explicit nil
+### GetRank
-### GetScoreOk
+`func (o *SearchHitOut) GetRank() float32`
-`func (o *SearchHitOut) GetScoreOk() (*float32, bool)`
+GetRank returns the Rank field if non-nil, zero value otherwise.
-GetScoreOk returns a tuple with the Score field if it's non-nil, zero value otherwise
+### GetRankOk
+
+`func (o *SearchHitOut) GetRankOk() (*float32, bool)`
+
+GetRankOk returns a tuple with the Rank field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetScore
+### SetRank
-`func (o *SearchHitOut) SetScore(v float32)`
+`func (o *SearchHitOut) SetRank(v float32)`
-SetScore sets Score field to given value.
+SetRank sets Rank field to given value.
### GetSnippet
@@ -220,45 +213,35 @@ and a boolean to check if the value has been set.
SetUpdatedAt sets UpdatedAt field to given value.
-### GetUrl
+### GetVersionId
-`func (o *SearchHitOut) GetUrl() string`
+`func (o *SearchHitOut) GetVersionId() string`
-GetUrl returns the Url field if non-nil, zero value otherwise.
+GetVersionId returns the VersionId field if non-nil, zero value otherwise.
-### GetUrlOk
+### GetVersionIdOk
-`func (o *SearchHitOut) GetUrlOk() (*string, bool)`
+`func (o *SearchHitOut) GetVersionIdOk() (*string, bool)`
-GetUrlOk returns a tuple with the Url field if it's non-nil, zero value otherwise
+GetVersionIdOk returns a tuple with the VersionId field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetUrl
-
-`func (o *SearchHitOut) SetUrl(v string)`
+### SetVersionId
-SetUrl sets Url field to given value.
+`func (o *SearchHitOut) SetVersionId(v string)`
+SetVersionId sets VersionId field to given value.
-### GetVersionNumber
-
-`func (o *SearchHitOut) GetVersionNumber() int32`
-
-GetVersionNumber returns the VersionNumber field if non-nil, zero value otherwise.
-
-### GetVersionNumberOk
-
-`func (o *SearchHitOut) GetVersionNumberOk() (*int32, bool)`
-
-GetVersionNumberOk returns a tuple with the VersionNumber field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-### SetVersionNumber
+### SetVersionIdNil
-`func (o *SearchHitOut) SetVersionNumber(v int32)`
+`func (o *SearchHitOut) SetVersionIdNil(b bool)`
-SetVersionNumber sets VersionNumber field to given value.
+ SetVersionIdNil sets the value for VersionId to be an explicit nil
+### UnsetVersionId
+`func (o *SearchHitOut) UnsetVersionId()`
+UnsetVersionId ensures that no value is present for VersionId, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/SearchPage.md b/sdk/go/docs/SearchPage.md
deleted file mode 100644
index 97451c9..0000000
--- a/sdk/go/docs/SearchPage.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# SearchPage
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Items** | [**[]SearchHitOut**](SearchHitOut.md) | |
-
-## Methods
-
-### NewSearchPage
-
-`func NewSearchPage(items []SearchHitOut, ) *SearchPage`
-
-NewSearchPage instantiates a new SearchPage object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewSearchPageWithDefaults
-
-`func NewSearchPageWithDefaults() *SearchPage`
-
-NewSearchPageWithDefaults instantiates a new SearchPage object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetItems
-
-`func (o *SearchPage) GetItems() []SearchHitOut`
-
-GetItems returns the Items field if non-nil, zero value otherwise.
-
-### GetItemsOk
-
-`func (o *SearchPage) GetItemsOk() (*[]SearchHitOut, bool)`
-
-GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetItems
-
-`func (o *SearchPage) SetItems(v []SearchHitOut)`
-
-SetItems sets Items field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/SearchPageOut.md b/sdk/go/docs/SearchPageOut.md
new file mode 100644
index 0000000..afec7fb
--- /dev/null
+++ b/sdk/go/docs/SearchPageOut.md
@@ -0,0 +1,80 @@
+# SearchPageOut
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Items** | [**[]SearchHitOut**](SearchHitOut.md) | |
+**NextCursor** | **NullableString** | |
+
+## Methods
+
+### NewSearchPageOut
+
+`func NewSearchPageOut(items []SearchHitOut, nextCursor NullableString, ) *SearchPageOut`
+
+NewSearchPageOut instantiates a new SearchPageOut object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewSearchPageOutWithDefaults
+
+`func NewSearchPageOutWithDefaults() *SearchPageOut`
+
+NewSearchPageOutWithDefaults instantiates a new SearchPageOut object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetItems
+
+`func (o *SearchPageOut) GetItems() []SearchHitOut`
+
+GetItems returns the Items field if non-nil, zero value otherwise.
+
+### GetItemsOk
+
+`func (o *SearchPageOut) GetItemsOk() (*[]SearchHitOut, bool)`
+
+GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetItems
+
+`func (o *SearchPageOut) SetItems(v []SearchHitOut)`
+
+SetItems sets Items field to given value.
+
+
+### GetNextCursor
+
+`func (o *SearchPageOut) GetNextCursor() string`
+
+GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
+
+### GetNextCursorOk
+
+`func (o *SearchPageOut) GetNextCursorOk() (*string, bool)`
+
+GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetNextCursor
+
+`func (o *SearchPageOut) SetNextCursor(v string)`
+
+SetNextCursor sets NextCursor field to given value.
+
+
+### SetNextCursorNil
+
+`func (o *SearchPageOut) SetNextCursorNil(b bool)`
+
+ SetNextCursorNil sets the value for NextCursor to be an explicit nil
+
+### UnsetNextCursor
+`func (o *SearchPageOut) UnsetNextCursor()`
+
+UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ShareCreateIn.md b/sdk/go/docs/ShareCreateIn.md
index 1d4b6bd..c721b93 100644
--- a/sdk/go/docs/ShareCreateIn.md
+++ b/sdk/go/docs/ShareCreateIn.md
@@ -4,16 +4,15 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**ExpiresIn** | Pointer to **NullableInt32** | | [optional]
-**Password** | Pointer to **NullableString** | | [optional]
-**Resource** | **string** | |
-**Role** | Pointer to **string** | | [optional] [default to "viewer"]
+**ExpiresAt** | Pointer to **NullableTime** | | [optional]
+**ResourceId** | **string** | |
+**ResourceType** | **string** | |
## Methods
### NewShareCreateIn
-`func NewShareCreateIn(resource string, ) *ShareCreateIn`
+`func NewShareCreateIn(resourceId string, resourceType string, ) *ShareCreateIn`
NewShareCreateIn instantiates a new ShareCreateIn object
This constructor will assign default values to properties that have it defined,
@@ -28,120 +27,80 @@ NewShareCreateInWithDefaults instantiates a new ShareCreateIn object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
-### GetExpiresIn
+### GetExpiresAt
-`func (o *ShareCreateIn) GetExpiresIn() int32`
+`func (o *ShareCreateIn) GetExpiresAt() time.Time`
-GetExpiresIn returns the ExpiresIn field if non-nil, zero value otherwise.
+GetExpiresAt returns the ExpiresAt field if non-nil, zero value otherwise.
-### GetExpiresInOk
+### GetExpiresAtOk
-`func (o *ShareCreateIn) GetExpiresInOk() (*int32, bool)`
+`func (o *ShareCreateIn) GetExpiresAtOk() (*time.Time, bool)`
-GetExpiresInOk returns a tuple with the ExpiresIn field if it's non-nil, zero value otherwise
+GetExpiresAtOk returns a tuple with the ExpiresAt field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetExpiresIn
+### SetExpiresAt
-`func (o *ShareCreateIn) SetExpiresIn(v int32)`
+`func (o *ShareCreateIn) SetExpiresAt(v time.Time)`
-SetExpiresIn sets ExpiresIn field to given value.
+SetExpiresAt sets ExpiresAt field to given value.
-### HasExpiresIn
+### HasExpiresAt
-`func (o *ShareCreateIn) HasExpiresIn() bool`
+`func (o *ShareCreateIn) HasExpiresAt() bool`
-HasExpiresIn returns a boolean if a field has been set.
+HasExpiresAt returns a boolean if a field has been set.
-### SetExpiresInNil
+### SetExpiresAtNil
-`func (o *ShareCreateIn) SetExpiresInNil(b bool)`
+`func (o *ShareCreateIn) SetExpiresAtNil(b bool)`
- SetExpiresInNil sets the value for ExpiresIn to be an explicit nil
+ SetExpiresAtNil sets the value for ExpiresAt to be an explicit nil
-### UnsetExpiresIn
-`func (o *ShareCreateIn) UnsetExpiresIn()`
+### UnsetExpiresAt
+`func (o *ShareCreateIn) UnsetExpiresAt()`
-UnsetExpiresIn ensures that no value is present for ExpiresIn, not even an explicit nil
-### GetPassword
+UnsetExpiresAt ensures that no value is present for ExpiresAt, not even an explicit nil
+### GetResourceId
-`func (o *ShareCreateIn) GetPassword() string`
+`func (o *ShareCreateIn) GetResourceId() string`
-GetPassword returns the Password field if non-nil, zero value otherwise.
+GetResourceId returns the ResourceId field if non-nil, zero value otherwise.
-### GetPasswordOk
+### GetResourceIdOk
-`func (o *ShareCreateIn) GetPasswordOk() (*string, bool)`
+`func (o *ShareCreateIn) GetResourceIdOk() (*string, bool)`
-GetPasswordOk returns a tuple with the Password field if it's non-nil, zero value otherwise
+GetResourceIdOk returns a tuple with the ResourceId field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetPassword
+### SetResourceId
-`func (o *ShareCreateIn) SetPassword(v string)`
+`func (o *ShareCreateIn) SetResourceId(v string)`
-SetPassword sets Password field to given value.
+SetResourceId sets ResourceId field to given value.
-### HasPassword
-`func (o *ShareCreateIn) HasPassword() bool`
+### GetResourceType
-HasPassword returns a boolean if a field has been set.
+`func (o *ShareCreateIn) GetResourceType() string`
-### SetPasswordNil
+GetResourceType returns the ResourceType field if non-nil, zero value otherwise.
-`func (o *ShareCreateIn) SetPasswordNil(b bool)`
+### GetResourceTypeOk
- SetPasswordNil sets the value for Password to be an explicit nil
+`func (o *ShareCreateIn) GetResourceTypeOk() (*string, bool)`
-### UnsetPassword
-`func (o *ShareCreateIn) UnsetPassword()`
-
-UnsetPassword ensures that no value is present for Password, not even an explicit nil
-### GetResource
-
-`func (o *ShareCreateIn) GetResource() string`
-
-GetResource returns the Resource field if non-nil, zero value otherwise.
-
-### GetResourceOk
-
-`func (o *ShareCreateIn) GetResourceOk() (*string, bool)`
-
-GetResourceOk returns a tuple with the Resource field if it's non-nil, zero value otherwise
+GetResourceTypeOk returns a tuple with the ResourceType field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetResource
-
-`func (o *ShareCreateIn) SetResource(v string)`
-
-SetResource sets Resource field to given value.
-
-
-### GetRole
-
-`func (o *ShareCreateIn) GetRole() string`
-
-GetRole returns the Role field if non-nil, zero value otherwise.
-
-### GetRoleOk
-
-`func (o *ShareCreateIn) GetRoleOk() (*string, bool)`
-
-GetRoleOk returns a tuple with the Role field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRole
-
-`func (o *ShareCreateIn) SetRole(v string)`
-
-SetRole sets Role field to given value.
+### SetResourceType
-### HasRole
+`func (o *ShareCreateIn) SetResourceType(v string)`
-`func (o *ShareCreateIn) HasRole() bool`
+SetResourceType sets ResourceType field to given value.
-HasRole returns a boolean if a field has been set.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ShareCreateOut.md b/sdk/go/docs/ShareCreateOut.md
new file mode 100644
index 0000000..8a0b169
--- /dev/null
+++ b/sdk/go/docs/ShareCreateOut.md
@@ -0,0 +1,335 @@
+# ShareCreateOut
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**CreatedAt** | **time.Time** | |
+**CreatedBy** | **NullableString** | |
+**DriveId** | **string** | |
+**ExpiresAt** | **NullableTime** | |
+**Id** | **string** | |
+**ResourceId** | **string** | |
+**ResourceType** | **string** | |
+**Revision** | **string** | |
+**RevokedAt** | **NullableTime** | |
+**RotatedAt** | **NullableTime** | |
+**Secret** | Pointer to **NullableString** | Plaintext share secret. Present only on first execution of a create or rotate; null on idempotent replay — rotate to obtain a new secret. | [optional]
+**State** | **string** | |
+
+## Methods
+
+### NewShareCreateOut
+
+`func NewShareCreateOut(createdAt time.Time, createdBy NullableString, driveId string, expiresAt NullableTime, id string, resourceId string, resourceType string, revision string, revokedAt NullableTime, rotatedAt NullableTime, state string, ) *ShareCreateOut`
+
+NewShareCreateOut instantiates a new ShareCreateOut object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewShareCreateOutWithDefaults
+
+`func NewShareCreateOutWithDefaults() *ShareCreateOut`
+
+NewShareCreateOutWithDefaults instantiates a new ShareCreateOut object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetCreatedAt
+
+`func (o *ShareCreateOut) GetCreatedAt() time.Time`
+
+GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
+
+### GetCreatedAtOk
+
+`func (o *ShareCreateOut) GetCreatedAtOk() (*time.Time, bool)`
+
+GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetCreatedAt
+
+`func (o *ShareCreateOut) SetCreatedAt(v time.Time)`
+
+SetCreatedAt sets CreatedAt field to given value.
+
+
+### GetCreatedBy
+
+`func (o *ShareCreateOut) GetCreatedBy() string`
+
+GetCreatedBy returns the CreatedBy field if non-nil, zero value otherwise.
+
+### GetCreatedByOk
+
+`func (o *ShareCreateOut) GetCreatedByOk() (*string, bool)`
+
+GetCreatedByOk returns a tuple with the CreatedBy field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetCreatedBy
+
+`func (o *ShareCreateOut) SetCreatedBy(v string)`
+
+SetCreatedBy sets CreatedBy field to given value.
+
+
+### SetCreatedByNil
+
+`func (o *ShareCreateOut) SetCreatedByNil(b bool)`
+
+ SetCreatedByNil sets the value for CreatedBy to be an explicit nil
+
+### UnsetCreatedBy
+`func (o *ShareCreateOut) UnsetCreatedBy()`
+
+UnsetCreatedBy ensures that no value is present for CreatedBy, not even an explicit nil
+### GetDriveId
+
+`func (o *ShareCreateOut) GetDriveId() string`
+
+GetDriveId returns the DriveId field if non-nil, zero value otherwise.
+
+### GetDriveIdOk
+
+`func (o *ShareCreateOut) GetDriveIdOk() (*string, bool)`
+
+GetDriveIdOk returns a tuple with the DriveId field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetDriveId
+
+`func (o *ShareCreateOut) SetDriveId(v string)`
+
+SetDriveId sets DriveId field to given value.
+
+
+### GetExpiresAt
+
+`func (o *ShareCreateOut) GetExpiresAt() time.Time`
+
+GetExpiresAt returns the ExpiresAt field if non-nil, zero value otherwise.
+
+### GetExpiresAtOk
+
+`func (o *ShareCreateOut) GetExpiresAtOk() (*time.Time, bool)`
+
+GetExpiresAtOk returns a tuple with the ExpiresAt field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetExpiresAt
+
+`func (o *ShareCreateOut) SetExpiresAt(v time.Time)`
+
+SetExpiresAt sets ExpiresAt field to given value.
+
+
+### SetExpiresAtNil
+
+`func (o *ShareCreateOut) SetExpiresAtNil(b bool)`
+
+ SetExpiresAtNil sets the value for ExpiresAt to be an explicit nil
+
+### UnsetExpiresAt
+`func (o *ShareCreateOut) UnsetExpiresAt()`
+
+UnsetExpiresAt ensures that no value is present for ExpiresAt, not even an explicit nil
+### GetId
+
+`func (o *ShareCreateOut) GetId() string`
+
+GetId returns the Id field if non-nil, zero value otherwise.
+
+### GetIdOk
+
+`func (o *ShareCreateOut) GetIdOk() (*string, bool)`
+
+GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetId
+
+`func (o *ShareCreateOut) SetId(v string)`
+
+SetId sets Id field to given value.
+
+
+### GetResourceId
+
+`func (o *ShareCreateOut) GetResourceId() string`
+
+GetResourceId returns the ResourceId field if non-nil, zero value otherwise.
+
+### GetResourceIdOk
+
+`func (o *ShareCreateOut) GetResourceIdOk() (*string, bool)`
+
+GetResourceIdOk returns a tuple with the ResourceId field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetResourceId
+
+`func (o *ShareCreateOut) SetResourceId(v string)`
+
+SetResourceId sets ResourceId field to given value.
+
+
+### GetResourceType
+
+`func (o *ShareCreateOut) GetResourceType() string`
+
+GetResourceType returns the ResourceType field if non-nil, zero value otherwise.
+
+### GetResourceTypeOk
+
+`func (o *ShareCreateOut) GetResourceTypeOk() (*string, bool)`
+
+GetResourceTypeOk returns a tuple with the ResourceType field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetResourceType
+
+`func (o *ShareCreateOut) SetResourceType(v string)`
+
+SetResourceType sets ResourceType field to given value.
+
+
+### GetRevision
+
+`func (o *ShareCreateOut) GetRevision() string`
+
+GetRevision returns the Revision field if non-nil, zero value otherwise.
+
+### GetRevisionOk
+
+`func (o *ShareCreateOut) GetRevisionOk() (*string, bool)`
+
+GetRevisionOk returns a tuple with the Revision field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetRevision
+
+`func (o *ShareCreateOut) SetRevision(v string)`
+
+SetRevision sets Revision field to given value.
+
+
+### GetRevokedAt
+
+`func (o *ShareCreateOut) GetRevokedAt() time.Time`
+
+GetRevokedAt returns the RevokedAt field if non-nil, zero value otherwise.
+
+### GetRevokedAtOk
+
+`func (o *ShareCreateOut) GetRevokedAtOk() (*time.Time, bool)`
+
+GetRevokedAtOk returns a tuple with the RevokedAt field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetRevokedAt
+
+`func (o *ShareCreateOut) SetRevokedAt(v time.Time)`
+
+SetRevokedAt sets RevokedAt field to given value.
+
+
+### SetRevokedAtNil
+
+`func (o *ShareCreateOut) SetRevokedAtNil(b bool)`
+
+ SetRevokedAtNil sets the value for RevokedAt to be an explicit nil
+
+### UnsetRevokedAt
+`func (o *ShareCreateOut) UnsetRevokedAt()`
+
+UnsetRevokedAt ensures that no value is present for RevokedAt, not even an explicit nil
+### GetRotatedAt
+
+`func (o *ShareCreateOut) GetRotatedAt() time.Time`
+
+GetRotatedAt returns the RotatedAt field if non-nil, zero value otherwise.
+
+### GetRotatedAtOk
+
+`func (o *ShareCreateOut) GetRotatedAtOk() (*time.Time, bool)`
+
+GetRotatedAtOk returns a tuple with the RotatedAt field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetRotatedAt
+
+`func (o *ShareCreateOut) SetRotatedAt(v time.Time)`
+
+SetRotatedAt sets RotatedAt field to given value.
+
+
+### SetRotatedAtNil
+
+`func (o *ShareCreateOut) SetRotatedAtNil(b bool)`
+
+ SetRotatedAtNil sets the value for RotatedAt to be an explicit nil
+
+### UnsetRotatedAt
+`func (o *ShareCreateOut) UnsetRotatedAt()`
+
+UnsetRotatedAt ensures that no value is present for RotatedAt, not even an explicit nil
+### GetSecret
+
+`func (o *ShareCreateOut) GetSecret() string`
+
+GetSecret returns the Secret field if non-nil, zero value otherwise.
+
+### GetSecretOk
+
+`func (o *ShareCreateOut) GetSecretOk() (*string, bool)`
+
+GetSecretOk returns a tuple with the Secret field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetSecret
+
+`func (o *ShareCreateOut) SetSecret(v string)`
+
+SetSecret sets Secret field to given value.
+
+### HasSecret
+
+`func (o *ShareCreateOut) HasSecret() bool`
+
+HasSecret returns a boolean if a field has been set.
+
+### SetSecretNil
+
+`func (o *ShareCreateOut) SetSecretNil(b bool)`
+
+ SetSecretNil sets the value for Secret to be an explicit nil
+
+### UnsetSecret
+`func (o *ShareCreateOut) UnsetSecret()`
+
+UnsetSecret ensures that no value is present for Secret, not even an explicit nil
+### GetState
+
+`func (o *ShareCreateOut) GetState() string`
+
+GetState returns the State field if non-nil, zero value otherwise.
+
+### GetStateOk
+
+`func (o *ShareCreateOut) GetStateOk() (*string, bool)`
+
+GetStateOk returns a tuple with the State field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetState
+
+`func (o *ShareCreateOut) SetState(v string)`
+
+SetState sets State field to given value.
+
+
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ShareErrorOut.md b/sdk/go/docs/ShareErrorOut.md
deleted file mode 100644
index 0b42ade..0000000
--- a/sdk/go/docs/ShareErrorOut.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# ShareErrorOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Error** | [**ErrorBody**](ErrorBody.md) | |
-
-## Methods
-
-### NewShareErrorOut
-
-`func NewShareErrorOut(error_ ErrorBody, ) *ShareErrorOut`
-
-NewShareErrorOut instantiates a new ShareErrorOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewShareErrorOutWithDefaults
-
-`func NewShareErrorOutWithDefaults() *ShareErrorOut`
-
-NewShareErrorOutWithDefaults instantiates a new ShareErrorOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetError
-
-`func (o *ShareErrorOut) GetError() ErrorBody`
-
-GetError returns the Error field if non-nil, zero value otherwise.
-
-### GetErrorOk
-
-`func (o *ShareErrorOut) GetErrorOk() (*ErrorBody, bool)`
-
-GetErrorOk returns a tuple with the Error field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetError
-
-`func (o *ShareErrorOut) SetError(v ErrorBody)`
-
-SetError sets Error field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ShareList.md b/sdk/go/docs/ShareList.md
deleted file mode 100644
index c8760b3..0000000
--- a/sdk/go/docs/ShareList.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# ShareList
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Items** | [**[]ShareOut**](ShareOut.md) | |
-**NextCursor** | Pointer to **NullableString** | | [optional]
-
-## Methods
-
-### NewShareList
-
-`func NewShareList(items []ShareOut, ) *ShareList`
-
-NewShareList instantiates a new ShareList object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewShareListWithDefaults
-
-`func NewShareListWithDefaults() *ShareList`
-
-NewShareListWithDefaults instantiates a new ShareList object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetItems
-
-`func (o *ShareList) GetItems() []ShareOut`
-
-GetItems returns the Items field if non-nil, zero value otherwise.
-
-### GetItemsOk
-
-`func (o *ShareList) GetItemsOk() (*[]ShareOut, bool)`
-
-GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetItems
-
-`func (o *ShareList) SetItems(v []ShareOut)`
-
-SetItems sets Items field to given value.
-
-
-### GetNextCursor
-
-`func (o *ShareList) GetNextCursor() string`
-
-GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
-
-### GetNextCursorOk
-
-`func (o *ShareList) GetNextCursorOk() (*string, bool)`
-
-GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetNextCursor
-
-`func (o *ShareList) SetNextCursor(v string)`
-
-SetNextCursor sets NextCursor field to given value.
-
-### HasNextCursor
-
-`func (o *ShareList) HasNextCursor() bool`
-
-HasNextCursor returns a boolean if a field has been set.
-
-### SetNextCursorNil
-
-`func (o *ShareList) SetNextCursorNil(b bool)`
-
- SetNextCursorNil sets the value for NextCursor to be an explicit nil
-
-### UnsetNextCursor
-`func (o *ShareList) UnsetNextCursor()`
-
-UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ShareListOut.md b/sdk/go/docs/ShareListOut.md
new file mode 100644
index 0000000..b0c808a
--- /dev/null
+++ b/sdk/go/docs/ShareListOut.md
@@ -0,0 +1,80 @@
+# ShareListOut
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Items** | [**[]ShareOut**](ShareOut.md) | |
+**NextCursor** | **NullableString** | |
+
+## Methods
+
+### NewShareListOut
+
+`func NewShareListOut(items []ShareOut, nextCursor NullableString, ) *ShareListOut`
+
+NewShareListOut instantiates a new ShareListOut object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewShareListOutWithDefaults
+
+`func NewShareListOutWithDefaults() *ShareListOut`
+
+NewShareListOutWithDefaults instantiates a new ShareListOut object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetItems
+
+`func (o *ShareListOut) GetItems() []ShareOut`
+
+GetItems returns the Items field if non-nil, zero value otherwise.
+
+### GetItemsOk
+
+`func (o *ShareListOut) GetItemsOk() (*[]ShareOut, bool)`
+
+GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetItems
+
+`func (o *ShareListOut) SetItems(v []ShareOut)`
+
+SetItems sets Items field to given value.
+
+
+### GetNextCursor
+
+`func (o *ShareListOut) GetNextCursor() string`
+
+GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
+
+### GetNextCursorOk
+
+`func (o *ShareListOut) GetNextCursorOk() (*string, bool)`
+
+GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetNextCursor
+
+`func (o *ShareListOut) SetNextCursor(v string)`
+
+SetNextCursor sets NextCursor field to given value.
+
+
+### SetNextCursorNil
+
+`func (o *ShareListOut) SetNextCursorNil(b bool)`
+
+ SetNextCursorNil sets the value for NextCursor to be an explicit nil
+
+### UnsetNextCursor
+`func (o *ShareListOut) UnsetNextCursor()`
+
+UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ShareMintOut.md b/sdk/go/docs/ShareMintOut.md
deleted file mode 100644
index 995bd4a..0000000
--- a/sdk/go/docs/ShareMintOut.md
+++ /dev/null
@@ -1,315 +0,0 @@
-# ShareMintOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**AccessCount** | Pointer to **int32** | | [optional] [default to 0]
-**Audience** | **string** | |
-**CreatedAt** | **time.Time** | |
-**ExpiresAt** | Pointer to **NullableTime** | | [optional]
-**HasPassword** | **bool** | |
-**Id** | **string** | |
-**LastAccessedAt** | Pointer to **NullableTime** | | [optional]
-**ResourceId** | **string** | |
-**ResourceType** | **string** | |
-**Role** | **string** | |
-**ShareKey** | **string** | |
-**Url** | **string** | |
-
-## Methods
-
-### NewShareMintOut
-
-`func NewShareMintOut(audience string, createdAt time.Time, hasPassword bool, id string, resourceId string, resourceType string, role string, shareKey string, url string, ) *ShareMintOut`
-
-NewShareMintOut instantiates a new ShareMintOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewShareMintOutWithDefaults
-
-`func NewShareMintOutWithDefaults() *ShareMintOut`
-
-NewShareMintOutWithDefaults instantiates a new ShareMintOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetAccessCount
-
-`func (o *ShareMintOut) GetAccessCount() int32`
-
-GetAccessCount returns the AccessCount field if non-nil, zero value otherwise.
-
-### GetAccessCountOk
-
-`func (o *ShareMintOut) GetAccessCountOk() (*int32, bool)`
-
-GetAccessCountOk returns a tuple with the AccessCount field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetAccessCount
-
-`func (o *ShareMintOut) SetAccessCount(v int32)`
-
-SetAccessCount sets AccessCount field to given value.
-
-### HasAccessCount
-
-`func (o *ShareMintOut) HasAccessCount() bool`
-
-HasAccessCount returns a boolean if a field has been set.
-
-### GetAudience
-
-`func (o *ShareMintOut) GetAudience() string`
-
-GetAudience returns the Audience field if non-nil, zero value otherwise.
-
-### GetAudienceOk
-
-`func (o *ShareMintOut) GetAudienceOk() (*string, bool)`
-
-GetAudienceOk returns a tuple with the Audience field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetAudience
-
-`func (o *ShareMintOut) SetAudience(v string)`
-
-SetAudience sets Audience field to given value.
-
-
-### GetCreatedAt
-
-`func (o *ShareMintOut) GetCreatedAt() time.Time`
-
-GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
-
-### GetCreatedAtOk
-
-`func (o *ShareMintOut) GetCreatedAtOk() (*time.Time, bool)`
-
-GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCreatedAt
-
-`func (o *ShareMintOut) SetCreatedAt(v time.Time)`
-
-SetCreatedAt sets CreatedAt field to given value.
-
-
-### GetExpiresAt
-
-`func (o *ShareMintOut) GetExpiresAt() time.Time`
-
-GetExpiresAt returns the ExpiresAt field if non-nil, zero value otherwise.
-
-### GetExpiresAtOk
-
-`func (o *ShareMintOut) GetExpiresAtOk() (*time.Time, bool)`
-
-GetExpiresAtOk returns a tuple with the ExpiresAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetExpiresAt
-
-`func (o *ShareMintOut) SetExpiresAt(v time.Time)`
-
-SetExpiresAt sets ExpiresAt field to given value.
-
-### HasExpiresAt
-
-`func (o *ShareMintOut) HasExpiresAt() bool`
-
-HasExpiresAt returns a boolean if a field has been set.
-
-### SetExpiresAtNil
-
-`func (o *ShareMintOut) SetExpiresAtNil(b bool)`
-
- SetExpiresAtNil sets the value for ExpiresAt to be an explicit nil
-
-### UnsetExpiresAt
-`func (o *ShareMintOut) UnsetExpiresAt()`
-
-UnsetExpiresAt ensures that no value is present for ExpiresAt, not even an explicit nil
-### GetHasPassword
-
-`func (o *ShareMintOut) GetHasPassword() bool`
-
-GetHasPassword returns the HasPassword field if non-nil, zero value otherwise.
-
-### GetHasPasswordOk
-
-`func (o *ShareMintOut) GetHasPasswordOk() (*bool, bool)`
-
-GetHasPasswordOk returns a tuple with the HasPassword field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetHasPassword
-
-`func (o *ShareMintOut) SetHasPassword(v bool)`
-
-SetHasPassword sets HasPassword field to given value.
-
-
-### GetId
-
-`func (o *ShareMintOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *ShareMintOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *ShareMintOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetLastAccessedAt
-
-`func (o *ShareMintOut) GetLastAccessedAt() time.Time`
-
-GetLastAccessedAt returns the LastAccessedAt field if non-nil, zero value otherwise.
-
-### GetLastAccessedAtOk
-
-`func (o *ShareMintOut) GetLastAccessedAtOk() (*time.Time, bool)`
-
-GetLastAccessedAtOk returns a tuple with the LastAccessedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLastAccessedAt
-
-`func (o *ShareMintOut) SetLastAccessedAt(v time.Time)`
-
-SetLastAccessedAt sets LastAccessedAt field to given value.
-
-### HasLastAccessedAt
-
-`func (o *ShareMintOut) HasLastAccessedAt() bool`
-
-HasLastAccessedAt returns a boolean if a field has been set.
-
-### SetLastAccessedAtNil
-
-`func (o *ShareMintOut) SetLastAccessedAtNil(b bool)`
-
- SetLastAccessedAtNil sets the value for LastAccessedAt to be an explicit nil
-
-### UnsetLastAccessedAt
-`func (o *ShareMintOut) UnsetLastAccessedAt()`
-
-UnsetLastAccessedAt ensures that no value is present for LastAccessedAt, not even an explicit nil
-### GetResourceId
-
-`func (o *ShareMintOut) GetResourceId() string`
-
-GetResourceId returns the ResourceId field if non-nil, zero value otherwise.
-
-### GetResourceIdOk
-
-`func (o *ShareMintOut) GetResourceIdOk() (*string, bool)`
-
-GetResourceIdOk returns a tuple with the ResourceId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetResourceId
-
-`func (o *ShareMintOut) SetResourceId(v string)`
-
-SetResourceId sets ResourceId field to given value.
-
-
-### GetResourceType
-
-`func (o *ShareMintOut) GetResourceType() string`
-
-GetResourceType returns the ResourceType field if non-nil, zero value otherwise.
-
-### GetResourceTypeOk
-
-`func (o *ShareMintOut) GetResourceTypeOk() (*string, bool)`
-
-GetResourceTypeOk returns a tuple with the ResourceType field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetResourceType
-
-`func (o *ShareMintOut) SetResourceType(v string)`
-
-SetResourceType sets ResourceType field to given value.
-
-
-### GetRole
-
-`func (o *ShareMintOut) GetRole() string`
-
-GetRole returns the Role field if non-nil, zero value otherwise.
-
-### GetRoleOk
-
-`func (o *ShareMintOut) GetRoleOk() (*string, bool)`
-
-GetRoleOk returns a tuple with the Role field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRole
-
-`func (o *ShareMintOut) SetRole(v string)`
-
-SetRole sets Role field to given value.
-
-
-### GetShareKey
-
-`func (o *ShareMintOut) GetShareKey() string`
-
-GetShareKey returns the ShareKey field if non-nil, zero value otherwise.
-
-### GetShareKeyOk
-
-`func (o *ShareMintOut) GetShareKeyOk() (*string, bool)`
-
-GetShareKeyOk returns a tuple with the ShareKey field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetShareKey
-
-`func (o *ShareMintOut) SetShareKey(v string)`
-
-SetShareKey sets ShareKey field to given value.
-
-
-### GetUrl
-
-`func (o *ShareMintOut) GetUrl() string`
-
-GetUrl returns the Url field if non-nil, zero value otherwise.
-
-### GetUrlOk
-
-`func (o *ShareMintOut) GetUrlOk() (*string, bool)`
-
-GetUrlOk returns a tuple with the Url field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetUrl
-
-`func (o *ShareMintOut) SetUrl(v string)`
-
-SetUrl sets Url field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ShareOut.md b/sdk/go/docs/ShareOut.md
index a60442d..233d41e 100644
--- a/sdk/go/docs/ShareOut.md
+++ b/sdk/go/docs/ShareOut.md
@@ -4,22 +4,23 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**AccessCount** | Pointer to **int32** | | [optional] [default to 0]
-**Audience** | **string** | |
**CreatedAt** | **time.Time** | |
-**ExpiresAt** | Pointer to **NullableTime** | | [optional]
-**HasPassword** | **bool** | |
+**CreatedBy** | **NullableString** | |
+**DriveId** | **string** | |
+**ExpiresAt** | **NullableTime** | |
**Id** | **string** | |
-**LastAccessedAt** | Pointer to **NullableTime** | | [optional]
**ResourceId** | **string** | |
**ResourceType** | **string** | |
-**Role** | **string** | |
+**Revision** | **string** | |
+**RevokedAt** | **NullableTime** | |
+**RotatedAt** | **NullableTime** | |
+**State** | **string** | |
## Methods
### NewShareOut
-`func NewShareOut(audience string, createdAt time.Time, hasPassword bool, id string, resourceId string, resourceType string, role string, ) *ShareOut`
+`func NewShareOut(createdAt time.Time, createdBy NullableString, driveId string, expiresAt NullableTime, id string, resourceId string, resourceType string, revision string, revokedAt NullableTime, rotatedAt NullableTime, state string, ) *ShareOut`
NewShareOut instantiates a new ShareOut object
This constructor will assign default values to properties that have it defined,
@@ -34,69 +35,74 @@ NewShareOutWithDefaults instantiates a new ShareOut object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
-### GetAccessCount
+### GetCreatedAt
-`func (o *ShareOut) GetAccessCount() int32`
+`func (o *ShareOut) GetCreatedAt() time.Time`
-GetAccessCount returns the AccessCount field if non-nil, zero value otherwise.
+GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
-### GetAccessCountOk
+### GetCreatedAtOk
-`func (o *ShareOut) GetAccessCountOk() (*int32, bool)`
+`func (o *ShareOut) GetCreatedAtOk() (*time.Time, bool)`
-GetAccessCountOk returns a tuple with the AccessCount field if it's non-nil, zero value otherwise
+GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetAccessCount
+### SetCreatedAt
-`func (o *ShareOut) SetAccessCount(v int32)`
+`func (o *ShareOut) SetCreatedAt(v time.Time)`
-SetAccessCount sets AccessCount field to given value.
+SetCreatedAt sets CreatedAt field to given value.
-### HasAccessCount
-`func (o *ShareOut) HasAccessCount() bool`
+### GetCreatedBy
-HasAccessCount returns a boolean if a field has been set.
+`func (o *ShareOut) GetCreatedBy() string`
-### GetAudience
+GetCreatedBy returns the CreatedBy field if non-nil, zero value otherwise.
-`func (o *ShareOut) GetAudience() string`
+### GetCreatedByOk
-GetAudience returns the Audience field if non-nil, zero value otherwise.
+`func (o *ShareOut) GetCreatedByOk() (*string, bool)`
-### GetAudienceOk
+GetCreatedByOk returns a tuple with the CreatedBy field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
-`func (o *ShareOut) GetAudienceOk() (*string, bool)`
+### SetCreatedBy
-GetAudienceOk returns a tuple with the Audience field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
+`func (o *ShareOut) SetCreatedBy(v string)`
-### SetAudience
+SetCreatedBy sets CreatedBy field to given value.
-`func (o *ShareOut) SetAudience(v string)`
-SetAudience sets Audience field to given value.
+### SetCreatedByNil
+`func (o *ShareOut) SetCreatedByNil(b bool)`
-### GetCreatedAt
+ SetCreatedByNil sets the value for CreatedBy to be an explicit nil
-`func (o *ShareOut) GetCreatedAt() time.Time`
+### UnsetCreatedBy
+`func (o *ShareOut) UnsetCreatedBy()`
-GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
+UnsetCreatedBy ensures that no value is present for CreatedBy, not even an explicit nil
+### GetDriveId
-### GetCreatedAtOk
+`func (o *ShareOut) GetDriveId() string`
-`func (o *ShareOut) GetCreatedAtOk() (*time.Time, bool)`
+GetDriveId returns the DriveId field if non-nil, zero value otherwise.
-GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
+### GetDriveIdOk
+
+`func (o *ShareOut) GetDriveIdOk() (*string, bool)`
+
+GetDriveIdOk returns a tuple with the DriveId field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetCreatedAt
+### SetDriveId
-`func (o *ShareOut) SetCreatedAt(v time.Time)`
+`func (o *ShareOut) SetDriveId(v string)`
-SetCreatedAt sets CreatedAt field to given value.
+SetDriveId sets DriveId field to given value.
### GetExpiresAt
@@ -118,11 +124,6 @@ and a boolean to check if the value has been set.
SetExpiresAt sets ExpiresAt field to given value.
-### HasExpiresAt
-
-`func (o *ShareOut) HasExpiresAt() bool`
-
-HasExpiresAt returns a boolean if a field has been set.
### SetExpiresAtNil
@@ -134,139 +135,164 @@ HasExpiresAt returns a boolean if a field has been set.
`func (o *ShareOut) UnsetExpiresAt()`
UnsetExpiresAt ensures that no value is present for ExpiresAt, not even an explicit nil
-### GetHasPassword
+### GetId
-`func (o *ShareOut) GetHasPassword() bool`
+`func (o *ShareOut) GetId() string`
-GetHasPassword returns the HasPassword field if non-nil, zero value otherwise.
+GetId returns the Id field if non-nil, zero value otherwise.
-### GetHasPasswordOk
+### GetIdOk
-`func (o *ShareOut) GetHasPasswordOk() (*bool, bool)`
+`func (o *ShareOut) GetIdOk() (*string, bool)`
-GetHasPasswordOk returns a tuple with the HasPassword field if it's non-nil, zero value otherwise
+GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetHasPassword
+### SetId
-`func (o *ShareOut) SetHasPassword(v bool)`
+`func (o *ShareOut) SetId(v string)`
-SetHasPassword sets HasPassword field to given value.
+SetId sets Id field to given value.
-### GetId
+### GetResourceId
-`func (o *ShareOut) GetId() string`
+`func (o *ShareOut) GetResourceId() string`
-GetId returns the Id field if non-nil, zero value otherwise.
+GetResourceId returns the ResourceId field if non-nil, zero value otherwise.
-### GetIdOk
+### GetResourceIdOk
-`func (o *ShareOut) GetIdOk() (*string, bool)`
+`func (o *ShareOut) GetResourceIdOk() (*string, bool)`
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
+GetResourceIdOk returns a tuple with the ResourceId field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetId
+### SetResourceId
-`func (o *ShareOut) SetId(v string)`
+`func (o *ShareOut) SetResourceId(v string)`
-SetId sets Id field to given value.
+SetResourceId sets ResourceId field to given value.
-### GetLastAccessedAt
+### GetResourceType
-`func (o *ShareOut) GetLastAccessedAt() time.Time`
+`func (o *ShareOut) GetResourceType() string`
-GetLastAccessedAt returns the LastAccessedAt field if non-nil, zero value otherwise.
+GetResourceType returns the ResourceType field if non-nil, zero value otherwise.
-### GetLastAccessedAtOk
+### GetResourceTypeOk
-`func (o *ShareOut) GetLastAccessedAtOk() (*time.Time, bool)`
+`func (o *ShareOut) GetResourceTypeOk() (*string, bool)`
-GetLastAccessedAtOk returns a tuple with the LastAccessedAt field if it's non-nil, zero value otherwise
+GetResourceTypeOk returns a tuple with the ResourceType field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetLastAccessedAt
+### SetResourceType
-`func (o *ShareOut) SetLastAccessedAt(v time.Time)`
+`func (o *ShareOut) SetResourceType(v string)`
-SetLastAccessedAt sets LastAccessedAt field to given value.
+SetResourceType sets ResourceType field to given value.
-### HasLastAccessedAt
-`func (o *ShareOut) HasLastAccessedAt() bool`
+### GetRevision
-HasLastAccessedAt returns a boolean if a field has been set.
+`func (o *ShareOut) GetRevision() string`
-### SetLastAccessedAtNil
+GetRevision returns the Revision field if non-nil, zero value otherwise.
-`func (o *ShareOut) SetLastAccessedAtNil(b bool)`
+### GetRevisionOk
- SetLastAccessedAtNil sets the value for LastAccessedAt to be an explicit nil
+`func (o *ShareOut) GetRevisionOk() (*string, bool)`
-### UnsetLastAccessedAt
-`func (o *ShareOut) UnsetLastAccessedAt()`
+GetRevisionOk returns a tuple with the Revision field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
-UnsetLastAccessedAt ensures that no value is present for LastAccessedAt, not even an explicit nil
-### GetResourceId
+### SetRevision
-`func (o *ShareOut) GetResourceId() string`
+`func (o *ShareOut) SetRevision(v string)`
-GetResourceId returns the ResourceId field if non-nil, zero value otherwise.
+SetRevision sets Revision field to given value.
-### GetResourceIdOk
-`func (o *ShareOut) GetResourceIdOk() (*string, bool)`
+### GetRevokedAt
-GetResourceIdOk returns a tuple with the ResourceId field if it's non-nil, zero value otherwise
+`func (o *ShareOut) GetRevokedAt() time.Time`
+
+GetRevokedAt returns the RevokedAt field if non-nil, zero value otherwise.
+
+### GetRevokedAtOk
+
+`func (o *ShareOut) GetRevokedAtOk() (*time.Time, bool)`
+
+GetRevokedAtOk returns a tuple with the RevokedAt field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetResourceId
+### SetRevokedAt
-`func (o *ShareOut) SetResourceId(v string)`
+`func (o *ShareOut) SetRevokedAt(v time.Time)`
-SetResourceId sets ResourceId field to given value.
+SetRevokedAt sets RevokedAt field to given value.
-### GetResourceType
+### SetRevokedAtNil
-`func (o *ShareOut) GetResourceType() string`
+`func (o *ShareOut) SetRevokedAtNil(b bool)`
-GetResourceType returns the ResourceType field if non-nil, zero value otherwise.
+ SetRevokedAtNil sets the value for RevokedAt to be an explicit nil
-### GetResourceTypeOk
+### UnsetRevokedAt
+`func (o *ShareOut) UnsetRevokedAt()`
-`func (o *ShareOut) GetResourceTypeOk() (*string, bool)`
+UnsetRevokedAt ensures that no value is present for RevokedAt, not even an explicit nil
+### GetRotatedAt
-GetResourceTypeOk returns a tuple with the ResourceType field if it's non-nil, zero value otherwise
+`func (o *ShareOut) GetRotatedAt() time.Time`
+
+GetRotatedAt returns the RotatedAt field if non-nil, zero value otherwise.
+
+### GetRotatedAtOk
+
+`func (o *ShareOut) GetRotatedAtOk() (*time.Time, bool)`
+
+GetRotatedAtOk returns a tuple with the RotatedAt field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetResourceType
+### SetRotatedAt
-`func (o *ShareOut) SetResourceType(v string)`
+`func (o *ShareOut) SetRotatedAt(v time.Time)`
-SetResourceType sets ResourceType field to given value.
+SetRotatedAt sets RotatedAt field to given value.
+
+
+### SetRotatedAtNil
+
+`func (o *ShareOut) SetRotatedAtNil(b bool)`
+
+ SetRotatedAtNil sets the value for RotatedAt to be an explicit nil
+### UnsetRotatedAt
+`func (o *ShareOut) UnsetRotatedAt()`
-### GetRole
+UnsetRotatedAt ensures that no value is present for RotatedAt, not even an explicit nil
+### GetState
-`func (o *ShareOut) GetRole() string`
+`func (o *ShareOut) GetState() string`
-GetRole returns the Role field if non-nil, zero value otherwise.
+GetState returns the State field if non-nil, zero value otherwise.
-### GetRoleOk
+### GetStateOk
-`func (o *ShareOut) GetRoleOk() (*string, bool)`
+`func (o *ShareOut) GetStateOk() (*string, bool)`
-GetRoleOk returns a tuple with the Role field if it's non-nil, zero value otherwise
+GetStateOk returns a tuple with the State field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetRole
+### SetState
-`func (o *ShareOut) SetRole(v string)`
+`func (o *ShareOut) SetState(v string)`
-SetRole sets Role field to given value.
+SetState sets State field to given value.
diff --git a/sdk/go/docs/ShareRedeemOut.md b/sdk/go/docs/ShareRedeemOut.md
deleted file mode 100644
index a9be17e..0000000
--- a/sdk/go/docs/ShareRedeemOut.md
+++ /dev/null
@@ -1,112 +0,0 @@
-# ShareRedeemOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**ExpiresAt** | **time.Time** | |
-**Role** | **string** | |
-**Token** | **string** | |
-**Url** | **string** | |
-
-## Methods
-
-### NewShareRedeemOut
-
-`func NewShareRedeemOut(expiresAt time.Time, role string, token string, url string, ) *ShareRedeemOut`
-
-NewShareRedeemOut instantiates a new ShareRedeemOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewShareRedeemOutWithDefaults
-
-`func NewShareRedeemOutWithDefaults() *ShareRedeemOut`
-
-NewShareRedeemOutWithDefaults instantiates a new ShareRedeemOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetExpiresAt
-
-`func (o *ShareRedeemOut) GetExpiresAt() time.Time`
-
-GetExpiresAt returns the ExpiresAt field if non-nil, zero value otherwise.
-
-### GetExpiresAtOk
-
-`func (o *ShareRedeemOut) GetExpiresAtOk() (*time.Time, bool)`
-
-GetExpiresAtOk returns a tuple with the ExpiresAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetExpiresAt
-
-`func (o *ShareRedeemOut) SetExpiresAt(v time.Time)`
-
-SetExpiresAt sets ExpiresAt field to given value.
-
-
-### GetRole
-
-`func (o *ShareRedeemOut) GetRole() string`
-
-GetRole returns the Role field if non-nil, zero value otherwise.
-
-### GetRoleOk
-
-`func (o *ShareRedeemOut) GetRoleOk() (*string, bool)`
-
-GetRoleOk returns a tuple with the Role field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRole
-
-`func (o *ShareRedeemOut) SetRole(v string)`
-
-SetRole sets Role field to given value.
-
-
-### GetToken
-
-`func (o *ShareRedeemOut) GetToken() string`
-
-GetToken returns the Token field if non-nil, zero value otherwise.
-
-### GetTokenOk
-
-`func (o *ShareRedeemOut) GetTokenOk() (*string, bool)`
-
-GetTokenOk returns a tuple with the Token field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetToken
-
-`func (o *ShareRedeemOut) SetToken(v string)`
-
-SetToken sets Token field to given value.
-
-
-### GetUrl
-
-`func (o *ShareRedeemOut) GetUrl() string`
-
-GetUrl returns the Url field if non-nil, zero value otherwise.
-
-### GetUrlOk
-
-`func (o *ShareRedeemOut) GetUrlOk() (*string, bool)`
-
-GetUrlOk returns a tuple with the Url field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetUrl
-
-`func (o *ShareRedeemOut) SetUrl(v string)`
-
-SetUrl sets Url field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/SharesAPI.md b/sdk/go/docs/SharesAPI.md
new file mode 100644
index 0000000..5ad5713
--- /dev/null
+++ b/sdk/go/docs/SharesAPI.md
@@ -0,0 +1,405 @@
+# \SharesAPI
+
+All URIs are relative to *https://api.agentdrive.run*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**SharesCreate**](SharesAPI.md#SharesCreate) | **Post** /v0/drives/{drive_id}/shares | Create Share
+[**SharesList**](SharesAPI.md#SharesList) | **Get** /v0/drives/{drive_id}/shares | List Shares
+[**SharesRead**](SharesAPI.md#SharesRead) | **Get** /v0/drives/{drive_id}/shares/{share_id} | Read Share
+[**SharesRevoke**](SharesAPI.md#SharesRevoke) | **Delete** /v0/drives/{drive_id}/shares/{share_id} | Revoke Share
+[**SharesRotate**](SharesAPI.md#SharesRotate) | **Post** /v0/drives/{drive_id}/shares/{share_id}/rotate | Rotate Share
+
+
+
+## SharesCreate
+
+> ShareCreateOut SharesCreate(ctx, driveId).IdempotencyKey(idempotencyKey).ShareCreateIn(shareCreateIn).Authorization(authorization).Execute()
+
+Create Share
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ shareCreateIn := *openapiclient.NewShareCreateIn("ResourceId_example", "ResourceType_example") // ShareCreateIn |
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.SharesAPI.SharesCreate(context.Background(), driveId).IdempotencyKey(idempotencyKey).ShareCreateIn(shareCreateIn).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `SharesAPI.SharesCreate``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `SharesCreate`: ShareCreateOut
+ fmt.Fprintf(os.Stdout, "Response from `SharesAPI.SharesCreate`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiSharesCreateRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+ **idempotencyKey** | **string** | |
+ **shareCreateIn** | [**ShareCreateIn**](ShareCreateIn.md) | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**ShareCreateOut**](ShareCreateOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## SharesList
+
+> ShareListOut SharesList(ctx, driveId).Lifecycle(lifecycle).Limit(limit).Cursor(cursor).ResourceType(resourceType).ResourceId(resourceId).Authorization(authorization).Execute()
+
+List Shares
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ lifecycle := "lifecycle_example" // string | (optional) (default to "active")
+ limit := int32(56) // int32 | (optional)
+ cursor := "cursor_example" // string | (optional)
+ resourceType := "resourceType_example" // string | (optional)
+ resourceId := "resourceId_example" // string | (optional)
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.SharesAPI.SharesList(context.Background(), driveId).Lifecycle(lifecycle).Limit(limit).Cursor(cursor).ResourceType(resourceType).ResourceId(resourceId).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `SharesAPI.SharesList``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `SharesList`: ShareListOut
+ fmt.Fprintf(os.Stdout, "Response from `SharesAPI.SharesList`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiSharesListRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+ **lifecycle** | **string** | | [default to "active"]
+ **limit** | **int32** | |
+ **cursor** | **string** | |
+ **resourceType** | **string** | |
+ **resourceId** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**ShareListOut**](ShareListOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## SharesRead
+
+> ShareOut SharesRead(ctx, driveId, shareId).IfNoneMatch(ifNoneMatch).Authorization(authorization).Execute()
+
+Read Share
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ shareId := "shareId_example" // string |
+ ifNoneMatch := "ifNoneMatch_example" // string | (optional)
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.SharesAPI.SharesRead(context.Background(), driveId, shareId).IfNoneMatch(ifNoneMatch).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `SharesAPI.SharesRead``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `SharesRead`: ShareOut
+ fmt.Fprintf(os.Stdout, "Response from `SharesAPI.SharesRead`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**shareId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiSharesReadRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **ifNoneMatch** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**ShareOut**](ShareOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## SharesRevoke
+
+> ShareOut SharesRevoke(ctx, driveId, shareId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Authorization(authorization).Execute()
+
+Revoke Share
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ shareId := "shareId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ ifMatch := "ifMatch_example" // string |
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.SharesAPI.SharesRevoke(context.Background(), driveId, shareId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `SharesAPI.SharesRevoke``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `SharesRevoke`: ShareOut
+ fmt.Fprintf(os.Stdout, "Response from `SharesAPI.SharesRevoke`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**shareId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiSharesRevokeRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **idempotencyKey** | **string** | |
+ **ifMatch** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**ShareOut**](ShareOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## SharesRotate
+
+> ShareCreateOut SharesRotate(ctx, driveId, shareId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Authorization(authorization).Execute()
+
+Rotate Share
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ shareId := "shareId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ ifMatch := "ifMatch_example" // string |
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.SharesAPI.SharesRotate(context.Background(), driveId, shareId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `SharesAPI.SharesRotate``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `SharesRotate`: ShareCreateOut
+ fmt.Fprintf(os.Stdout, "Response from `SharesAPI.SharesRotate`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**shareId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiSharesRotateRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **idempotencyKey** | **string** | |
+ **ifMatch** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**ShareCreateOut**](ShareCreateOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
diff --git a/sdk/go/docs/SharesRedemptionAPI.md b/sdk/go/docs/SharesRedemptionAPI.md
new file mode 100644
index 0000000..aecf88f
--- /dev/null
+++ b/sdk/go/docs/SharesRedemptionAPI.md
@@ -0,0 +1,78 @@
+# \SharesRedemptionAPI
+
+All URIs are relative to *https://api.agentdrive.run*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**SharesRedeem**](SharesRedemptionAPI.md#SharesRedeem) | **Get** /s/{share_key} | Redeem Share
+
+
+
+## SharesRedeem
+
+> interface{} SharesRedeem(ctx, shareKey).Execute()
+
+Redeem Share
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ shareKey := "shareKey_example" // string |
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.SharesRedemptionAPI.SharesRedeem(context.Background(), shareKey).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `SharesRedemptionAPI.SharesRedeem``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `SharesRedeem`: interface{}
+ fmt.Fprintf(os.Stdout, "Response from `SharesRedemptionAPI.SharesRedeem`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**shareKey** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiSharesRedeemRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+### Return type
+
+**interface{}**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
diff --git a/sdk/go/docs/SourceRef.md b/sdk/go/docs/SourceRef.md
deleted file mode 100644
index bec23d4..0000000
--- a/sdk/go/docs/SourceRef.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# SourceRef
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Id** | **string** | |
-**Metadata** | Pointer to **map[string]interface{}** | | [optional]
-**Type** | **string** | |
-
-## Methods
-
-### NewSourceRef
-
-`func NewSourceRef(id string, type_ string, ) *SourceRef`
-
-NewSourceRef instantiates a new SourceRef object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewSourceRefWithDefaults
-
-`func NewSourceRefWithDefaults() *SourceRef`
-
-NewSourceRefWithDefaults instantiates a new SourceRef object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetId
-
-`func (o *SourceRef) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *SourceRef) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *SourceRef) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetMetadata
-
-`func (o *SourceRef) GetMetadata() map[string]interface{}`
-
-GetMetadata returns the Metadata field if non-nil, zero value otherwise.
-
-### GetMetadataOk
-
-`func (o *SourceRef) GetMetadataOk() (*map[string]interface{}, bool)`
-
-GetMetadataOk returns a tuple with the Metadata field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetMetadata
-
-`func (o *SourceRef) SetMetadata(v map[string]interface{})`
-
-SetMetadata sets Metadata field to given value.
-
-### HasMetadata
-
-`func (o *SourceRef) HasMetadata() bool`
-
-HasMetadata returns a boolean if a field has been set.
-
-### SetMetadataNil
-
-`func (o *SourceRef) SetMetadataNil(b bool)`
-
- SetMetadataNil sets the value for Metadata to be an explicit nil
-
-### UnsetMetadata
-`func (o *SourceRef) UnsetMetadata()`
-
-UnsetMetadata ensures that no value is present for Metadata, not even an explicit nil
-### GetType
-
-`func (o *SourceRef) GetType() string`
-
-GetType returns the Type field if non-nil, zero value otherwise.
-
-### GetTypeOk
-
-`func (o *SourceRef) GetTypeOk() (*string, bool)`
-
-GetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetType
-
-`func (o *SourceRef) SetType(v string)`
-
-SetType sets Type field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/StorageBreakdownOut.md b/sdk/go/docs/StorageBreakdownOut.md
deleted file mode 100644
index 12c453b..0000000
--- a/sdk/go/docs/StorageBreakdownOut.md
+++ /dev/null
@@ -1,112 +0,0 @@
-# StorageBreakdownOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**AsOf** | **string** | |
-**LiveBytes** | **int32** | |
-**TrashBytes** | **int32** | |
-**VersionBytes** | **int32** | |
-
-## Methods
-
-### NewStorageBreakdownOut
-
-`func NewStorageBreakdownOut(asOf string, liveBytes int32, trashBytes int32, versionBytes int32, ) *StorageBreakdownOut`
-
-NewStorageBreakdownOut instantiates a new StorageBreakdownOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewStorageBreakdownOutWithDefaults
-
-`func NewStorageBreakdownOutWithDefaults() *StorageBreakdownOut`
-
-NewStorageBreakdownOutWithDefaults instantiates a new StorageBreakdownOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetAsOf
-
-`func (o *StorageBreakdownOut) GetAsOf() string`
-
-GetAsOf returns the AsOf field if non-nil, zero value otherwise.
-
-### GetAsOfOk
-
-`func (o *StorageBreakdownOut) GetAsOfOk() (*string, bool)`
-
-GetAsOfOk returns a tuple with the AsOf field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetAsOf
-
-`func (o *StorageBreakdownOut) SetAsOf(v string)`
-
-SetAsOf sets AsOf field to given value.
-
-
-### GetLiveBytes
-
-`func (o *StorageBreakdownOut) GetLiveBytes() int32`
-
-GetLiveBytes returns the LiveBytes field if non-nil, zero value otherwise.
-
-### GetLiveBytesOk
-
-`func (o *StorageBreakdownOut) GetLiveBytesOk() (*int32, bool)`
-
-GetLiveBytesOk returns a tuple with the LiveBytes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLiveBytes
-
-`func (o *StorageBreakdownOut) SetLiveBytes(v int32)`
-
-SetLiveBytes sets LiveBytes field to given value.
-
-
-### GetTrashBytes
-
-`func (o *StorageBreakdownOut) GetTrashBytes() int32`
-
-GetTrashBytes returns the TrashBytes field if non-nil, zero value otherwise.
-
-### GetTrashBytesOk
-
-`func (o *StorageBreakdownOut) GetTrashBytesOk() (*int32, bool)`
-
-GetTrashBytesOk returns a tuple with the TrashBytes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetTrashBytes
-
-`func (o *StorageBreakdownOut) SetTrashBytes(v int32)`
-
-SetTrashBytes sets TrashBytes field to given value.
-
-
-### GetVersionBytes
-
-`func (o *StorageBreakdownOut) GetVersionBytes() int32`
-
-GetVersionBytes returns the VersionBytes field if non-nil, zero value otherwise.
-
-### GetVersionBytesOk
-
-`func (o *StorageBreakdownOut) GetVersionBytesOk() (*int32, bool)`
-
-GetVersionBytesOk returns a tuple with the VersionBytes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetVersionBytes
-
-`func (o *StorageBreakdownOut) SetVersionBytes(v int32)`
-
-SetVersionBytes sets VersionBytes field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/StorageFootprintOut.md b/sdk/go/docs/StorageFootprintOut.md
deleted file mode 100644
index dcb722d..0000000
--- a/sdk/go/docs/StorageFootprintOut.md
+++ /dev/null
@@ -1,148 +0,0 @@
-# StorageFootprintOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**AsOf** | Pointer to **NullableString** | | [optional]
-**LiveBytes** | **int32** | |
-**TotalBytes** | **int32** | |
-**TrashBytes** | **int32** | |
-**VersionBytes** | **int32** | |
-
-## Methods
-
-### NewStorageFootprintOut
-
-`func NewStorageFootprintOut(liveBytes int32, totalBytes int32, trashBytes int32, versionBytes int32, ) *StorageFootprintOut`
-
-NewStorageFootprintOut instantiates a new StorageFootprintOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewStorageFootprintOutWithDefaults
-
-`func NewStorageFootprintOutWithDefaults() *StorageFootprintOut`
-
-NewStorageFootprintOutWithDefaults instantiates a new StorageFootprintOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetAsOf
-
-`func (o *StorageFootprintOut) GetAsOf() string`
-
-GetAsOf returns the AsOf field if non-nil, zero value otherwise.
-
-### GetAsOfOk
-
-`func (o *StorageFootprintOut) GetAsOfOk() (*string, bool)`
-
-GetAsOfOk returns a tuple with the AsOf field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetAsOf
-
-`func (o *StorageFootprintOut) SetAsOf(v string)`
-
-SetAsOf sets AsOf field to given value.
-
-### HasAsOf
-
-`func (o *StorageFootprintOut) HasAsOf() bool`
-
-HasAsOf returns a boolean if a field has been set.
-
-### SetAsOfNil
-
-`func (o *StorageFootprintOut) SetAsOfNil(b bool)`
-
- SetAsOfNil sets the value for AsOf to be an explicit nil
-
-### UnsetAsOf
-`func (o *StorageFootprintOut) UnsetAsOf()`
-
-UnsetAsOf ensures that no value is present for AsOf, not even an explicit nil
-### GetLiveBytes
-
-`func (o *StorageFootprintOut) GetLiveBytes() int32`
-
-GetLiveBytes returns the LiveBytes field if non-nil, zero value otherwise.
-
-### GetLiveBytesOk
-
-`func (o *StorageFootprintOut) GetLiveBytesOk() (*int32, bool)`
-
-GetLiveBytesOk returns a tuple with the LiveBytes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLiveBytes
-
-`func (o *StorageFootprintOut) SetLiveBytes(v int32)`
-
-SetLiveBytes sets LiveBytes field to given value.
-
-
-### GetTotalBytes
-
-`func (o *StorageFootprintOut) GetTotalBytes() int32`
-
-GetTotalBytes returns the TotalBytes field if non-nil, zero value otherwise.
-
-### GetTotalBytesOk
-
-`func (o *StorageFootprintOut) GetTotalBytesOk() (*int32, bool)`
-
-GetTotalBytesOk returns a tuple with the TotalBytes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetTotalBytes
-
-`func (o *StorageFootprintOut) SetTotalBytes(v int32)`
-
-SetTotalBytes sets TotalBytes field to given value.
-
-
-### GetTrashBytes
-
-`func (o *StorageFootprintOut) GetTrashBytes() int32`
-
-GetTrashBytes returns the TrashBytes field if non-nil, zero value otherwise.
-
-### GetTrashBytesOk
-
-`func (o *StorageFootprintOut) GetTrashBytesOk() (*int32, bool)`
-
-GetTrashBytesOk returns a tuple with the TrashBytes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetTrashBytes
-
-`func (o *StorageFootprintOut) SetTrashBytes(v int32)`
-
-SetTrashBytes sets TrashBytes field to given value.
-
-
-### GetVersionBytes
-
-`func (o *StorageFootprintOut) GetVersionBytes() int32`
-
-GetVersionBytes returns the VersionBytes field if non-nil, zero value otherwise.
-
-### GetVersionBytesOk
-
-`func (o *StorageFootprintOut) GetVersionBytesOk() (*int32, bool)`
-
-GetVersionBytesOk returns a tuple with the VersionBytes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetVersionBytes
-
-`func (o *StorageFootprintOut) SetVersionBytes(v int32)`
-
-SetVersionBytes sets VersionBytes field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/TokenResponse.md b/sdk/go/docs/TokenResponse.md
deleted file mode 100644
index cefc97f..0000000
--- a/sdk/go/docs/TokenResponse.md
+++ /dev/null
@@ -1,153 +0,0 @@
-# TokenResponse
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**AccessToken** | **string** | |
-**ExpiresIn** | **int32** | Seconds until access_token expiry. |
-**IdentityAssertion** | Pointer to **NullableString** | | [optional]
-**Scope** | **string** | |
-**TokenType** | Pointer to **string** | | [optional] [default to "Bearer"]
-
-## Methods
-
-### NewTokenResponse
-
-`func NewTokenResponse(accessToken string, expiresIn int32, scope string, ) *TokenResponse`
-
-NewTokenResponse instantiates a new TokenResponse object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewTokenResponseWithDefaults
-
-`func NewTokenResponseWithDefaults() *TokenResponse`
-
-NewTokenResponseWithDefaults instantiates a new TokenResponse object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetAccessToken
-
-`func (o *TokenResponse) GetAccessToken() string`
-
-GetAccessToken returns the AccessToken field if non-nil, zero value otherwise.
-
-### GetAccessTokenOk
-
-`func (o *TokenResponse) GetAccessTokenOk() (*string, bool)`
-
-GetAccessTokenOk returns a tuple with the AccessToken field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetAccessToken
-
-`func (o *TokenResponse) SetAccessToken(v string)`
-
-SetAccessToken sets AccessToken field to given value.
-
-
-### GetExpiresIn
-
-`func (o *TokenResponse) GetExpiresIn() int32`
-
-GetExpiresIn returns the ExpiresIn field if non-nil, zero value otherwise.
-
-### GetExpiresInOk
-
-`func (o *TokenResponse) GetExpiresInOk() (*int32, bool)`
-
-GetExpiresInOk returns a tuple with the ExpiresIn field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetExpiresIn
-
-`func (o *TokenResponse) SetExpiresIn(v int32)`
-
-SetExpiresIn sets ExpiresIn field to given value.
-
-
-### GetIdentityAssertion
-
-`func (o *TokenResponse) GetIdentityAssertion() string`
-
-GetIdentityAssertion returns the IdentityAssertion field if non-nil, zero value otherwise.
-
-### GetIdentityAssertionOk
-
-`func (o *TokenResponse) GetIdentityAssertionOk() (*string, bool)`
-
-GetIdentityAssertionOk returns a tuple with the IdentityAssertion field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetIdentityAssertion
-
-`func (o *TokenResponse) SetIdentityAssertion(v string)`
-
-SetIdentityAssertion sets IdentityAssertion field to given value.
-
-### HasIdentityAssertion
-
-`func (o *TokenResponse) HasIdentityAssertion() bool`
-
-HasIdentityAssertion returns a boolean if a field has been set.
-
-### SetIdentityAssertionNil
-
-`func (o *TokenResponse) SetIdentityAssertionNil(b bool)`
-
- SetIdentityAssertionNil sets the value for IdentityAssertion to be an explicit nil
-
-### UnsetIdentityAssertion
-`func (o *TokenResponse) UnsetIdentityAssertion()`
-
-UnsetIdentityAssertion ensures that no value is present for IdentityAssertion, not even an explicit nil
-### GetScope
-
-`func (o *TokenResponse) GetScope() string`
-
-GetScope returns the Scope field if non-nil, zero value otherwise.
-
-### GetScopeOk
-
-`func (o *TokenResponse) GetScopeOk() (*string, bool)`
-
-GetScopeOk returns a tuple with the Scope field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetScope
-
-`func (o *TokenResponse) SetScope(v string)`
-
-SetScope sets Scope field to given value.
-
-
-### GetTokenType
-
-`func (o *TokenResponse) GetTokenType() string`
-
-GetTokenType returns the TokenType field if non-nil, zero value otherwise.
-
-### GetTokenTypeOk
-
-`func (o *TokenResponse) GetTokenTypeOk() (*string, bool)`
-
-GetTokenTypeOk returns a tuple with the TokenType field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetTokenType
-
-`func (o *TokenResponse) SetTokenType(v string)`
-
-SetTokenType sets TokenType field to given value.
-
-### HasTokenType
-
-`func (o *TokenResponse) HasTokenType() bool`
-
-HasTokenType returns a boolean if a field has been set.
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/TokenUsageOut.md b/sdk/go/docs/TokenUsageOut.md
deleted file mode 100644
index f292459..0000000
--- a/sdk/go/docs/TokenUsageOut.md
+++ /dev/null
@@ -1,112 +0,0 @@
-# TokenUsageOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Embed** | **int32** | |
-**LlmCached** | **int32** | |
-**LlmInput** | **int32** | |
-**LlmOutput** | **int32** | |
-
-## Methods
-
-### NewTokenUsageOut
-
-`func NewTokenUsageOut(embed int32, llmCached int32, llmInput int32, llmOutput int32, ) *TokenUsageOut`
-
-NewTokenUsageOut instantiates a new TokenUsageOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewTokenUsageOutWithDefaults
-
-`func NewTokenUsageOutWithDefaults() *TokenUsageOut`
-
-NewTokenUsageOutWithDefaults instantiates a new TokenUsageOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetEmbed
-
-`func (o *TokenUsageOut) GetEmbed() int32`
-
-GetEmbed returns the Embed field if non-nil, zero value otherwise.
-
-### GetEmbedOk
-
-`func (o *TokenUsageOut) GetEmbedOk() (*int32, bool)`
-
-GetEmbedOk returns a tuple with the Embed field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEmbed
-
-`func (o *TokenUsageOut) SetEmbed(v int32)`
-
-SetEmbed sets Embed field to given value.
-
-
-### GetLlmCached
-
-`func (o *TokenUsageOut) GetLlmCached() int32`
-
-GetLlmCached returns the LlmCached field if non-nil, zero value otherwise.
-
-### GetLlmCachedOk
-
-`func (o *TokenUsageOut) GetLlmCachedOk() (*int32, bool)`
-
-GetLlmCachedOk returns a tuple with the LlmCached field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLlmCached
-
-`func (o *TokenUsageOut) SetLlmCached(v int32)`
-
-SetLlmCached sets LlmCached field to given value.
-
-
-### GetLlmInput
-
-`func (o *TokenUsageOut) GetLlmInput() int32`
-
-GetLlmInput returns the LlmInput field if non-nil, zero value otherwise.
-
-### GetLlmInputOk
-
-`func (o *TokenUsageOut) GetLlmInputOk() (*int32, bool)`
-
-GetLlmInputOk returns a tuple with the LlmInput field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLlmInput
-
-`func (o *TokenUsageOut) SetLlmInput(v int32)`
-
-SetLlmInput sets LlmInput field to given value.
-
-
-### GetLlmOutput
-
-`func (o *TokenUsageOut) GetLlmOutput() int32`
-
-GetLlmOutput returns the LlmOutput field if non-nil, zero value otherwise.
-
-### GetLlmOutputOk
-
-`func (o *TokenUsageOut) GetLlmOutputOk() (*int32, bool)`
-
-GetLlmOutputOk returns a tuple with the LlmOutput field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLlmOutput
-
-`func (o *TokenUsageOut) SetLlmOutput(v int32)`
-
-SetLlmOutput sets LlmOutput field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/TokensAPI.md b/sdk/go/docs/TokensAPI.md
deleted file mode 100644
index 93ed131..0000000
--- a/sdk/go/docs/TokensAPI.md
+++ /dev/null
@@ -1,147 +0,0 @@
-# \TokensAPI
-
-All URIs are relative to *https://api.agentdrive.run*
-
-Method | HTTP request | Description
-------------- | ------------- | -------------
-[**ListTokensV0TokensGet**](TokensAPI.md#ListTokensV0TokensGet) | **Get** /v0/tokens | List your user-identity tokens
-[**RevokeTokenV0TokensTokenIdRevokePost**](TokensAPI.md#RevokeTokenV0TokensTokenIdRevokePost) | **Post** /v0/tokens/{token_id}/revoke | Revoke one of your user-identity tokens
-
-
-
-## ListTokensV0TokensGet
-
-> UserTokenList ListTokensV0TokensGet(ctx).Cursor(cursor).Limit(limit).Execute()
-
-List your user-identity tokens
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- cursor := "cursor_example" // string | (optional)
- limit := int32(56) // int32 | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.TokensAPI.ListTokensV0TokensGet(context.Background()).Cursor(cursor).Limit(limit).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `TokensAPI.ListTokensV0TokensGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `ListTokensV0TokensGet`: UserTokenList
- fmt.Fprintf(os.Stdout, "Response from `TokensAPI.ListTokensV0TokensGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiListTokensV0TokensGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **cursor** | **string** | |
- **limit** | **int32** | |
-
-### Return type
-
-[**UserTokenList**](UserTokenList.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## RevokeTokenV0TokensTokenIdRevokePost
-
-> UserTokenOut RevokeTokenV0TokensTokenIdRevokePost(ctx, tokenId).Execute()
-
-Revoke one of your user-identity tokens
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- tokenId := "tokenId_example" // string |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.TokensAPI.RevokeTokenV0TokensTokenIdRevokePost(context.Background(), tokenId).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `TokensAPI.RevokeTokenV0TokensTokenIdRevokePost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `RevokeTokenV0TokensTokenIdRevokePost`: UserTokenOut
- fmt.Fprintf(os.Stdout, "Response from `TokensAPI.RevokeTokenV0TokensTokenIdRevokePost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**tokenId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiRevokeTokenV0TokensTokenIdRevokePostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
-
-### Return type
-
-[**UserTokenOut**](UserTokenOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
diff --git a/sdk/go/docs/TrashArtifactOut.md b/sdk/go/docs/TrashArtifactOut.md
deleted file mode 100644
index 7484bec..0000000
--- a/sdk/go/docs/TrashArtifactOut.md
+++ /dev/null
@@ -1,184 +0,0 @@
-# TrashArtifactOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**DeletedAt** | Pointer to **NullableTime** | | [optional]
-**Id** | **string** | |
-**Path** | **string** | |
-**PurgeAt** | Pointer to **NullableTime** | | [optional]
-**RestoreUrl** | **string** | |
-**SizeBytes** | **int32** | |
-
-## Methods
-
-### NewTrashArtifactOut
-
-`func NewTrashArtifactOut(id string, path string, restoreUrl string, sizeBytes int32, ) *TrashArtifactOut`
-
-NewTrashArtifactOut instantiates a new TrashArtifactOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewTrashArtifactOutWithDefaults
-
-`func NewTrashArtifactOutWithDefaults() *TrashArtifactOut`
-
-NewTrashArtifactOutWithDefaults instantiates a new TrashArtifactOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetDeletedAt
-
-`func (o *TrashArtifactOut) GetDeletedAt() time.Time`
-
-GetDeletedAt returns the DeletedAt field if non-nil, zero value otherwise.
-
-### GetDeletedAtOk
-
-`func (o *TrashArtifactOut) GetDeletedAtOk() (*time.Time, bool)`
-
-GetDeletedAtOk returns a tuple with the DeletedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDeletedAt
-
-`func (o *TrashArtifactOut) SetDeletedAt(v time.Time)`
-
-SetDeletedAt sets DeletedAt field to given value.
-
-### HasDeletedAt
-
-`func (o *TrashArtifactOut) HasDeletedAt() bool`
-
-HasDeletedAt returns a boolean if a field has been set.
-
-### SetDeletedAtNil
-
-`func (o *TrashArtifactOut) SetDeletedAtNil(b bool)`
-
- SetDeletedAtNil sets the value for DeletedAt to be an explicit nil
-
-### UnsetDeletedAt
-`func (o *TrashArtifactOut) UnsetDeletedAt()`
-
-UnsetDeletedAt ensures that no value is present for DeletedAt, not even an explicit nil
-### GetId
-
-`func (o *TrashArtifactOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *TrashArtifactOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *TrashArtifactOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetPath
-
-`func (o *TrashArtifactOut) GetPath() string`
-
-GetPath returns the Path field if non-nil, zero value otherwise.
-
-### GetPathOk
-
-`func (o *TrashArtifactOut) GetPathOk() (*string, bool)`
-
-GetPathOk returns a tuple with the Path field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPath
-
-`func (o *TrashArtifactOut) SetPath(v string)`
-
-SetPath sets Path field to given value.
-
-
-### GetPurgeAt
-
-`func (o *TrashArtifactOut) GetPurgeAt() time.Time`
-
-GetPurgeAt returns the PurgeAt field if non-nil, zero value otherwise.
-
-### GetPurgeAtOk
-
-`func (o *TrashArtifactOut) GetPurgeAtOk() (*time.Time, bool)`
-
-GetPurgeAtOk returns a tuple with the PurgeAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPurgeAt
-
-`func (o *TrashArtifactOut) SetPurgeAt(v time.Time)`
-
-SetPurgeAt sets PurgeAt field to given value.
-
-### HasPurgeAt
-
-`func (o *TrashArtifactOut) HasPurgeAt() bool`
-
-HasPurgeAt returns a boolean if a field has been set.
-
-### SetPurgeAtNil
-
-`func (o *TrashArtifactOut) SetPurgeAtNil(b bool)`
-
- SetPurgeAtNil sets the value for PurgeAt to be an explicit nil
-
-### UnsetPurgeAt
-`func (o *TrashArtifactOut) UnsetPurgeAt()`
-
-UnsetPurgeAt ensures that no value is present for PurgeAt, not even an explicit nil
-### GetRestoreUrl
-
-`func (o *TrashArtifactOut) GetRestoreUrl() string`
-
-GetRestoreUrl returns the RestoreUrl field if non-nil, zero value otherwise.
-
-### GetRestoreUrlOk
-
-`func (o *TrashArtifactOut) GetRestoreUrlOk() (*string, bool)`
-
-GetRestoreUrlOk returns a tuple with the RestoreUrl field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRestoreUrl
-
-`func (o *TrashArtifactOut) SetRestoreUrl(v string)`
-
-SetRestoreUrl sets RestoreUrl field to given value.
-
-
-### GetSizeBytes
-
-`func (o *TrashArtifactOut) GetSizeBytes() int32`
-
-GetSizeBytes returns the SizeBytes field if non-nil, zero value otherwise.
-
-### GetSizeBytesOk
-
-`func (o *TrashArtifactOut) GetSizeBytesOk() (*int32, bool)`
-
-GetSizeBytesOk returns a tuple with the SizeBytes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetSizeBytes
-
-`func (o *TrashArtifactOut) SetSizeBytes(v int32)`
-
-SetSizeBytes sets SizeBytes field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/TrashDriveOut.md b/sdk/go/docs/TrashDriveOut.md
deleted file mode 100644
index e9d18fe..0000000
--- a/sdk/go/docs/TrashDriveOut.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# TrashDriveOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**DeletedAt** | Pointer to **NullableTime** | | [optional]
-**Id** | **string** | |
-
-## Methods
-
-### NewTrashDriveOut
-
-`func NewTrashDriveOut(id string, ) *TrashDriveOut`
-
-NewTrashDriveOut instantiates a new TrashDriveOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewTrashDriveOutWithDefaults
-
-`func NewTrashDriveOutWithDefaults() *TrashDriveOut`
-
-NewTrashDriveOutWithDefaults instantiates a new TrashDriveOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetDeletedAt
-
-`func (o *TrashDriveOut) GetDeletedAt() time.Time`
-
-GetDeletedAt returns the DeletedAt field if non-nil, zero value otherwise.
-
-### GetDeletedAtOk
-
-`func (o *TrashDriveOut) GetDeletedAtOk() (*time.Time, bool)`
-
-GetDeletedAtOk returns a tuple with the DeletedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDeletedAt
-
-`func (o *TrashDriveOut) SetDeletedAt(v time.Time)`
-
-SetDeletedAt sets DeletedAt field to given value.
-
-### HasDeletedAt
-
-`func (o *TrashDriveOut) HasDeletedAt() bool`
-
-HasDeletedAt returns a boolean if a field has been set.
-
-### SetDeletedAtNil
-
-`func (o *TrashDriveOut) SetDeletedAtNil(b bool)`
-
- SetDeletedAtNil sets the value for DeletedAt to be an explicit nil
-
-### UnsetDeletedAt
-`func (o *TrashDriveOut) UnsetDeletedAt()`
-
-UnsetDeletedAt ensures that no value is present for DeletedAt, not even an explicit nil
-### GetId
-
-`func (o *TrashDriveOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *TrashDriveOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *TrashDriveOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/TrashOut.md b/sdk/go/docs/TrashOut.md
deleted file mode 100644
index 6d4923d..0000000
--- a/sdk/go/docs/TrashOut.md
+++ /dev/null
@@ -1,127 +0,0 @@
-# TrashOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Artifacts** | [**[]TrashArtifactOut**](TrashArtifactOut.md) | Deprecated alias of items. |
-**Drive** | [**TrashDriveOut**](TrashDriveOut.md) | |
-**Items** | [**[]TrashArtifactOut**](TrashArtifactOut.md) | |
-**NextCursor** | Pointer to **NullableString** | | [optional]
-
-## Methods
-
-### NewTrashOut
-
-`func NewTrashOut(artifacts []TrashArtifactOut, drive TrashDriveOut, items []TrashArtifactOut, ) *TrashOut`
-
-NewTrashOut instantiates a new TrashOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewTrashOutWithDefaults
-
-`func NewTrashOutWithDefaults() *TrashOut`
-
-NewTrashOutWithDefaults instantiates a new TrashOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetArtifacts
-
-`func (o *TrashOut) GetArtifacts() []TrashArtifactOut`
-
-GetArtifacts returns the Artifacts field if non-nil, zero value otherwise.
-
-### GetArtifactsOk
-
-`func (o *TrashOut) GetArtifactsOk() (*[]TrashArtifactOut, bool)`
-
-GetArtifactsOk returns a tuple with the Artifacts field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetArtifacts
-
-`func (o *TrashOut) SetArtifacts(v []TrashArtifactOut)`
-
-SetArtifacts sets Artifacts field to given value.
-
-
-### GetDrive
-
-`func (o *TrashOut) GetDrive() TrashDriveOut`
-
-GetDrive returns the Drive field if non-nil, zero value otherwise.
-
-### GetDriveOk
-
-`func (o *TrashOut) GetDriveOk() (*TrashDriveOut, bool)`
-
-GetDriveOk returns a tuple with the Drive field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDrive
-
-`func (o *TrashOut) SetDrive(v TrashDriveOut)`
-
-SetDrive sets Drive field to given value.
-
-
-### GetItems
-
-`func (o *TrashOut) GetItems() []TrashArtifactOut`
-
-GetItems returns the Items field if non-nil, zero value otherwise.
-
-### GetItemsOk
-
-`func (o *TrashOut) GetItemsOk() (*[]TrashArtifactOut, bool)`
-
-GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetItems
-
-`func (o *TrashOut) SetItems(v []TrashArtifactOut)`
-
-SetItems sets Items field to given value.
-
-
-### GetNextCursor
-
-`func (o *TrashOut) GetNextCursor() string`
-
-GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
-
-### GetNextCursorOk
-
-`func (o *TrashOut) GetNextCursorOk() (*string, bool)`
-
-GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetNextCursor
-
-`func (o *TrashOut) SetNextCursor(v string)`
-
-SetNextCursor sets NextCursor field to given value.
-
-### HasNextCursor
-
-`func (o *TrashOut) HasNextCursor() bool`
-
-HasNextCursor returns a boolean if a field has been set.
-
-### SetNextCursorNil
-
-`func (o *TrashOut) SetNextCursorNil(b bool)`
-
- SetNextCursorNil sets the value for NextCursor to be an explicit nil
-
-### UnsetNextCursor
-`func (o *TrashOut) UnsetNextCursor()`
-
-UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/UploadAbortOut.md b/sdk/go/docs/UploadAbortOut.md
deleted file mode 100644
index edeaea9..0000000
--- a/sdk/go/docs/UploadAbortOut.md
+++ /dev/null
@@ -1,96 +0,0 @@
-# UploadAbortOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**ReleasedBytes** | **int32** | |
-**State** | Pointer to **string** | | [optional] [default to "aborted"]
-**UploadId** | **string** | |
-
-## Methods
-
-### NewUploadAbortOut
-
-`func NewUploadAbortOut(releasedBytes int32, uploadId string, ) *UploadAbortOut`
-
-NewUploadAbortOut instantiates a new UploadAbortOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewUploadAbortOutWithDefaults
-
-`func NewUploadAbortOutWithDefaults() *UploadAbortOut`
-
-NewUploadAbortOutWithDefaults instantiates a new UploadAbortOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetReleasedBytes
-
-`func (o *UploadAbortOut) GetReleasedBytes() int32`
-
-GetReleasedBytes returns the ReleasedBytes field if non-nil, zero value otherwise.
-
-### GetReleasedBytesOk
-
-`func (o *UploadAbortOut) GetReleasedBytesOk() (*int32, bool)`
-
-GetReleasedBytesOk returns a tuple with the ReleasedBytes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetReleasedBytes
-
-`func (o *UploadAbortOut) SetReleasedBytes(v int32)`
-
-SetReleasedBytes sets ReleasedBytes field to given value.
-
-
-### GetState
-
-`func (o *UploadAbortOut) GetState() string`
-
-GetState returns the State field if non-nil, zero value otherwise.
-
-### GetStateOk
-
-`func (o *UploadAbortOut) GetStateOk() (*string, bool)`
-
-GetStateOk returns a tuple with the State field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetState
-
-`func (o *UploadAbortOut) SetState(v string)`
-
-SetState sets State field to given value.
-
-### HasState
-
-`func (o *UploadAbortOut) HasState() bool`
-
-HasState returns a boolean if a field has been set.
-
-### GetUploadId
-
-`func (o *UploadAbortOut) GetUploadId() string`
-
-GetUploadId returns the UploadId field if non-nil, zero value otherwise.
-
-### GetUploadIdOk
-
-`func (o *UploadAbortOut) GetUploadIdOk() (*string, bool)`
-
-GetUploadIdOk returns a tuple with the UploadId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetUploadId
-
-`func (o *UploadAbortOut) SetUploadId(v string)`
-
-SetUploadId sets UploadId field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/UploadBeginIn.md b/sdk/go/docs/UploadBeginIn.md
deleted file mode 100644
index 00b105a..0000000
--- a/sdk/go/docs/UploadBeginIn.md
+++ /dev/null
@@ -1,410 +0,0 @@
-# UploadBeginIn
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**ActorName** | Pointer to **NullableString** | | [optional]
-**ChangeSummary** | Pointer to **NullableString** | | [optional]
-**ContentType** | Pointer to **string** | | [optional] [default to "application/octet-stream"]
-**CorsOrigin** | Pointer to **NullableString** | Web origin (scheme://host[:port]) of the browser that will PUT the bytes, e.g. `https://app.example.com`. Set this when the `upload_url` is handed to browser code: GCS binds CORS at session initiate, so the returned session only echoes `Access-Control-Allow-Origin` (and is thus PUT-able from a browser) when opened with the caller's origin. A trusted backend relaying a browser upload forwards the browser's `Origin` here. Omit for server/desktop uploads (no CORS enforcement). | [optional]
-**Crc32c** | Pointer to **NullableString** | | [optional]
-**IfMatch** | Pointer to **NullableInt32** | | [optional]
-**IfNoneMatch** | Pointer to **bool** | | [optional] [default to false]
-**Labels** | Pointer to **[]string** | | [optional]
-**Metadata** | Pointer to **map[string]interface{}** | | [optional]
-**Path** | **string** | |
-**SizeBytes** | **int32** | |
-**Source** | Pointer to [**NullableArtifactSource**](ArtifactSource.md) | | [optional]
-
-## Methods
-
-### NewUploadBeginIn
-
-`func NewUploadBeginIn(path string, sizeBytes int32, ) *UploadBeginIn`
-
-NewUploadBeginIn instantiates a new UploadBeginIn object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewUploadBeginInWithDefaults
-
-`func NewUploadBeginInWithDefaults() *UploadBeginIn`
-
-NewUploadBeginInWithDefaults instantiates a new UploadBeginIn object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetActorName
-
-`func (o *UploadBeginIn) GetActorName() string`
-
-GetActorName returns the ActorName field if non-nil, zero value otherwise.
-
-### GetActorNameOk
-
-`func (o *UploadBeginIn) GetActorNameOk() (*string, bool)`
-
-GetActorNameOk returns a tuple with the ActorName field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetActorName
-
-`func (o *UploadBeginIn) SetActorName(v string)`
-
-SetActorName sets ActorName field to given value.
-
-### HasActorName
-
-`func (o *UploadBeginIn) HasActorName() bool`
-
-HasActorName returns a boolean if a field has been set.
-
-### SetActorNameNil
-
-`func (o *UploadBeginIn) SetActorNameNil(b bool)`
-
- SetActorNameNil sets the value for ActorName to be an explicit nil
-
-### UnsetActorName
-`func (o *UploadBeginIn) UnsetActorName()`
-
-UnsetActorName ensures that no value is present for ActorName, not even an explicit nil
-### GetChangeSummary
-
-`func (o *UploadBeginIn) GetChangeSummary() string`
-
-GetChangeSummary returns the ChangeSummary field if non-nil, zero value otherwise.
-
-### GetChangeSummaryOk
-
-`func (o *UploadBeginIn) GetChangeSummaryOk() (*string, bool)`
-
-GetChangeSummaryOk returns a tuple with the ChangeSummary field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetChangeSummary
-
-`func (o *UploadBeginIn) SetChangeSummary(v string)`
-
-SetChangeSummary sets ChangeSummary field to given value.
-
-### HasChangeSummary
-
-`func (o *UploadBeginIn) HasChangeSummary() bool`
-
-HasChangeSummary returns a boolean if a field has been set.
-
-### SetChangeSummaryNil
-
-`func (o *UploadBeginIn) SetChangeSummaryNil(b bool)`
-
- SetChangeSummaryNil sets the value for ChangeSummary to be an explicit nil
-
-### UnsetChangeSummary
-`func (o *UploadBeginIn) UnsetChangeSummary()`
-
-UnsetChangeSummary ensures that no value is present for ChangeSummary, not even an explicit nil
-### GetContentType
-
-`func (o *UploadBeginIn) GetContentType() string`
-
-GetContentType returns the ContentType field if non-nil, zero value otherwise.
-
-### GetContentTypeOk
-
-`func (o *UploadBeginIn) GetContentTypeOk() (*string, bool)`
-
-GetContentTypeOk returns a tuple with the ContentType field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetContentType
-
-`func (o *UploadBeginIn) SetContentType(v string)`
-
-SetContentType sets ContentType field to given value.
-
-### HasContentType
-
-`func (o *UploadBeginIn) HasContentType() bool`
-
-HasContentType returns a boolean if a field has been set.
-
-### GetCorsOrigin
-
-`func (o *UploadBeginIn) GetCorsOrigin() string`
-
-GetCorsOrigin returns the CorsOrigin field if non-nil, zero value otherwise.
-
-### GetCorsOriginOk
-
-`func (o *UploadBeginIn) GetCorsOriginOk() (*string, bool)`
-
-GetCorsOriginOk returns a tuple with the CorsOrigin field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCorsOrigin
-
-`func (o *UploadBeginIn) SetCorsOrigin(v string)`
-
-SetCorsOrigin sets CorsOrigin field to given value.
-
-### HasCorsOrigin
-
-`func (o *UploadBeginIn) HasCorsOrigin() bool`
-
-HasCorsOrigin returns a boolean if a field has been set.
-
-### SetCorsOriginNil
-
-`func (o *UploadBeginIn) SetCorsOriginNil(b bool)`
-
- SetCorsOriginNil sets the value for CorsOrigin to be an explicit nil
-
-### UnsetCorsOrigin
-`func (o *UploadBeginIn) UnsetCorsOrigin()`
-
-UnsetCorsOrigin ensures that no value is present for CorsOrigin, not even an explicit nil
-### GetCrc32c
-
-`func (o *UploadBeginIn) GetCrc32c() string`
-
-GetCrc32c returns the Crc32c field if non-nil, zero value otherwise.
-
-### GetCrc32cOk
-
-`func (o *UploadBeginIn) GetCrc32cOk() (*string, bool)`
-
-GetCrc32cOk returns a tuple with the Crc32c field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCrc32c
-
-`func (o *UploadBeginIn) SetCrc32c(v string)`
-
-SetCrc32c sets Crc32c field to given value.
-
-### HasCrc32c
-
-`func (o *UploadBeginIn) HasCrc32c() bool`
-
-HasCrc32c returns a boolean if a field has been set.
-
-### SetCrc32cNil
-
-`func (o *UploadBeginIn) SetCrc32cNil(b bool)`
-
- SetCrc32cNil sets the value for Crc32c to be an explicit nil
-
-### UnsetCrc32c
-`func (o *UploadBeginIn) UnsetCrc32c()`
-
-UnsetCrc32c ensures that no value is present for Crc32c, not even an explicit nil
-### GetIfMatch
-
-`func (o *UploadBeginIn) GetIfMatch() int32`
-
-GetIfMatch returns the IfMatch field if non-nil, zero value otherwise.
-
-### GetIfMatchOk
-
-`func (o *UploadBeginIn) GetIfMatchOk() (*int32, bool)`
-
-GetIfMatchOk returns a tuple with the IfMatch field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetIfMatch
-
-`func (o *UploadBeginIn) SetIfMatch(v int32)`
-
-SetIfMatch sets IfMatch field to given value.
-
-### HasIfMatch
-
-`func (o *UploadBeginIn) HasIfMatch() bool`
-
-HasIfMatch returns a boolean if a field has been set.
-
-### SetIfMatchNil
-
-`func (o *UploadBeginIn) SetIfMatchNil(b bool)`
-
- SetIfMatchNil sets the value for IfMatch to be an explicit nil
-
-### UnsetIfMatch
-`func (o *UploadBeginIn) UnsetIfMatch()`
-
-UnsetIfMatch ensures that no value is present for IfMatch, not even an explicit nil
-### GetIfNoneMatch
-
-`func (o *UploadBeginIn) GetIfNoneMatch() bool`
-
-GetIfNoneMatch returns the IfNoneMatch field if non-nil, zero value otherwise.
-
-### GetIfNoneMatchOk
-
-`func (o *UploadBeginIn) GetIfNoneMatchOk() (*bool, bool)`
-
-GetIfNoneMatchOk returns a tuple with the IfNoneMatch field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetIfNoneMatch
-
-`func (o *UploadBeginIn) SetIfNoneMatch(v bool)`
-
-SetIfNoneMatch sets IfNoneMatch field to given value.
-
-### HasIfNoneMatch
-
-`func (o *UploadBeginIn) HasIfNoneMatch() bool`
-
-HasIfNoneMatch returns a boolean if a field has been set.
-
-### GetLabels
-
-`func (o *UploadBeginIn) GetLabels() []string`
-
-GetLabels returns the Labels field if non-nil, zero value otherwise.
-
-### GetLabelsOk
-
-`func (o *UploadBeginIn) GetLabelsOk() (*[]string, bool)`
-
-GetLabelsOk returns a tuple with the Labels field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLabels
-
-`func (o *UploadBeginIn) SetLabels(v []string)`
-
-SetLabels sets Labels field to given value.
-
-### HasLabels
-
-`func (o *UploadBeginIn) HasLabels() bool`
-
-HasLabels returns a boolean if a field has been set.
-
-### SetLabelsNil
-
-`func (o *UploadBeginIn) SetLabelsNil(b bool)`
-
- SetLabelsNil sets the value for Labels to be an explicit nil
-
-### UnsetLabels
-`func (o *UploadBeginIn) UnsetLabels()`
-
-UnsetLabels ensures that no value is present for Labels, not even an explicit nil
-### GetMetadata
-
-`func (o *UploadBeginIn) GetMetadata() map[string]interface{}`
-
-GetMetadata returns the Metadata field if non-nil, zero value otherwise.
-
-### GetMetadataOk
-
-`func (o *UploadBeginIn) GetMetadataOk() (*map[string]interface{}, bool)`
-
-GetMetadataOk returns a tuple with the Metadata field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetMetadata
-
-`func (o *UploadBeginIn) SetMetadata(v map[string]interface{})`
-
-SetMetadata sets Metadata field to given value.
-
-### HasMetadata
-
-`func (o *UploadBeginIn) HasMetadata() bool`
-
-HasMetadata returns a boolean if a field has been set.
-
-### SetMetadataNil
-
-`func (o *UploadBeginIn) SetMetadataNil(b bool)`
-
- SetMetadataNil sets the value for Metadata to be an explicit nil
-
-### UnsetMetadata
-`func (o *UploadBeginIn) UnsetMetadata()`
-
-UnsetMetadata ensures that no value is present for Metadata, not even an explicit nil
-### GetPath
-
-`func (o *UploadBeginIn) GetPath() string`
-
-GetPath returns the Path field if non-nil, zero value otherwise.
-
-### GetPathOk
-
-`func (o *UploadBeginIn) GetPathOk() (*string, bool)`
-
-GetPathOk returns a tuple with the Path field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPath
-
-`func (o *UploadBeginIn) SetPath(v string)`
-
-SetPath sets Path field to given value.
-
-
-### GetSizeBytes
-
-`func (o *UploadBeginIn) GetSizeBytes() int32`
-
-GetSizeBytes returns the SizeBytes field if non-nil, zero value otherwise.
-
-### GetSizeBytesOk
-
-`func (o *UploadBeginIn) GetSizeBytesOk() (*int32, bool)`
-
-GetSizeBytesOk returns a tuple with the SizeBytes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetSizeBytes
-
-`func (o *UploadBeginIn) SetSizeBytes(v int32)`
-
-SetSizeBytes sets SizeBytes field to given value.
-
-
-### GetSource
-
-`func (o *UploadBeginIn) GetSource() ArtifactSource`
-
-GetSource returns the Source field if non-nil, zero value otherwise.
-
-### GetSourceOk
-
-`func (o *UploadBeginIn) GetSourceOk() (*ArtifactSource, bool)`
-
-GetSourceOk returns a tuple with the Source field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetSource
-
-`func (o *UploadBeginIn) SetSource(v ArtifactSource)`
-
-SetSource sets Source field to given value.
-
-### HasSource
-
-`func (o *UploadBeginIn) HasSource() bool`
-
-HasSource returns a boolean if a field has been set.
-
-### SetSourceNil
-
-`func (o *UploadBeginIn) SetSourceNil(b bool)`
-
- SetSourceNil sets the value for Source to be an explicit nil
-
-### UnsetSource
-`func (o *UploadBeginIn) UnsetSource()`
-
-UnsetSource ensures that no value is present for Source, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/UploadBeginOut.md b/sdk/go/docs/UploadBeginOut.md
deleted file mode 100644
index ae3698e..0000000
--- a/sdk/go/docs/UploadBeginOut.md
+++ /dev/null
@@ -1,159 +0,0 @@
-# UploadBeginOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**ExpiresAt** | **time.Time** | |
-**Headers** | **map[string]string** | |
-**MaxBytes** | **int32** | |
-**Method** | Pointer to **string** | | [optional] [default to "PUT"]
-**UploadId** | **string** | |
-**UploadUrl** | **string** | |
-
-## Methods
-
-### NewUploadBeginOut
-
-`func NewUploadBeginOut(expiresAt time.Time, headers map[string]string, maxBytes int32, uploadId string, uploadUrl string, ) *UploadBeginOut`
-
-NewUploadBeginOut instantiates a new UploadBeginOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewUploadBeginOutWithDefaults
-
-`func NewUploadBeginOutWithDefaults() *UploadBeginOut`
-
-NewUploadBeginOutWithDefaults instantiates a new UploadBeginOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetExpiresAt
-
-`func (o *UploadBeginOut) GetExpiresAt() time.Time`
-
-GetExpiresAt returns the ExpiresAt field if non-nil, zero value otherwise.
-
-### GetExpiresAtOk
-
-`func (o *UploadBeginOut) GetExpiresAtOk() (*time.Time, bool)`
-
-GetExpiresAtOk returns a tuple with the ExpiresAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetExpiresAt
-
-`func (o *UploadBeginOut) SetExpiresAt(v time.Time)`
-
-SetExpiresAt sets ExpiresAt field to given value.
-
-
-### GetHeaders
-
-`func (o *UploadBeginOut) GetHeaders() map[string]string`
-
-GetHeaders returns the Headers field if non-nil, zero value otherwise.
-
-### GetHeadersOk
-
-`func (o *UploadBeginOut) GetHeadersOk() (*map[string]string, bool)`
-
-GetHeadersOk returns a tuple with the Headers field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetHeaders
-
-`func (o *UploadBeginOut) SetHeaders(v map[string]string)`
-
-SetHeaders sets Headers field to given value.
-
-
-### GetMaxBytes
-
-`func (o *UploadBeginOut) GetMaxBytes() int32`
-
-GetMaxBytes returns the MaxBytes field if non-nil, zero value otherwise.
-
-### GetMaxBytesOk
-
-`func (o *UploadBeginOut) GetMaxBytesOk() (*int32, bool)`
-
-GetMaxBytesOk returns a tuple with the MaxBytes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetMaxBytes
-
-`func (o *UploadBeginOut) SetMaxBytes(v int32)`
-
-SetMaxBytes sets MaxBytes field to given value.
-
-
-### GetMethod
-
-`func (o *UploadBeginOut) GetMethod() string`
-
-GetMethod returns the Method field if non-nil, zero value otherwise.
-
-### GetMethodOk
-
-`func (o *UploadBeginOut) GetMethodOk() (*string, bool)`
-
-GetMethodOk returns a tuple with the Method field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetMethod
-
-`func (o *UploadBeginOut) SetMethod(v string)`
-
-SetMethod sets Method field to given value.
-
-### HasMethod
-
-`func (o *UploadBeginOut) HasMethod() bool`
-
-HasMethod returns a boolean if a field has been set.
-
-### GetUploadId
-
-`func (o *UploadBeginOut) GetUploadId() string`
-
-GetUploadId returns the UploadId field if non-nil, zero value otherwise.
-
-### GetUploadIdOk
-
-`func (o *UploadBeginOut) GetUploadIdOk() (*string, bool)`
-
-GetUploadIdOk returns a tuple with the UploadId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetUploadId
-
-`func (o *UploadBeginOut) SetUploadId(v string)`
-
-SetUploadId sets UploadId field to given value.
-
-
-### GetUploadUrl
-
-`func (o *UploadBeginOut) GetUploadUrl() string`
-
-GetUploadUrl returns the UploadUrl field if non-nil, zero value otherwise.
-
-### GetUploadUrlOk
-
-`func (o *UploadBeginOut) GetUploadUrlOk() (*string, bool)`
-
-GetUploadUrlOk returns a tuple with the UploadUrl field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetUploadUrl
-
-`func (o *UploadBeginOut) SetUploadUrl(v string)`
-
-SetUploadUrl sets UploadUrl field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/UploadStatusOut.md b/sdk/go/docs/UploadStatusOut.md
deleted file mode 100644
index b7e3ba6..0000000
--- a/sdk/go/docs/UploadStatusOut.md
+++ /dev/null
@@ -1,232 +0,0 @@
-# UploadStatusOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**CommittedAt** | Pointer to **NullableTime** | | [optional]
-**ContentType** | **string** | |
-**CreatedAt** | **time.Time** | |
-**ExpiresAt** | **time.Time** | |
-**MaxBytes** | **int32** | |
-**Path** | **string** | |
-**SizeBytes** | **int32** | |
-**State** | **string** | |
-**UploadId** | **string** | |
-
-## Methods
-
-### NewUploadStatusOut
-
-`func NewUploadStatusOut(contentType string, createdAt time.Time, expiresAt time.Time, maxBytes int32, path string, sizeBytes int32, state string, uploadId string, ) *UploadStatusOut`
-
-NewUploadStatusOut instantiates a new UploadStatusOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewUploadStatusOutWithDefaults
-
-`func NewUploadStatusOutWithDefaults() *UploadStatusOut`
-
-NewUploadStatusOutWithDefaults instantiates a new UploadStatusOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetCommittedAt
-
-`func (o *UploadStatusOut) GetCommittedAt() time.Time`
-
-GetCommittedAt returns the CommittedAt field if non-nil, zero value otherwise.
-
-### GetCommittedAtOk
-
-`func (o *UploadStatusOut) GetCommittedAtOk() (*time.Time, bool)`
-
-GetCommittedAtOk returns a tuple with the CommittedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCommittedAt
-
-`func (o *UploadStatusOut) SetCommittedAt(v time.Time)`
-
-SetCommittedAt sets CommittedAt field to given value.
-
-### HasCommittedAt
-
-`func (o *UploadStatusOut) HasCommittedAt() bool`
-
-HasCommittedAt returns a boolean if a field has been set.
-
-### SetCommittedAtNil
-
-`func (o *UploadStatusOut) SetCommittedAtNil(b bool)`
-
- SetCommittedAtNil sets the value for CommittedAt to be an explicit nil
-
-### UnsetCommittedAt
-`func (o *UploadStatusOut) UnsetCommittedAt()`
-
-UnsetCommittedAt ensures that no value is present for CommittedAt, not even an explicit nil
-### GetContentType
-
-`func (o *UploadStatusOut) GetContentType() string`
-
-GetContentType returns the ContentType field if non-nil, zero value otherwise.
-
-### GetContentTypeOk
-
-`func (o *UploadStatusOut) GetContentTypeOk() (*string, bool)`
-
-GetContentTypeOk returns a tuple with the ContentType field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetContentType
-
-`func (o *UploadStatusOut) SetContentType(v string)`
-
-SetContentType sets ContentType field to given value.
-
-
-### GetCreatedAt
-
-`func (o *UploadStatusOut) GetCreatedAt() time.Time`
-
-GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
-
-### GetCreatedAtOk
-
-`func (o *UploadStatusOut) GetCreatedAtOk() (*time.Time, bool)`
-
-GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCreatedAt
-
-`func (o *UploadStatusOut) SetCreatedAt(v time.Time)`
-
-SetCreatedAt sets CreatedAt field to given value.
-
-
-### GetExpiresAt
-
-`func (o *UploadStatusOut) GetExpiresAt() time.Time`
-
-GetExpiresAt returns the ExpiresAt field if non-nil, zero value otherwise.
-
-### GetExpiresAtOk
-
-`func (o *UploadStatusOut) GetExpiresAtOk() (*time.Time, bool)`
-
-GetExpiresAtOk returns a tuple with the ExpiresAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetExpiresAt
-
-`func (o *UploadStatusOut) SetExpiresAt(v time.Time)`
-
-SetExpiresAt sets ExpiresAt field to given value.
-
-
-### GetMaxBytes
-
-`func (o *UploadStatusOut) GetMaxBytes() int32`
-
-GetMaxBytes returns the MaxBytes field if non-nil, zero value otherwise.
-
-### GetMaxBytesOk
-
-`func (o *UploadStatusOut) GetMaxBytesOk() (*int32, bool)`
-
-GetMaxBytesOk returns a tuple with the MaxBytes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetMaxBytes
-
-`func (o *UploadStatusOut) SetMaxBytes(v int32)`
-
-SetMaxBytes sets MaxBytes field to given value.
-
-
-### GetPath
-
-`func (o *UploadStatusOut) GetPath() string`
-
-GetPath returns the Path field if non-nil, zero value otherwise.
-
-### GetPathOk
-
-`func (o *UploadStatusOut) GetPathOk() (*string, bool)`
-
-GetPathOk returns a tuple with the Path field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPath
-
-`func (o *UploadStatusOut) SetPath(v string)`
-
-SetPath sets Path field to given value.
-
-
-### GetSizeBytes
-
-`func (o *UploadStatusOut) GetSizeBytes() int32`
-
-GetSizeBytes returns the SizeBytes field if non-nil, zero value otherwise.
-
-### GetSizeBytesOk
-
-`func (o *UploadStatusOut) GetSizeBytesOk() (*int32, bool)`
-
-GetSizeBytesOk returns a tuple with the SizeBytes field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetSizeBytes
-
-`func (o *UploadStatusOut) SetSizeBytes(v int32)`
-
-SetSizeBytes sets SizeBytes field to given value.
-
-
-### GetState
-
-`func (o *UploadStatusOut) GetState() string`
-
-GetState returns the State field if non-nil, zero value otherwise.
-
-### GetStateOk
-
-`func (o *UploadStatusOut) GetStateOk() (*string, bool)`
-
-GetStateOk returns a tuple with the State field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetState
-
-`func (o *UploadStatusOut) SetState(v string)`
-
-SetState sets State field to given value.
-
-
-### GetUploadId
-
-`func (o *UploadStatusOut) GetUploadId() string`
-
-GetUploadId returns the UploadId field if non-nil, zero value otherwise.
-
-### GetUploadIdOk
-
-`func (o *UploadStatusOut) GetUploadIdOk() (*string, bool)`
-
-GetUploadIdOk returns a tuple with the UploadId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetUploadId
-
-`func (o *UploadStatusOut) SetUploadId(v string)`
-
-SetUploadId sets UploadId field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/UsageCounterOut.md b/sdk/go/docs/UsageCounterOut.md
deleted file mode 100644
index 2ea7ca5..0000000
--- a/sdk/go/docs/UsageCounterOut.md
+++ /dev/null
@@ -1,70 +0,0 @@
-# UsageCounterOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Limit** | **int32** | |
-**Used** | **int32** | |
-
-## Methods
-
-### NewUsageCounterOut
-
-`func NewUsageCounterOut(limit int32, used int32, ) *UsageCounterOut`
-
-NewUsageCounterOut instantiates a new UsageCounterOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewUsageCounterOutWithDefaults
-
-`func NewUsageCounterOutWithDefaults() *UsageCounterOut`
-
-NewUsageCounterOutWithDefaults instantiates a new UsageCounterOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetLimit
-
-`func (o *UsageCounterOut) GetLimit() int32`
-
-GetLimit returns the Limit field if non-nil, zero value otherwise.
-
-### GetLimitOk
-
-`func (o *UsageCounterOut) GetLimitOk() (*int32, bool)`
-
-GetLimitOk returns a tuple with the Limit field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLimit
-
-`func (o *UsageCounterOut) SetLimit(v int32)`
-
-SetLimit sets Limit field to given value.
-
-
-### GetUsed
-
-`func (o *UsageCounterOut) GetUsed() int32`
-
-GetUsed returns the Used field if non-nil, zero value otherwise.
-
-### GetUsedOk
-
-`func (o *UsageCounterOut) GetUsedOk() (*int32, bool)`
-
-GetUsedOk returns a tuple with the Used field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetUsed
-
-`func (o *UsageCounterOut) SetUsed(v int32)`
-
-SetUsed sets Used field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/UsagePeriodOut.md b/sdk/go/docs/UsagePeriodOut.md
deleted file mode 100644
index 2835d9c..0000000
--- a/sdk/go/docs/UsagePeriodOut.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# UsagePeriodOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Ends** | **time.Time** | |
-**Starts** | **time.Time** | |
-**YearMonth** | **string** | |
-
-## Methods
-
-### NewUsagePeriodOut
-
-`func NewUsagePeriodOut(ends time.Time, starts time.Time, yearMonth string, ) *UsagePeriodOut`
-
-NewUsagePeriodOut instantiates a new UsagePeriodOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewUsagePeriodOutWithDefaults
-
-`func NewUsagePeriodOutWithDefaults() *UsagePeriodOut`
-
-NewUsagePeriodOutWithDefaults instantiates a new UsagePeriodOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetEnds
-
-`func (o *UsagePeriodOut) GetEnds() time.Time`
-
-GetEnds returns the Ends field if non-nil, zero value otherwise.
-
-### GetEndsOk
-
-`func (o *UsagePeriodOut) GetEndsOk() (*time.Time, bool)`
-
-GetEndsOk returns a tuple with the Ends field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetEnds
-
-`func (o *UsagePeriodOut) SetEnds(v time.Time)`
-
-SetEnds sets Ends field to given value.
-
-
-### GetStarts
-
-`func (o *UsagePeriodOut) GetStarts() time.Time`
-
-GetStarts returns the Starts field if non-nil, zero value otherwise.
-
-### GetStartsOk
-
-`func (o *UsagePeriodOut) GetStartsOk() (*time.Time, bool)`
-
-GetStartsOk returns a tuple with the Starts field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetStarts
-
-`func (o *UsagePeriodOut) SetStarts(v time.Time)`
-
-SetStarts sets Starts field to given value.
-
-
-### GetYearMonth
-
-`func (o *UsagePeriodOut) GetYearMonth() string`
-
-GetYearMonth returns the YearMonth field if non-nil, zero value otherwise.
-
-### GetYearMonthOk
-
-`func (o *UsagePeriodOut) GetYearMonthOk() (*string, bool)`
-
-GetYearMonthOk returns a tuple with the YearMonth field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetYearMonth
-
-`func (o *UsagePeriodOut) SetYearMonth(v string)`
-
-SetYearMonth sets YearMonth field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/UserTokenList.md b/sdk/go/docs/UserTokenList.md
deleted file mode 100644
index ae9b760..0000000
--- a/sdk/go/docs/UserTokenList.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# UserTokenList
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Items** | [**[]UserTokenOut**](UserTokenOut.md) | |
-**NextCursor** | Pointer to **NullableString** | | [optional]
-
-## Methods
-
-### NewUserTokenList
-
-`func NewUserTokenList(items []UserTokenOut, ) *UserTokenList`
-
-NewUserTokenList instantiates a new UserTokenList object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewUserTokenListWithDefaults
-
-`func NewUserTokenListWithDefaults() *UserTokenList`
-
-NewUserTokenListWithDefaults instantiates a new UserTokenList object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetItems
-
-`func (o *UserTokenList) GetItems() []UserTokenOut`
-
-GetItems returns the Items field if non-nil, zero value otherwise.
-
-### GetItemsOk
-
-`func (o *UserTokenList) GetItemsOk() (*[]UserTokenOut, bool)`
-
-GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetItems
-
-`func (o *UserTokenList) SetItems(v []UserTokenOut)`
-
-SetItems sets Items field to given value.
-
-
-### GetNextCursor
-
-`func (o *UserTokenList) GetNextCursor() string`
-
-GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
-
-### GetNextCursorOk
-
-`func (o *UserTokenList) GetNextCursorOk() (*string, bool)`
-
-GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetNextCursor
-
-`func (o *UserTokenList) SetNextCursor(v string)`
-
-SetNextCursor sets NextCursor field to given value.
-
-### HasNextCursor
-
-`func (o *UserTokenList) HasNextCursor() bool`
-
-HasNextCursor returns a boolean if a field has been set.
-
-### SetNextCursorNil
-
-`func (o *UserTokenList) SetNextCursorNil(b bool)`
-
- SetNextCursorNil sets the value for NextCursor to be an explicit nil
-
-### UnsetNextCursor
-`func (o *UserTokenList) UnsetNextCursor()`
-
-UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/UserTokenOut.md b/sdk/go/docs/UserTokenOut.md
deleted file mode 100644
index 5d011a2..0000000
--- a/sdk/go/docs/UserTokenOut.md
+++ /dev/null
@@ -1,292 +0,0 @@
-# UserTokenOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**CreatedAt** | **time.Time** | |
-**DefaultDriveId** | Pointer to **NullableString** | | [optional]
-**ExpiresAt** | Pointer to **NullableTime** | | [optional]
-**Id** | **string** | |
-**Label** | Pointer to **NullableString** | | [optional]
-**LastUsedAt** | Pointer to **NullableTime** | | [optional]
-**Prefix** | **string** | |
-**RevokedAt** | Pointer to **NullableTime** | | [optional]
-**Scope** | **string** | |
-
-## Methods
-
-### NewUserTokenOut
-
-`func NewUserTokenOut(createdAt time.Time, id string, prefix string, scope string, ) *UserTokenOut`
-
-NewUserTokenOut instantiates a new UserTokenOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewUserTokenOutWithDefaults
-
-`func NewUserTokenOutWithDefaults() *UserTokenOut`
-
-NewUserTokenOutWithDefaults instantiates a new UserTokenOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetCreatedAt
-
-`func (o *UserTokenOut) GetCreatedAt() time.Time`
-
-GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
-
-### GetCreatedAtOk
-
-`func (o *UserTokenOut) GetCreatedAtOk() (*time.Time, bool)`
-
-GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCreatedAt
-
-`func (o *UserTokenOut) SetCreatedAt(v time.Time)`
-
-SetCreatedAt sets CreatedAt field to given value.
-
-
-### GetDefaultDriveId
-
-`func (o *UserTokenOut) GetDefaultDriveId() string`
-
-GetDefaultDriveId returns the DefaultDriveId field if non-nil, zero value otherwise.
-
-### GetDefaultDriveIdOk
-
-`func (o *UserTokenOut) GetDefaultDriveIdOk() (*string, bool)`
-
-GetDefaultDriveIdOk returns a tuple with the DefaultDriveId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetDefaultDriveId
-
-`func (o *UserTokenOut) SetDefaultDriveId(v string)`
-
-SetDefaultDriveId sets DefaultDriveId field to given value.
-
-### HasDefaultDriveId
-
-`func (o *UserTokenOut) HasDefaultDriveId() bool`
-
-HasDefaultDriveId returns a boolean if a field has been set.
-
-### SetDefaultDriveIdNil
-
-`func (o *UserTokenOut) SetDefaultDriveIdNil(b bool)`
-
- SetDefaultDriveIdNil sets the value for DefaultDriveId to be an explicit nil
-
-### UnsetDefaultDriveId
-`func (o *UserTokenOut) UnsetDefaultDriveId()`
-
-UnsetDefaultDriveId ensures that no value is present for DefaultDriveId, not even an explicit nil
-### GetExpiresAt
-
-`func (o *UserTokenOut) GetExpiresAt() time.Time`
-
-GetExpiresAt returns the ExpiresAt field if non-nil, zero value otherwise.
-
-### GetExpiresAtOk
-
-`func (o *UserTokenOut) GetExpiresAtOk() (*time.Time, bool)`
-
-GetExpiresAtOk returns a tuple with the ExpiresAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetExpiresAt
-
-`func (o *UserTokenOut) SetExpiresAt(v time.Time)`
-
-SetExpiresAt sets ExpiresAt field to given value.
-
-### HasExpiresAt
-
-`func (o *UserTokenOut) HasExpiresAt() bool`
-
-HasExpiresAt returns a boolean if a field has been set.
-
-### SetExpiresAtNil
-
-`func (o *UserTokenOut) SetExpiresAtNil(b bool)`
-
- SetExpiresAtNil sets the value for ExpiresAt to be an explicit nil
-
-### UnsetExpiresAt
-`func (o *UserTokenOut) UnsetExpiresAt()`
-
-UnsetExpiresAt ensures that no value is present for ExpiresAt, not even an explicit nil
-### GetId
-
-`func (o *UserTokenOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *UserTokenOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *UserTokenOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetLabel
-
-`func (o *UserTokenOut) GetLabel() string`
-
-GetLabel returns the Label field if non-nil, zero value otherwise.
-
-### GetLabelOk
-
-`func (o *UserTokenOut) GetLabelOk() (*string, bool)`
-
-GetLabelOk returns a tuple with the Label field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLabel
-
-`func (o *UserTokenOut) SetLabel(v string)`
-
-SetLabel sets Label field to given value.
-
-### HasLabel
-
-`func (o *UserTokenOut) HasLabel() bool`
-
-HasLabel returns a boolean if a field has been set.
-
-### SetLabelNil
-
-`func (o *UserTokenOut) SetLabelNil(b bool)`
-
- SetLabelNil sets the value for Label to be an explicit nil
-
-### UnsetLabel
-`func (o *UserTokenOut) UnsetLabel()`
-
-UnsetLabel ensures that no value is present for Label, not even an explicit nil
-### GetLastUsedAt
-
-`func (o *UserTokenOut) GetLastUsedAt() time.Time`
-
-GetLastUsedAt returns the LastUsedAt field if non-nil, zero value otherwise.
-
-### GetLastUsedAtOk
-
-`func (o *UserTokenOut) GetLastUsedAtOk() (*time.Time, bool)`
-
-GetLastUsedAtOk returns a tuple with the LastUsedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLastUsedAt
-
-`func (o *UserTokenOut) SetLastUsedAt(v time.Time)`
-
-SetLastUsedAt sets LastUsedAt field to given value.
-
-### HasLastUsedAt
-
-`func (o *UserTokenOut) HasLastUsedAt() bool`
-
-HasLastUsedAt returns a boolean if a field has been set.
-
-### SetLastUsedAtNil
-
-`func (o *UserTokenOut) SetLastUsedAtNil(b bool)`
-
- SetLastUsedAtNil sets the value for LastUsedAt to be an explicit nil
-
-### UnsetLastUsedAt
-`func (o *UserTokenOut) UnsetLastUsedAt()`
-
-UnsetLastUsedAt ensures that no value is present for LastUsedAt, not even an explicit nil
-### GetPrefix
-
-`func (o *UserTokenOut) GetPrefix() string`
-
-GetPrefix returns the Prefix field if non-nil, zero value otherwise.
-
-### GetPrefixOk
-
-`func (o *UserTokenOut) GetPrefixOk() (*string, bool)`
-
-GetPrefixOk returns a tuple with the Prefix field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPrefix
-
-`func (o *UserTokenOut) SetPrefix(v string)`
-
-SetPrefix sets Prefix field to given value.
-
-
-### GetRevokedAt
-
-`func (o *UserTokenOut) GetRevokedAt() time.Time`
-
-GetRevokedAt returns the RevokedAt field if non-nil, zero value otherwise.
-
-### GetRevokedAtOk
-
-`func (o *UserTokenOut) GetRevokedAtOk() (*time.Time, bool)`
-
-GetRevokedAtOk returns a tuple with the RevokedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRevokedAt
-
-`func (o *UserTokenOut) SetRevokedAt(v time.Time)`
-
-SetRevokedAt sets RevokedAt field to given value.
-
-### HasRevokedAt
-
-`func (o *UserTokenOut) HasRevokedAt() bool`
-
-HasRevokedAt returns a boolean if a field has been set.
-
-### SetRevokedAtNil
-
-`func (o *UserTokenOut) SetRevokedAtNil(b bool)`
-
- SetRevokedAtNil sets the value for RevokedAt to be an explicit nil
-
-### UnsetRevokedAt
-`func (o *UserTokenOut) UnsetRevokedAt()`
-
-UnsetRevokedAt ensures that no value is present for RevokedAt, not even an explicit nil
-### GetScope
-
-`func (o *UserTokenOut) GetScope() string`
-
-GetScope returns the Scope field if non-nil, zero value otherwise.
-
-### GetScopeOk
-
-`func (o *UserTokenOut) GetScopeOk() (*string, bool)`
-
-GetScopeOk returns a tuple with the Scope field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetScope
-
-`func (o *UserTokenOut) SetScope(v string)`
-
-SetScope sets Scope field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/V0ErrorEnvelope.md b/sdk/go/docs/V0ErrorEnvelope.md
new file mode 100644
index 0000000..0cac47e
--- /dev/null
+++ b/sdk/go/docs/V0ErrorEnvelope.md
@@ -0,0 +1,49 @@
+# V0ErrorEnvelope
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Error** | [**DrivesCreate400ResponseError**](DrivesCreate400ResponseError.md) | |
+
+## Methods
+
+### NewV0ErrorEnvelope
+
+`func NewV0ErrorEnvelope(error_ DrivesCreate400ResponseError, ) *V0ErrorEnvelope`
+
+NewV0ErrorEnvelope instantiates a new V0ErrorEnvelope object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewV0ErrorEnvelopeWithDefaults
+
+`func NewV0ErrorEnvelopeWithDefaults() *V0ErrorEnvelope`
+
+NewV0ErrorEnvelopeWithDefaults instantiates a new V0ErrorEnvelope object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetError
+
+`func (o *V0ErrorEnvelope) GetError() DrivesCreate400ResponseError`
+
+GetError returns the Error field if non-nil, zero value otherwise.
+
+### GetErrorOk
+
+`func (o *V0ErrorEnvelope) GetErrorOk() (*DrivesCreate400ResponseError, bool)`
+
+GetErrorOk returns a tuple with the Error field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetError
+
+`func (o *V0ErrorEnvelope) SetError(v DrivesCreate400ResponseError)`
+
+SetError sets Error field to given value.
+
+
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ValidationErrorBody.md b/sdk/go/docs/ValidationErrorBody.md
deleted file mode 100644
index 43b0135..0000000
--- a/sdk/go/docs/ValidationErrorBody.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# ValidationErrorBody
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Code** | **string** | |
-**Fields** | [**[]ValidationIssue**](ValidationIssue.md) | |
-**Message** | **string** | |
-
-## Methods
-
-### NewValidationErrorBody
-
-`func NewValidationErrorBody(code string, fields []ValidationIssue, message string, ) *ValidationErrorBody`
-
-NewValidationErrorBody instantiates a new ValidationErrorBody object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewValidationErrorBodyWithDefaults
-
-`func NewValidationErrorBodyWithDefaults() *ValidationErrorBody`
-
-NewValidationErrorBodyWithDefaults instantiates a new ValidationErrorBody object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetCode
-
-`func (o *ValidationErrorBody) GetCode() string`
-
-GetCode returns the Code field if non-nil, zero value otherwise.
-
-### GetCodeOk
-
-`func (o *ValidationErrorBody) GetCodeOk() (*string, bool)`
-
-GetCodeOk returns a tuple with the Code field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCode
-
-`func (o *ValidationErrorBody) SetCode(v string)`
-
-SetCode sets Code field to given value.
-
-
-### GetFields
-
-`func (o *ValidationErrorBody) GetFields() []ValidationIssue`
-
-GetFields returns the Fields field if non-nil, zero value otherwise.
-
-### GetFieldsOk
-
-`func (o *ValidationErrorBody) GetFieldsOk() (*[]ValidationIssue, bool)`
-
-GetFieldsOk returns a tuple with the Fields field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetFields
-
-`func (o *ValidationErrorBody) SetFields(v []ValidationIssue)`
-
-SetFields sets Fields field to given value.
-
-
-### GetMessage
-
-`func (o *ValidationErrorBody) GetMessage() string`
-
-GetMessage returns the Message field if non-nil, zero value otherwise.
-
-### GetMessageOk
-
-`func (o *ValidationErrorBody) GetMessageOk() (*string, bool)`
-
-GetMessageOk returns a tuple with the Message field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetMessage
-
-`func (o *ValidationErrorBody) SetMessage(v string)`
-
-SetMessage sets Message field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ValidationErrorDetail.md b/sdk/go/docs/ValidationErrorDetail.md
deleted file mode 100644
index e5764d4..0000000
--- a/sdk/go/docs/ValidationErrorDetail.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# ValidationErrorDetail
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Error** | [**ValidationErrorBody**](ValidationErrorBody.md) | |
-
-## Methods
-
-### NewValidationErrorDetail
-
-`func NewValidationErrorDetail(error_ ValidationErrorBody, ) *ValidationErrorDetail`
-
-NewValidationErrorDetail instantiates a new ValidationErrorDetail object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewValidationErrorDetailWithDefaults
-
-`func NewValidationErrorDetailWithDefaults() *ValidationErrorDetail`
-
-NewValidationErrorDetailWithDefaults instantiates a new ValidationErrorDetail object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetError
-
-`func (o *ValidationErrorDetail) GetError() ValidationErrorBody`
-
-GetError returns the Error field if non-nil, zero value otherwise.
-
-### GetErrorOk
-
-`func (o *ValidationErrorDetail) GetErrorOk() (*ValidationErrorBody, bool)`
-
-GetErrorOk returns a tuple with the Error field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetError
-
-`func (o *ValidationErrorDetail) SetError(v ValidationErrorBody)`
-
-SetError sets Error field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ValidationErrorResponse.md b/sdk/go/docs/ValidationErrorResponse.md
index 5ef2a2c..de5ce20 100644
--- a/sdk/go/docs/ValidationErrorResponse.md
+++ b/sdk/go/docs/ValidationErrorResponse.md
@@ -4,13 +4,13 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**Detail** | [**ValidationErrorDetail**](ValidationErrorDetail.md) | |
+**Error** | [**ValidationErrorResponseError**](ValidationErrorResponseError.md) | |
## Methods
### NewValidationErrorResponse
-`func NewValidationErrorResponse(detail ValidationErrorDetail, ) *ValidationErrorResponse`
+`func NewValidationErrorResponse(error_ ValidationErrorResponseError, ) *ValidationErrorResponse`
NewValidationErrorResponse instantiates a new ValidationErrorResponse object
This constructor will assign default values to properties that have it defined,
@@ -25,24 +25,24 @@ NewValidationErrorResponseWithDefaults instantiates a new ValidationErrorRespons
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
-### GetDetail
+### GetError
-`func (o *ValidationErrorResponse) GetDetail() ValidationErrorDetail`
+`func (o *ValidationErrorResponse) GetError() ValidationErrorResponseError`
-GetDetail returns the Detail field if non-nil, zero value otherwise.
+GetError returns the Error field if non-nil, zero value otherwise.
-### GetDetailOk
+### GetErrorOk
-`func (o *ValidationErrorResponse) GetDetailOk() (*ValidationErrorDetail, bool)`
+`func (o *ValidationErrorResponse) GetErrorOk() (*ValidationErrorResponseError, bool)`
-GetDetailOk returns a tuple with the Detail field if it's non-nil, zero value otherwise
+GetErrorOk returns a tuple with the Error field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetDetail
+### SetError
-`func (o *ValidationErrorResponse) SetDetail(v ValidationErrorDetail)`
+`func (o *ValidationErrorResponse) SetError(v ValidationErrorResponseError)`
-SetDetail sets Detail field to given value.
+SetError sets Error field to given value.
diff --git a/sdk/go/docs/ValidationErrorResponseError.md b/sdk/go/docs/ValidationErrorResponseError.md
new file mode 100644
index 0000000..2208b39
--- /dev/null
+++ b/sdk/go/docs/ValidationErrorResponseError.md
@@ -0,0 +1,116 @@
+# ValidationErrorResponseError
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Code** | **NullableString** | |
+**Details** | Pointer to [**ValidationErrorResponseErrorDetails**](ValidationErrorResponseErrorDetails.md) | | [optional]
+**Message** | **NullableString** | |
+
+## Methods
+
+### NewValidationErrorResponseError
+
+`func NewValidationErrorResponseError(code NullableString, message NullableString, ) *ValidationErrorResponseError`
+
+NewValidationErrorResponseError instantiates a new ValidationErrorResponseError object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewValidationErrorResponseErrorWithDefaults
+
+`func NewValidationErrorResponseErrorWithDefaults() *ValidationErrorResponseError`
+
+NewValidationErrorResponseErrorWithDefaults instantiates a new ValidationErrorResponseError object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetCode
+
+`func (o *ValidationErrorResponseError) GetCode() string`
+
+GetCode returns the Code field if non-nil, zero value otherwise.
+
+### GetCodeOk
+
+`func (o *ValidationErrorResponseError) GetCodeOk() (*string, bool)`
+
+GetCodeOk returns a tuple with the Code field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetCode
+
+`func (o *ValidationErrorResponseError) SetCode(v string)`
+
+SetCode sets Code field to given value.
+
+
+### SetCodeNil
+
+`func (o *ValidationErrorResponseError) SetCodeNil(b bool)`
+
+ SetCodeNil sets the value for Code to be an explicit nil
+
+### UnsetCode
+`func (o *ValidationErrorResponseError) UnsetCode()`
+
+UnsetCode ensures that no value is present for Code, not even an explicit nil
+### GetDetails
+
+`func (o *ValidationErrorResponseError) GetDetails() ValidationErrorResponseErrorDetails`
+
+GetDetails returns the Details field if non-nil, zero value otherwise.
+
+### GetDetailsOk
+
+`func (o *ValidationErrorResponseError) GetDetailsOk() (*ValidationErrorResponseErrorDetails, bool)`
+
+GetDetailsOk returns a tuple with the Details field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetDetails
+
+`func (o *ValidationErrorResponseError) SetDetails(v ValidationErrorResponseErrorDetails)`
+
+SetDetails sets Details field to given value.
+
+### HasDetails
+
+`func (o *ValidationErrorResponseError) HasDetails() bool`
+
+HasDetails returns a boolean if a field has been set.
+
+### GetMessage
+
+`func (o *ValidationErrorResponseError) GetMessage() string`
+
+GetMessage returns the Message field if non-nil, zero value otherwise.
+
+### GetMessageOk
+
+`func (o *ValidationErrorResponseError) GetMessageOk() (*string, bool)`
+
+GetMessageOk returns a tuple with the Message field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetMessage
+
+`func (o *ValidationErrorResponseError) SetMessage(v string)`
+
+SetMessage sets Message field to given value.
+
+
+### SetMessageNil
+
+`func (o *ValidationErrorResponseError) SetMessageNil(b bool)`
+
+ SetMessageNil sets the value for Message to be an explicit nil
+
+### UnsetMessage
+`func (o *ValidationErrorResponseError) UnsetMessage()`
+
+UnsetMessage ensures that no value is present for Message, not even an explicit nil
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ValidationErrorResponseErrorDetails.md b/sdk/go/docs/ValidationErrorResponseErrorDetails.md
new file mode 100644
index 0000000..db3dbcf
--- /dev/null
+++ b/sdk/go/docs/ValidationErrorResponseErrorDetails.md
@@ -0,0 +1,54 @@
+# ValidationErrorResponseErrorDetails
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Fields** | Pointer to [**[]ValidationErrorResponseErrorDetailsFieldsInner**](ValidationErrorResponseErrorDetailsFieldsInner.md) | | [optional]
+
+## Methods
+
+### NewValidationErrorResponseErrorDetails
+
+`func NewValidationErrorResponseErrorDetails() *ValidationErrorResponseErrorDetails`
+
+NewValidationErrorResponseErrorDetails instantiates a new ValidationErrorResponseErrorDetails object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewValidationErrorResponseErrorDetailsWithDefaults
+
+`func NewValidationErrorResponseErrorDetailsWithDefaults() *ValidationErrorResponseErrorDetails`
+
+NewValidationErrorResponseErrorDetailsWithDefaults instantiates a new ValidationErrorResponseErrorDetails object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetFields
+
+`func (o *ValidationErrorResponseErrorDetails) GetFields() []ValidationErrorResponseErrorDetailsFieldsInner`
+
+GetFields returns the Fields field if non-nil, zero value otherwise.
+
+### GetFieldsOk
+
+`func (o *ValidationErrorResponseErrorDetails) GetFieldsOk() (*[]ValidationErrorResponseErrorDetailsFieldsInner, bool)`
+
+GetFieldsOk returns a tuple with the Fields field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetFields
+
+`func (o *ValidationErrorResponseErrorDetails) SetFields(v []ValidationErrorResponseErrorDetailsFieldsInner)`
+
+SetFields sets Fields field to given value.
+
+### HasFields
+
+`func (o *ValidationErrorResponseErrorDetails) HasFields() bool`
+
+HasFields returns a boolean if a field has been set.
+
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ValidationErrorResponseErrorDetailsFieldsInner.md b/sdk/go/docs/ValidationErrorResponseErrorDetailsFieldsInner.md
new file mode 100644
index 0000000..771c05d
--- /dev/null
+++ b/sdk/go/docs/ValidationErrorResponseErrorDetailsFieldsInner.md
@@ -0,0 +1,80 @@
+# ValidationErrorResponseErrorDetailsFieldsInner
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Location** | Pointer to **string** | | [optional]
+**Reason** | Pointer to **string** | | [optional]
+
+## Methods
+
+### NewValidationErrorResponseErrorDetailsFieldsInner
+
+`func NewValidationErrorResponseErrorDetailsFieldsInner() *ValidationErrorResponseErrorDetailsFieldsInner`
+
+NewValidationErrorResponseErrorDetailsFieldsInner instantiates a new ValidationErrorResponseErrorDetailsFieldsInner object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewValidationErrorResponseErrorDetailsFieldsInnerWithDefaults
+
+`func NewValidationErrorResponseErrorDetailsFieldsInnerWithDefaults() *ValidationErrorResponseErrorDetailsFieldsInner`
+
+NewValidationErrorResponseErrorDetailsFieldsInnerWithDefaults instantiates a new ValidationErrorResponseErrorDetailsFieldsInner object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetLocation
+
+`func (o *ValidationErrorResponseErrorDetailsFieldsInner) GetLocation() string`
+
+GetLocation returns the Location field if non-nil, zero value otherwise.
+
+### GetLocationOk
+
+`func (o *ValidationErrorResponseErrorDetailsFieldsInner) GetLocationOk() (*string, bool)`
+
+GetLocationOk returns a tuple with the Location field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetLocation
+
+`func (o *ValidationErrorResponseErrorDetailsFieldsInner) SetLocation(v string)`
+
+SetLocation sets Location field to given value.
+
+### HasLocation
+
+`func (o *ValidationErrorResponseErrorDetailsFieldsInner) HasLocation() bool`
+
+HasLocation returns a boolean if a field has been set.
+
+### GetReason
+
+`func (o *ValidationErrorResponseErrorDetailsFieldsInner) GetReason() string`
+
+GetReason returns the Reason field if non-nil, zero value otherwise.
+
+### GetReasonOk
+
+`func (o *ValidationErrorResponseErrorDetailsFieldsInner) GetReasonOk() (*string, bool)`
+
+GetReasonOk returns a tuple with the Reason field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetReason
+
+`func (o *ValidationErrorResponseErrorDetailsFieldsInner) SetReason(v string)`
+
+SetReason sets Reason field to given value.
+
+### HasReason
+
+`func (o *ValidationErrorResponseErrorDetailsFieldsInner) HasReason() bool`
+
+HasReason returns a boolean if a field has been set.
+
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/ValidationIssue.md b/sdk/go/docs/ValidationIssue.md
deleted file mode 100644
index 06b9543..0000000
--- a/sdk/go/docs/ValidationIssue.md
+++ /dev/null
@@ -1,163 +0,0 @@
-# ValidationIssue
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Ctx** | Pointer to **map[string]interface{}** | | [optional]
-**Input** | Pointer to **interface{}** | | [optional]
-**Loc** | **[]interface{}** | |
-**Msg** | **string** | |
-**Type** | **string** | |
-
-## Methods
-
-### NewValidationIssue
-
-`func NewValidationIssue(loc []interface{}, msg string, type_ string, ) *ValidationIssue`
-
-NewValidationIssue instantiates a new ValidationIssue object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewValidationIssueWithDefaults
-
-`func NewValidationIssueWithDefaults() *ValidationIssue`
-
-NewValidationIssueWithDefaults instantiates a new ValidationIssue object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetCtx
-
-`func (o *ValidationIssue) GetCtx() map[string]interface{}`
-
-GetCtx returns the Ctx field if non-nil, zero value otherwise.
-
-### GetCtxOk
-
-`func (o *ValidationIssue) GetCtxOk() (*map[string]interface{}, bool)`
-
-GetCtxOk returns a tuple with the Ctx field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCtx
-
-`func (o *ValidationIssue) SetCtx(v map[string]interface{})`
-
-SetCtx sets Ctx field to given value.
-
-### HasCtx
-
-`func (o *ValidationIssue) HasCtx() bool`
-
-HasCtx returns a boolean if a field has been set.
-
-### SetCtxNil
-
-`func (o *ValidationIssue) SetCtxNil(b bool)`
-
- SetCtxNil sets the value for Ctx to be an explicit nil
-
-### UnsetCtx
-`func (o *ValidationIssue) UnsetCtx()`
-
-UnsetCtx ensures that no value is present for Ctx, not even an explicit nil
-### GetInput
-
-`func (o *ValidationIssue) GetInput() interface{}`
-
-GetInput returns the Input field if non-nil, zero value otherwise.
-
-### GetInputOk
-
-`func (o *ValidationIssue) GetInputOk() (*interface{}, bool)`
-
-GetInputOk returns a tuple with the Input field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetInput
-
-`func (o *ValidationIssue) SetInput(v interface{})`
-
-SetInput sets Input field to given value.
-
-### HasInput
-
-`func (o *ValidationIssue) HasInput() bool`
-
-HasInput returns a boolean if a field has been set.
-
-### SetInputNil
-
-`func (o *ValidationIssue) SetInputNil(b bool)`
-
- SetInputNil sets the value for Input to be an explicit nil
-
-### UnsetInput
-`func (o *ValidationIssue) UnsetInput()`
-
-UnsetInput ensures that no value is present for Input, not even an explicit nil
-### GetLoc
-
-`func (o *ValidationIssue) GetLoc() []interface{}`
-
-GetLoc returns the Loc field if non-nil, zero value otherwise.
-
-### GetLocOk
-
-`func (o *ValidationIssue) GetLocOk() (*[]interface{}, bool)`
-
-GetLocOk returns a tuple with the Loc field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetLoc
-
-`func (o *ValidationIssue) SetLoc(v []interface{})`
-
-SetLoc sets Loc field to given value.
-
-
-### GetMsg
-
-`func (o *ValidationIssue) GetMsg() string`
-
-GetMsg returns the Msg field if non-nil, zero value otherwise.
-
-### GetMsgOk
-
-`func (o *ValidationIssue) GetMsgOk() (*string, bool)`
-
-GetMsgOk returns a tuple with the Msg field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetMsg
-
-`func (o *ValidationIssue) SetMsg(v string)`
-
-SetMsg sets Msg field to given value.
-
-
-### GetType
-
-`func (o *ValidationIssue) GetType() string`
-
-GetType returns the Type field if non-nil, zero value otherwise.
-
-### GetTypeOk
-
-`func (o *ValidationIssue) GetTypeOk() (*string, bool)`
-
-GetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetType
-
-`func (o *ValidationIssue) SetType(v string)`
-
-SetType sets Type field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/VersionCreatedOut.md b/sdk/go/docs/VersionCreatedOut.md
new file mode 100644
index 0000000..78d0b6a
--- /dev/null
+++ b/sdk/go/docs/VersionCreatedOut.md
@@ -0,0 +1,258 @@
+# VersionCreatedOut
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**ArtifactId** | **string** | |
+**ArtifactRevision** | **string** | The artifact's revision after this version became head — the If-Match value for the next mutation. |
+**ContentType** | **string** | |
+**CreatedAt** | **time.Time** | |
+**CreatedBy** | **NullableString** | |
+**Hash** | **string** | |
+**Id** | **string** | |
+**ParentVersionId** | **NullableString** | |
+**SizeBytes** | **int32** | |
+**VersionNumber** | **int32** | |
+
+## Methods
+
+### NewVersionCreatedOut
+
+`func NewVersionCreatedOut(artifactId string, artifactRevision string, contentType string, createdAt time.Time, createdBy NullableString, hash string, id string, parentVersionId NullableString, sizeBytes int32, versionNumber int32, ) *VersionCreatedOut`
+
+NewVersionCreatedOut instantiates a new VersionCreatedOut object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewVersionCreatedOutWithDefaults
+
+`func NewVersionCreatedOutWithDefaults() *VersionCreatedOut`
+
+NewVersionCreatedOutWithDefaults instantiates a new VersionCreatedOut object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetArtifactId
+
+`func (o *VersionCreatedOut) GetArtifactId() string`
+
+GetArtifactId returns the ArtifactId field if non-nil, zero value otherwise.
+
+### GetArtifactIdOk
+
+`func (o *VersionCreatedOut) GetArtifactIdOk() (*string, bool)`
+
+GetArtifactIdOk returns a tuple with the ArtifactId field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetArtifactId
+
+`func (o *VersionCreatedOut) SetArtifactId(v string)`
+
+SetArtifactId sets ArtifactId field to given value.
+
+
+### GetArtifactRevision
+
+`func (o *VersionCreatedOut) GetArtifactRevision() string`
+
+GetArtifactRevision returns the ArtifactRevision field if non-nil, zero value otherwise.
+
+### GetArtifactRevisionOk
+
+`func (o *VersionCreatedOut) GetArtifactRevisionOk() (*string, bool)`
+
+GetArtifactRevisionOk returns a tuple with the ArtifactRevision field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetArtifactRevision
+
+`func (o *VersionCreatedOut) SetArtifactRevision(v string)`
+
+SetArtifactRevision sets ArtifactRevision field to given value.
+
+
+### GetContentType
+
+`func (o *VersionCreatedOut) GetContentType() string`
+
+GetContentType returns the ContentType field if non-nil, zero value otherwise.
+
+### GetContentTypeOk
+
+`func (o *VersionCreatedOut) GetContentTypeOk() (*string, bool)`
+
+GetContentTypeOk returns a tuple with the ContentType field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetContentType
+
+`func (o *VersionCreatedOut) SetContentType(v string)`
+
+SetContentType sets ContentType field to given value.
+
+
+### GetCreatedAt
+
+`func (o *VersionCreatedOut) GetCreatedAt() time.Time`
+
+GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
+
+### GetCreatedAtOk
+
+`func (o *VersionCreatedOut) GetCreatedAtOk() (*time.Time, bool)`
+
+GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetCreatedAt
+
+`func (o *VersionCreatedOut) SetCreatedAt(v time.Time)`
+
+SetCreatedAt sets CreatedAt field to given value.
+
+
+### GetCreatedBy
+
+`func (o *VersionCreatedOut) GetCreatedBy() string`
+
+GetCreatedBy returns the CreatedBy field if non-nil, zero value otherwise.
+
+### GetCreatedByOk
+
+`func (o *VersionCreatedOut) GetCreatedByOk() (*string, bool)`
+
+GetCreatedByOk returns a tuple with the CreatedBy field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetCreatedBy
+
+`func (o *VersionCreatedOut) SetCreatedBy(v string)`
+
+SetCreatedBy sets CreatedBy field to given value.
+
+
+### SetCreatedByNil
+
+`func (o *VersionCreatedOut) SetCreatedByNil(b bool)`
+
+ SetCreatedByNil sets the value for CreatedBy to be an explicit nil
+
+### UnsetCreatedBy
+`func (o *VersionCreatedOut) UnsetCreatedBy()`
+
+UnsetCreatedBy ensures that no value is present for CreatedBy, not even an explicit nil
+### GetHash
+
+`func (o *VersionCreatedOut) GetHash() string`
+
+GetHash returns the Hash field if non-nil, zero value otherwise.
+
+### GetHashOk
+
+`func (o *VersionCreatedOut) GetHashOk() (*string, bool)`
+
+GetHashOk returns a tuple with the Hash field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetHash
+
+`func (o *VersionCreatedOut) SetHash(v string)`
+
+SetHash sets Hash field to given value.
+
+
+### GetId
+
+`func (o *VersionCreatedOut) GetId() string`
+
+GetId returns the Id field if non-nil, zero value otherwise.
+
+### GetIdOk
+
+`func (o *VersionCreatedOut) GetIdOk() (*string, bool)`
+
+GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetId
+
+`func (o *VersionCreatedOut) SetId(v string)`
+
+SetId sets Id field to given value.
+
+
+### GetParentVersionId
+
+`func (o *VersionCreatedOut) GetParentVersionId() string`
+
+GetParentVersionId returns the ParentVersionId field if non-nil, zero value otherwise.
+
+### GetParentVersionIdOk
+
+`func (o *VersionCreatedOut) GetParentVersionIdOk() (*string, bool)`
+
+GetParentVersionIdOk returns a tuple with the ParentVersionId field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetParentVersionId
+
+`func (o *VersionCreatedOut) SetParentVersionId(v string)`
+
+SetParentVersionId sets ParentVersionId field to given value.
+
+
+### SetParentVersionIdNil
+
+`func (o *VersionCreatedOut) SetParentVersionIdNil(b bool)`
+
+ SetParentVersionIdNil sets the value for ParentVersionId to be an explicit nil
+
+### UnsetParentVersionId
+`func (o *VersionCreatedOut) UnsetParentVersionId()`
+
+UnsetParentVersionId ensures that no value is present for ParentVersionId, not even an explicit nil
+### GetSizeBytes
+
+`func (o *VersionCreatedOut) GetSizeBytes() int32`
+
+GetSizeBytes returns the SizeBytes field if non-nil, zero value otherwise.
+
+### GetSizeBytesOk
+
+`func (o *VersionCreatedOut) GetSizeBytesOk() (*int32, bool)`
+
+GetSizeBytesOk returns a tuple with the SizeBytes field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetSizeBytes
+
+`func (o *VersionCreatedOut) SetSizeBytes(v int32)`
+
+SetSizeBytes sets SizeBytes field to given value.
+
+
+### GetVersionNumber
+
+`func (o *VersionCreatedOut) GetVersionNumber() int32`
+
+GetVersionNumber returns the VersionNumber field if non-nil, zero value otherwise.
+
+### GetVersionNumberOk
+
+`func (o *VersionCreatedOut) GetVersionNumberOk() (*int32, bool)`
+
+GetVersionNumberOk returns a tuple with the VersionNumber field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetVersionNumber
+
+`func (o *VersionCreatedOut) SetVersionNumber(v int32)`
+
+SetVersionNumber sets VersionNumber field to given value.
+
+
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/VersionListOut.md b/sdk/go/docs/VersionListOut.md
new file mode 100644
index 0000000..c8716bb
--- /dev/null
+++ b/sdk/go/docs/VersionListOut.md
@@ -0,0 +1,80 @@
+# VersionListOut
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Items** | [**[]VersionOut**](VersionOut.md) | |
+**NextCursor** | **NullableString** | |
+
+## Methods
+
+### NewVersionListOut
+
+`func NewVersionListOut(items []VersionOut, nextCursor NullableString, ) *VersionListOut`
+
+NewVersionListOut instantiates a new VersionListOut object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewVersionListOutWithDefaults
+
+`func NewVersionListOutWithDefaults() *VersionListOut`
+
+NewVersionListOutWithDefaults instantiates a new VersionListOut object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetItems
+
+`func (o *VersionListOut) GetItems() []VersionOut`
+
+GetItems returns the Items field if non-nil, zero value otherwise.
+
+### GetItemsOk
+
+`func (o *VersionListOut) GetItemsOk() (*[]VersionOut, bool)`
+
+GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetItems
+
+`func (o *VersionListOut) SetItems(v []VersionOut)`
+
+SetItems sets Items field to given value.
+
+
+### GetNextCursor
+
+`func (o *VersionListOut) GetNextCursor() string`
+
+GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
+
+### GetNextCursorOk
+
+`func (o *VersionListOut) GetNextCursorOk() (*string, bool)`
+
+GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetNextCursor
+
+`func (o *VersionListOut) SetNextCursor(v string)`
+
+SetNextCursor sets NextCursor field to given value.
+
+
+### SetNextCursorNil
+
+`func (o *VersionListOut) SetNextCursorNil(b bool)`
+
+ SetNextCursorNil sets the value for NextCursor to be an explicit nil
+
+### UnsetNextCursor
+`func (o *VersionListOut) UnsetNextCursor()`
+
+UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/VersionOut.md b/sdk/go/docs/VersionOut.md
index 9e65968..adf6d1f 100644
--- a/sdk/go/docs/VersionOut.md
+++ b/sdk/go/docs/VersionOut.md
@@ -4,12 +4,13 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**ActorName** | Pointer to **NullableString** | | [optional]
-**ArtId** | **string** | |
-**ChangeSummary** | Pointer to **NullableString** | | [optional]
+**ArtifactId** | **string** | |
**ContentType** | **string** | |
**CreatedAt** | **time.Time** | |
+**CreatedBy** | **NullableString** | |
**Hash** | **string** | |
+**Id** | **string** | |
+**ParentVersionId** | **NullableString** | |
**SizeBytes** | **int32** | |
**VersionNumber** | **int32** | |
@@ -17,7 +18,7 @@ Name | Type | Description | Notes
### NewVersionOut
-`func NewVersionOut(artId string, contentType string, createdAt time.Time, hash string, sizeBytes int32, versionNumber int32, ) *VersionOut`
+`func NewVersionOut(artifactId string, contentType string, createdAt time.Time, createdBy NullableString, hash string, id string, parentVersionId NullableString, sizeBytes int32, versionNumber int32, ) *VersionOut`
NewVersionOut instantiates a new VersionOut object
This constructor will assign default values to properties that have it defined,
@@ -32,156 +33,166 @@ NewVersionOutWithDefaults instantiates a new VersionOut object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
-### GetActorName
+### GetArtifactId
-`func (o *VersionOut) GetActorName() string`
+`func (o *VersionOut) GetArtifactId() string`
-GetActorName returns the ActorName field if non-nil, zero value otherwise.
+GetArtifactId returns the ArtifactId field if non-nil, zero value otherwise.
-### GetActorNameOk
+### GetArtifactIdOk
-`func (o *VersionOut) GetActorNameOk() (*string, bool)`
+`func (o *VersionOut) GetArtifactIdOk() (*string, bool)`
-GetActorNameOk returns a tuple with the ActorName field if it's non-nil, zero value otherwise
+GetArtifactIdOk returns a tuple with the ArtifactId field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetActorName
+### SetArtifactId
-`func (o *VersionOut) SetActorName(v string)`
+`func (o *VersionOut) SetArtifactId(v string)`
-SetActorName sets ActorName field to given value.
+SetArtifactId sets ArtifactId field to given value.
-### HasActorName
-`func (o *VersionOut) HasActorName() bool`
+### GetContentType
-HasActorName returns a boolean if a field has been set.
+`func (o *VersionOut) GetContentType() string`
-### SetActorNameNil
+GetContentType returns the ContentType field if non-nil, zero value otherwise.
-`func (o *VersionOut) SetActorNameNil(b bool)`
+### GetContentTypeOk
- SetActorNameNil sets the value for ActorName to be an explicit nil
+`func (o *VersionOut) GetContentTypeOk() (*string, bool)`
-### UnsetActorName
-`func (o *VersionOut) UnsetActorName()`
+GetContentTypeOk returns a tuple with the ContentType field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
-UnsetActorName ensures that no value is present for ActorName, not even an explicit nil
-### GetArtId
+### SetContentType
-`func (o *VersionOut) GetArtId() string`
+`func (o *VersionOut) SetContentType(v string)`
-GetArtId returns the ArtId field if non-nil, zero value otherwise.
+SetContentType sets ContentType field to given value.
-### GetArtIdOk
-`func (o *VersionOut) GetArtIdOk() (*string, bool)`
+### GetCreatedAt
-GetArtIdOk returns a tuple with the ArtId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
+`func (o *VersionOut) GetCreatedAt() time.Time`
-### SetArtId
+GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
-`func (o *VersionOut) SetArtId(v string)`
+### GetCreatedAtOk
-SetArtId sets ArtId field to given value.
+`func (o *VersionOut) GetCreatedAtOk() (*time.Time, bool)`
+GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
-### GetChangeSummary
+### SetCreatedAt
-`func (o *VersionOut) GetChangeSummary() string`
+`func (o *VersionOut) SetCreatedAt(v time.Time)`
-GetChangeSummary returns the ChangeSummary field if non-nil, zero value otherwise.
+SetCreatedAt sets CreatedAt field to given value.
-### GetChangeSummaryOk
-`func (o *VersionOut) GetChangeSummaryOk() (*string, bool)`
+### GetCreatedBy
-GetChangeSummaryOk returns a tuple with the ChangeSummary field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
+`func (o *VersionOut) GetCreatedBy() string`
-### SetChangeSummary
+GetCreatedBy returns the CreatedBy field if non-nil, zero value otherwise.
-`func (o *VersionOut) SetChangeSummary(v string)`
+### GetCreatedByOk
-SetChangeSummary sets ChangeSummary field to given value.
+`func (o *VersionOut) GetCreatedByOk() (*string, bool)`
-### HasChangeSummary
+GetCreatedByOk returns a tuple with the CreatedBy field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
-`func (o *VersionOut) HasChangeSummary() bool`
+### SetCreatedBy
-HasChangeSummary returns a boolean if a field has been set.
+`func (o *VersionOut) SetCreatedBy(v string)`
-### SetChangeSummaryNil
+SetCreatedBy sets CreatedBy field to given value.
-`func (o *VersionOut) SetChangeSummaryNil(b bool)`
- SetChangeSummaryNil sets the value for ChangeSummary to be an explicit nil
+### SetCreatedByNil
-### UnsetChangeSummary
-`func (o *VersionOut) UnsetChangeSummary()`
+`func (o *VersionOut) SetCreatedByNil(b bool)`
-UnsetChangeSummary ensures that no value is present for ChangeSummary, not even an explicit nil
-### GetContentType
+ SetCreatedByNil sets the value for CreatedBy to be an explicit nil
-`func (o *VersionOut) GetContentType() string`
+### UnsetCreatedBy
+`func (o *VersionOut) UnsetCreatedBy()`
-GetContentType returns the ContentType field if non-nil, zero value otherwise.
+UnsetCreatedBy ensures that no value is present for CreatedBy, not even an explicit nil
+### GetHash
-### GetContentTypeOk
+`func (o *VersionOut) GetHash() string`
-`func (o *VersionOut) GetContentTypeOk() (*string, bool)`
+GetHash returns the Hash field if non-nil, zero value otherwise.
-GetContentTypeOk returns a tuple with the ContentType field if it's non-nil, zero value otherwise
+### GetHashOk
+
+`func (o *VersionOut) GetHashOk() (*string, bool)`
+
+GetHashOk returns a tuple with the Hash field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetContentType
+### SetHash
-`func (o *VersionOut) SetContentType(v string)`
+`func (o *VersionOut) SetHash(v string)`
-SetContentType sets ContentType field to given value.
+SetHash sets Hash field to given value.
-### GetCreatedAt
+### GetId
-`func (o *VersionOut) GetCreatedAt() time.Time`
+`func (o *VersionOut) GetId() string`
-GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
+GetId returns the Id field if non-nil, zero value otherwise.
-### GetCreatedAtOk
+### GetIdOk
-`func (o *VersionOut) GetCreatedAtOk() (*time.Time, bool)`
+`func (o *VersionOut) GetIdOk() (*string, bool)`
-GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
+GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetCreatedAt
+### SetId
-`func (o *VersionOut) SetCreatedAt(v time.Time)`
+`func (o *VersionOut) SetId(v string)`
-SetCreatedAt sets CreatedAt field to given value.
+SetId sets Id field to given value.
-### GetHash
+### GetParentVersionId
-`func (o *VersionOut) GetHash() string`
+`func (o *VersionOut) GetParentVersionId() string`
-GetHash returns the Hash field if non-nil, zero value otherwise.
+GetParentVersionId returns the ParentVersionId field if non-nil, zero value otherwise.
-### GetHashOk
+### GetParentVersionIdOk
-`func (o *VersionOut) GetHashOk() (*string, bool)`
+`func (o *VersionOut) GetParentVersionIdOk() (*string, bool)`
-GetHashOk returns a tuple with the Hash field if it's non-nil, zero value otherwise
+GetParentVersionIdOk returns a tuple with the ParentVersionId field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
-### SetHash
+### SetParentVersionId
-`func (o *VersionOut) SetHash(v string)`
+`func (o *VersionOut) SetParentVersionId(v string)`
-SetHash sets Hash field to given value.
+SetParentVersionId sets ParentVersionId field to given value.
+
+
+### SetParentVersionIdNil
+
+`func (o *VersionOut) SetParentVersionIdNil(b bool)`
+
+ SetParentVersionIdNil sets the value for ParentVersionId to be an explicit nil
+### UnsetParentVersionId
+`func (o *VersionOut) UnsetParentVersionId()`
+UnsetParentVersionId ensures that no value is present for ParentVersionId, not even an explicit nil
### GetSizeBytes
`func (o *VersionOut) GetSizeBytes() int32`
diff --git a/sdk/go/docs/VersionPage.md b/sdk/go/docs/VersionPage.md
deleted file mode 100644
index 3e5022a..0000000
--- a/sdk/go/docs/VersionPage.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# VersionPage
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Items** | [**[]VersionOut**](VersionOut.md) | |
-**NextCursor** | Pointer to **NullableString** | | [optional]
-**PrunedBefore** | Pointer to **NullableInt32** | | [optional]
-
-## Methods
-
-### NewVersionPage
-
-`func NewVersionPage(items []VersionOut, ) *VersionPage`
-
-NewVersionPage instantiates a new VersionPage object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewVersionPageWithDefaults
-
-`func NewVersionPageWithDefaults() *VersionPage`
-
-NewVersionPageWithDefaults instantiates a new VersionPage object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetItems
-
-`func (o *VersionPage) GetItems() []VersionOut`
-
-GetItems returns the Items field if non-nil, zero value otherwise.
-
-### GetItemsOk
-
-`func (o *VersionPage) GetItemsOk() (*[]VersionOut, bool)`
-
-GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetItems
-
-`func (o *VersionPage) SetItems(v []VersionOut)`
-
-SetItems sets Items field to given value.
-
-
-### GetNextCursor
-
-`func (o *VersionPage) GetNextCursor() string`
-
-GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
-
-### GetNextCursorOk
-
-`func (o *VersionPage) GetNextCursorOk() (*string, bool)`
-
-GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetNextCursor
-
-`func (o *VersionPage) SetNextCursor(v string)`
-
-SetNextCursor sets NextCursor field to given value.
-
-### HasNextCursor
-
-`func (o *VersionPage) HasNextCursor() bool`
-
-HasNextCursor returns a boolean if a field has been set.
-
-### SetNextCursorNil
-
-`func (o *VersionPage) SetNextCursorNil(b bool)`
-
- SetNextCursorNil sets the value for NextCursor to be an explicit nil
-
-### UnsetNextCursor
-`func (o *VersionPage) UnsetNextCursor()`
-
-UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-### GetPrunedBefore
-
-`func (o *VersionPage) GetPrunedBefore() int32`
-
-GetPrunedBefore returns the PrunedBefore field if non-nil, zero value otherwise.
-
-### GetPrunedBeforeOk
-
-`func (o *VersionPage) GetPrunedBeforeOk() (*int32, bool)`
-
-GetPrunedBeforeOk returns a tuple with the PrunedBefore field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetPrunedBefore
-
-`func (o *VersionPage) SetPrunedBefore(v int32)`
-
-SetPrunedBefore sets PrunedBefore field to given value.
-
-### HasPrunedBefore
-
-`func (o *VersionPage) HasPrunedBefore() bool`
-
-HasPrunedBefore returns a boolean if a field has been set.
-
-### SetPrunedBeforeNil
-
-`func (o *VersionPage) SetPrunedBeforeNil(b bool)`
-
- SetPrunedBeforeNil sets the value for PrunedBefore to be an explicit nil
-
-### UnsetPrunedBefore
-`func (o *VersionPage) UnsetPrunedBefore()`
-
-UnsetPrunedBefore ensures that no value is present for PrunedBefore, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/VersionRetentionOut.md b/sdk/go/docs/VersionRetentionOut.md
deleted file mode 100644
index 40329bb..0000000
--- a/sdk/go/docs/VersionRetentionOut.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# VersionRetentionOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**VersionsMax** | **int32** | |
-
-## Methods
-
-### NewVersionRetentionOut
-
-`func NewVersionRetentionOut(versionsMax int32, ) *VersionRetentionOut`
-
-NewVersionRetentionOut instantiates a new VersionRetentionOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewVersionRetentionOutWithDefaults
-
-`func NewVersionRetentionOutWithDefaults() *VersionRetentionOut`
-
-NewVersionRetentionOutWithDefaults instantiates a new VersionRetentionOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetVersionsMax
-
-`func (o *VersionRetentionOut) GetVersionsMax() int32`
-
-GetVersionsMax returns the VersionsMax field if non-nil, zero value otherwise.
-
-### GetVersionsMaxOk
-
-`func (o *VersionRetentionOut) GetVersionsMaxOk() (*int32, bool)`
-
-GetVersionsMaxOk returns a tuple with the VersionsMax field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetVersionsMax
-
-`func (o *VersionRetentionOut) SetVersionsMax(v int32)`
-
-SetVersionsMax sets VersionsMax field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/VersionsAPI.md b/sdk/go/docs/VersionsAPI.md
new file mode 100644
index 0000000..0905e7b
--- /dev/null
+++ b/sdk/go/docs/VersionsAPI.md
@@ -0,0 +1,418 @@
+# \VersionsAPI
+
+All URIs are relative to *https://api.agentdrive.run*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**VersionsAppend**](VersionsAPI.md#VersionsAppend) | **Post** /v0/drives/{drive_id}/artifacts/{artifact_id}/versions | Append Version
+[**VersionsContent**](VersionsAPI.md#VersionsContent) | **Get** /v0/drives/{drive_id}/artifacts/{artifact_id}/versions/{version_id}/content | Read Version Content
+[**VersionsList**](VersionsAPI.md#VersionsList) | **Get** /v0/drives/{drive_id}/artifacts/{artifact_id}/versions | List Versions
+[**VersionsRead**](VersionsAPI.md#VersionsRead) | **Get** /v0/drives/{drive_id}/artifacts/{artifact_id}/versions/{version_id} | Read Version
+[**VersionsRestore**](VersionsAPI.md#VersionsRestore) | **Post** /v0/drives/{drive_id}/artifacts/{artifact_id}/versions/{version_id}/restore | Restore Version
+
+
+
+## VersionsAppend
+
+> VersionCreatedOut VersionsAppend(ctx, driveId, artifactId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Content(content).Authorization(authorization).ContentType(contentType).Sha256(sha256).Execute()
+
+Append Version
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ artifactId := "artifactId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ ifMatch := "ifMatch_example" // string |
+ content := os.NewFile(1234, "some_file") // *os.File | The artifact bytes.
+ authorization := "authorization_example" // string | (optional)
+ contentType := "contentType_example" // string | Declared media type. (optional)
+ sha256 := "sha256_example" // string | Optional content sha256 for verification. (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.VersionsAPI.VersionsAppend(context.Background(), driveId, artifactId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Content(content).Authorization(authorization).ContentType(contentType).Sha256(sha256).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `VersionsAPI.VersionsAppend``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `VersionsAppend`: VersionCreatedOut
+ fmt.Fprintf(os.Stdout, "Response from `VersionsAPI.VersionsAppend`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**artifactId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiVersionsAppendRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **idempotencyKey** | **string** | |
+ **ifMatch** | **string** | |
+ **content** | ***os.File** | The artifact bytes. |
+ **authorization** | **string** | |
+ **contentType** | **string** | Declared media type. |
+ **sha256** | **string** | Optional content sha256 for verification. |
+
+### Return type
+
+[**VersionCreatedOut**](VersionCreatedOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: multipart/form-data
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## VersionsContent
+
+> *os.File VersionsContent(ctx, driveId, artifactId, versionId).IfNoneMatch(ifNoneMatch).Authorization(authorization).Execute()
+
+Read Version Content
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ artifactId := "artifactId_example" // string |
+ versionId := "versionId_example" // string |
+ ifNoneMatch := "ifNoneMatch_example" // string | (optional)
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.VersionsAPI.VersionsContent(context.Background(), driveId, artifactId, versionId).IfNoneMatch(ifNoneMatch).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `VersionsAPI.VersionsContent``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `VersionsContent`: *os.File
+ fmt.Fprintf(os.Stdout, "Response from `VersionsAPI.VersionsContent`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**artifactId** | **string** | |
+**versionId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiVersionsContentRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+
+ **ifNoneMatch** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[***os.File**](*os.File.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/octet-stream, application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## VersionsList
+
+> VersionListOut VersionsList(ctx, driveId, artifactId).Limit(limit).Cursor(cursor).Authorization(authorization).Execute()
+
+List Versions
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ artifactId := "artifactId_example" // string |
+ limit := int32(56) // int32 | (optional)
+ cursor := "cursor_example" // string | (optional)
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.VersionsAPI.VersionsList(context.Background(), driveId, artifactId).Limit(limit).Cursor(cursor).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `VersionsAPI.VersionsList``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `VersionsList`: VersionListOut
+ fmt.Fprintf(os.Stdout, "Response from `VersionsAPI.VersionsList`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**artifactId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiVersionsListRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **limit** | **int32** | |
+ **cursor** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**VersionListOut**](VersionListOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## VersionsRead
+
+> VersionOut VersionsRead(ctx, driveId, artifactId, versionId).IfNoneMatch(ifNoneMatch).Authorization(authorization).Execute()
+
+Read Version
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ artifactId := "artifactId_example" // string |
+ versionId := "versionId_example" // string |
+ ifNoneMatch := "ifNoneMatch_example" // string | (optional)
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.VersionsAPI.VersionsRead(context.Background(), driveId, artifactId, versionId).IfNoneMatch(ifNoneMatch).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `VersionsAPI.VersionsRead``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `VersionsRead`: VersionOut
+ fmt.Fprintf(os.Stdout, "Response from `VersionsAPI.VersionsRead`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**artifactId** | **string** | |
+**versionId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiVersionsReadRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+
+ **ifNoneMatch** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**VersionOut**](VersionOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## VersionsRestore
+
+> VersionCreatedOut VersionsRestore(ctx, driveId, artifactId, versionId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Authorization(authorization).Execute()
+
+Restore Version
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
+)
+
+func main() {
+ driveId := "driveId_example" // string |
+ artifactId := "artifactId_example" // string |
+ versionId := "versionId_example" // string |
+ idempotencyKey := "idempotencyKey_example" // string |
+ ifMatch := "ifMatch_example" // string |
+ authorization := "authorization_example" // string | (optional)
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.VersionsAPI.VersionsRestore(context.Background(), driveId, artifactId, versionId).IdempotencyKey(idempotencyKey).IfMatch(ifMatch).Authorization(authorization).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `VersionsAPI.VersionsRestore``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `VersionsRestore`: VersionCreatedOut
+ fmt.Fprintf(os.Stdout, "Response from `VersionsAPI.VersionsRestore`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**driveId** | **string** | |
+**artifactId** | **string** | |
+**versionId** | **string** | |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiVersionsRestoreRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+
+ **idempotencyKey** | **string** | |
+ **ifMatch** | **string** | |
+ **authorization** | **string** | |
+
+### Return type
+
+[**VersionCreatedOut**](VersionCreatedOut.md)
+
+### Authorization
+
+[bearerAuth](../README.md#bearerAuth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
diff --git a/sdk/go/docs/WorkspaceCreateIn.md b/sdk/go/docs/WorkspaceCreateIn.md
deleted file mode 100644
index b2b3779..0000000
--- a/sdk/go/docs/WorkspaceCreateIn.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# WorkspaceCreateIn
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Name** | **string** | |
-
-## Methods
-
-### NewWorkspaceCreateIn
-
-`func NewWorkspaceCreateIn(name string, ) *WorkspaceCreateIn`
-
-NewWorkspaceCreateIn instantiates a new WorkspaceCreateIn object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewWorkspaceCreateInWithDefaults
-
-`func NewWorkspaceCreateInWithDefaults() *WorkspaceCreateIn`
-
-NewWorkspaceCreateInWithDefaults instantiates a new WorkspaceCreateIn object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetName
-
-`func (o *WorkspaceCreateIn) GetName() string`
-
-GetName returns the Name field if non-nil, zero value otherwise.
-
-### GetNameOk
-
-`func (o *WorkspaceCreateIn) GetNameOk() (*string, bool)`
-
-GetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetName
-
-`func (o *WorkspaceCreateIn) SetName(v string)`
-
-SetName sets Name field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/WorkspaceCreateOut.md b/sdk/go/docs/WorkspaceCreateOut.md
deleted file mode 100644
index 3c3172d..0000000
--- a/sdk/go/docs/WorkspaceCreateOut.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# WorkspaceCreateOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**StarterDriveApiKey** | **string** | |
-**StarterDriveId** | **string** | |
-**Workspace** | [**WorkspaceOut**](WorkspaceOut.md) | |
-
-## Methods
-
-### NewWorkspaceCreateOut
-
-`func NewWorkspaceCreateOut(starterDriveApiKey string, starterDriveId string, workspace WorkspaceOut, ) *WorkspaceCreateOut`
-
-NewWorkspaceCreateOut instantiates a new WorkspaceCreateOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewWorkspaceCreateOutWithDefaults
-
-`func NewWorkspaceCreateOutWithDefaults() *WorkspaceCreateOut`
-
-NewWorkspaceCreateOutWithDefaults instantiates a new WorkspaceCreateOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetStarterDriveApiKey
-
-`func (o *WorkspaceCreateOut) GetStarterDriveApiKey() string`
-
-GetStarterDriveApiKey returns the StarterDriveApiKey field if non-nil, zero value otherwise.
-
-### GetStarterDriveApiKeyOk
-
-`func (o *WorkspaceCreateOut) GetStarterDriveApiKeyOk() (*string, bool)`
-
-GetStarterDriveApiKeyOk returns a tuple with the StarterDriveApiKey field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetStarterDriveApiKey
-
-`func (o *WorkspaceCreateOut) SetStarterDriveApiKey(v string)`
-
-SetStarterDriveApiKey sets StarterDriveApiKey field to given value.
-
-
-### GetStarterDriveId
-
-`func (o *WorkspaceCreateOut) GetStarterDriveId() string`
-
-GetStarterDriveId returns the StarterDriveId field if non-nil, zero value otherwise.
-
-### GetStarterDriveIdOk
-
-`func (o *WorkspaceCreateOut) GetStarterDriveIdOk() (*string, bool)`
-
-GetStarterDriveIdOk returns a tuple with the StarterDriveId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetStarterDriveId
-
-`func (o *WorkspaceCreateOut) SetStarterDriveId(v string)`
-
-SetStarterDriveId sets StarterDriveId field to given value.
-
-
-### GetWorkspace
-
-`func (o *WorkspaceCreateOut) GetWorkspace() WorkspaceOut`
-
-GetWorkspace returns the Workspace field if non-nil, zero value otherwise.
-
-### GetWorkspaceOk
-
-`func (o *WorkspaceCreateOut) GetWorkspaceOk() (*WorkspaceOut, bool)`
-
-GetWorkspaceOk returns a tuple with the Workspace field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetWorkspace
-
-`func (o *WorkspaceCreateOut) SetWorkspace(v WorkspaceOut)`
-
-SetWorkspace sets Workspace field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/WorkspaceList.md b/sdk/go/docs/WorkspaceList.md
deleted file mode 100644
index 7b56130..0000000
--- a/sdk/go/docs/WorkspaceList.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# WorkspaceList
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Items** | [**[]WorkspaceOut**](WorkspaceOut.md) | |
-**NextCursor** | Pointer to **NullableString** | | [optional]
-
-## Methods
-
-### NewWorkspaceList
-
-`func NewWorkspaceList(items []WorkspaceOut, ) *WorkspaceList`
-
-NewWorkspaceList instantiates a new WorkspaceList object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewWorkspaceListWithDefaults
-
-`func NewWorkspaceListWithDefaults() *WorkspaceList`
-
-NewWorkspaceListWithDefaults instantiates a new WorkspaceList object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetItems
-
-`func (o *WorkspaceList) GetItems() []WorkspaceOut`
-
-GetItems returns the Items field if non-nil, zero value otherwise.
-
-### GetItemsOk
-
-`func (o *WorkspaceList) GetItemsOk() (*[]WorkspaceOut, bool)`
-
-GetItemsOk returns a tuple with the Items field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetItems
-
-`func (o *WorkspaceList) SetItems(v []WorkspaceOut)`
-
-SetItems sets Items field to given value.
-
-
-### GetNextCursor
-
-`func (o *WorkspaceList) GetNextCursor() string`
-
-GetNextCursor returns the NextCursor field if non-nil, zero value otherwise.
-
-### GetNextCursorOk
-
-`func (o *WorkspaceList) GetNextCursorOk() (*string, bool)`
-
-GetNextCursorOk returns a tuple with the NextCursor field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetNextCursor
-
-`func (o *WorkspaceList) SetNextCursor(v string)`
-
-SetNextCursor sets NextCursor field to given value.
-
-### HasNextCursor
-
-`func (o *WorkspaceList) HasNextCursor() bool`
-
-HasNextCursor returns a boolean if a field has been set.
-
-### SetNextCursorNil
-
-`func (o *WorkspaceList) SetNextCursorNil(b bool)`
-
- SetNextCursorNil sets the value for NextCursor to be an explicit nil
-
-### UnsetNextCursor
-`func (o *WorkspaceList) UnsetNextCursor()`
-
-UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/WorkspaceOut.md b/sdk/go/docs/WorkspaceOut.md
deleted file mode 100644
index a70db61..0000000
--- a/sdk/go/docs/WorkspaceOut.md
+++ /dev/null
@@ -1,133 +0,0 @@
-# WorkspaceOut
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**CreatedAt** | **time.Time** | |
-**Id** | **string** | |
-**Name** | **string** | |
-**Role** | **string** | |
-**TierId** | **string** | |
-
-## Methods
-
-### NewWorkspaceOut
-
-`func NewWorkspaceOut(createdAt time.Time, id string, name string, role string, tierId string, ) *WorkspaceOut`
-
-NewWorkspaceOut instantiates a new WorkspaceOut object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewWorkspaceOutWithDefaults
-
-`func NewWorkspaceOutWithDefaults() *WorkspaceOut`
-
-NewWorkspaceOutWithDefaults instantiates a new WorkspaceOut object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetCreatedAt
-
-`func (o *WorkspaceOut) GetCreatedAt() time.Time`
-
-GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
-
-### GetCreatedAtOk
-
-`func (o *WorkspaceOut) GetCreatedAtOk() (*time.Time, bool)`
-
-GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetCreatedAt
-
-`func (o *WorkspaceOut) SetCreatedAt(v time.Time)`
-
-SetCreatedAt sets CreatedAt field to given value.
-
-
-### GetId
-
-`func (o *WorkspaceOut) GetId() string`
-
-GetId returns the Id field if non-nil, zero value otherwise.
-
-### GetIdOk
-
-`func (o *WorkspaceOut) GetIdOk() (*string, bool)`
-
-GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetId
-
-`func (o *WorkspaceOut) SetId(v string)`
-
-SetId sets Id field to given value.
-
-
-### GetName
-
-`func (o *WorkspaceOut) GetName() string`
-
-GetName returns the Name field if non-nil, zero value otherwise.
-
-### GetNameOk
-
-`func (o *WorkspaceOut) GetNameOk() (*string, bool)`
-
-GetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetName
-
-`func (o *WorkspaceOut) SetName(v string)`
-
-SetName sets Name field to given value.
-
-
-### GetRole
-
-`func (o *WorkspaceOut) GetRole() string`
-
-GetRole returns the Role field if non-nil, zero value otherwise.
-
-### GetRoleOk
-
-`func (o *WorkspaceOut) GetRoleOk() (*string, bool)`
-
-GetRoleOk returns a tuple with the Role field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetRole
-
-`func (o *WorkspaceOut) SetRole(v string)`
-
-SetRole sets Role field to given value.
-
-
-### GetTierId
-
-`func (o *WorkspaceOut) GetTierId() string`
-
-GetTierId returns the TierId field if non-nil, zero value otherwise.
-
-### GetTierIdOk
-
-`func (o *WorkspaceOut) GetTierIdOk() (*string, bool)`
-
-GetTierIdOk returns a tuple with the TierId field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetTierId
-
-`func (o *WorkspaceOut) SetTierId(v string)`
-
-SetTierId sets TierId field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/WorkspaceRenameIn.md b/sdk/go/docs/WorkspaceRenameIn.md
deleted file mode 100644
index 9ec007a..0000000
--- a/sdk/go/docs/WorkspaceRenameIn.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# WorkspaceRenameIn
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**Name** | **string** | |
-
-## Methods
-
-### NewWorkspaceRenameIn
-
-`func NewWorkspaceRenameIn(name string, ) *WorkspaceRenameIn`
-
-NewWorkspaceRenameIn instantiates a new WorkspaceRenameIn object
-This constructor will assign default values to properties that have it defined,
-and makes sure properties required by API are set, but the set of arguments
-will change when the set of required properties is changed
-
-### NewWorkspaceRenameInWithDefaults
-
-`func NewWorkspaceRenameInWithDefaults() *WorkspaceRenameIn`
-
-NewWorkspaceRenameInWithDefaults instantiates a new WorkspaceRenameIn object
-This constructor will only assign default values to properties that have it defined,
-but it doesn't guarantee that properties required by API are set
-
-### GetName
-
-`func (o *WorkspaceRenameIn) GetName() string`
-
-GetName returns the Name field if non-nil, zero value otherwise.
-
-### GetNameOk
-
-`func (o *WorkspaceRenameIn) GetNameOk() (*string, bool)`
-
-GetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise
-and a boolean to check if the value has been set.
-
-### SetName
-
-`func (o *WorkspaceRenameIn) SetName(v string)`
-
-SetName sets Name field to given value.
-
-
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdk/go/docs/WorkspacesAPI.md b/sdk/go/docs/WorkspacesAPI.md
deleted file mode 100644
index 1de0f5c..0000000
--- a/sdk/go/docs/WorkspacesAPI.md
+++ /dev/null
@@ -1,216 +0,0 @@
-# \WorkspacesAPI
-
-All URIs are relative to *https://api.agentdrive.run*
-
-Method | HTTP request | Description
-------------- | ------------- | -------------
-[**CreateWorkspaceRouteV0WorkspacesPost**](WorkspacesAPI.md#CreateWorkspaceRouteV0WorkspacesPost) | **Post** /v0/workspaces | Create a new shared drive
-[**ListWorkspacesRouteV0WorkspacesGet**](WorkspacesAPI.md#ListWorkspacesRouteV0WorkspacesGet) | **Get** /v0/workspaces | List the spaces you belong to
-[**RenameWorkspaceRouteV0WorkspacesOrgIdPatch**](WorkspacesAPI.md#RenameWorkspaceRouteV0WorkspacesOrgIdPatch) | **Patch** /v0/workspaces/{org_id} | Rename a shared drive you administer
-
-
-
-## CreateWorkspaceRouteV0WorkspacesPost
-
-> WorkspaceCreateOut CreateWorkspaceRouteV0WorkspacesPost(ctx).WorkspaceCreateIn(workspaceCreateIn).Execute()
-
-Create a new shared drive
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- workspaceCreateIn := *openapiclient.NewWorkspaceCreateIn("Name_example") // WorkspaceCreateIn |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.WorkspacesAPI.CreateWorkspaceRouteV0WorkspacesPost(context.Background()).WorkspaceCreateIn(workspaceCreateIn).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `WorkspacesAPI.CreateWorkspaceRouteV0WorkspacesPost``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `CreateWorkspaceRouteV0WorkspacesPost`: WorkspaceCreateOut
- fmt.Fprintf(os.Stdout, "Response from `WorkspacesAPI.CreateWorkspaceRouteV0WorkspacesPost`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiCreateWorkspaceRouteV0WorkspacesPostRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **workspaceCreateIn** | [**WorkspaceCreateIn**](WorkspaceCreateIn.md) | |
-
-### Return type
-
-[**WorkspaceCreateOut**](WorkspaceCreateOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## ListWorkspacesRouteV0WorkspacesGet
-
-> WorkspaceList ListWorkspacesRouteV0WorkspacesGet(ctx).Cursor(cursor).Limit(limit).Execute()
-
-List the spaces you belong to
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- cursor := "cursor_example" // string | (optional)
- limit := int32(56) // int32 | (optional)
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.WorkspacesAPI.ListWorkspacesRouteV0WorkspacesGet(context.Background()).Cursor(cursor).Limit(limit).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `WorkspacesAPI.ListWorkspacesRouteV0WorkspacesGet``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `ListWorkspacesRouteV0WorkspacesGet`: WorkspaceList
- fmt.Fprintf(os.Stdout, "Response from `WorkspacesAPI.ListWorkspacesRouteV0WorkspacesGet`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiListWorkspacesRouteV0WorkspacesGetRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **cursor** | **string** | |
- **limit** | **int32** | |
-
-### Return type
-
-[**WorkspaceList**](WorkspaceList.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: Not defined
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-
-## RenameWorkspaceRouteV0WorkspacesOrgIdPatch
-
-> WorkspaceOut RenameWorkspaceRouteV0WorkspacesOrgIdPatch(ctx, orgId).WorkspaceRenameIn(workspaceRenameIn).Execute()
-
-Rename a shared drive you administer
-
-
-
-### Example
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "os"
- openapiclient "github.com/Mnexa-AI/agentdrive-sdk/agentdrive"
-)
-
-func main() {
- orgId := "orgId_example" // string |
- workspaceRenameIn := *openapiclient.NewWorkspaceRenameIn("Name_example") // WorkspaceRenameIn |
-
- configuration := openapiclient.NewConfiguration()
- apiClient := openapiclient.NewAPIClient(configuration)
- resp, r, err := apiClient.WorkspacesAPI.RenameWorkspaceRouteV0WorkspacesOrgIdPatch(context.Background(), orgId).WorkspaceRenameIn(workspaceRenameIn).Execute()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Error when calling `WorkspacesAPI.RenameWorkspaceRouteV0WorkspacesOrgIdPatch``: %v\n", err)
- fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
- }
- // response from `RenameWorkspaceRouteV0WorkspacesOrgIdPatch`: WorkspaceOut
- fmt.Fprintf(os.Stdout, "Response from `WorkspacesAPI.RenameWorkspaceRouteV0WorkspacesOrgIdPatch`: %v\n", resp)
-}
-```
-
-### Path Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
-**orgId** | **string** | |
-
-### Other Parameters
-
-Other parameters are passed through a pointer to a apiRenameWorkspaceRouteV0WorkspacesOrgIdPatchRequest struct via the builder pattern
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-
- **workspaceRenameIn** | [**WorkspaceRenameIn**](WorkspaceRenameIn.md) | |
-
-### Return type
-
-[**WorkspaceOut**](WorkspaceOut.md)
-
-### Authorization
-
-[BearerAuth](../README.md#BearerAuth)
-
-### HTTP request headers
-
-- **Content-Type**: application/json
-- **Accept**: application/json
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
diff --git a/sdk/go/go.mod b/sdk/go/go.mod
index 6ed44d4..863254b 100644
--- a/sdk/go/go.mod
+++ b/sdk/go/go.mod
@@ -3,5 +3,4 @@ module github.com/Mnexa-AI/agentdrive-sdk/sdk/go
go 1.23
require (
- gopkg.in/validator.v2 v2.0.1
)
diff --git a/sdk/go/go.sum b/sdk/go/go.sum
index 525afa0..c966c8d 100644
--- a/sdk/go/go.sum
+++ b/sdk/go/go.sum
@@ -9,5 +9,3 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-gopkg.in/validator.v2 v2.0.1 h1:xF0KWyGWXm/LM2G1TrEjqOu4pa6coO9AlWSf3msVfDY=
-gopkg.in/validator.v2 v2.0.1/go.mod h1:lIUZBlB3Im4s/eYp39Ry/wkR02yOPhZ9IwIRBjuPuG8=
diff --git a/sdk/go/model_agent_auth_metadata_out.go b/sdk/go/model_agent_auth_metadata_out.go
deleted file mode 100644
index 537a15b..0000000
--- a/sdk/go/model_agent_auth_metadata_out.go
+++ /dev/null
@@ -1,342 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
-)
-
-// checks if the AgentAuthMetadataOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &AgentAuthMetadataOut{}
-
-// AgentAuthMetadataOut struct for AgentAuthMetadataOut
-type AgentAuthMetadataOut struct {
- ClaimEndpoint string `json:"claim_endpoint"`
- EventsEndpoint NullableString `json:"events_endpoint"`
- IdentityAssertion IdentityAssertionMetadataOut `json:"identity_assertion"`
- IdentityEndpoint string `json:"identity_endpoint"`
- IdentityTypesSupported []string `json:"identity_types_supported"`
- Skill string `json:"skill"`
- SpecVersion string `json:"spec_version"`
- AdditionalProperties map[string]interface{}
-}
-
-type _AgentAuthMetadataOut AgentAuthMetadataOut
-
-// NewAgentAuthMetadataOut instantiates a new AgentAuthMetadataOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewAgentAuthMetadataOut(claimEndpoint string, eventsEndpoint NullableString, identityAssertion IdentityAssertionMetadataOut, identityEndpoint string, identityTypesSupported []string, skill string, specVersion string) *AgentAuthMetadataOut {
- this := AgentAuthMetadataOut{}
- this.ClaimEndpoint = claimEndpoint
- this.EventsEndpoint = eventsEndpoint
- this.IdentityAssertion = identityAssertion
- this.IdentityEndpoint = identityEndpoint
- this.IdentityTypesSupported = identityTypesSupported
- this.Skill = skill
- this.SpecVersion = specVersion
- return &this
-}
-
-// NewAgentAuthMetadataOutWithDefaults instantiates a new AgentAuthMetadataOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewAgentAuthMetadataOutWithDefaults() *AgentAuthMetadataOut {
- this := AgentAuthMetadataOut{}
- return &this
-}
-
-// GetClaimEndpoint returns the ClaimEndpoint field value
-func (o *AgentAuthMetadataOut) GetClaimEndpoint() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.ClaimEndpoint
-}
-
-// GetClaimEndpointOk returns a tuple with the ClaimEndpoint field value
-// and a boolean to check if the value has been set.
-func (o *AgentAuthMetadataOut) GetClaimEndpointOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ClaimEndpoint, true
-}
-
-// SetClaimEndpoint sets field value
-func (o *AgentAuthMetadataOut) SetClaimEndpoint(v string) {
- o.ClaimEndpoint = v
-}
-
-// GetEventsEndpoint returns the EventsEndpoint field value
-// If the value is explicit nil, the zero value for string will be returned
-func (o *AgentAuthMetadataOut) GetEventsEndpoint() string {
- if o == nil || o.EventsEndpoint.Get() == nil {
- var ret string
- return ret
- }
-
- return *o.EventsEndpoint.Get()
-}
-
-// GetEventsEndpointOk returns a tuple with the EventsEndpoint field value
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *AgentAuthMetadataOut) GetEventsEndpointOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.EventsEndpoint.Get(), o.EventsEndpoint.IsSet()
-}
-
-// SetEventsEndpoint sets field value
-func (o *AgentAuthMetadataOut) SetEventsEndpoint(v string) {
- o.EventsEndpoint.Set(&v)
-}
-
-// GetIdentityAssertion returns the IdentityAssertion field value
-func (o *AgentAuthMetadataOut) GetIdentityAssertion() IdentityAssertionMetadataOut {
- if o == nil {
- var ret IdentityAssertionMetadataOut
- return ret
- }
-
- return o.IdentityAssertion
-}
-
-// GetIdentityAssertionOk returns a tuple with the IdentityAssertion field value
-// and a boolean to check if the value has been set.
-func (o *AgentAuthMetadataOut) GetIdentityAssertionOk() (*IdentityAssertionMetadataOut, bool) {
- if o == nil {
- return nil, false
- }
- return &o.IdentityAssertion, true
-}
-
-// SetIdentityAssertion sets field value
-func (o *AgentAuthMetadataOut) SetIdentityAssertion(v IdentityAssertionMetadataOut) {
- o.IdentityAssertion = v
-}
-
-// GetIdentityEndpoint returns the IdentityEndpoint field value
-func (o *AgentAuthMetadataOut) GetIdentityEndpoint() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.IdentityEndpoint
-}
-
-// GetIdentityEndpointOk returns a tuple with the IdentityEndpoint field value
-// and a boolean to check if the value has been set.
-func (o *AgentAuthMetadataOut) GetIdentityEndpointOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.IdentityEndpoint, true
-}
-
-// SetIdentityEndpoint sets field value
-func (o *AgentAuthMetadataOut) SetIdentityEndpoint(v string) {
- o.IdentityEndpoint = v
-}
-
-// GetIdentityTypesSupported returns the IdentityTypesSupported field value
-func (o *AgentAuthMetadataOut) GetIdentityTypesSupported() []string {
- if o == nil {
- var ret []string
- return ret
- }
-
- return o.IdentityTypesSupported
-}
-
-// GetIdentityTypesSupportedOk returns a tuple with the IdentityTypesSupported field value
-// and a boolean to check if the value has been set.
-func (o *AgentAuthMetadataOut) GetIdentityTypesSupportedOk() ([]string, bool) {
- if o == nil {
- return nil, false
- }
- return o.IdentityTypesSupported, true
-}
-
-// SetIdentityTypesSupported sets field value
-func (o *AgentAuthMetadataOut) SetIdentityTypesSupported(v []string) {
- o.IdentityTypesSupported = v
-}
-
-// GetSkill returns the Skill field value
-func (o *AgentAuthMetadataOut) GetSkill() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Skill
-}
-
-// GetSkillOk returns a tuple with the Skill field value
-// and a boolean to check if the value has been set.
-func (o *AgentAuthMetadataOut) GetSkillOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Skill, true
-}
-
-// SetSkill sets field value
-func (o *AgentAuthMetadataOut) SetSkill(v string) {
- o.Skill = v
-}
-
-// GetSpecVersion returns the SpecVersion field value
-func (o *AgentAuthMetadataOut) GetSpecVersion() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.SpecVersion
-}
-
-// GetSpecVersionOk returns a tuple with the SpecVersion field value
-// and a boolean to check if the value has been set.
-func (o *AgentAuthMetadataOut) GetSpecVersionOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.SpecVersion, true
-}
-
-// SetSpecVersion sets field value
-func (o *AgentAuthMetadataOut) SetSpecVersion(v string) {
- o.SpecVersion = v
-}
-
-func (o AgentAuthMetadataOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o AgentAuthMetadataOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["claim_endpoint"] = o.ClaimEndpoint
- toSerialize["events_endpoint"] = o.EventsEndpoint.Get()
- toSerialize["identity_assertion"] = o.IdentityAssertion
- toSerialize["identity_endpoint"] = o.IdentityEndpoint
- toSerialize["identity_types_supported"] = o.IdentityTypesSupported
- toSerialize["skill"] = o.Skill
- toSerialize["spec_version"] = o.SpecVersion
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
- return toSerialize, nil
-}
-
-func (o *AgentAuthMetadataOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "claim_endpoint",
- "events_endpoint",
- "identity_assertion",
- "identity_endpoint",
- "identity_types_supported",
- "skill",
- "spec_version",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varAgentAuthMetadataOut := _AgentAuthMetadataOut{}
-
- err = json.Unmarshal(data, &varAgentAuthMetadataOut)
-
- if err != nil {
- return err
- }
-
- *o = AgentAuthMetadataOut(varAgentAuthMetadataOut)
-
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "claim_endpoint")
- delete(additionalProperties, "events_endpoint")
- delete(additionalProperties, "identity_assertion")
- delete(additionalProperties, "identity_endpoint")
- delete(additionalProperties, "identity_types_supported")
- delete(additionalProperties, "skill")
- delete(additionalProperties, "spec_version")
- o.AdditionalProperties = additionalProperties
- }
-
- return err
-}
-
-type NullableAgentAuthMetadataOut struct {
- value *AgentAuthMetadataOut
- isSet bool
-}
-
-func (v NullableAgentAuthMetadataOut) Get() *AgentAuthMetadataOut {
- return v.value
-}
-
-func (v *NullableAgentAuthMetadataOut) Set(val *AgentAuthMetadataOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableAgentAuthMetadataOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableAgentAuthMetadataOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableAgentAuthMetadataOut(val *AgentAuthMetadataOut) *NullableAgentAuthMetadataOut {
- return &NullableAgentAuthMetadataOut{value: val, isSet: true}
-}
-
-func (v NullableAgentAuthMetadataOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableAgentAuthMetadataOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_anonymous_identity_response.go b/sdk/go/model_anonymous_identity_response.go
deleted file mode 100644
index fd2fed9..0000000
--- a/sdk/go/model_anonymous_identity_response.go
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the AnonymousIdentityResponse type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &AnonymousIdentityResponse{}
-
-// AnonymousIdentityResponse `POST /agent/identity` response on the anonymous path. The agent stores `identity_assertion` as its long-lived credential and uses `claim_token` to initiate the claim ceremony when the human is ready.
-type AnonymousIdentityResponse struct {
- AgentIdentityId string `json:"agent_identity_id"`
- ClaimMetadata ClaimMetadata `json:"claim_metadata"`
- // Opaque server-issued secret. Present at POST /agent/identity/claim and at POST /oauth2/token (grant_type=claim).
- ClaimToken string `json:"claim_token"`
- DriveId string `json:"drive_id"`
- ExpiresAt time.Time `json:"expires_at"`
- // JWT signed by AgentDrive, scope=pre_claim. 30-day TTL.
- IdentityAssertion string `json:"identity_assertion"`
-}
-
-type _AnonymousIdentityResponse AnonymousIdentityResponse
-
-// NewAnonymousIdentityResponse instantiates a new AnonymousIdentityResponse object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewAnonymousIdentityResponse(agentIdentityId string, claimMetadata ClaimMetadata, claimToken string, driveId string, expiresAt time.Time, identityAssertion string) *AnonymousIdentityResponse {
- this := AnonymousIdentityResponse{}
- this.AgentIdentityId = agentIdentityId
- this.ClaimMetadata = claimMetadata
- this.ClaimToken = claimToken
- this.DriveId = driveId
- this.ExpiresAt = expiresAt
- this.IdentityAssertion = identityAssertion
- return &this
-}
-
-// NewAnonymousIdentityResponseWithDefaults instantiates a new AnonymousIdentityResponse object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewAnonymousIdentityResponseWithDefaults() *AnonymousIdentityResponse {
- this := AnonymousIdentityResponse{}
- return &this
-}
-
-// GetAgentIdentityId returns the AgentIdentityId field value
-func (o *AnonymousIdentityResponse) GetAgentIdentityId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.AgentIdentityId
-}
-
-// GetAgentIdentityIdOk returns a tuple with the AgentIdentityId field value
-// and a boolean to check if the value has been set.
-func (o *AnonymousIdentityResponse) GetAgentIdentityIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.AgentIdentityId, true
-}
-
-// SetAgentIdentityId sets field value
-func (o *AnonymousIdentityResponse) SetAgentIdentityId(v string) {
- o.AgentIdentityId = v
-}
-
-// GetClaimMetadata returns the ClaimMetadata field value
-func (o *AnonymousIdentityResponse) GetClaimMetadata() ClaimMetadata {
- if o == nil {
- var ret ClaimMetadata
- return ret
- }
-
- return o.ClaimMetadata
-}
-
-// GetClaimMetadataOk returns a tuple with the ClaimMetadata field value
-// and a boolean to check if the value has been set.
-func (o *AnonymousIdentityResponse) GetClaimMetadataOk() (*ClaimMetadata, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ClaimMetadata, true
-}
-
-// SetClaimMetadata sets field value
-func (o *AnonymousIdentityResponse) SetClaimMetadata(v ClaimMetadata) {
- o.ClaimMetadata = v
-}
-
-// GetClaimToken returns the ClaimToken field value
-func (o *AnonymousIdentityResponse) GetClaimToken() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.ClaimToken
-}
-
-// GetClaimTokenOk returns a tuple with the ClaimToken field value
-// and a boolean to check if the value has been set.
-func (o *AnonymousIdentityResponse) GetClaimTokenOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ClaimToken, true
-}
-
-// SetClaimToken sets field value
-func (o *AnonymousIdentityResponse) SetClaimToken(v string) {
- o.ClaimToken = v
-}
-
-// GetDriveId returns the DriveId field value
-func (o *AnonymousIdentityResponse) GetDriveId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.DriveId
-}
-
-// GetDriveIdOk returns a tuple with the DriveId field value
-// and a boolean to check if the value has been set.
-func (o *AnonymousIdentityResponse) GetDriveIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.DriveId, true
-}
-
-// SetDriveId sets field value
-func (o *AnonymousIdentityResponse) SetDriveId(v string) {
- o.DriveId = v
-}
-
-// GetExpiresAt returns the ExpiresAt field value
-func (o *AnonymousIdentityResponse) GetExpiresAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.ExpiresAt
-}
-
-// GetExpiresAtOk returns a tuple with the ExpiresAt field value
-// and a boolean to check if the value has been set.
-func (o *AnonymousIdentityResponse) GetExpiresAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ExpiresAt, true
-}
-
-// SetExpiresAt sets field value
-func (o *AnonymousIdentityResponse) SetExpiresAt(v time.Time) {
- o.ExpiresAt = v
-}
-
-// GetIdentityAssertion returns the IdentityAssertion field value
-func (o *AnonymousIdentityResponse) GetIdentityAssertion() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.IdentityAssertion
-}
-
-// GetIdentityAssertionOk returns a tuple with the IdentityAssertion field value
-// and a boolean to check if the value has been set.
-func (o *AnonymousIdentityResponse) GetIdentityAssertionOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.IdentityAssertion, true
-}
-
-// SetIdentityAssertion sets field value
-func (o *AnonymousIdentityResponse) SetIdentityAssertion(v string) {
- o.IdentityAssertion = v
-}
-
-func (o AnonymousIdentityResponse) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o AnonymousIdentityResponse) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["agent_identity_id"] = o.AgentIdentityId
- toSerialize["claim_metadata"] = o.ClaimMetadata
- toSerialize["claim_token"] = o.ClaimToken
- toSerialize["drive_id"] = o.DriveId
- toSerialize["expires_at"] = o.ExpiresAt
- toSerialize["identity_assertion"] = o.IdentityAssertion
- return toSerialize, nil
-}
-
-func (o *AnonymousIdentityResponse) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "agent_identity_id",
- "claim_metadata",
- "claim_token",
- "drive_id",
- "expires_at",
- "identity_assertion",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varAnonymousIdentityResponse := _AnonymousIdentityResponse{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varAnonymousIdentityResponse)
-
- if err != nil {
- return err
- }
-
- *o = AnonymousIdentityResponse(varAnonymousIdentityResponse)
-
- return err
-}
-
-type NullableAnonymousIdentityResponse struct {
- value *AnonymousIdentityResponse
- isSet bool
-}
-
-func (v NullableAnonymousIdentityResponse) Get() *AnonymousIdentityResponse {
- return v.value
-}
-
-func (v *NullableAnonymousIdentityResponse) Set(val *AnonymousIdentityResponse) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableAnonymousIdentityResponse) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableAnonymousIdentityResponse) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableAnonymousIdentityResponse(val *AnonymousIdentityResponse) *NullableAnonymousIdentityResponse {
- return &NullableAnonymousIdentityResponse{value: val, isSet: true}
-}
-
-func (v NullableAnonymousIdentityResponse) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableAnonymousIdentityResponse) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_artifact_copy_in.go b/sdk/go/model_artifact_copy_in.go
new file mode 100644
index 0000000..96dfe31
--- /dev/null
+++ b/sdk/go/model_artifact_copy_in.go
@@ -0,0 +1,276 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "bytes"
+ "fmt"
+)
+
+// checks if the ArtifactCopyIn type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &ArtifactCopyIn{}
+
+// ArtifactCopyIn POST /v0/drives/{id}/artifacts/{artifact_id}/copy body. ``destination_drive_id`` must equal the source drive (or be absent) — cross-drive copy is out of v0 scope and rejected.
+type ArtifactCopyIn struct {
+ DestinationDriveId NullableString `json:"destination_drive_id,omitempty" validate:"regexp=^drv_[a-f0-9]{16}$"`
+ DestinationName string `json:"destination_name"`
+ DestinationParentId string `json:"destination_parent_id" validate:"regexp=^fld_[a-f0-9]{16}$"`
+ VersionId NullableString `json:"version_id,omitempty" validate:"regexp=^ver_[a-f0-9]{16}$"`
+}
+
+type _ArtifactCopyIn ArtifactCopyIn
+
+// NewArtifactCopyIn instantiates a new ArtifactCopyIn object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewArtifactCopyIn(destinationName string, destinationParentId string) *ArtifactCopyIn {
+ this := ArtifactCopyIn{}
+ this.DestinationName = destinationName
+ this.DestinationParentId = destinationParentId
+ return &this
+}
+
+// NewArtifactCopyInWithDefaults instantiates a new ArtifactCopyIn object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewArtifactCopyInWithDefaults() *ArtifactCopyIn {
+ this := ArtifactCopyIn{}
+ return &this
+}
+
+// GetDestinationDriveId returns the DestinationDriveId field value if set, zero value otherwise (both if not set or set to explicit null).
+func (o *ArtifactCopyIn) GetDestinationDriveId() string {
+ if o == nil || IsNil(o.DestinationDriveId.Get()) {
+ var ret string
+ return ret
+ }
+ return *o.DestinationDriveId.Get()
+}
+
+// GetDestinationDriveIdOk returns a tuple with the DestinationDriveId field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ArtifactCopyIn) GetDestinationDriveIdOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.DestinationDriveId.Get(), o.DestinationDriveId.IsSet()
+}
+
+// HasDestinationDriveId returns a boolean if a field has been set.
+func (o *ArtifactCopyIn) HasDestinationDriveId() bool {
+ if o != nil && o.DestinationDriveId.IsSet() {
+ return true
+ }
+
+ return false
+}
+
+// SetDestinationDriveId gets a reference to the given NullableString and assigns it to the DestinationDriveId field.
+func (o *ArtifactCopyIn) SetDestinationDriveId(v string) {
+ o.DestinationDriveId.Set(&v)
+}
+// SetDestinationDriveIdNil sets the value for DestinationDriveId to be an explicit nil
+func (o *ArtifactCopyIn) SetDestinationDriveIdNil() {
+ o.DestinationDriveId.Set(nil)
+}
+
+// UnsetDestinationDriveId ensures that no value is present for DestinationDriveId, not even an explicit nil
+func (o *ArtifactCopyIn) UnsetDestinationDriveId() {
+ o.DestinationDriveId.Unset()
+}
+
+// GetDestinationName returns the DestinationName field value
+func (o *ArtifactCopyIn) GetDestinationName() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.DestinationName
+}
+
+// GetDestinationNameOk returns a tuple with the DestinationName field value
+// and a boolean to check if the value has been set.
+func (o *ArtifactCopyIn) GetDestinationNameOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.DestinationName, true
+}
+
+// SetDestinationName sets field value
+func (o *ArtifactCopyIn) SetDestinationName(v string) {
+ o.DestinationName = v
+}
+
+// GetDestinationParentId returns the DestinationParentId field value
+func (o *ArtifactCopyIn) GetDestinationParentId() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.DestinationParentId
+}
+
+// GetDestinationParentIdOk returns a tuple with the DestinationParentId field value
+// and a boolean to check if the value has been set.
+func (o *ArtifactCopyIn) GetDestinationParentIdOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.DestinationParentId, true
+}
+
+// SetDestinationParentId sets field value
+func (o *ArtifactCopyIn) SetDestinationParentId(v string) {
+ o.DestinationParentId = v
+}
+
+// GetVersionId returns the VersionId field value if set, zero value otherwise (both if not set or set to explicit null).
+func (o *ArtifactCopyIn) GetVersionId() string {
+ if o == nil || IsNil(o.VersionId.Get()) {
+ var ret string
+ return ret
+ }
+ return *o.VersionId.Get()
+}
+
+// GetVersionIdOk returns a tuple with the VersionId field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ArtifactCopyIn) GetVersionIdOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.VersionId.Get(), o.VersionId.IsSet()
+}
+
+// HasVersionId returns a boolean if a field has been set.
+func (o *ArtifactCopyIn) HasVersionId() bool {
+ if o != nil && o.VersionId.IsSet() {
+ return true
+ }
+
+ return false
+}
+
+// SetVersionId gets a reference to the given NullableString and assigns it to the VersionId field.
+func (o *ArtifactCopyIn) SetVersionId(v string) {
+ o.VersionId.Set(&v)
+}
+// SetVersionIdNil sets the value for VersionId to be an explicit nil
+func (o *ArtifactCopyIn) SetVersionIdNil() {
+ o.VersionId.Set(nil)
+}
+
+// UnsetVersionId ensures that no value is present for VersionId, not even an explicit nil
+func (o *ArtifactCopyIn) UnsetVersionId() {
+ o.VersionId.Unset()
+}
+
+func (o ArtifactCopyIn) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o ArtifactCopyIn) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ if o.DestinationDriveId.IsSet() {
+ toSerialize["destination_drive_id"] = o.DestinationDriveId.Get()
+ }
+ toSerialize["destination_name"] = o.DestinationName
+ toSerialize["destination_parent_id"] = o.DestinationParentId
+ if o.VersionId.IsSet() {
+ toSerialize["version_id"] = o.VersionId.Get()
+ }
+ return toSerialize, nil
+}
+
+func (o *ArtifactCopyIn) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "destination_name",
+ "destination_parent_id",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varArtifactCopyIn := _ArtifactCopyIn{}
+
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varArtifactCopyIn)
+
+ if err != nil {
+ return err
+ }
+
+ *o = ArtifactCopyIn(varArtifactCopyIn)
+
+ return err
+}
+
+type NullableArtifactCopyIn struct {
+ value *ArtifactCopyIn
+ isSet bool
+}
+
+func (v NullableArtifactCopyIn) Get() *ArtifactCopyIn {
+ return v.value
+}
+
+func (v *NullableArtifactCopyIn) Set(val *ArtifactCopyIn) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableArtifactCopyIn) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableArtifactCopyIn) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableArtifactCopyIn(val *ArtifactCopyIn) *NullableArtifactCopyIn {
+ return &NullableArtifactCopyIn{value: val, isSet: true}
+}
+
+func (v NullableArtifactCopyIn) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableArtifactCopyIn) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_artifact_delete_out.go b/sdk/go/model_artifact_delete_out.go
deleted file mode 100644
index 2bc7cdf..0000000
--- a/sdk/go/model_artifact_delete_out.go
+++ /dev/null
@@ -1,327 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the ArtifactDeleteOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ArtifactDeleteOut{}
-
-// ArtifactDeleteOut DELETE /v0/artifacts/{art_id} response — the soft-delete receipt. Reversible until the GC cron hard-deletes at `purge_at`; `restore_url` points at the by-id restore endpoint (deletion-design.md §5.3).
-type ArtifactDeleteOut struct {
- DeletedAt time.Time `json:"deleted_at"`
- Id string `json:"id"`
- Ok *bool `json:"ok,omitempty"`
- Path string `json:"path"`
- PurgeAt time.Time `json:"purge_at"`
- RestoreUrl NullableString `json:"restore_url,omitempty"`
-}
-
-type _ArtifactDeleteOut ArtifactDeleteOut
-
-// NewArtifactDeleteOut instantiates a new ArtifactDeleteOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewArtifactDeleteOut(deletedAt time.Time, id string, path string, purgeAt time.Time) *ArtifactDeleteOut {
- this := ArtifactDeleteOut{}
- this.DeletedAt = deletedAt
- this.Id = id
- var ok bool = true
- this.Ok = &ok
- this.Path = path
- this.PurgeAt = purgeAt
- return &this
-}
-
-// NewArtifactDeleteOutWithDefaults instantiates a new ArtifactDeleteOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewArtifactDeleteOutWithDefaults() *ArtifactDeleteOut {
- this := ArtifactDeleteOut{}
- var ok bool = true
- this.Ok = &ok
- return &this
-}
-
-// GetDeletedAt returns the DeletedAt field value
-func (o *ArtifactDeleteOut) GetDeletedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.DeletedAt
-}
-
-// GetDeletedAtOk returns a tuple with the DeletedAt field value
-// and a boolean to check if the value has been set.
-func (o *ArtifactDeleteOut) GetDeletedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.DeletedAt, true
-}
-
-// SetDeletedAt sets field value
-func (o *ArtifactDeleteOut) SetDeletedAt(v time.Time) {
- o.DeletedAt = v
-}
-
-// GetId returns the Id field value
-func (o *ArtifactDeleteOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *ArtifactDeleteOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *ArtifactDeleteOut) SetId(v string) {
- o.Id = v
-}
-
-// GetOk returns the Ok field value if set, zero value otherwise.
-func (o *ArtifactDeleteOut) GetOk() bool {
- if o == nil || IsNil(o.Ok) {
- var ret bool
- return ret
- }
- return *o.Ok
-}
-
-// GetOkOk returns a tuple with the Ok field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *ArtifactDeleteOut) GetOkOk() (*bool, bool) {
- if o == nil || IsNil(o.Ok) {
- return nil, false
- }
- return o.Ok, true
-}
-
-// HasOk returns a boolean if a field has been set.
-func (o *ArtifactDeleteOut) HasOk() bool {
- if o != nil && !IsNil(o.Ok) {
- return true
- }
-
- return false
-}
-
-// SetOk gets a reference to the given bool and assigns it to the Ok field.
-func (o *ArtifactDeleteOut) SetOk(v bool) {
- o.Ok = &v
-}
-
-// GetPath returns the Path field value
-func (o *ArtifactDeleteOut) GetPath() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Path
-}
-
-// GetPathOk returns a tuple with the Path field value
-// and a boolean to check if the value has been set.
-func (o *ArtifactDeleteOut) GetPathOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Path, true
-}
-
-// SetPath sets field value
-func (o *ArtifactDeleteOut) SetPath(v string) {
- o.Path = v
-}
-
-// GetPurgeAt returns the PurgeAt field value
-func (o *ArtifactDeleteOut) GetPurgeAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.PurgeAt
-}
-
-// GetPurgeAtOk returns a tuple with the PurgeAt field value
-// and a boolean to check if the value has been set.
-func (o *ArtifactDeleteOut) GetPurgeAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.PurgeAt, true
-}
-
-// SetPurgeAt sets field value
-func (o *ArtifactDeleteOut) SetPurgeAt(v time.Time) {
- o.PurgeAt = v
-}
-
-// GetRestoreUrl returns the RestoreUrl field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *ArtifactDeleteOut) GetRestoreUrl() string {
- if o == nil || IsNil(o.RestoreUrl.Get()) {
- var ret string
- return ret
- }
- return *o.RestoreUrl.Get()
-}
-
-// GetRestoreUrlOk returns a tuple with the RestoreUrl field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *ArtifactDeleteOut) GetRestoreUrlOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.RestoreUrl.Get(), o.RestoreUrl.IsSet()
-}
-
-// HasRestoreUrl returns a boolean if a field has been set.
-func (o *ArtifactDeleteOut) HasRestoreUrl() bool {
- if o != nil && o.RestoreUrl.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetRestoreUrl gets a reference to the given NullableString and assigns it to the RestoreUrl field.
-func (o *ArtifactDeleteOut) SetRestoreUrl(v string) {
- o.RestoreUrl.Set(&v)
-}
-// SetRestoreUrlNil sets the value for RestoreUrl to be an explicit nil
-func (o *ArtifactDeleteOut) SetRestoreUrlNil() {
- o.RestoreUrl.Set(nil)
-}
-
-// UnsetRestoreUrl ensures that no value is present for RestoreUrl, not even an explicit nil
-func (o *ArtifactDeleteOut) UnsetRestoreUrl() {
- o.RestoreUrl.Unset()
-}
-
-func (o ArtifactDeleteOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ArtifactDeleteOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["deleted_at"] = o.DeletedAt
- toSerialize["id"] = o.Id
- if !IsNil(o.Ok) {
- toSerialize["ok"] = o.Ok
- }
- toSerialize["path"] = o.Path
- toSerialize["purge_at"] = o.PurgeAt
- if o.RestoreUrl.IsSet() {
- toSerialize["restore_url"] = o.RestoreUrl.Get()
- }
- return toSerialize, nil
-}
-
-func (o *ArtifactDeleteOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "deleted_at",
- "id",
- "path",
- "purge_at",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varArtifactDeleteOut := _ArtifactDeleteOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varArtifactDeleteOut)
-
- if err != nil {
- return err
- }
-
- *o = ArtifactDeleteOut(varArtifactDeleteOut)
-
- return err
-}
-
-type NullableArtifactDeleteOut struct {
- value *ArtifactDeleteOut
- isSet bool
-}
-
-func (v NullableArtifactDeleteOut) Get() *ArtifactDeleteOut {
- return v.value
-}
-
-func (v *NullableArtifactDeleteOut) Set(val *ArtifactDeleteOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableArtifactDeleteOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableArtifactDeleteOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableArtifactDeleteOut(val *ArtifactDeleteOut) *NullableArtifactDeleteOut {
- return &NullableArtifactDeleteOut{value: val, isSet: true}
-}
-
-func (v NullableArtifactDeleteOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableArtifactDeleteOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_artifact_head_out.go b/sdk/go/model_artifact_head_out.go
deleted file mode 100644
index c4593e1..0000000
--- a/sdk/go/model_artifact_head_out.go
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the ArtifactHeadOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ArtifactHeadOut{}
-
-// ArtifactHeadOut struct for ArtifactHeadOut
-type ArtifactHeadOut struct {
- Version int32 `json:"version"`
-}
-
-type _ArtifactHeadOut ArtifactHeadOut
-
-// NewArtifactHeadOut instantiates a new ArtifactHeadOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewArtifactHeadOut(version int32) *ArtifactHeadOut {
- this := ArtifactHeadOut{}
- this.Version = version
- return &this
-}
-
-// NewArtifactHeadOutWithDefaults instantiates a new ArtifactHeadOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewArtifactHeadOutWithDefaults() *ArtifactHeadOut {
- this := ArtifactHeadOut{}
- return &this
-}
-
-// GetVersion returns the Version field value
-func (o *ArtifactHeadOut) GetVersion() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.Version
-}
-
-// GetVersionOk returns a tuple with the Version field value
-// and a boolean to check if the value has been set.
-func (o *ArtifactHeadOut) GetVersionOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Version, true
-}
-
-// SetVersion sets field value
-func (o *ArtifactHeadOut) SetVersion(v int32) {
- o.Version = v
-}
-
-func (o ArtifactHeadOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ArtifactHeadOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["version"] = o.Version
- return toSerialize, nil
-}
-
-func (o *ArtifactHeadOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "version",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varArtifactHeadOut := _ArtifactHeadOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varArtifactHeadOut)
-
- if err != nil {
- return err
- }
-
- *o = ArtifactHeadOut(varArtifactHeadOut)
-
- return err
-}
-
-type NullableArtifactHeadOut struct {
- value *ArtifactHeadOut
- isSet bool
-}
-
-func (v NullableArtifactHeadOut) Get() *ArtifactHeadOut {
- return v.value
-}
-
-func (v *NullableArtifactHeadOut) Set(val *ArtifactHeadOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableArtifactHeadOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableArtifactHeadOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableArtifactHeadOut(val *ArtifactHeadOut) *NullableArtifactHeadOut {
- return &NullableArtifactHeadOut{value: val, isSet: true}
-}
-
-func (v NullableArtifactHeadOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableArtifactHeadOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_artifact_list_out.go b/sdk/go/model_artifact_list_out.go
new file mode 100644
index 0000000..29be3b1
--- /dev/null
+++ b/sdk/go/model_artifact_list_out.go
@@ -0,0 +1,186 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "bytes"
+ "fmt"
+)
+
+// checks if the ArtifactListOut type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &ArtifactListOut{}
+
+// ArtifactListOut struct for ArtifactListOut
+type ArtifactListOut struct {
+ Items []ArtifactOut `json:"items"`
+ NextCursor NullableString `json:"next_cursor"`
+}
+
+type _ArtifactListOut ArtifactListOut
+
+// NewArtifactListOut instantiates a new ArtifactListOut object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewArtifactListOut(items []ArtifactOut, nextCursor NullableString) *ArtifactListOut {
+ this := ArtifactListOut{}
+ this.Items = items
+ this.NextCursor = nextCursor
+ return &this
+}
+
+// NewArtifactListOutWithDefaults instantiates a new ArtifactListOut object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewArtifactListOutWithDefaults() *ArtifactListOut {
+ this := ArtifactListOut{}
+ return &this
+}
+
+// GetItems returns the Items field value
+func (o *ArtifactListOut) GetItems() []ArtifactOut {
+ if o == nil {
+ var ret []ArtifactOut
+ return ret
+ }
+
+ return o.Items
+}
+
+// GetItemsOk returns a tuple with the Items field value
+// and a boolean to check if the value has been set.
+func (o *ArtifactListOut) GetItemsOk() ([]ArtifactOut, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.Items, true
+}
+
+// SetItems sets field value
+func (o *ArtifactListOut) SetItems(v []ArtifactOut) {
+ o.Items = v
+}
+
+// GetNextCursor returns the NextCursor field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *ArtifactListOut) GetNextCursor() string {
+ if o == nil || o.NextCursor.Get() == nil {
+ var ret string
+ return ret
+ }
+
+ return *o.NextCursor.Get()
+}
+
+// GetNextCursorOk returns a tuple with the NextCursor field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ArtifactListOut) GetNextCursorOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.NextCursor.Get(), o.NextCursor.IsSet()
+}
+
+// SetNextCursor sets field value
+func (o *ArtifactListOut) SetNextCursor(v string) {
+ o.NextCursor.Set(&v)
+}
+
+func (o ArtifactListOut) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o ArtifactListOut) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["items"] = o.Items
+ toSerialize["next_cursor"] = o.NextCursor.Get()
+ return toSerialize, nil
+}
+
+func (o *ArtifactListOut) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "items",
+ "next_cursor",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varArtifactListOut := _ArtifactListOut{}
+
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varArtifactListOut)
+
+ if err != nil {
+ return err
+ }
+
+ *o = ArtifactListOut(varArtifactListOut)
+
+ return err
+}
+
+type NullableArtifactListOut struct {
+ value *ArtifactListOut
+ isSet bool
+}
+
+func (v NullableArtifactListOut) Get() *ArtifactListOut {
+ return v.value
+}
+
+func (v *NullableArtifactListOut) Set(val *ArtifactListOut) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableArtifactListOut) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableArtifactListOut) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableArtifactListOut(val *ArtifactListOut) *NullableArtifactListOut {
+ return &NullableArtifactListOut{value: val, isSet: true}
+}
+
+func (v NullableArtifactListOut) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableArtifactListOut) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_artifact_move_in.go b/sdk/go/model_artifact_move_in.go
deleted file mode 100644
index c0355c5..0000000
--- a/sdk/go/model_artifact_move_in.go
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the ArtifactMoveIn type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ArtifactMoveIn{}
-
-// ArtifactMoveIn POST /v0/artifacts/{art_id}/move body — rename / move to a new path on the same drive. Mirrors `FolderMoveIn`; its own schema (vs. reusing another body) keeps the move surface self-documenting in the OpenAPI spec.
-type ArtifactMoveIn struct {
- Path string `json:"path"`
-}
-
-type _ArtifactMoveIn ArtifactMoveIn
-
-// NewArtifactMoveIn instantiates a new ArtifactMoveIn object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewArtifactMoveIn(path string) *ArtifactMoveIn {
- this := ArtifactMoveIn{}
- this.Path = path
- return &this
-}
-
-// NewArtifactMoveInWithDefaults instantiates a new ArtifactMoveIn object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewArtifactMoveInWithDefaults() *ArtifactMoveIn {
- this := ArtifactMoveIn{}
- return &this
-}
-
-// GetPath returns the Path field value
-func (o *ArtifactMoveIn) GetPath() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Path
-}
-
-// GetPathOk returns a tuple with the Path field value
-// and a boolean to check if the value has been set.
-func (o *ArtifactMoveIn) GetPathOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Path, true
-}
-
-// SetPath sets field value
-func (o *ArtifactMoveIn) SetPath(v string) {
- o.Path = v
-}
-
-func (o ArtifactMoveIn) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ArtifactMoveIn) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["path"] = o.Path
- return toSerialize, nil
-}
-
-func (o *ArtifactMoveIn) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "path",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varArtifactMoveIn := _ArtifactMoveIn{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varArtifactMoveIn)
-
- if err != nil {
- return err
- }
-
- *o = ArtifactMoveIn(varArtifactMoveIn)
-
- return err
-}
-
-type NullableArtifactMoveIn struct {
- value *ArtifactMoveIn
- isSet bool
-}
-
-func (v NullableArtifactMoveIn) Get() *ArtifactMoveIn {
- return v.value
-}
-
-func (v *NullableArtifactMoveIn) Set(val *ArtifactMoveIn) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableArtifactMoveIn) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableArtifactMoveIn) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableArtifactMoveIn(val *ArtifactMoveIn) *NullableArtifactMoveIn {
- return &NullableArtifactMoveIn{value: val, isSet: true}
-}
-
-func (v NullableArtifactMoveIn) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableArtifactMoveIn) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_artifact_out.go b/sdk/go/model_artifact_out.go
index c16a73b..47c381c 100644
--- a/sdk/go/model_artifact_out.go
+++ b/sdk/go/model_artifact_out.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
@@ -22,26 +22,22 @@ var _ MappedNullable = &ArtifactOut{}
// ArtifactOut struct for ArtifactOut
type ArtifactOut struct {
- ContentType string `json:"content_type"`
+ ContentPreview NullableString `json:"content_preview"`
+ ContentType NullableString `json:"content_type"`
CreatedAt time.Time `json:"created_at"`
- DriveId string `json:"drive_id"`
- EmbeddedAt NullableTime `json:"embedded_at,omitempty"`
- Etag string `json:"etag"`
- FileType string `json:"file_type"`
- Hash string `json:"hash"`
- Id string `json:"id"`
- IndexedAt NullableTime `json:"indexed_at,omitempty"`
- Labels []string `json:"labels,omitempty"`
- LlmIndex map[string]interface{} `json:"llm_index,omitempty"`
- Metadata map[string]interface{} `json:"metadata,omitempty"`
- Metageneration *int32 `json:"metageneration,omitempty"`
- Path string `json:"path"`
- Permalink string `json:"permalink"`
- SizeBytes int32 `json:"size_bytes"`
- Source NullableArtifactSource `json:"source,omitempty"`
+ DeletedAt NullableTime `json:"deleted_at"`
+ DriveId string `json:"drive_id" validate:"regexp=^drv_[a-f0-9]{16}$"`
+ // Server-computed exposure summary, resolved over the artifact's live grants, its folder ancestry (bounded by the nearest sealed folder), and the drive. 'public' when any live grant has principal_type 'public'; otherwise 'shared' when a live grant names a principal other than the drive's creator; otherwise 'private'. Describes exposure, NOT the caller's own access.
+ EffectiveVisibility string `json:"effective_visibility"`
+ HeadVersionId NullableString `json:"head_version_id"`
+ Id string `json:"id" validate:"regexp=^art_[a-f0-9]{16}$"`
+ Labels []string `json:"labels"`
+ Metadata map[string]interface{} `json:"metadata"`
+ Name string `json:"name"`
+ ParentId string `json:"parent_id" validate:"regexp=^fld_[a-f0-9]{16}$"`
+ Revision string `json:"revision" validate:"regexp=^rev_[a-f0-9]{16}$"`
+ State string `json:"state"`
UpdatedAt time.Time `json:"updated_at"`
- Url string `json:"url"`
- VersionNumber *int32 `json:"version_number,omitempty"`
}
type _ArtifactOut ArtifactOut
@@ -50,24 +46,23 @@ type _ArtifactOut ArtifactOut
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
-func NewArtifactOut(contentType string, createdAt time.Time, driveId string, etag string, fileType string, hash string, id string, path string, permalink string, sizeBytes int32, updatedAt time.Time, url string) *ArtifactOut {
+func NewArtifactOut(contentPreview NullableString, contentType NullableString, createdAt time.Time, deletedAt NullableTime, driveId string, effectiveVisibility string, headVersionId NullableString, id string, labels []string, metadata map[string]interface{}, name string, parentId string, revision string, state string, updatedAt time.Time) *ArtifactOut {
this := ArtifactOut{}
+ this.ContentPreview = contentPreview
this.ContentType = contentType
this.CreatedAt = createdAt
+ this.DeletedAt = deletedAt
this.DriveId = driveId
- this.Etag = etag
- this.FileType = fileType
- this.Hash = hash
+ this.EffectiveVisibility = effectiveVisibility
+ this.HeadVersionId = headVersionId
this.Id = id
- var metageneration int32 = 1
- this.Metageneration = &metageneration
- this.Path = path
- this.Permalink = permalink
- this.SizeBytes = sizeBytes
+ this.Labels = labels
+ this.Metadata = metadata
+ this.Name = name
+ this.ParentId = parentId
+ this.Revision = revision
+ this.State = state
this.UpdatedAt = updatedAt
- this.Url = url
- var versionNumber int32 = 1
- this.VersionNumber = &versionNumber
return &this
}
@@ -76,35 +71,59 @@ func NewArtifactOut(contentType string, createdAt time.Time, driveId string, eta
// but it doesn't guarantee that properties required by API are set
func NewArtifactOutWithDefaults() *ArtifactOut {
this := ArtifactOut{}
- var metageneration int32 = 1
- this.Metageneration = &metageneration
- var versionNumber int32 = 1
- this.VersionNumber = &versionNumber
return &this
}
+// GetContentPreview returns the ContentPreview field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *ArtifactOut) GetContentPreview() string {
+ if o == nil || o.ContentPreview.Get() == nil {
+ var ret string
+ return ret
+ }
+
+ return *o.ContentPreview.Get()
+}
+
+// GetContentPreviewOk returns a tuple with the ContentPreview field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ArtifactOut) GetContentPreviewOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.ContentPreview.Get(), o.ContentPreview.IsSet()
+}
+
+// SetContentPreview sets field value
+func (o *ArtifactOut) SetContentPreview(v string) {
+ o.ContentPreview.Set(&v)
+}
+
// GetContentType returns the ContentType field value
+// If the value is explicit nil, the zero value for string will be returned
func (o *ArtifactOut) GetContentType() string {
- if o == nil {
+ if o == nil || o.ContentType.Get() == nil {
var ret string
return ret
}
- return o.ContentType
+ return *o.ContentType.Get()
}
// GetContentTypeOk returns a tuple with the ContentType field value
// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *ArtifactOut) GetContentTypeOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.ContentType, true
+ return o.ContentType.Get(), o.ContentType.IsSet()
}
// SetContentType sets field value
func (o *ArtifactOut) SetContentType(v string) {
- o.ContentType = v
+ o.ContentType.Set(&v)
}
// GetCreatedAt returns the CreatedAt field value
@@ -131,142 +150,104 @@ func (o *ArtifactOut) SetCreatedAt(v time.Time) {
o.CreatedAt = v
}
-// GetDriveId returns the DriveId field value
-func (o *ArtifactOut) GetDriveId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.DriveId
-}
-
-// GetDriveIdOk returns a tuple with the DriveId field value
-// and a boolean to check if the value has been set.
-func (o *ArtifactOut) GetDriveIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.DriveId, true
-}
-
-// SetDriveId sets field value
-func (o *ArtifactOut) SetDriveId(v string) {
- o.DriveId = v
-}
-
-// GetEmbeddedAt returns the EmbeddedAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *ArtifactOut) GetEmbeddedAt() time.Time {
- if o == nil || IsNil(o.EmbeddedAt.Get()) {
+// GetDeletedAt returns the DeletedAt field value
+// If the value is explicit nil, the zero value for time.Time will be returned
+func (o *ArtifactOut) GetDeletedAt() time.Time {
+ if o == nil || o.DeletedAt.Get() == nil {
var ret time.Time
return ret
}
- return *o.EmbeddedAt.Get()
+
+ return *o.DeletedAt.Get()
}
-// GetEmbeddedAtOk returns a tuple with the EmbeddedAt field value if set, nil otherwise
+// GetDeletedAtOk returns a tuple with the DeletedAt field value
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *ArtifactOut) GetEmbeddedAtOk() (*time.Time, bool) {
+func (o *ArtifactOut) GetDeletedAtOk() (*time.Time, bool) {
if o == nil {
return nil, false
}
- return o.EmbeddedAt.Get(), o.EmbeddedAt.IsSet()
-}
-
-// HasEmbeddedAt returns a boolean if a field has been set.
-func (o *ArtifactOut) HasEmbeddedAt() bool {
- if o != nil && o.EmbeddedAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetEmbeddedAt gets a reference to the given NullableTime and assigns it to the EmbeddedAt field.
-func (o *ArtifactOut) SetEmbeddedAt(v time.Time) {
- o.EmbeddedAt.Set(&v)
-}
-// SetEmbeddedAtNil sets the value for EmbeddedAt to be an explicit nil
-func (o *ArtifactOut) SetEmbeddedAtNil() {
- o.EmbeddedAt.Set(nil)
+ return o.DeletedAt.Get(), o.DeletedAt.IsSet()
}
-// UnsetEmbeddedAt ensures that no value is present for EmbeddedAt, not even an explicit nil
-func (o *ArtifactOut) UnsetEmbeddedAt() {
- o.EmbeddedAt.Unset()
+// SetDeletedAt sets field value
+func (o *ArtifactOut) SetDeletedAt(v time.Time) {
+ o.DeletedAt.Set(&v)
}
-// GetEtag returns the Etag field value
-func (o *ArtifactOut) GetEtag() string {
+// GetDriveId returns the DriveId field value
+func (o *ArtifactOut) GetDriveId() string {
if o == nil {
var ret string
return ret
}
- return o.Etag
+ return o.DriveId
}
-// GetEtagOk returns a tuple with the Etag field value
+// GetDriveIdOk returns a tuple with the DriveId field value
// and a boolean to check if the value has been set.
-func (o *ArtifactOut) GetEtagOk() (*string, bool) {
+func (o *ArtifactOut) GetDriveIdOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.Etag, true
+ return &o.DriveId, true
}
-// SetEtag sets field value
-func (o *ArtifactOut) SetEtag(v string) {
- o.Etag = v
+// SetDriveId sets field value
+func (o *ArtifactOut) SetDriveId(v string) {
+ o.DriveId = v
}
-// GetFileType returns the FileType field value
-func (o *ArtifactOut) GetFileType() string {
+// GetEffectiveVisibility returns the EffectiveVisibility field value
+func (o *ArtifactOut) GetEffectiveVisibility() string {
if o == nil {
var ret string
return ret
}
- return o.FileType
+ return o.EffectiveVisibility
}
-// GetFileTypeOk returns a tuple with the FileType field value
+// GetEffectiveVisibilityOk returns a tuple with the EffectiveVisibility field value
// and a boolean to check if the value has been set.
-func (o *ArtifactOut) GetFileTypeOk() (*string, bool) {
+func (o *ArtifactOut) GetEffectiveVisibilityOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.FileType, true
+ return &o.EffectiveVisibility, true
}
-// SetFileType sets field value
-func (o *ArtifactOut) SetFileType(v string) {
- o.FileType = v
+// SetEffectiveVisibility sets field value
+func (o *ArtifactOut) SetEffectiveVisibility(v string) {
+ o.EffectiveVisibility = v
}
-// GetHash returns the Hash field value
-func (o *ArtifactOut) GetHash() string {
- if o == nil {
+// GetHeadVersionId returns the HeadVersionId field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *ArtifactOut) GetHeadVersionId() string {
+ if o == nil || o.HeadVersionId.Get() == nil {
var ret string
return ret
}
- return o.Hash
+ return *o.HeadVersionId.Get()
}
-// GetHashOk returns a tuple with the Hash field value
+// GetHeadVersionIdOk returns a tuple with the HeadVersionId field value
// and a boolean to check if the value has been set.
-func (o *ArtifactOut) GetHashOk() (*string, bool) {
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ArtifactOut) GetHeadVersionIdOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.Hash, true
+ return o.HeadVersionId.Get(), o.HeadVersionId.IsSet()
}
-// SetHash sets field value
-func (o *ArtifactOut) SetHash(v string) {
- o.Hash = v
+// SetHeadVersionId sets field value
+func (o *ArtifactOut) SetHeadVersionId(v string) {
+ o.HeadVersionId.Set(&v)
}
// GetId returns the Id field value
@@ -293,289 +274,148 @@ func (o *ArtifactOut) SetId(v string) {
o.Id = v
}
-// GetIndexedAt returns the IndexedAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *ArtifactOut) GetIndexedAt() time.Time {
- if o == nil || IsNil(o.IndexedAt.Get()) {
- var ret time.Time
- return ret
- }
- return *o.IndexedAt.Get()
-}
-
-// GetIndexedAtOk returns a tuple with the IndexedAt field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *ArtifactOut) GetIndexedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return o.IndexedAt.Get(), o.IndexedAt.IsSet()
-}
-
-// HasIndexedAt returns a boolean if a field has been set.
-func (o *ArtifactOut) HasIndexedAt() bool {
- if o != nil && o.IndexedAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetIndexedAt gets a reference to the given NullableTime and assigns it to the IndexedAt field.
-func (o *ArtifactOut) SetIndexedAt(v time.Time) {
- o.IndexedAt.Set(&v)
-}
-// SetIndexedAtNil sets the value for IndexedAt to be an explicit nil
-func (o *ArtifactOut) SetIndexedAtNil() {
- o.IndexedAt.Set(nil)
-}
-
-// UnsetIndexedAt ensures that no value is present for IndexedAt, not even an explicit nil
-func (o *ArtifactOut) UnsetIndexedAt() {
- o.IndexedAt.Unset()
-}
-
-// GetLabels returns the Labels field value if set, zero value otherwise.
+// GetLabels returns the Labels field value
func (o *ArtifactOut) GetLabels() []string {
- if o == nil || IsNil(o.Labels) {
+ if o == nil {
var ret []string
return ret
}
+
return o.Labels
}
-// GetLabelsOk returns a tuple with the Labels field value if set, nil otherwise
+// GetLabelsOk returns a tuple with the Labels field value
// and a boolean to check if the value has been set.
func (o *ArtifactOut) GetLabelsOk() ([]string, bool) {
- if o == nil || IsNil(o.Labels) {
+ if o == nil {
return nil, false
}
return o.Labels, true
}
-// HasLabels returns a boolean if a field has been set.
-func (o *ArtifactOut) HasLabels() bool {
- if o != nil && !IsNil(o.Labels) {
- return true
- }
-
- return false
-}
-
-// SetLabels gets a reference to the given []string and assigns it to the Labels field.
+// SetLabels sets field value
func (o *ArtifactOut) SetLabels(v []string) {
o.Labels = v
}
-// GetLlmIndex returns the LlmIndex field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *ArtifactOut) GetLlmIndex() map[string]interface{} {
+// GetMetadata returns the Metadata field value
+func (o *ArtifactOut) GetMetadata() map[string]interface{} {
if o == nil {
var ret map[string]interface{}
return ret
}
- return o.LlmIndex
-}
-
-// GetLlmIndexOk returns a tuple with the LlmIndex field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *ArtifactOut) GetLlmIndexOk() (map[string]interface{}, bool) {
- if o == nil || IsNil(o.LlmIndex) {
- return map[string]interface{}{}, false
- }
- return o.LlmIndex, true
-}
-
-// HasLlmIndex returns a boolean if a field has been set.
-func (o *ArtifactOut) HasLlmIndex() bool {
- if o != nil && !IsNil(o.LlmIndex) {
- return true
- }
-
- return false
-}
-
-// SetLlmIndex gets a reference to the given map[string]interface{} and assigns it to the LlmIndex field.
-func (o *ArtifactOut) SetLlmIndex(v map[string]interface{}) {
- o.LlmIndex = v
-}
-// GetMetadata returns the Metadata field value if set, zero value otherwise.
-func (o *ArtifactOut) GetMetadata() map[string]interface{} {
- if o == nil || IsNil(o.Metadata) {
- var ret map[string]interface{}
- return ret
- }
return o.Metadata
}
-// GetMetadataOk returns a tuple with the Metadata field value if set, nil otherwise
+// GetMetadataOk returns a tuple with the Metadata field value
// and a boolean to check if the value has been set.
func (o *ArtifactOut) GetMetadataOk() (map[string]interface{}, bool) {
- if o == nil || IsNil(o.Metadata) {
+ if o == nil {
return map[string]interface{}{}, false
}
return o.Metadata, true
}
-// HasMetadata returns a boolean if a field has been set.
-func (o *ArtifactOut) HasMetadata() bool {
- if o != nil && !IsNil(o.Metadata) {
- return true
- }
-
- return false
-}
-
-// SetMetadata gets a reference to the given map[string]interface{} and assigns it to the Metadata field.
+// SetMetadata sets field value
func (o *ArtifactOut) SetMetadata(v map[string]interface{}) {
o.Metadata = v
}
-// GetMetageneration returns the Metageneration field value if set, zero value otherwise.
-func (o *ArtifactOut) GetMetageneration() int32 {
- if o == nil || IsNil(o.Metageneration) {
- var ret int32
- return ret
- }
- return *o.Metageneration
-}
-
-// GetMetagenerationOk returns a tuple with the Metageneration field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *ArtifactOut) GetMetagenerationOk() (*int32, bool) {
- if o == nil || IsNil(o.Metageneration) {
- return nil, false
- }
- return o.Metageneration, true
-}
-
-// HasMetageneration returns a boolean if a field has been set.
-func (o *ArtifactOut) HasMetageneration() bool {
- if o != nil && !IsNil(o.Metageneration) {
- return true
- }
-
- return false
-}
-
-// SetMetageneration gets a reference to the given int32 and assigns it to the Metageneration field.
-func (o *ArtifactOut) SetMetageneration(v int32) {
- o.Metageneration = &v
-}
-
-// GetPath returns the Path field value
-func (o *ArtifactOut) GetPath() string {
+// GetName returns the Name field value
+func (o *ArtifactOut) GetName() string {
if o == nil {
var ret string
return ret
}
- return o.Path
+ return o.Name
}
-// GetPathOk returns a tuple with the Path field value
+// GetNameOk returns a tuple with the Name field value
// and a boolean to check if the value has been set.
-func (o *ArtifactOut) GetPathOk() (*string, bool) {
+func (o *ArtifactOut) GetNameOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.Path, true
+ return &o.Name, true
}
-// SetPath sets field value
-func (o *ArtifactOut) SetPath(v string) {
- o.Path = v
+// SetName sets field value
+func (o *ArtifactOut) SetName(v string) {
+ o.Name = v
}
-// GetPermalink returns the Permalink field value
-func (o *ArtifactOut) GetPermalink() string {
+// GetParentId returns the ParentId field value
+func (o *ArtifactOut) GetParentId() string {
if o == nil {
var ret string
return ret
}
- return o.Permalink
+ return o.ParentId
}
-// GetPermalinkOk returns a tuple with the Permalink field value
+// GetParentIdOk returns a tuple with the ParentId field value
// and a boolean to check if the value has been set.
-func (o *ArtifactOut) GetPermalinkOk() (*string, bool) {
+func (o *ArtifactOut) GetParentIdOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.Permalink, true
+ return &o.ParentId, true
}
-// SetPermalink sets field value
-func (o *ArtifactOut) SetPermalink(v string) {
- o.Permalink = v
+// SetParentId sets field value
+func (o *ArtifactOut) SetParentId(v string) {
+ o.ParentId = v
}
-// GetSizeBytes returns the SizeBytes field value
-func (o *ArtifactOut) GetSizeBytes() int32 {
+// GetRevision returns the Revision field value
+func (o *ArtifactOut) GetRevision() string {
if o == nil {
- var ret int32
+ var ret string
return ret
}
- return o.SizeBytes
+ return o.Revision
}
-// GetSizeBytesOk returns a tuple with the SizeBytes field value
+// GetRevisionOk returns a tuple with the Revision field value
// and a boolean to check if the value has been set.
-func (o *ArtifactOut) GetSizeBytesOk() (*int32, bool) {
+func (o *ArtifactOut) GetRevisionOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.SizeBytes, true
+ return &o.Revision, true
}
-// SetSizeBytes sets field value
-func (o *ArtifactOut) SetSizeBytes(v int32) {
- o.SizeBytes = v
+// SetRevision sets field value
+func (o *ArtifactOut) SetRevision(v string) {
+ o.Revision = v
}
-// GetSource returns the Source field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *ArtifactOut) GetSource() ArtifactSource {
- if o == nil || IsNil(o.Source.Get()) {
- var ret ArtifactSource
+// GetState returns the State field value
+func (o *ArtifactOut) GetState() string {
+ if o == nil {
+ var ret string
return ret
}
- return *o.Source.Get()
+
+ return o.State
}
-// GetSourceOk returns a tuple with the Source field value if set, nil otherwise
+// GetStateOk returns a tuple with the State field value
// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *ArtifactOut) GetSourceOk() (*ArtifactSource, bool) {
+func (o *ArtifactOut) GetStateOk() (*string, bool) {
if o == nil {
return nil, false
}
- return o.Source.Get(), o.Source.IsSet()
-}
-
-// HasSource returns a boolean if a field has been set.
-func (o *ArtifactOut) HasSource() bool {
- if o != nil && o.Source.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetSource gets a reference to the given NullableArtifactSource and assigns it to the Source field.
-func (o *ArtifactOut) SetSource(v ArtifactSource) {
- o.Source.Set(&v)
-}
-// SetSourceNil sets the value for Source to be an explicit nil
-func (o *ArtifactOut) SetSourceNil() {
- o.Source.Set(nil)
+ return &o.State, true
}
-// UnsetSource ensures that no value is present for Source, not even an explicit nil
-func (o *ArtifactOut) UnsetSource() {
- o.Source.Unset()
+// SetState sets field value
+func (o *ArtifactOut) SetState(v string) {
+ o.State = v
}
// GetUpdatedAt returns the UpdatedAt field value
@@ -602,62 +442,6 @@ func (o *ArtifactOut) SetUpdatedAt(v time.Time) {
o.UpdatedAt = v
}
-// GetUrl returns the Url field value
-func (o *ArtifactOut) GetUrl() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Url
-}
-
-// GetUrlOk returns a tuple with the Url field value
-// and a boolean to check if the value has been set.
-func (o *ArtifactOut) GetUrlOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Url, true
-}
-
-// SetUrl sets field value
-func (o *ArtifactOut) SetUrl(v string) {
- o.Url = v
-}
-
-// GetVersionNumber returns the VersionNumber field value if set, zero value otherwise.
-func (o *ArtifactOut) GetVersionNumber() int32 {
- if o == nil || IsNil(o.VersionNumber) {
- var ret int32
- return ret
- }
- return *o.VersionNumber
-}
-
-// GetVersionNumberOk returns a tuple with the VersionNumber field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *ArtifactOut) GetVersionNumberOk() (*int32, bool) {
- if o == nil || IsNil(o.VersionNumber) {
- return nil, false
- }
- return o.VersionNumber, true
-}
-
-// HasVersionNumber returns a boolean if a field has been set.
-func (o *ArtifactOut) HasVersionNumber() bool {
- if o != nil && !IsNil(o.VersionNumber) {
- return true
- }
-
- return false
-}
-
-// SetVersionNumber gets a reference to the given int32 and assigns it to the VersionNumber field.
-func (o *ArtifactOut) SetVersionNumber(v int32) {
- o.VersionNumber = &v
-}
-
func (o ArtifactOut) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
@@ -668,42 +452,21 @@ func (o ArtifactOut) MarshalJSON() ([]byte, error) {
func (o ArtifactOut) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
- toSerialize["content_type"] = o.ContentType
+ toSerialize["content_preview"] = o.ContentPreview.Get()
+ toSerialize["content_type"] = o.ContentType.Get()
toSerialize["created_at"] = o.CreatedAt
+ toSerialize["deleted_at"] = o.DeletedAt.Get()
toSerialize["drive_id"] = o.DriveId
- if o.EmbeddedAt.IsSet() {
- toSerialize["embedded_at"] = o.EmbeddedAt.Get()
- }
- toSerialize["etag"] = o.Etag
- toSerialize["file_type"] = o.FileType
- toSerialize["hash"] = o.Hash
+ toSerialize["effective_visibility"] = o.EffectiveVisibility
+ toSerialize["head_version_id"] = o.HeadVersionId.Get()
toSerialize["id"] = o.Id
- if o.IndexedAt.IsSet() {
- toSerialize["indexed_at"] = o.IndexedAt.Get()
- }
- if !IsNil(o.Labels) {
- toSerialize["labels"] = o.Labels
- }
- if o.LlmIndex != nil {
- toSerialize["llm_index"] = o.LlmIndex
- }
- if !IsNil(o.Metadata) {
- toSerialize["metadata"] = o.Metadata
- }
- if !IsNil(o.Metageneration) {
- toSerialize["metageneration"] = o.Metageneration
- }
- toSerialize["path"] = o.Path
- toSerialize["permalink"] = o.Permalink
- toSerialize["size_bytes"] = o.SizeBytes
- if o.Source.IsSet() {
- toSerialize["source"] = o.Source.Get()
- }
+ toSerialize["labels"] = o.Labels
+ toSerialize["metadata"] = o.Metadata
+ toSerialize["name"] = o.Name
+ toSerialize["parent_id"] = o.ParentId
+ toSerialize["revision"] = o.Revision
+ toSerialize["state"] = o.State
toSerialize["updated_at"] = o.UpdatedAt
- toSerialize["url"] = o.Url
- if !IsNil(o.VersionNumber) {
- toSerialize["version_number"] = o.VersionNumber
- }
return toSerialize, nil
}
@@ -712,18 +475,21 @@ func (o *ArtifactOut) UnmarshalJSON(data []byte) (err error) {
// by unmarshalling the object into a generic map with string keys and checking
// that every required field exists as a key in the generic map.
requiredProperties := []string{
+ "content_preview",
"content_type",
"created_at",
+ "deleted_at",
"drive_id",
- "etag",
- "file_type",
- "hash",
+ "effective_visibility",
+ "head_version_id",
"id",
- "path",
- "permalink",
- "size_bytes",
+ "labels",
+ "metadata",
+ "name",
+ "parent_id",
+ "revision",
+ "state",
"updated_at",
- "url",
}
allProperties := make(map[string]interface{})
diff --git a/sdk/go/model_artifact_patch_in.go b/sdk/go/model_artifact_patch_in.go
deleted file mode 100644
index c50b929..0000000
--- a/sdk/go/model_artifact_patch_in.go
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
-)
-
-// checks if the ArtifactPatchIn type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ArtifactPatchIn{}
-
-// ArtifactPatchIn PATCH /v0/artifacts/{art_id} body — metadata-only partial (JSON-merge-patch) update. Every field is optional. Presence is what matters, not the value: a field left out of the body (per Pydantic `model_fields_set`) is left unchanged; a field that IS present is applied — with an explicit `null` / `[]` / `{}` meaning \"clear it\". This mirrors the MCP `set_metadata` tool and the core `patch_artifact_metadata` sentinel semantics (omitted = preserve, present = replace/clear). * `labels` — replace the label set; `[]` or `null` clears it. * `metadata` — replace the free-form metadata object; `{}` or `null` clears it. * `source` — replace provenance refs; `null` (or `{\"refs\": []}`) clears them. PATCH is metadata-only: to move/rename an artifact, use `POST /v0/artifacts/{art_id}/move`. `extra=\"forbid\"` makes a stray field (notably a legacy `path`) a hard 422 rather than a silent no-op — a clean-break signal to migrate to the move verb.
-type ArtifactPatchIn struct {
- Labels []string `json:"labels,omitempty"`
- Metadata map[string]interface{} `json:"metadata,omitempty"`
- Source NullableArtifactSource `json:"source,omitempty"`
- AdditionalProperties map[string]interface{}
-}
-
-type _ArtifactPatchIn ArtifactPatchIn
-
-// NewArtifactPatchIn instantiates a new ArtifactPatchIn object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewArtifactPatchIn() *ArtifactPatchIn {
- this := ArtifactPatchIn{}
- return &this
-}
-
-// NewArtifactPatchInWithDefaults instantiates a new ArtifactPatchIn object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewArtifactPatchInWithDefaults() *ArtifactPatchIn {
- this := ArtifactPatchIn{}
- return &this
-}
-
-// GetLabels returns the Labels field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *ArtifactPatchIn) GetLabels() []string {
- if o == nil {
- var ret []string
- return ret
- }
- return o.Labels
-}
-
-// GetLabelsOk returns a tuple with the Labels field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *ArtifactPatchIn) GetLabelsOk() ([]string, bool) {
- if o == nil || IsNil(o.Labels) {
- return nil, false
- }
- return o.Labels, true
-}
-
-// HasLabels returns a boolean if a field has been set.
-func (o *ArtifactPatchIn) HasLabels() bool {
- if o != nil && !IsNil(o.Labels) {
- return true
- }
-
- return false
-}
-
-// SetLabels gets a reference to the given []string and assigns it to the Labels field.
-func (o *ArtifactPatchIn) SetLabels(v []string) {
- o.Labels = v
-}
-
-// GetMetadata returns the Metadata field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *ArtifactPatchIn) GetMetadata() map[string]interface{} {
- if o == nil {
- var ret map[string]interface{}
- return ret
- }
- return o.Metadata
-}
-
-// GetMetadataOk returns a tuple with the Metadata field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *ArtifactPatchIn) GetMetadataOk() (map[string]interface{}, bool) {
- if o == nil || IsNil(o.Metadata) {
- return map[string]interface{}{}, false
- }
- return o.Metadata, true
-}
-
-// HasMetadata returns a boolean if a field has been set.
-func (o *ArtifactPatchIn) HasMetadata() bool {
- if o != nil && !IsNil(o.Metadata) {
- return true
- }
-
- return false
-}
-
-// SetMetadata gets a reference to the given map[string]interface{} and assigns it to the Metadata field.
-func (o *ArtifactPatchIn) SetMetadata(v map[string]interface{}) {
- o.Metadata = v
-}
-
-// GetSource returns the Source field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *ArtifactPatchIn) GetSource() ArtifactSource {
- if o == nil || IsNil(o.Source.Get()) {
- var ret ArtifactSource
- return ret
- }
- return *o.Source.Get()
-}
-
-// GetSourceOk returns a tuple with the Source field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *ArtifactPatchIn) GetSourceOk() (*ArtifactSource, bool) {
- if o == nil {
- return nil, false
- }
- return o.Source.Get(), o.Source.IsSet()
-}
-
-// HasSource returns a boolean if a field has been set.
-func (o *ArtifactPatchIn) HasSource() bool {
- if o != nil && o.Source.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetSource gets a reference to the given NullableArtifactSource and assigns it to the Source field.
-func (o *ArtifactPatchIn) SetSource(v ArtifactSource) {
- o.Source.Set(&v)
-}
-// SetSourceNil sets the value for Source to be an explicit nil
-func (o *ArtifactPatchIn) SetSourceNil() {
- o.Source.Set(nil)
-}
-
-// UnsetSource ensures that no value is present for Source, not even an explicit nil
-func (o *ArtifactPatchIn) UnsetSource() {
- o.Source.Unset()
-}
-
-func (o ArtifactPatchIn) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ArtifactPatchIn) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- if o.Labels != nil {
- toSerialize["labels"] = o.Labels
- }
- if o.Metadata != nil {
- toSerialize["metadata"] = o.Metadata
- }
- if o.Source.IsSet() {
- toSerialize["source"] = o.Source.Get()
- }
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
- return toSerialize, nil
-}
-
-func (o *ArtifactPatchIn) UnmarshalJSON(data []byte) (err error) {
- varArtifactPatchIn := _ArtifactPatchIn{}
-
- err = json.Unmarshal(data, &varArtifactPatchIn)
-
- if err != nil {
- return err
- }
-
- *o = ArtifactPatchIn(varArtifactPatchIn)
-
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "labels")
- delete(additionalProperties, "metadata")
- delete(additionalProperties, "source")
- o.AdditionalProperties = additionalProperties
- }
-
- return err
-}
-
-type NullableArtifactPatchIn struct {
- value *ArtifactPatchIn
- isSet bool
-}
-
-func (v NullableArtifactPatchIn) Get() *ArtifactPatchIn {
- return v.value
-}
-
-func (v *NullableArtifactPatchIn) Set(val *ArtifactPatchIn) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableArtifactPatchIn) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableArtifactPatchIn) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableArtifactPatchIn(val *ArtifactPatchIn) *NullableArtifactPatchIn {
- return &NullableArtifactPatchIn{value: val, isSet: true}
-}
-
-func (v NullableArtifactPatchIn) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableArtifactPatchIn) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_artifact_source.go b/sdk/go/model_artifact_source.go
deleted file mode 100644
index 42f9a02..0000000
--- a/sdk/go/model_artifact_source.go
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
-)
-
-// checks if the ArtifactSource type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ArtifactSource{}
-
-// ArtifactSource Caller-supplied provenance metadata, attached to an artifact. v0.6 model: a list of typed refs. The legacy v0.5 fields (`agent_id`, `run_id`, `prompt_hash`) were never validated and are superseded by the `refs` shape (an agent-id ref would be `{\"type\": \"agent\", \"id\": \"...\"}` in v0.6 vocabulary).
-type ArtifactSource struct {
- Refs []SourceRef `json:"refs,omitempty"`
-}
-
-// NewArtifactSource instantiates a new ArtifactSource object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewArtifactSource() *ArtifactSource {
- this := ArtifactSource{}
- return &this
-}
-
-// NewArtifactSourceWithDefaults instantiates a new ArtifactSource object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewArtifactSourceWithDefaults() *ArtifactSource {
- this := ArtifactSource{}
- return &this
-}
-
-// GetRefs returns the Refs field value if set, zero value otherwise.
-func (o *ArtifactSource) GetRefs() []SourceRef {
- if o == nil || IsNil(o.Refs) {
- var ret []SourceRef
- return ret
- }
- return o.Refs
-}
-
-// GetRefsOk returns a tuple with the Refs field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *ArtifactSource) GetRefsOk() ([]SourceRef, bool) {
- if o == nil || IsNil(o.Refs) {
- return nil, false
- }
- return o.Refs, true
-}
-
-// HasRefs returns a boolean if a field has been set.
-func (o *ArtifactSource) HasRefs() bool {
- if o != nil && !IsNil(o.Refs) {
- return true
- }
-
- return false
-}
-
-// SetRefs gets a reference to the given []SourceRef and assigns it to the Refs field.
-func (o *ArtifactSource) SetRefs(v []SourceRef) {
- o.Refs = v
-}
-
-func (o ArtifactSource) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ArtifactSource) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- if !IsNil(o.Refs) {
- toSerialize["refs"] = o.Refs
- }
- return toSerialize, nil
-}
-
-type NullableArtifactSource struct {
- value *ArtifactSource
- isSet bool
-}
-
-func (v NullableArtifactSource) Get() *ArtifactSource {
- return v.value
-}
-
-func (v *NullableArtifactSource) Set(val *ArtifactSource) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableArtifactSource) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableArtifactSource) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableArtifactSource(val *ArtifactSource) *NullableArtifactSource {
- return &NullableArtifactSource{value: val, isSet: true}
-}
-
-func (v NullableArtifactSource) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableArtifactSource) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_artifact_update_in.go b/sdk/go/model_artifact_update_in.go
new file mode 100644
index 0000000..c24f155
--- /dev/null
+++ b/sdk/go/model_artifact_update_in.go
@@ -0,0 +1,286 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+)
+
+// checks if the ArtifactUpdateIn type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &ArtifactUpdateIn{}
+
+// ArtifactUpdateIn PATCH /v0/drives/{id}/artifacts/{artifact_id} body — at least one field is required.
+type ArtifactUpdateIn struct {
+ Labels []string `json:"labels,omitempty"`
+ Metadata map[string]interface{} `json:"metadata,omitempty"`
+ Name NullableString `json:"name,omitempty"`
+ ParentId NullableString `json:"parent_id,omitempty" validate:"regexp=^fld_[a-f0-9]{16}$"`
+ AdditionalProperties map[string]interface{}
+}
+
+type _ArtifactUpdateIn ArtifactUpdateIn
+
+// NewArtifactUpdateIn instantiates a new ArtifactUpdateIn object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewArtifactUpdateIn() *ArtifactUpdateIn {
+ this := ArtifactUpdateIn{}
+ return &this
+}
+
+// NewArtifactUpdateInWithDefaults instantiates a new ArtifactUpdateIn object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewArtifactUpdateInWithDefaults() *ArtifactUpdateIn {
+ this := ArtifactUpdateIn{}
+ return &this
+}
+
+// GetLabels returns the Labels field value if set, zero value otherwise (both if not set or set to explicit null).
+func (o *ArtifactUpdateIn) GetLabels() []string {
+ if o == nil {
+ var ret []string
+ return ret
+ }
+ return o.Labels
+}
+
+// GetLabelsOk returns a tuple with the Labels field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ArtifactUpdateIn) GetLabelsOk() ([]string, bool) {
+ if o == nil || IsNil(o.Labels) {
+ return nil, false
+ }
+ return o.Labels, true
+}
+
+// HasLabels returns a boolean if a field has been set.
+func (o *ArtifactUpdateIn) HasLabels() bool {
+ if o != nil && !IsNil(o.Labels) {
+ return true
+ }
+
+ return false
+}
+
+// SetLabels gets a reference to the given []string and assigns it to the Labels field.
+func (o *ArtifactUpdateIn) SetLabels(v []string) {
+ o.Labels = v
+}
+
+// GetMetadata returns the Metadata field value if set, zero value otherwise (both if not set or set to explicit null).
+func (o *ArtifactUpdateIn) GetMetadata() map[string]interface{} {
+ if o == nil {
+ var ret map[string]interface{}
+ return ret
+ }
+ return o.Metadata
+}
+
+// GetMetadataOk returns a tuple with the Metadata field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ArtifactUpdateIn) GetMetadataOk() (map[string]interface{}, bool) {
+ if o == nil || IsNil(o.Metadata) {
+ return map[string]interface{}{}, false
+ }
+ return o.Metadata, true
+}
+
+// HasMetadata returns a boolean if a field has been set.
+func (o *ArtifactUpdateIn) HasMetadata() bool {
+ if o != nil && !IsNil(o.Metadata) {
+ return true
+ }
+
+ return false
+}
+
+// SetMetadata gets a reference to the given map[string]interface{} and assigns it to the Metadata field.
+func (o *ArtifactUpdateIn) SetMetadata(v map[string]interface{}) {
+ o.Metadata = v
+}
+
+// GetName returns the Name field value if set, zero value otherwise (both if not set or set to explicit null).
+func (o *ArtifactUpdateIn) GetName() string {
+ if o == nil || IsNil(o.Name.Get()) {
+ var ret string
+ return ret
+ }
+ return *o.Name.Get()
+}
+
+// GetNameOk returns a tuple with the Name field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ArtifactUpdateIn) GetNameOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.Name.Get(), o.Name.IsSet()
+}
+
+// HasName returns a boolean if a field has been set.
+func (o *ArtifactUpdateIn) HasName() bool {
+ if o != nil && o.Name.IsSet() {
+ return true
+ }
+
+ return false
+}
+
+// SetName gets a reference to the given NullableString and assigns it to the Name field.
+func (o *ArtifactUpdateIn) SetName(v string) {
+ o.Name.Set(&v)
+}
+// SetNameNil sets the value for Name to be an explicit nil
+func (o *ArtifactUpdateIn) SetNameNil() {
+ o.Name.Set(nil)
+}
+
+// UnsetName ensures that no value is present for Name, not even an explicit nil
+func (o *ArtifactUpdateIn) UnsetName() {
+ o.Name.Unset()
+}
+
+// GetParentId returns the ParentId field value if set, zero value otherwise (both if not set or set to explicit null).
+func (o *ArtifactUpdateIn) GetParentId() string {
+ if o == nil || IsNil(o.ParentId.Get()) {
+ var ret string
+ return ret
+ }
+ return *o.ParentId.Get()
+}
+
+// GetParentIdOk returns a tuple with the ParentId field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ArtifactUpdateIn) GetParentIdOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.ParentId.Get(), o.ParentId.IsSet()
+}
+
+// HasParentId returns a boolean if a field has been set.
+func (o *ArtifactUpdateIn) HasParentId() bool {
+ if o != nil && o.ParentId.IsSet() {
+ return true
+ }
+
+ return false
+}
+
+// SetParentId gets a reference to the given NullableString and assigns it to the ParentId field.
+func (o *ArtifactUpdateIn) SetParentId(v string) {
+ o.ParentId.Set(&v)
+}
+// SetParentIdNil sets the value for ParentId to be an explicit nil
+func (o *ArtifactUpdateIn) SetParentIdNil() {
+ o.ParentId.Set(nil)
+}
+
+// UnsetParentId ensures that no value is present for ParentId, not even an explicit nil
+func (o *ArtifactUpdateIn) UnsetParentId() {
+ o.ParentId.Unset()
+}
+
+func (o ArtifactUpdateIn) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o ArtifactUpdateIn) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ if o.Labels != nil {
+ toSerialize["labels"] = o.Labels
+ }
+ if o.Metadata != nil {
+ toSerialize["metadata"] = o.Metadata
+ }
+ if o.Name.IsSet() {
+ toSerialize["name"] = o.Name.Get()
+ }
+ if o.ParentId.IsSet() {
+ toSerialize["parent_id"] = o.ParentId.Get()
+ }
+
+ for key, value := range o.AdditionalProperties {
+ toSerialize[key] = value
+ }
+
+ return toSerialize, nil
+}
+
+func (o *ArtifactUpdateIn) UnmarshalJSON(data []byte) (err error) {
+ varArtifactUpdateIn := _ArtifactUpdateIn{}
+
+ err = json.Unmarshal(data, &varArtifactUpdateIn)
+
+ if err != nil {
+ return err
+ }
+
+ *o = ArtifactUpdateIn(varArtifactUpdateIn)
+
+ additionalProperties := make(map[string]interface{})
+
+ if err = json.Unmarshal(data, &additionalProperties); err == nil {
+ delete(additionalProperties, "labels")
+ delete(additionalProperties, "metadata")
+ delete(additionalProperties, "name")
+ delete(additionalProperties, "parent_id")
+ o.AdditionalProperties = additionalProperties
+ }
+
+ return err
+}
+
+type NullableArtifactUpdateIn struct {
+ value *ArtifactUpdateIn
+ isSet bool
+}
+
+func (v NullableArtifactUpdateIn) Get() *ArtifactUpdateIn {
+ return v.value
+}
+
+func (v *NullableArtifactUpdateIn) Set(val *ArtifactUpdateIn) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableArtifactUpdateIn) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableArtifactUpdateIn) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableArtifactUpdateIn(val *ArtifactUpdateIn) *NullableArtifactUpdateIn {
+ return &NullableArtifactUpdateIn{value: val, isSet: true}
+}
+
+func (v NullableArtifactUpdateIn) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableArtifactUpdateIn) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_authorization_server_metadata_out.go b/sdk/go/model_authorization_server_metadata_out.go
deleted file mode 100644
index 4fcecfb..0000000
--- a/sdk/go/model_authorization_server_metadata_out.go
+++ /dev/null
@@ -1,572 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
-)
-
-// checks if the AuthorizationServerMetadataOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &AuthorizationServerMetadataOut{}
-
-// AuthorizationServerMetadataOut struct for AuthorizationServerMetadataOut
-type AuthorizationServerMetadataOut struct {
- AgentAuth AgentAuthMetadataOut `json:"agent_auth"`
- AuthorizationEndpoint string `json:"authorization_endpoint"`
- AuthorizationResponseIssParameterSupported bool `json:"authorization_response_iss_parameter_supported"`
- CodeChallengeMethodsSupported []string `json:"code_challenge_methods_supported"`
- GrantTypesSupported []string `json:"grant_types_supported"`
- Issuer string `json:"issuer"`
- JwksUri string `json:"jwks_uri"`
- RegistrationEndpoint string `json:"registration_endpoint"`
- ResponseModesSupported []string `json:"response_modes_supported"`
- ResponseTypesSupported []string `json:"response_types_supported"`
- RevocationEndpoint string `json:"revocation_endpoint"`
- RevocationEndpointAuthMethodsSupported []string `json:"revocation_endpoint_auth_methods_supported"`
- ScopesSupported []string `json:"scopes_supported"`
- TokenEndpoint string `json:"token_endpoint"`
- TokenEndpointAuthMethodsSupported []string `json:"token_endpoint_auth_methods_supported"`
- AdditionalProperties map[string]interface{}
-}
-
-type _AuthorizationServerMetadataOut AuthorizationServerMetadataOut
-
-// NewAuthorizationServerMetadataOut instantiates a new AuthorizationServerMetadataOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewAuthorizationServerMetadataOut(agentAuth AgentAuthMetadataOut, authorizationEndpoint string, authorizationResponseIssParameterSupported bool, codeChallengeMethodsSupported []string, grantTypesSupported []string, issuer string, jwksUri string, registrationEndpoint string, responseModesSupported []string, responseTypesSupported []string, revocationEndpoint string, revocationEndpointAuthMethodsSupported []string, scopesSupported []string, tokenEndpoint string, tokenEndpointAuthMethodsSupported []string) *AuthorizationServerMetadataOut {
- this := AuthorizationServerMetadataOut{}
- this.AgentAuth = agentAuth
- this.AuthorizationEndpoint = authorizationEndpoint
- this.AuthorizationResponseIssParameterSupported = authorizationResponseIssParameterSupported
- this.CodeChallengeMethodsSupported = codeChallengeMethodsSupported
- this.GrantTypesSupported = grantTypesSupported
- this.Issuer = issuer
- this.JwksUri = jwksUri
- this.RegistrationEndpoint = registrationEndpoint
- this.ResponseModesSupported = responseModesSupported
- this.ResponseTypesSupported = responseTypesSupported
- this.RevocationEndpoint = revocationEndpoint
- this.RevocationEndpointAuthMethodsSupported = revocationEndpointAuthMethodsSupported
- this.ScopesSupported = scopesSupported
- this.TokenEndpoint = tokenEndpoint
- this.TokenEndpointAuthMethodsSupported = tokenEndpointAuthMethodsSupported
- return &this
-}
-
-// NewAuthorizationServerMetadataOutWithDefaults instantiates a new AuthorizationServerMetadataOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewAuthorizationServerMetadataOutWithDefaults() *AuthorizationServerMetadataOut {
- this := AuthorizationServerMetadataOut{}
- return &this
-}
-
-// GetAgentAuth returns the AgentAuth field value
-func (o *AuthorizationServerMetadataOut) GetAgentAuth() AgentAuthMetadataOut {
- if o == nil {
- var ret AgentAuthMetadataOut
- return ret
- }
-
- return o.AgentAuth
-}
-
-// GetAgentAuthOk returns a tuple with the AgentAuth field value
-// and a boolean to check if the value has been set.
-func (o *AuthorizationServerMetadataOut) GetAgentAuthOk() (*AgentAuthMetadataOut, bool) {
- if o == nil {
- return nil, false
- }
- return &o.AgentAuth, true
-}
-
-// SetAgentAuth sets field value
-func (o *AuthorizationServerMetadataOut) SetAgentAuth(v AgentAuthMetadataOut) {
- o.AgentAuth = v
-}
-
-// GetAuthorizationEndpoint returns the AuthorizationEndpoint field value
-func (o *AuthorizationServerMetadataOut) GetAuthorizationEndpoint() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.AuthorizationEndpoint
-}
-
-// GetAuthorizationEndpointOk returns a tuple with the AuthorizationEndpoint field value
-// and a boolean to check if the value has been set.
-func (o *AuthorizationServerMetadataOut) GetAuthorizationEndpointOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.AuthorizationEndpoint, true
-}
-
-// SetAuthorizationEndpoint sets field value
-func (o *AuthorizationServerMetadataOut) SetAuthorizationEndpoint(v string) {
- o.AuthorizationEndpoint = v
-}
-
-// GetAuthorizationResponseIssParameterSupported returns the AuthorizationResponseIssParameterSupported field value
-func (o *AuthorizationServerMetadataOut) GetAuthorizationResponseIssParameterSupported() bool {
- if o == nil {
- var ret bool
- return ret
- }
-
- return o.AuthorizationResponseIssParameterSupported
-}
-
-// GetAuthorizationResponseIssParameterSupportedOk returns a tuple with the AuthorizationResponseIssParameterSupported field value
-// and a boolean to check if the value has been set.
-func (o *AuthorizationServerMetadataOut) GetAuthorizationResponseIssParameterSupportedOk() (*bool, bool) {
- if o == nil {
- return nil, false
- }
- return &o.AuthorizationResponseIssParameterSupported, true
-}
-
-// SetAuthorizationResponseIssParameterSupported sets field value
-func (o *AuthorizationServerMetadataOut) SetAuthorizationResponseIssParameterSupported(v bool) {
- o.AuthorizationResponseIssParameterSupported = v
-}
-
-// GetCodeChallengeMethodsSupported returns the CodeChallengeMethodsSupported field value
-func (o *AuthorizationServerMetadataOut) GetCodeChallengeMethodsSupported() []string {
- if o == nil {
- var ret []string
- return ret
- }
-
- return o.CodeChallengeMethodsSupported
-}
-
-// GetCodeChallengeMethodsSupportedOk returns a tuple with the CodeChallengeMethodsSupported field value
-// and a boolean to check if the value has been set.
-func (o *AuthorizationServerMetadataOut) GetCodeChallengeMethodsSupportedOk() ([]string, bool) {
- if o == nil {
- return nil, false
- }
- return o.CodeChallengeMethodsSupported, true
-}
-
-// SetCodeChallengeMethodsSupported sets field value
-func (o *AuthorizationServerMetadataOut) SetCodeChallengeMethodsSupported(v []string) {
- o.CodeChallengeMethodsSupported = v
-}
-
-// GetGrantTypesSupported returns the GrantTypesSupported field value
-func (o *AuthorizationServerMetadataOut) GetGrantTypesSupported() []string {
- if o == nil {
- var ret []string
- return ret
- }
-
- return o.GrantTypesSupported
-}
-
-// GetGrantTypesSupportedOk returns a tuple with the GrantTypesSupported field value
-// and a boolean to check if the value has been set.
-func (o *AuthorizationServerMetadataOut) GetGrantTypesSupportedOk() ([]string, bool) {
- if o == nil {
- return nil, false
- }
- return o.GrantTypesSupported, true
-}
-
-// SetGrantTypesSupported sets field value
-func (o *AuthorizationServerMetadataOut) SetGrantTypesSupported(v []string) {
- o.GrantTypesSupported = v
-}
-
-// GetIssuer returns the Issuer field value
-func (o *AuthorizationServerMetadataOut) GetIssuer() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Issuer
-}
-
-// GetIssuerOk returns a tuple with the Issuer field value
-// and a boolean to check if the value has been set.
-func (o *AuthorizationServerMetadataOut) GetIssuerOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Issuer, true
-}
-
-// SetIssuer sets field value
-func (o *AuthorizationServerMetadataOut) SetIssuer(v string) {
- o.Issuer = v
-}
-
-// GetJwksUri returns the JwksUri field value
-func (o *AuthorizationServerMetadataOut) GetJwksUri() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.JwksUri
-}
-
-// GetJwksUriOk returns a tuple with the JwksUri field value
-// and a boolean to check if the value has been set.
-func (o *AuthorizationServerMetadataOut) GetJwksUriOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.JwksUri, true
-}
-
-// SetJwksUri sets field value
-func (o *AuthorizationServerMetadataOut) SetJwksUri(v string) {
- o.JwksUri = v
-}
-
-// GetRegistrationEndpoint returns the RegistrationEndpoint field value
-func (o *AuthorizationServerMetadataOut) GetRegistrationEndpoint() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.RegistrationEndpoint
-}
-
-// GetRegistrationEndpointOk returns a tuple with the RegistrationEndpoint field value
-// and a boolean to check if the value has been set.
-func (o *AuthorizationServerMetadataOut) GetRegistrationEndpointOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.RegistrationEndpoint, true
-}
-
-// SetRegistrationEndpoint sets field value
-func (o *AuthorizationServerMetadataOut) SetRegistrationEndpoint(v string) {
- o.RegistrationEndpoint = v
-}
-
-// GetResponseModesSupported returns the ResponseModesSupported field value
-func (o *AuthorizationServerMetadataOut) GetResponseModesSupported() []string {
- if o == nil {
- var ret []string
- return ret
- }
-
- return o.ResponseModesSupported
-}
-
-// GetResponseModesSupportedOk returns a tuple with the ResponseModesSupported field value
-// and a boolean to check if the value has been set.
-func (o *AuthorizationServerMetadataOut) GetResponseModesSupportedOk() ([]string, bool) {
- if o == nil {
- return nil, false
- }
- return o.ResponseModesSupported, true
-}
-
-// SetResponseModesSupported sets field value
-func (o *AuthorizationServerMetadataOut) SetResponseModesSupported(v []string) {
- o.ResponseModesSupported = v
-}
-
-// GetResponseTypesSupported returns the ResponseTypesSupported field value
-func (o *AuthorizationServerMetadataOut) GetResponseTypesSupported() []string {
- if o == nil {
- var ret []string
- return ret
- }
-
- return o.ResponseTypesSupported
-}
-
-// GetResponseTypesSupportedOk returns a tuple with the ResponseTypesSupported field value
-// and a boolean to check if the value has been set.
-func (o *AuthorizationServerMetadataOut) GetResponseTypesSupportedOk() ([]string, bool) {
- if o == nil {
- return nil, false
- }
- return o.ResponseTypesSupported, true
-}
-
-// SetResponseTypesSupported sets field value
-func (o *AuthorizationServerMetadataOut) SetResponseTypesSupported(v []string) {
- o.ResponseTypesSupported = v
-}
-
-// GetRevocationEndpoint returns the RevocationEndpoint field value
-func (o *AuthorizationServerMetadataOut) GetRevocationEndpoint() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.RevocationEndpoint
-}
-
-// GetRevocationEndpointOk returns a tuple with the RevocationEndpoint field value
-// and a boolean to check if the value has been set.
-func (o *AuthorizationServerMetadataOut) GetRevocationEndpointOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.RevocationEndpoint, true
-}
-
-// SetRevocationEndpoint sets field value
-func (o *AuthorizationServerMetadataOut) SetRevocationEndpoint(v string) {
- o.RevocationEndpoint = v
-}
-
-// GetRevocationEndpointAuthMethodsSupported returns the RevocationEndpointAuthMethodsSupported field value
-func (o *AuthorizationServerMetadataOut) GetRevocationEndpointAuthMethodsSupported() []string {
- if o == nil {
- var ret []string
- return ret
- }
-
- return o.RevocationEndpointAuthMethodsSupported
-}
-
-// GetRevocationEndpointAuthMethodsSupportedOk returns a tuple with the RevocationEndpointAuthMethodsSupported field value
-// and a boolean to check if the value has been set.
-func (o *AuthorizationServerMetadataOut) GetRevocationEndpointAuthMethodsSupportedOk() ([]string, bool) {
- if o == nil {
- return nil, false
- }
- return o.RevocationEndpointAuthMethodsSupported, true
-}
-
-// SetRevocationEndpointAuthMethodsSupported sets field value
-func (o *AuthorizationServerMetadataOut) SetRevocationEndpointAuthMethodsSupported(v []string) {
- o.RevocationEndpointAuthMethodsSupported = v
-}
-
-// GetScopesSupported returns the ScopesSupported field value
-func (o *AuthorizationServerMetadataOut) GetScopesSupported() []string {
- if o == nil {
- var ret []string
- return ret
- }
-
- return o.ScopesSupported
-}
-
-// GetScopesSupportedOk returns a tuple with the ScopesSupported field value
-// and a boolean to check if the value has been set.
-func (o *AuthorizationServerMetadataOut) GetScopesSupportedOk() ([]string, bool) {
- if o == nil {
- return nil, false
- }
- return o.ScopesSupported, true
-}
-
-// SetScopesSupported sets field value
-func (o *AuthorizationServerMetadataOut) SetScopesSupported(v []string) {
- o.ScopesSupported = v
-}
-
-// GetTokenEndpoint returns the TokenEndpoint field value
-func (o *AuthorizationServerMetadataOut) GetTokenEndpoint() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.TokenEndpoint
-}
-
-// GetTokenEndpointOk returns a tuple with the TokenEndpoint field value
-// and a boolean to check if the value has been set.
-func (o *AuthorizationServerMetadataOut) GetTokenEndpointOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.TokenEndpoint, true
-}
-
-// SetTokenEndpoint sets field value
-func (o *AuthorizationServerMetadataOut) SetTokenEndpoint(v string) {
- o.TokenEndpoint = v
-}
-
-// GetTokenEndpointAuthMethodsSupported returns the TokenEndpointAuthMethodsSupported field value
-func (o *AuthorizationServerMetadataOut) GetTokenEndpointAuthMethodsSupported() []string {
- if o == nil {
- var ret []string
- return ret
- }
-
- return o.TokenEndpointAuthMethodsSupported
-}
-
-// GetTokenEndpointAuthMethodsSupportedOk returns a tuple with the TokenEndpointAuthMethodsSupported field value
-// and a boolean to check if the value has been set.
-func (o *AuthorizationServerMetadataOut) GetTokenEndpointAuthMethodsSupportedOk() ([]string, bool) {
- if o == nil {
- return nil, false
- }
- return o.TokenEndpointAuthMethodsSupported, true
-}
-
-// SetTokenEndpointAuthMethodsSupported sets field value
-func (o *AuthorizationServerMetadataOut) SetTokenEndpointAuthMethodsSupported(v []string) {
- o.TokenEndpointAuthMethodsSupported = v
-}
-
-func (o AuthorizationServerMetadataOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o AuthorizationServerMetadataOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["agent_auth"] = o.AgentAuth
- toSerialize["authorization_endpoint"] = o.AuthorizationEndpoint
- toSerialize["authorization_response_iss_parameter_supported"] = o.AuthorizationResponseIssParameterSupported
- toSerialize["code_challenge_methods_supported"] = o.CodeChallengeMethodsSupported
- toSerialize["grant_types_supported"] = o.GrantTypesSupported
- toSerialize["issuer"] = o.Issuer
- toSerialize["jwks_uri"] = o.JwksUri
- toSerialize["registration_endpoint"] = o.RegistrationEndpoint
- toSerialize["response_modes_supported"] = o.ResponseModesSupported
- toSerialize["response_types_supported"] = o.ResponseTypesSupported
- toSerialize["revocation_endpoint"] = o.RevocationEndpoint
- toSerialize["revocation_endpoint_auth_methods_supported"] = o.RevocationEndpointAuthMethodsSupported
- toSerialize["scopes_supported"] = o.ScopesSupported
- toSerialize["token_endpoint"] = o.TokenEndpoint
- toSerialize["token_endpoint_auth_methods_supported"] = o.TokenEndpointAuthMethodsSupported
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
- return toSerialize, nil
-}
-
-func (o *AuthorizationServerMetadataOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "agent_auth",
- "authorization_endpoint",
- "authorization_response_iss_parameter_supported",
- "code_challenge_methods_supported",
- "grant_types_supported",
- "issuer",
- "jwks_uri",
- "registration_endpoint",
- "response_modes_supported",
- "response_types_supported",
- "revocation_endpoint",
- "revocation_endpoint_auth_methods_supported",
- "scopes_supported",
- "token_endpoint",
- "token_endpoint_auth_methods_supported",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varAuthorizationServerMetadataOut := _AuthorizationServerMetadataOut{}
-
- err = json.Unmarshal(data, &varAuthorizationServerMetadataOut)
-
- if err != nil {
- return err
- }
-
- *o = AuthorizationServerMetadataOut(varAuthorizationServerMetadataOut)
-
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "agent_auth")
- delete(additionalProperties, "authorization_endpoint")
- delete(additionalProperties, "authorization_response_iss_parameter_supported")
- delete(additionalProperties, "code_challenge_methods_supported")
- delete(additionalProperties, "grant_types_supported")
- delete(additionalProperties, "issuer")
- delete(additionalProperties, "jwks_uri")
- delete(additionalProperties, "registration_endpoint")
- delete(additionalProperties, "response_modes_supported")
- delete(additionalProperties, "response_types_supported")
- delete(additionalProperties, "revocation_endpoint")
- delete(additionalProperties, "revocation_endpoint_auth_methods_supported")
- delete(additionalProperties, "scopes_supported")
- delete(additionalProperties, "token_endpoint")
- delete(additionalProperties, "token_endpoint_auth_methods_supported")
- o.AdditionalProperties = additionalProperties
- }
-
- return err
-}
-
-type NullableAuthorizationServerMetadataOut struct {
- value *AuthorizationServerMetadataOut
- isSet bool
-}
-
-func (v NullableAuthorizationServerMetadataOut) Get() *AuthorizationServerMetadataOut {
- return v.value
-}
-
-func (v *NullableAuthorizationServerMetadataOut) Set(val *AuthorizationServerMetadataOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableAuthorizationServerMetadataOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableAuthorizationServerMetadataOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableAuthorizationServerMetadataOut(val *AuthorizationServerMetadataOut) *NullableAuthorizationServerMetadataOut {
- return &NullableAuthorizationServerMetadataOut{value: val, isSet: true}
-}
-
-func (v NullableAuthorizationServerMetadataOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableAuthorizationServerMetadataOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_authorize_decision_oauth2_authorize_post_403_response.go b/sdk/go/model_authorize_decision_oauth2_authorize_post_403_response.go
deleted file mode 100644
index 669156f..0000000
--- a/sdk/go/model_authorize_decision_oauth2_authorize_post_403_response.go
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
- "gopkg.in/validator.v2"
-)
-
-// AuthorizeDecisionOauth2AuthorizePost403Response - struct for AuthorizeDecisionOauth2AuthorizePost403Response
-type AuthorizeDecisionOauth2AuthorizePost403Response struct {
- ErrorResponse *ErrorResponse
- OAuthProtocolErrorOut *OAuthProtocolErrorOut
-}
-
-// ErrorResponseAsAuthorizeDecisionOauth2AuthorizePost403Response is a convenience function that returns ErrorResponse wrapped in AuthorizeDecisionOauth2AuthorizePost403Response
-func ErrorResponseAsAuthorizeDecisionOauth2AuthorizePost403Response(v *ErrorResponse) AuthorizeDecisionOauth2AuthorizePost403Response {
- return AuthorizeDecisionOauth2AuthorizePost403Response{
- ErrorResponse: v,
- }
-}
-
-// OAuthProtocolErrorOutAsAuthorizeDecisionOauth2AuthorizePost403Response is a convenience function that returns OAuthProtocolErrorOut wrapped in AuthorizeDecisionOauth2AuthorizePost403Response
-func OAuthProtocolErrorOutAsAuthorizeDecisionOauth2AuthorizePost403Response(v *OAuthProtocolErrorOut) AuthorizeDecisionOauth2AuthorizePost403Response {
- return AuthorizeDecisionOauth2AuthorizePost403Response{
- OAuthProtocolErrorOut: v,
- }
-}
-
-
-// Unmarshal JSON data into one of the pointers in the struct
-func (dst *AuthorizeDecisionOauth2AuthorizePost403Response) UnmarshalJSON(data []byte) error {
- var err error
- match := 0
- // try to unmarshal data into ErrorResponse
- err = newStrictDecoder(data).Decode(&dst.ErrorResponse)
- if err == nil {
- jsonErrorResponse, _ := json.Marshal(dst.ErrorResponse)
- if string(jsonErrorResponse) == "{}" { // empty struct
- dst.ErrorResponse = nil
- } else {
- if err = validator.Validate(dst.ErrorResponse); err != nil {
- dst.ErrorResponse = nil
- } else {
- match++
- }
- }
- } else {
- dst.ErrorResponse = nil
- }
-
- // try to unmarshal data into OAuthProtocolErrorOut
- err = newStrictDecoder(data).Decode(&dst.OAuthProtocolErrorOut)
- if err == nil {
- jsonOAuthProtocolErrorOut, _ := json.Marshal(dst.OAuthProtocolErrorOut)
- if string(jsonOAuthProtocolErrorOut) == "{}" { // empty struct
- dst.OAuthProtocolErrorOut = nil
- } else {
- if err = validator.Validate(dst.OAuthProtocolErrorOut); err != nil {
- dst.OAuthProtocolErrorOut = nil
- } else {
- match++
- }
- }
- } else {
- dst.OAuthProtocolErrorOut = nil
- }
-
- if match > 1 { // more than 1 match
- // reset to nil
- dst.ErrorResponse = nil
- dst.OAuthProtocolErrorOut = nil
-
- return fmt.Errorf("data matches more than one schema in oneOf(AuthorizeDecisionOauth2AuthorizePost403Response)")
- } else if match == 1 {
- return nil // exactly one match
- } else { // no match
- if err != nil {
- return fmt.Errorf("data failed to match schemas in oneOf(AuthorizeDecisionOauth2AuthorizePost403Response): %v", err)
- } else {
- return fmt.Errorf("data failed to match schemas in oneOf(AuthorizeDecisionOauth2AuthorizePost403Response)")
- }
- if err != nil {
- return fmt.Errorf("data failed to match schemas in oneOf(AuthorizeDecisionOauth2AuthorizePost403Response): %v", err)
- } else {
- return fmt.Errorf("data failed to match schemas in oneOf(AuthorizeDecisionOauth2AuthorizePost403Response)")
- }
- }
-}
-
-// Marshal data from the first non-nil pointers in the struct to JSON
-func (src AuthorizeDecisionOauth2AuthorizePost403Response) MarshalJSON() ([]byte, error) {
- if src.ErrorResponse != nil {
- return json.Marshal(&src.ErrorResponse)
- }
-
- if src.OAuthProtocolErrorOut != nil {
- return json.Marshal(&src.OAuthProtocolErrorOut)
- }
-
- return nil, nil // no data in oneOf schemas
-}
-
-// Get the actual instance
-func (obj *AuthorizeDecisionOauth2AuthorizePost403Response) GetActualInstance() (interface{}) {
- if obj == nil {
- return nil
- }
- if obj.ErrorResponse != nil {
- return obj.ErrorResponse
- }
-
- if obj.OAuthProtocolErrorOut != nil {
- return obj.OAuthProtocolErrorOut
- }
-
- // all schemas are nil
- return nil
-}
-
-// Get the actual instance value
-func (obj AuthorizeDecisionOauth2AuthorizePost403Response) GetActualInstanceValue() (interface{}) {
- if obj.ErrorResponse != nil {
- return *obj.ErrorResponse
- }
-
- if obj.OAuthProtocolErrorOut != nil {
- return *obj.OAuthProtocolErrorOut
- }
-
- // all schemas are nil
- return nil
-}
-
-type NullableAuthorizeDecisionOauth2AuthorizePost403Response struct {
- value *AuthorizeDecisionOauth2AuthorizePost403Response
- isSet bool
-}
-
-func (v NullableAuthorizeDecisionOauth2AuthorizePost403Response) Get() *AuthorizeDecisionOauth2AuthorizePost403Response {
- return v.value
-}
-
-func (v *NullableAuthorizeDecisionOauth2AuthorizePost403Response) Set(val *AuthorizeDecisionOauth2AuthorizePost403Response) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableAuthorizeDecisionOauth2AuthorizePost403Response) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableAuthorizeDecisionOauth2AuthorizePost403Response) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableAuthorizeDecisionOauth2AuthorizePost403Response(val *AuthorizeDecisionOauth2AuthorizePost403Response) *NullableAuthorizeDecisionOauth2AuthorizePost403Response {
- return &NullableAuthorizeDecisionOauth2AuthorizePost403Response{value: val, isSet: true}
-}
-
-func (v NullableAuthorizeDecisionOauth2AuthorizePost403Response) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableAuthorizeDecisionOauth2AuthorizePost403Response) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_change_actor_out.go b/sdk/go/model_change_actor_out.go
new file mode 100644
index 0000000..f5304e8
--- /dev/null
+++ b/sdk/go/model_change_actor_out.go
@@ -0,0 +1,186 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "bytes"
+ "fmt"
+)
+
+// checks if the ChangeActorOut type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &ChangeActorOut{}
+
+// ChangeActorOut struct for ChangeActorOut
+type ChangeActorOut struct {
+ Id NullableString `json:"id"`
+ Type string `json:"type"`
+}
+
+type _ChangeActorOut ChangeActorOut
+
+// NewChangeActorOut instantiates a new ChangeActorOut object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewChangeActorOut(id NullableString, type_ string) *ChangeActorOut {
+ this := ChangeActorOut{}
+ this.Id = id
+ this.Type = type_
+ return &this
+}
+
+// NewChangeActorOutWithDefaults instantiates a new ChangeActorOut object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewChangeActorOutWithDefaults() *ChangeActorOut {
+ this := ChangeActorOut{}
+ return &this
+}
+
+// GetId returns the Id field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *ChangeActorOut) GetId() string {
+ if o == nil || o.Id.Get() == nil {
+ var ret string
+ return ret
+ }
+
+ return *o.Id.Get()
+}
+
+// GetIdOk returns a tuple with the Id field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ChangeActorOut) GetIdOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.Id.Get(), o.Id.IsSet()
+}
+
+// SetId sets field value
+func (o *ChangeActorOut) SetId(v string) {
+ o.Id.Set(&v)
+}
+
+// GetType returns the Type field value
+func (o *ChangeActorOut) GetType() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.Type
+}
+
+// GetTypeOk returns a tuple with the Type field value
+// and a boolean to check if the value has been set.
+func (o *ChangeActorOut) GetTypeOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Type, true
+}
+
+// SetType sets field value
+func (o *ChangeActorOut) SetType(v string) {
+ o.Type = v
+}
+
+func (o ChangeActorOut) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o ChangeActorOut) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["id"] = o.Id.Get()
+ toSerialize["type"] = o.Type
+ return toSerialize, nil
+}
+
+func (o *ChangeActorOut) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "id",
+ "type",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varChangeActorOut := _ChangeActorOut{}
+
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varChangeActorOut)
+
+ if err != nil {
+ return err
+ }
+
+ *o = ChangeActorOut(varChangeActorOut)
+
+ return err
+}
+
+type NullableChangeActorOut struct {
+ value *ChangeActorOut
+ isSet bool
+}
+
+func (v NullableChangeActorOut) Get() *ChangeActorOut {
+ return v.value
+}
+
+func (v *NullableChangeActorOut) Set(val *ChangeActorOut) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableChangeActorOut) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableChangeActorOut) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableChangeActorOut(val *ChangeActorOut) *NullableChangeActorOut {
+ return &NullableChangeActorOut{value: val, isSet: true}
+}
+
+func (v NullableChangeActorOut) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableChangeActorOut) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_change_out.go b/sdk/go/model_change_out.go
new file mode 100644
index 0000000..bad84db
--- /dev/null
+++ b/sdk/go/model_change_out.go
@@ -0,0 +1,413 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "time"
+ "bytes"
+ "fmt"
+)
+
+// checks if the ChangeOut type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &ChangeOut{}
+
+// ChangeOut struct for ChangeOut
+type ChangeOut struct {
+ Actor ChangeActorOut `json:"actor"`
+ ChangeSetId string `json:"change_set_id"`
+ Data map[string]interface{} `json:"data"`
+ DriveId string `json:"drive_id" validate:"regexp=^drv_[a-f0-9]{16}$"`
+ Id string `json:"id" validate:"regexp=^chg_[a-f0-9]{16}$"`
+ OccurredAt time.Time `json:"occurred_at"`
+ PreviousRevision NullableString `json:"previous_revision"`
+ Resource ChangeResourceOut `json:"resource"`
+ Revision NullableString `json:"revision"`
+ Type string `json:"type"`
+}
+
+type _ChangeOut ChangeOut
+
+// NewChangeOut instantiates a new ChangeOut object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewChangeOut(actor ChangeActorOut, changeSetId string, data map[string]interface{}, driveId string, id string, occurredAt time.Time, previousRevision NullableString, resource ChangeResourceOut, revision NullableString, type_ string) *ChangeOut {
+ this := ChangeOut{}
+ this.Actor = actor
+ this.ChangeSetId = changeSetId
+ this.Data = data
+ this.DriveId = driveId
+ this.Id = id
+ this.OccurredAt = occurredAt
+ this.PreviousRevision = previousRevision
+ this.Resource = resource
+ this.Revision = revision
+ this.Type = type_
+ return &this
+}
+
+// NewChangeOutWithDefaults instantiates a new ChangeOut object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewChangeOutWithDefaults() *ChangeOut {
+ this := ChangeOut{}
+ return &this
+}
+
+// GetActor returns the Actor field value
+func (o *ChangeOut) GetActor() ChangeActorOut {
+ if o == nil {
+ var ret ChangeActorOut
+ return ret
+ }
+
+ return o.Actor
+}
+
+// GetActorOk returns a tuple with the Actor field value
+// and a boolean to check if the value has been set.
+func (o *ChangeOut) GetActorOk() (*ChangeActorOut, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Actor, true
+}
+
+// SetActor sets field value
+func (o *ChangeOut) SetActor(v ChangeActorOut) {
+ o.Actor = v
+}
+
+// GetChangeSetId returns the ChangeSetId field value
+func (o *ChangeOut) GetChangeSetId() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.ChangeSetId
+}
+
+// GetChangeSetIdOk returns a tuple with the ChangeSetId field value
+// and a boolean to check if the value has been set.
+func (o *ChangeOut) GetChangeSetIdOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.ChangeSetId, true
+}
+
+// SetChangeSetId sets field value
+func (o *ChangeOut) SetChangeSetId(v string) {
+ o.ChangeSetId = v
+}
+
+// GetData returns the Data field value
+func (o *ChangeOut) GetData() map[string]interface{} {
+ if o == nil {
+ var ret map[string]interface{}
+ return ret
+ }
+
+ return o.Data
+}
+
+// GetDataOk returns a tuple with the Data field value
+// and a boolean to check if the value has been set.
+func (o *ChangeOut) GetDataOk() (map[string]interface{}, bool) {
+ if o == nil {
+ return map[string]interface{}{}, false
+ }
+ return o.Data, true
+}
+
+// SetData sets field value
+func (o *ChangeOut) SetData(v map[string]interface{}) {
+ o.Data = v
+}
+
+// GetDriveId returns the DriveId field value
+func (o *ChangeOut) GetDriveId() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.DriveId
+}
+
+// GetDriveIdOk returns a tuple with the DriveId field value
+// and a boolean to check if the value has been set.
+func (o *ChangeOut) GetDriveIdOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.DriveId, true
+}
+
+// SetDriveId sets field value
+func (o *ChangeOut) SetDriveId(v string) {
+ o.DriveId = v
+}
+
+// GetId returns the Id field value
+func (o *ChangeOut) GetId() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.Id
+}
+
+// GetIdOk returns a tuple with the Id field value
+// and a boolean to check if the value has been set.
+func (o *ChangeOut) GetIdOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Id, true
+}
+
+// SetId sets field value
+func (o *ChangeOut) SetId(v string) {
+ o.Id = v
+}
+
+// GetOccurredAt returns the OccurredAt field value
+func (o *ChangeOut) GetOccurredAt() time.Time {
+ if o == nil {
+ var ret time.Time
+ return ret
+ }
+
+ return o.OccurredAt
+}
+
+// GetOccurredAtOk returns a tuple with the OccurredAt field value
+// and a boolean to check if the value has been set.
+func (o *ChangeOut) GetOccurredAtOk() (*time.Time, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.OccurredAt, true
+}
+
+// SetOccurredAt sets field value
+func (o *ChangeOut) SetOccurredAt(v time.Time) {
+ o.OccurredAt = v
+}
+
+// GetPreviousRevision returns the PreviousRevision field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *ChangeOut) GetPreviousRevision() string {
+ if o == nil || o.PreviousRevision.Get() == nil {
+ var ret string
+ return ret
+ }
+
+ return *o.PreviousRevision.Get()
+}
+
+// GetPreviousRevisionOk returns a tuple with the PreviousRevision field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ChangeOut) GetPreviousRevisionOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.PreviousRevision.Get(), o.PreviousRevision.IsSet()
+}
+
+// SetPreviousRevision sets field value
+func (o *ChangeOut) SetPreviousRevision(v string) {
+ o.PreviousRevision.Set(&v)
+}
+
+// GetResource returns the Resource field value
+func (o *ChangeOut) GetResource() ChangeResourceOut {
+ if o == nil {
+ var ret ChangeResourceOut
+ return ret
+ }
+
+ return o.Resource
+}
+
+// GetResourceOk returns a tuple with the Resource field value
+// and a boolean to check if the value has been set.
+func (o *ChangeOut) GetResourceOk() (*ChangeResourceOut, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Resource, true
+}
+
+// SetResource sets field value
+func (o *ChangeOut) SetResource(v ChangeResourceOut) {
+ o.Resource = v
+}
+
+// GetRevision returns the Revision field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *ChangeOut) GetRevision() string {
+ if o == nil || o.Revision.Get() == nil {
+ var ret string
+ return ret
+ }
+
+ return *o.Revision.Get()
+}
+
+// GetRevisionOk returns a tuple with the Revision field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ChangeOut) GetRevisionOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.Revision.Get(), o.Revision.IsSet()
+}
+
+// SetRevision sets field value
+func (o *ChangeOut) SetRevision(v string) {
+ o.Revision.Set(&v)
+}
+
+// GetType returns the Type field value
+func (o *ChangeOut) GetType() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.Type
+}
+
+// GetTypeOk returns a tuple with the Type field value
+// and a boolean to check if the value has been set.
+func (o *ChangeOut) GetTypeOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Type, true
+}
+
+// SetType sets field value
+func (o *ChangeOut) SetType(v string) {
+ o.Type = v
+}
+
+func (o ChangeOut) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o ChangeOut) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["actor"] = o.Actor
+ toSerialize["change_set_id"] = o.ChangeSetId
+ toSerialize["data"] = o.Data
+ toSerialize["drive_id"] = o.DriveId
+ toSerialize["id"] = o.Id
+ toSerialize["occurred_at"] = o.OccurredAt
+ toSerialize["previous_revision"] = o.PreviousRevision.Get()
+ toSerialize["resource"] = o.Resource
+ toSerialize["revision"] = o.Revision.Get()
+ toSerialize["type"] = o.Type
+ return toSerialize, nil
+}
+
+func (o *ChangeOut) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "actor",
+ "change_set_id",
+ "data",
+ "drive_id",
+ "id",
+ "occurred_at",
+ "previous_revision",
+ "resource",
+ "revision",
+ "type",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varChangeOut := _ChangeOut{}
+
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varChangeOut)
+
+ if err != nil {
+ return err
+ }
+
+ *o = ChangeOut(varChangeOut)
+
+ return err
+}
+
+type NullableChangeOut struct {
+ value *ChangeOut
+ isSet bool
+}
+
+func (v NullableChangeOut) Get() *ChangeOut {
+ return v.value
+}
+
+func (v *NullableChangeOut) Set(val *ChangeOut) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableChangeOut) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableChangeOut) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableChangeOut(val *ChangeOut) *NullableChangeOut {
+ return &NullableChangeOut{value: val, isSet: true}
+}
+
+func (v NullableChangeOut) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableChangeOut) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_change_page_out.go b/sdk/go/model_change_page_out.go
new file mode 100644
index 0000000..4544c93
--- /dev/null
+++ b/sdk/go/model_change_page_out.go
@@ -0,0 +1,212 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "bytes"
+ "fmt"
+)
+
+// checks if the ChangePageOut type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &ChangePageOut{}
+
+// ChangePageOut struct for ChangePageOut
+type ChangePageOut struct {
+ HasMore bool `json:"has_more"`
+ Items []ChangeOut `json:"items"`
+ NextCursor string `json:"next_cursor"`
+}
+
+type _ChangePageOut ChangePageOut
+
+// NewChangePageOut instantiates a new ChangePageOut object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewChangePageOut(hasMore bool, items []ChangeOut, nextCursor string) *ChangePageOut {
+ this := ChangePageOut{}
+ this.HasMore = hasMore
+ this.Items = items
+ this.NextCursor = nextCursor
+ return &this
+}
+
+// NewChangePageOutWithDefaults instantiates a new ChangePageOut object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewChangePageOutWithDefaults() *ChangePageOut {
+ this := ChangePageOut{}
+ return &this
+}
+
+// GetHasMore returns the HasMore field value
+func (o *ChangePageOut) GetHasMore() bool {
+ if o == nil {
+ var ret bool
+ return ret
+ }
+
+ return o.HasMore
+}
+
+// GetHasMoreOk returns a tuple with the HasMore field value
+// and a boolean to check if the value has been set.
+func (o *ChangePageOut) GetHasMoreOk() (*bool, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.HasMore, true
+}
+
+// SetHasMore sets field value
+func (o *ChangePageOut) SetHasMore(v bool) {
+ o.HasMore = v
+}
+
+// GetItems returns the Items field value
+func (o *ChangePageOut) GetItems() []ChangeOut {
+ if o == nil {
+ var ret []ChangeOut
+ return ret
+ }
+
+ return o.Items
+}
+
+// GetItemsOk returns a tuple with the Items field value
+// and a boolean to check if the value has been set.
+func (o *ChangePageOut) GetItemsOk() ([]ChangeOut, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.Items, true
+}
+
+// SetItems sets field value
+func (o *ChangePageOut) SetItems(v []ChangeOut) {
+ o.Items = v
+}
+
+// GetNextCursor returns the NextCursor field value
+func (o *ChangePageOut) GetNextCursor() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.NextCursor
+}
+
+// GetNextCursorOk returns a tuple with the NextCursor field value
+// and a boolean to check if the value has been set.
+func (o *ChangePageOut) GetNextCursorOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.NextCursor, true
+}
+
+// SetNextCursor sets field value
+func (o *ChangePageOut) SetNextCursor(v string) {
+ o.NextCursor = v
+}
+
+func (o ChangePageOut) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o ChangePageOut) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["has_more"] = o.HasMore
+ toSerialize["items"] = o.Items
+ toSerialize["next_cursor"] = o.NextCursor
+ return toSerialize, nil
+}
+
+func (o *ChangePageOut) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "has_more",
+ "items",
+ "next_cursor",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varChangePageOut := _ChangePageOut{}
+
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varChangePageOut)
+
+ if err != nil {
+ return err
+ }
+
+ *o = ChangePageOut(varChangePageOut)
+
+ return err
+}
+
+type NullableChangePageOut struct {
+ value *ChangePageOut
+ isSet bool
+}
+
+func (v NullableChangePageOut) Get() *ChangePageOut {
+ return v.value
+}
+
+func (v *NullableChangePageOut) Set(val *ChangePageOut) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableChangePageOut) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableChangePageOut) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableChangePageOut(val *ChangePageOut) *NullableChangePageOut {
+ return &NullableChangePageOut{value: val, isSet: true}
+}
+
+func (v NullableChangePageOut) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableChangePageOut) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_change_resource_out.go b/sdk/go/model_change_resource_out.go
new file mode 100644
index 0000000..d7c14a9
--- /dev/null
+++ b/sdk/go/model_change_resource_out.go
@@ -0,0 +1,184 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "bytes"
+ "fmt"
+)
+
+// checks if the ChangeResourceOut type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &ChangeResourceOut{}
+
+// ChangeResourceOut struct for ChangeResourceOut
+type ChangeResourceOut struct {
+ Id string `json:"id"`
+ Type string `json:"type"`
+}
+
+type _ChangeResourceOut ChangeResourceOut
+
+// NewChangeResourceOut instantiates a new ChangeResourceOut object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewChangeResourceOut(id string, type_ string) *ChangeResourceOut {
+ this := ChangeResourceOut{}
+ this.Id = id
+ this.Type = type_
+ return &this
+}
+
+// NewChangeResourceOutWithDefaults instantiates a new ChangeResourceOut object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewChangeResourceOutWithDefaults() *ChangeResourceOut {
+ this := ChangeResourceOut{}
+ return &this
+}
+
+// GetId returns the Id field value
+func (o *ChangeResourceOut) GetId() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.Id
+}
+
+// GetIdOk returns a tuple with the Id field value
+// and a boolean to check if the value has been set.
+func (o *ChangeResourceOut) GetIdOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Id, true
+}
+
+// SetId sets field value
+func (o *ChangeResourceOut) SetId(v string) {
+ o.Id = v
+}
+
+// GetType returns the Type field value
+func (o *ChangeResourceOut) GetType() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.Type
+}
+
+// GetTypeOk returns a tuple with the Type field value
+// and a boolean to check if the value has been set.
+func (o *ChangeResourceOut) GetTypeOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Type, true
+}
+
+// SetType sets field value
+func (o *ChangeResourceOut) SetType(v string) {
+ o.Type = v
+}
+
+func (o ChangeResourceOut) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o ChangeResourceOut) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["id"] = o.Id
+ toSerialize["type"] = o.Type
+ return toSerialize, nil
+}
+
+func (o *ChangeResourceOut) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "id",
+ "type",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varChangeResourceOut := _ChangeResourceOut{}
+
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varChangeResourceOut)
+
+ if err != nil {
+ return err
+ }
+
+ *o = ChangeResourceOut(varChangeResourceOut)
+
+ return err
+}
+
+type NullableChangeResourceOut struct {
+ value *ChangeResourceOut
+ isSet bool
+}
+
+func (v NullableChangeResourceOut) Get() *ChangeResourceOut {
+ return v.value
+}
+
+func (v *NullableChangeResourceOut) Set(val *ChangeResourceOut) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableChangeResourceOut) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableChangeResourceOut) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableChangeResourceOut(val *ChangeResourceOut) *NullableChangeResourceOut {
+ return &NullableChangeResourceOut{value: val, isSet: true}
+}
+
+func (v NullableChangeResourceOut) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableChangeResourceOut) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_claim_init_request.go b/sdk/go/model_claim_init_request.go
deleted file mode 100644
index c537b2c..0000000
--- a/sdk/go/model_claim_init_request.go
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the ClaimInitRequest type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ClaimInitRequest{}
-
-// ClaimInitRequest `POST /agent/identity/claim` body.
-type ClaimInitRequest struct {
- // The per-identity claim_token returned by POST /agent/identity.
- ClaimToken string `json:"claim_token"`
- // Optional hint to display on the /claim page so the human knows which account the agent expected. Not enforced (design §14 question #3).
- Email NullableString `json:"email,omitempty"`
-}
-
-type _ClaimInitRequest ClaimInitRequest
-
-// NewClaimInitRequest instantiates a new ClaimInitRequest object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewClaimInitRequest(claimToken string) *ClaimInitRequest {
- this := ClaimInitRequest{}
- this.ClaimToken = claimToken
- return &this
-}
-
-// NewClaimInitRequestWithDefaults instantiates a new ClaimInitRequest object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewClaimInitRequestWithDefaults() *ClaimInitRequest {
- this := ClaimInitRequest{}
- return &this
-}
-
-// GetClaimToken returns the ClaimToken field value
-func (o *ClaimInitRequest) GetClaimToken() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.ClaimToken
-}
-
-// GetClaimTokenOk returns a tuple with the ClaimToken field value
-// and a boolean to check if the value has been set.
-func (o *ClaimInitRequest) GetClaimTokenOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ClaimToken, true
-}
-
-// SetClaimToken sets field value
-func (o *ClaimInitRequest) SetClaimToken(v string) {
- o.ClaimToken = v
-}
-
-// GetEmail returns the Email field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *ClaimInitRequest) GetEmail() string {
- if o == nil || IsNil(o.Email.Get()) {
- var ret string
- return ret
- }
- return *o.Email.Get()
-}
-
-// GetEmailOk returns a tuple with the Email field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *ClaimInitRequest) GetEmailOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Email.Get(), o.Email.IsSet()
-}
-
-// HasEmail returns a boolean if a field has been set.
-func (o *ClaimInitRequest) HasEmail() bool {
- if o != nil && o.Email.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetEmail gets a reference to the given NullableString and assigns it to the Email field.
-func (o *ClaimInitRequest) SetEmail(v string) {
- o.Email.Set(&v)
-}
-// SetEmailNil sets the value for Email to be an explicit nil
-func (o *ClaimInitRequest) SetEmailNil() {
- o.Email.Set(nil)
-}
-
-// UnsetEmail ensures that no value is present for Email, not even an explicit nil
-func (o *ClaimInitRequest) UnsetEmail() {
- o.Email.Unset()
-}
-
-func (o ClaimInitRequest) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ClaimInitRequest) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["claim_token"] = o.ClaimToken
- if o.Email.IsSet() {
- toSerialize["email"] = o.Email.Get()
- }
- return toSerialize, nil
-}
-
-func (o *ClaimInitRequest) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "claim_token",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varClaimInitRequest := _ClaimInitRequest{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varClaimInitRequest)
-
- if err != nil {
- return err
- }
-
- *o = ClaimInitRequest(varClaimInitRequest)
-
- return err
-}
-
-type NullableClaimInitRequest struct {
- value *ClaimInitRequest
- isSet bool
-}
-
-func (v NullableClaimInitRequest) Get() *ClaimInitRequest {
- return v.value
-}
-
-func (v *NullableClaimInitRequest) Set(val *ClaimInitRequest) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableClaimInitRequest) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableClaimInitRequest) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableClaimInitRequest(val *ClaimInitRequest) *NullableClaimInitRequest {
- return &NullableClaimInitRequest{value: val, isSet: true}
-}
-
-func (v NullableClaimInitRequest) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableClaimInitRequest) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_claim_init_response.go b/sdk/go/model_claim_init_response.go
deleted file mode 100644
index 0d5ab58..0000000
--- a/sdk/go/model_claim_init_response.go
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the ClaimInitResponse type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ClaimInitResponse{}
-
-// ClaimInitResponse struct for ClaimInitResponse
-type ClaimInitResponse struct {
- // Per-attempt opaque token; the agent does not need to present it.
- ClaimAttemptToken string `json:"claim_attempt_token"`
- ExpiresAt time.Time `json:"expires_at"`
- // Human-readable code the user types/sees on /claim.
- UserCode string `json:"user_code"`
- // URL to direct the human to.
- VerificationUri string `json:"verification_uri"`
- // Convenience: same as `verification_uri` but with the user_code pre-baked so the human doesn't have to type it. RFC 8628 idiom.
- VerificationUriComplete string `json:"verification_uri_complete"`
-}
-
-type _ClaimInitResponse ClaimInitResponse
-
-// NewClaimInitResponse instantiates a new ClaimInitResponse object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewClaimInitResponse(claimAttemptToken string, expiresAt time.Time, userCode string, verificationUri string, verificationUriComplete string) *ClaimInitResponse {
- this := ClaimInitResponse{}
- this.ClaimAttemptToken = claimAttemptToken
- this.ExpiresAt = expiresAt
- this.UserCode = userCode
- this.VerificationUri = verificationUri
- this.VerificationUriComplete = verificationUriComplete
- return &this
-}
-
-// NewClaimInitResponseWithDefaults instantiates a new ClaimInitResponse object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewClaimInitResponseWithDefaults() *ClaimInitResponse {
- this := ClaimInitResponse{}
- return &this
-}
-
-// GetClaimAttemptToken returns the ClaimAttemptToken field value
-func (o *ClaimInitResponse) GetClaimAttemptToken() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.ClaimAttemptToken
-}
-
-// GetClaimAttemptTokenOk returns a tuple with the ClaimAttemptToken field value
-// and a boolean to check if the value has been set.
-func (o *ClaimInitResponse) GetClaimAttemptTokenOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ClaimAttemptToken, true
-}
-
-// SetClaimAttemptToken sets field value
-func (o *ClaimInitResponse) SetClaimAttemptToken(v string) {
- o.ClaimAttemptToken = v
-}
-
-// GetExpiresAt returns the ExpiresAt field value
-func (o *ClaimInitResponse) GetExpiresAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.ExpiresAt
-}
-
-// GetExpiresAtOk returns a tuple with the ExpiresAt field value
-// and a boolean to check if the value has been set.
-func (o *ClaimInitResponse) GetExpiresAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ExpiresAt, true
-}
-
-// SetExpiresAt sets field value
-func (o *ClaimInitResponse) SetExpiresAt(v time.Time) {
- o.ExpiresAt = v
-}
-
-// GetUserCode returns the UserCode field value
-func (o *ClaimInitResponse) GetUserCode() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.UserCode
-}
-
-// GetUserCodeOk returns a tuple with the UserCode field value
-// and a boolean to check if the value has been set.
-func (o *ClaimInitResponse) GetUserCodeOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.UserCode, true
-}
-
-// SetUserCode sets field value
-func (o *ClaimInitResponse) SetUserCode(v string) {
- o.UserCode = v
-}
-
-// GetVerificationUri returns the VerificationUri field value
-func (o *ClaimInitResponse) GetVerificationUri() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.VerificationUri
-}
-
-// GetVerificationUriOk returns a tuple with the VerificationUri field value
-// and a boolean to check if the value has been set.
-func (o *ClaimInitResponse) GetVerificationUriOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.VerificationUri, true
-}
-
-// SetVerificationUri sets field value
-func (o *ClaimInitResponse) SetVerificationUri(v string) {
- o.VerificationUri = v
-}
-
-// GetVerificationUriComplete returns the VerificationUriComplete field value
-func (o *ClaimInitResponse) GetVerificationUriComplete() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.VerificationUriComplete
-}
-
-// GetVerificationUriCompleteOk returns a tuple with the VerificationUriComplete field value
-// and a boolean to check if the value has been set.
-func (o *ClaimInitResponse) GetVerificationUriCompleteOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.VerificationUriComplete, true
-}
-
-// SetVerificationUriComplete sets field value
-func (o *ClaimInitResponse) SetVerificationUriComplete(v string) {
- o.VerificationUriComplete = v
-}
-
-func (o ClaimInitResponse) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ClaimInitResponse) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["claim_attempt_token"] = o.ClaimAttemptToken
- toSerialize["expires_at"] = o.ExpiresAt
- toSerialize["user_code"] = o.UserCode
- toSerialize["verification_uri"] = o.VerificationUri
- toSerialize["verification_uri_complete"] = o.VerificationUriComplete
- return toSerialize, nil
-}
-
-func (o *ClaimInitResponse) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "claim_attempt_token",
- "expires_at",
- "user_code",
- "verification_uri",
- "verification_uri_complete",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varClaimInitResponse := _ClaimInitResponse{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varClaimInitResponse)
-
- if err != nil {
- return err
- }
-
- *o = ClaimInitResponse(varClaimInitResponse)
-
- return err
-}
-
-type NullableClaimInitResponse struct {
- value *ClaimInitResponse
- isSet bool
-}
-
-func (v NullableClaimInitResponse) Get() *ClaimInitResponse {
- return v.value
-}
-
-func (v *NullableClaimInitResponse) Set(val *ClaimInitResponse) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableClaimInitResponse) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableClaimInitResponse) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableClaimInitResponse(val *ClaimInitResponse) *NullableClaimInitResponse {
- return &NullableClaimInitResponse{value: val, isSet: true}
-}
-
-func (v NullableClaimInitResponse) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableClaimInitResponse) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_claim_metadata.go b/sdk/go/model_claim_metadata.go
deleted file mode 100644
index 9a3d5b8..0000000
--- a/sdk/go/model_claim_metadata.go
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the ClaimMetadata type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ClaimMetadata{}
-
-// ClaimMetadata Hints the agent's UI/CLI can use when initiating the claim ceremony. Decoupled from the `claim_token` itself so future additions don't change the token's shape.
-type ClaimMetadata struct {
- ClaimEndpoint string `json:"claim_endpoint"`
- SupportedEmailHints *bool `json:"supported_email_hints,omitempty"`
-}
-
-type _ClaimMetadata ClaimMetadata
-
-// NewClaimMetadata instantiates a new ClaimMetadata object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewClaimMetadata(claimEndpoint string) *ClaimMetadata {
- this := ClaimMetadata{}
- this.ClaimEndpoint = claimEndpoint
- var supportedEmailHints bool = true
- this.SupportedEmailHints = &supportedEmailHints
- return &this
-}
-
-// NewClaimMetadataWithDefaults instantiates a new ClaimMetadata object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewClaimMetadataWithDefaults() *ClaimMetadata {
- this := ClaimMetadata{}
- var supportedEmailHints bool = true
- this.SupportedEmailHints = &supportedEmailHints
- return &this
-}
-
-// GetClaimEndpoint returns the ClaimEndpoint field value
-func (o *ClaimMetadata) GetClaimEndpoint() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.ClaimEndpoint
-}
-
-// GetClaimEndpointOk returns a tuple with the ClaimEndpoint field value
-// and a boolean to check if the value has been set.
-func (o *ClaimMetadata) GetClaimEndpointOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ClaimEndpoint, true
-}
-
-// SetClaimEndpoint sets field value
-func (o *ClaimMetadata) SetClaimEndpoint(v string) {
- o.ClaimEndpoint = v
-}
-
-// GetSupportedEmailHints returns the SupportedEmailHints field value if set, zero value otherwise.
-func (o *ClaimMetadata) GetSupportedEmailHints() bool {
- if o == nil || IsNil(o.SupportedEmailHints) {
- var ret bool
- return ret
- }
- return *o.SupportedEmailHints
-}
-
-// GetSupportedEmailHintsOk returns a tuple with the SupportedEmailHints field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *ClaimMetadata) GetSupportedEmailHintsOk() (*bool, bool) {
- if o == nil || IsNil(o.SupportedEmailHints) {
- return nil, false
- }
- return o.SupportedEmailHints, true
-}
-
-// HasSupportedEmailHints returns a boolean if a field has been set.
-func (o *ClaimMetadata) HasSupportedEmailHints() bool {
- if o != nil && !IsNil(o.SupportedEmailHints) {
- return true
- }
-
- return false
-}
-
-// SetSupportedEmailHints gets a reference to the given bool and assigns it to the SupportedEmailHints field.
-func (o *ClaimMetadata) SetSupportedEmailHints(v bool) {
- o.SupportedEmailHints = &v
-}
-
-func (o ClaimMetadata) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ClaimMetadata) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["claim_endpoint"] = o.ClaimEndpoint
- if !IsNil(o.SupportedEmailHints) {
- toSerialize["supported_email_hints"] = o.SupportedEmailHints
- }
- return toSerialize, nil
-}
-
-func (o *ClaimMetadata) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "claim_endpoint",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varClaimMetadata := _ClaimMetadata{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varClaimMetadata)
-
- if err != nil {
- return err
- }
-
- *o = ClaimMetadata(varClaimMetadata)
-
- return err
-}
-
-type NullableClaimMetadata struct {
- value *ClaimMetadata
- isSet bool
-}
-
-func (v NullableClaimMetadata) Get() *ClaimMetadata {
- return v.value
-}
-
-func (v *NullableClaimMetadata) Set(val *ClaimMetadata) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableClaimMetadata) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableClaimMetadata) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableClaimMetadata(val *ClaimMetadata) *NullableClaimMetadata {
- return &NullableClaimMetadata{value: val, isSet: true}
-}
-
-func (v NullableClaimMetadata) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableClaimMetadata) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_client_registration_out.go b/sdk/go/model_client_registration_out.go
deleted file mode 100644
index 811b99c..0000000
--- a/sdk/go/model_client_registration_out.go
+++ /dev/null
@@ -1,369 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
-)
-
-// checks if the ClientRegistrationOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ClientRegistrationOut{}
-
-// ClientRegistrationOut struct for ClientRegistrationOut
-type ClientRegistrationOut struct {
- ClientId string `json:"client_id"`
- ClientIdIssuedAt int32 `json:"client_id_issued_at"`
- ClientName string `json:"client_name"`
- GrantTypes []string `json:"grant_types"`
- RedirectUris []string `json:"redirect_uris"`
- ResponseTypes []string `json:"response_types"`
- Scope string `json:"scope"`
- TokenEndpointAuthMethod string `json:"token_endpoint_auth_method"`
- AdditionalProperties map[string]interface{}
-}
-
-type _ClientRegistrationOut ClientRegistrationOut
-
-// NewClientRegistrationOut instantiates a new ClientRegistrationOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewClientRegistrationOut(clientId string, clientIdIssuedAt int32, clientName string, grantTypes []string, redirectUris []string, responseTypes []string, scope string, tokenEndpointAuthMethod string) *ClientRegistrationOut {
- this := ClientRegistrationOut{}
- this.ClientId = clientId
- this.ClientIdIssuedAt = clientIdIssuedAt
- this.ClientName = clientName
- this.GrantTypes = grantTypes
- this.RedirectUris = redirectUris
- this.ResponseTypes = responseTypes
- this.Scope = scope
- this.TokenEndpointAuthMethod = tokenEndpointAuthMethod
- return &this
-}
-
-// NewClientRegistrationOutWithDefaults instantiates a new ClientRegistrationOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewClientRegistrationOutWithDefaults() *ClientRegistrationOut {
- this := ClientRegistrationOut{}
- return &this
-}
-
-// GetClientId returns the ClientId field value
-func (o *ClientRegistrationOut) GetClientId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.ClientId
-}
-
-// GetClientIdOk returns a tuple with the ClientId field value
-// and a boolean to check if the value has been set.
-func (o *ClientRegistrationOut) GetClientIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ClientId, true
-}
-
-// SetClientId sets field value
-func (o *ClientRegistrationOut) SetClientId(v string) {
- o.ClientId = v
-}
-
-// GetClientIdIssuedAt returns the ClientIdIssuedAt field value
-func (o *ClientRegistrationOut) GetClientIdIssuedAt() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.ClientIdIssuedAt
-}
-
-// GetClientIdIssuedAtOk returns a tuple with the ClientIdIssuedAt field value
-// and a boolean to check if the value has been set.
-func (o *ClientRegistrationOut) GetClientIdIssuedAtOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ClientIdIssuedAt, true
-}
-
-// SetClientIdIssuedAt sets field value
-func (o *ClientRegistrationOut) SetClientIdIssuedAt(v int32) {
- o.ClientIdIssuedAt = v
-}
-
-// GetClientName returns the ClientName field value
-func (o *ClientRegistrationOut) GetClientName() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.ClientName
-}
-
-// GetClientNameOk returns a tuple with the ClientName field value
-// and a boolean to check if the value has been set.
-func (o *ClientRegistrationOut) GetClientNameOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ClientName, true
-}
-
-// SetClientName sets field value
-func (o *ClientRegistrationOut) SetClientName(v string) {
- o.ClientName = v
-}
-
-// GetGrantTypes returns the GrantTypes field value
-func (o *ClientRegistrationOut) GetGrantTypes() []string {
- if o == nil {
- var ret []string
- return ret
- }
-
- return o.GrantTypes
-}
-
-// GetGrantTypesOk returns a tuple with the GrantTypes field value
-// and a boolean to check if the value has been set.
-func (o *ClientRegistrationOut) GetGrantTypesOk() ([]string, bool) {
- if o == nil {
- return nil, false
- }
- return o.GrantTypes, true
-}
-
-// SetGrantTypes sets field value
-func (o *ClientRegistrationOut) SetGrantTypes(v []string) {
- o.GrantTypes = v
-}
-
-// GetRedirectUris returns the RedirectUris field value
-func (o *ClientRegistrationOut) GetRedirectUris() []string {
- if o == nil {
- var ret []string
- return ret
- }
-
- return o.RedirectUris
-}
-
-// GetRedirectUrisOk returns a tuple with the RedirectUris field value
-// and a boolean to check if the value has been set.
-func (o *ClientRegistrationOut) GetRedirectUrisOk() ([]string, bool) {
- if o == nil {
- return nil, false
- }
- return o.RedirectUris, true
-}
-
-// SetRedirectUris sets field value
-func (o *ClientRegistrationOut) SetRedirectUris(v []string) {
- o.RedirectUris = v
-}
-
-// GetResponseTypes returns the ResponseTypes field value
-func (o *ClientRegistrationOut) GetResponseTypes() []string {
- if o == nil {
- var ret []string
- return ret
- }
-
- return o.ResponseTypes
-}
-
-// GetResponseTypesOk returns a tuple with the ResponseTypes field value
-// and a boolean to check if the value has been set.
-func (o *ClientRegistrationOut) GetResponseTypesOk() ([]string, bool) {
- if o == nil {
- return nil, false
- }
- return o.ResponseTypes, true
-}
-
-// SetResponseTypes sets field value
-func (o *ClientRegistrationOut) SetResponseTypes(v []string) {
- o.ResponseTypes = v
-}
-
-// GetScope returns the Scope field value
-func (o *ClientRegistrationOut) GetScope() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Scope
-}
-
-// GetScopeOk returns a tuple with the Scope field value
-// and a boolean to check if the value has been set.
-func (o *ClientRegistrationOut) GetScopeOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Scope, true
-}
-
-// SetScope sets field value
-func (o *ClientRegistrationOut) SetScope(v string) {
- o.Scope = v
-}
-
-// GetTokenEndpointAuthMethod returns the TokenEndpointAuthMethod field value
-func (o *ClientRegistrationOut) GetTokenEndpointAuthMethod() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.TokenEndpointAuthMethod
-}
-
-// GetTokenEndpointAuthMethodOk returns a tuple with the TokenEndpointAuthMethod field value
-// and a boolean to check if the value has been set.
-func (o *ClientRegistrationOut) GetTokenEndpointAuthMethodOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.TokenEndpointAuthMethod, true
-}
-
-// SetTokenEndpointAuthMethod sets field value
-func (o *ClientRegistrationOut) SetTokenEndpointAuthMethod(v string) {
- o.TokenEndpointAuthMethod = v
-}
-
-func (o ClientRegistrationOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ClientRegistrationOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["client_id"] = o.ClientId
- toSerialize["client_id_issued_at"] = o.ClientIdIssuedAt
- toSerialize["client_name"] = o.ClientName
- toSerialize["grant_types"] = o.GrantTypes
- toSerialize["redirect_uris"] = o.RedirectUris
- toSerialize["response_types"] = o.ResponseTypes
- toSerialize["scope"] = o.Scope
- toSerialize["token_endpoint_auth_method"] = o.TokenEndpointAuthMethod
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
- return toSerialize, nil
-}
-
-func (o *ClientRegistrationOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "client_id",
- "client_id_issued_at",
- "client_name",
- "grant_types",
- "redirect_uris",
- "response_types",
- "scope",
- "token_endpoint_auth_method",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varClientRegistrationOut := _ClientRegistrationOut{}
-
- err = json.Unmarshal(data, &varClientRegistrationOut)
-
- if err != nil {
- return err
- }
-
- *o = ClientRegistrationOut(varClientRegistrationOut)
-
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "client_id")
- delete(additionalProperties, "client_id_issued_at")
- delete(additionalProperties, "client_name")
- delete(additionalProperties, "grant_types")
- delete(additionalProperties, "redirect_uris")
- delete(additionalProperties, "response_types")
- delete(additionalProperties, "scope")
- delete(additionalProperties, "token_endpoint_auth_method")
- o.AdditionalProperties = additionalProperties
- }
-
- return err
-}
-
-type NullableClientRegistrationOut struct {
- value *ClientRegistrationOut
- isSet bool
-}
-
-func (v NullableClientRegistrationOut) Get() *ClientRegistrationOut {
- return v.value
-}
-
-func (v *NullableClientRegistrationOut) Set(val *ClientRegistrationOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableClientRegistrationOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableClientRegistrationOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableClientRegistrationOut(val *ClientRegistrationOut) *NullableClientRegistrationOut {
- return &NullableClientRegistrationOut{value: val, isSet: true}
-}
-
-func (v NullableClientRegistrationOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableClientRegistrationOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_compile_diagnostic_out.go b/sdk/go/model_compile_diagnostic_out.go
deleted file mode 100644
index b3fe974..0000000
--- a/sdk/go/model_compile_diagnostic_out.go
+++ /dev/null
@@ -1,383 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
-)
-
-// checks if the CompileDiagnosticOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &CompileDiagnosticOut{}
-
-// CompileDiagnosticOut struct for CompileDiagnosticOut
-type CompileDiagnosticOut struct {
- Category NullableString `json:"category,omitempty"`
- File NullableString `json:"file,omitempty"`
- Line NullableInt32 `json:"line,omitempty"`
- Message string `json:"message"`
- Severity string `json:"severity"`
- Suggestion NullableString `json:"suggestion,omitempty"`
- AdditionalProperties map[string]interface{}
-}
-
-type _CompileDiagnosticOut CompileDiagnosticOut
-
-// NewCompileDiagnosticOut instantiates a new CompileDiagnosticOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewCompileDiagnosticOut(message string, severity string) *CompileDiagnosticOut {
- this := CompileDiagnosticOut{}
- this.Message = message
- this.Severity = severity
- return &this
-}
-
-// NewCompileDiagnosticOutWithDefaults instantiates a new CompileDiagnosticOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewCompileDiagnosticOutWithDefaults() *CompileDiagnosticOut {
- this := CompileDiagnosticOut{}
- return &this
-}
-
-// GetCategory returns the Category field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *CompileDiagnosticOut) GetCategory() string {
- if o == nil || IsNil(o.Category.Get()) {
- var ret string
- return ret
- }
- return *o.Category.Get()
-}
-
-// GetCategoryOk returns a tuple with the Category field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *CompileDiagnosticOut) GetCategoryOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Category.Get(), o.Category.IsSet()
-}
-
-// HasCategory returns a boolean if a field has been set.
-func (o *CompileDiagnosticOut) HasCategory() bool {
- if o != nil && o.Category.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetCategory gets a reference to the given NullableString and assigns it to the Category field.
-func (o *CompileDiagnosticOut) SetCategory(v string) {
- o.Category.Set(&v)
-}
-// SetCategoryNil sets the value for Category to be an explicit nil
-func (o *CompileDiagnosticOut) SetCategoryNil() {
- o.Category.Set(nil)
-}
-
-// UnsetCategory ensures that no value is present for Category, not even an explicit nil
-func (o *CompileDiagnosticOut) UnsetCategory() {
- o.Category.Unset()
-}
-
-// GetFile returns the File field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *CompileDiagnosticOut) GetFile() string {
- if o == nil || IsNil(o.File.Get()) {
- var ret string
- return ret
- }
- return *o.File.Get()
-}
-
-// GetFileOk returns a tuple with the File field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *CompileDiagnosticOut) GetFileOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.File.Get(), o.File.IsSet()
-}
-
-// HasFile returns a boolean if a field has been set.
-func (o *CompileDiagnosticOut) HasFile() bool {
- if o != nil && o.File.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetFile gets a reference to the given NullableString and assigns it to the File field.
-func (o *CompileDiagnosticOut) SetFile(v string) {
- o.File.Set(&v)
-}
-// SetFileNil sets the value for File to be an explicit nil
-func (o *CompileDiagnosticOut) SetFileNil() {
- o.File.Set(nil)
-}
-
-// UnsetFile ensures that no value is present for File, not even an explicit nil
-func (o *CompileDiagnosticOut) UnsetFile() {
- o.File.Unset()
-}
-
-// GetLine returns the Line field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *CompileDiagnosticOut) GetLine() int32 {
- if o == nil || IsNil(o.Line.Get()) {
- var ret int32
- return ret
- }
- return *o.Line.Get()
-}
-
-// GetLineOk returns a tuple with the Line field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *CompileDiagnosticOut) GetLineOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return o.Line.Get(), o.Line.IsSet()
-}
-
-// HasLine returns a boolean if a field has been set.
-func (o *CompileDiagnosticOut) HasLine() bool {
- if o != nil && o.Line.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetLine gets a reference to the given NullableInt32 and assigns it to the Line field.
-func (o *CompileDiagnosticOut) SetLine(v int32) {
- o.Line.Set(&v)
-}
-// SetLineNil sets the value for Line to be an explicit nil
-func (o *CompileDiagnosticOut) SetLineNil() {
- o.Line.Set(nil)
-}
-
-// UnsetLine ensures that no value is present for Line, not even an explicit nil
-func (o *CompileDiagnosticOut) UnsetLine() {
- o.Line.Unset()
-}
-
-// GetMessage returns the Message field value
-func (o *CompileDiagnosticOut) GetMessage() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Message
-}
-
-// GetMessageOk returns a tuple with the Message field value
-// and a boolean to check if the value has been set.
-func (o *CompileDiagnosticOut) GetMessageOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Message, true
-}
-
-// SetMessage sets field value
-func (o *CompileDiagnosticOut) SetMessage(v string) {
- o.Message = v
-}
-
-// GetSeverity returns the Severity field value
-func (o *CompileDiagnosticOut) GetSeverity() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Severity
-}
-
-// GetSeverityOk returns a tuple with the Severity field value
-// and a boolean to check if the value has been set.
-func (o *CompileDiagnosticOut) GetSeverityOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Severity, true
-}
-
-// SetSeverity sets field value
-func (o *CompileDiagnosticOut) SetSeverity(v string) {
- o.Severity = v
-}
-
-// GetSuggestion returns the Suggestion field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *CompileDiagnosticOut) GetSuggestion() string {
- if o == nil || IsNil(o.Suggestion.Get()) {
- var ret string
- return ret
- }
- return *o.Suggestion.Get()
-}
-
-// GetSuggestionOk returns a tuple with the Suggestion field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *CompileDiagnosticOut) GetSuggestionOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Suggestion.Get(), o.Suggestion.IsSet()
-}
-
-// HasSuggestion returns a boolean if a field has been set.
-func (o *CompileDiagnosticOut) HasSuggestion() bool {
- if o != nil && o.Suggestion.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetSuggestion gets a reference to the given NullableString and assigns it to the Suggestion field.
-func (o *CompileDiagnosticOut) SetSuggestion(v string) {
- o.Suggestion.Set(&v)
-}
-// SetSuggestionNil sets the value for Suggestion to be an explicit nil
-func (o *CompileDiagnosticOut) SetSuggestionNil() {
- o.Suggestion.Set(nil)
-}
-
-// UnsetSuggestion ensures that no value is present for Suggestion, not even an explicit nil
-func (o *CompileDiagnosticOut) UnsetSuggestion() {
- o.Suggestion.Unset()
-}
-
-func (o CompileDiagnosticOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o CompileDiagnosticOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- if o.Category.IsSet() {
- toSerialize["category"] = o.Category.Get()
- }
- if o.File.IsSet() {
- toSerialize["file"] = o.File.Get()
- }
- if o.Line.IsSet() {
- toSerialize["line"] = o.Line.Get()
- }
- toSerialize["message"] = o.Message
- toSerialize["severity"] = o.Severity
- if o.Suggestion.IsSet() {
- toSerialize["suggestion"] = o.Suggestion.Get()
- }
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
- return toSerialize, nil
-}
-
-func (o *CompileDiagnosticOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "message",
- "severity",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varCompileDiagnosticOut := _CompileDiagnosticOut{}
-
- err = json.Unmarshal(data, &varCompileDiagnosticOut)
-
- if err != nil {
- return err
- }
-
- *o = CompileDiagnosticOut(varCompileDiagnosticOut)
-
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "category")
- delete(additionalProperties, "file")
- delete(additionalProperties, "line")
- delete(additionalProperties, "message")
- delete(additionalProperties, "severity")
- delete(additionalProperties, "suggestion")
- o.AdditionalProperties = additionalProperties
- }
-
- return err
-}
-
-type NullableCompileDiagnosticOut struct {
- value *CompileDiagnosticOut
- isSet bool
-}
-
-func (v NullableCompileDiagnosticOut) Get() *CompileDiagnosticOut {
- return v.value
-}
-
-func (v *NullableCompileDiagnosticOut) Set(val *CompileDiagnosticOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableCompileDiagnosticOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableCompileDiagnosticOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableCompileDiagnosticOut(val *CompileDiagnosticOut) *NullableCompileDiagnosticOut {
- return &NullableCompileDiagnosticOut{value: val, isSet: true}
-}
-
-func (v NullableCompileDiagnosticOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableCompileDiagnosticOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_compile_job_in.go b/sdk/go/model_compile_job_in.go
deleted file mode 100644
index 7b211d5..0000000
--- a/sdk/go/model_compile_job_in.go
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
-)
-
-// checks if the CompileJobIn type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &CompileJobIn{}
-
-// CompileJobIn struct for CompileJobIn
-type CompileJobIn struct {
- Options *CompileOptions `json:"options,omitempty"`
- Task *string `json:"task,omitempty"`
-}
-
-// NewCompileJobIn instantiates a new CompileJobIn object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewCompileJobIn() *CompileJobIn {
- this := CompileJobIn{}
- var task string = "latex.compile"
- this.Task = &task
- return &this
-}
-
-// NewCompileJobInWithDefaults instantiates a new CompileJobIn object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewCompileJobInWithDefaults() *CompileJobIn {
- this := CompileJobIn{}
- var task string = "latex.compile"
- this.Task = &task
- return &this
-}
-
-// GetOptions returns the Options field value if set, zero value otherwise.
-func (o *CompileJobIn) GetOptions() CompileOptions {
- if o == nil || IsNil(o.Options) {
- var ret CompileOptions
- return ret
- }
- return *o.Options
-}
-
-// GetOptionsOk returns a tuple with the Options field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompileJobIn) GetOptionsOk() (*CompileOptions, bool) {
- if o == nil || IsNil(o.Options) {
- return nil, false
- }
- return o.Options, true
-}
-
-// HasOptions returns a boolean if a field has been set.
-func (o *CompileJobIn) HasOptions() bool {
- if o != nil && !IsNil(o.Options) {
- return true
- }
-
- return false
-}
-
-// SetOptions gets a reference to the given CompileOptions and assigns it to the Options field.
-func (o *CompileJobIn) SetOptions(v CompileOptions) {
- o.Options = &v
-}
-
-// GetTask returns the Task field value if set, zero value otherwise.
-func (o *CompileJobIn) GetTask() string {
- if o == nil || IsNil(o.Task) {
- var ret string
- return ret
- }
- return *o.Task
-}
-
-// GetTaskOk returns a tuple with the Task field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompileJobIn) GetTaskOk() (*string, bool) {
- if o == nil || IsNil(o.Task) {
- return nil, false
- }
- return o.Task, true
-}
-
-// HasTask returns a boolean if a field has been set.
-func (o *CompileJobIn) HasTask() bool {
- if o != nil && !IsNil(o.Task) {
- return true
- }
-
- return false
-}
-
-// SetTask gets a reference to the given string and assigns it to the Task field.
-func (o *CompileJobIn) SetTask(v string) {
- o.Task = &v
-}
-
-func (o CompileJobIn) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o CompileJobIn) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- if !IsNil(o.Options) {
- toSerialize["options"] = o.Options
- }
- if !IsNil(o.Task) {
- toSerialize["task"] = o.Task
- }
- return toSerialize, nil
-}
-
-type NullableCompileJobIn struct {
- value *CompileJobIn
- isSet bool
-}
-
-func (v NullableCompileJobIn) Get() *CompileJobIn {
- return v.value
-}
-
-func (v *NullableCompileJobIn) Set(val *CompileJobIn) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableCompileJobIn) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableCompileJobIn) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableCompileJobIn(val *CompileJobIn) *NullableCompileJobIn {
- return &NullableCompileJobIn{value: val, isSet: true}
-}
-
-func (v NullableCompileJobIn) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableCompileJobIn) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_compile_job_list_out.go b/sdk/go/model_compile_job_list_out.go
deleted file mode 100644
index 9575b91..0000000
--- a/sdk/go/model_compile_job_list_out.go
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the CompileJobListOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &CompileJobListOut{}
-
-// CompileJobListOut struct for CompileJobListOut
-type CompileJobListOut struct {
- Items []CompileJobOut `json:"items"`
- // Deprecated same-value alias for `items`; retained for compatibility.
- // Deprecated
- Jobs []CompileJobOut `json:"jobs"`
- // Opaque continuation token, or null when the listing is complete.
- NextCursor NullableString `json:"next_cursor,omitempty"`
-}
-
-type _CompileJobListOut CompileJobListOut
-
-// NewCompileJobListOut instantiates a new CompileJobListOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewCompileJobListOut(items []CompileJobOut, jobs []CompileJobOut) *CompileJobListOut {
- this := CompileJobListOut{}
- this.Items = items
- this.Jobs = jobs
- return &this
-}
-
-// NewCompileJobListOutWithDefaults instantiates a new CompileJobListOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewCompileJobListOutWithDefaults() *CompileJobListOut {
- this := CompileJobListOut{}
- return &this
-}
-
-// GetItems returns the Items field value
-func (o *CompileJobListOut) GetItems() []CompileJobOut {
- if o == nil {
- var ret []CompileJobOut
- return ret
- }
-
- return o.Items
-}
-
-// GetItemsOk returns a tuple with the Items field value
-// and a boolean to check if the value has been set.
-func (o *CompileJobListOut) GetItemsOk() ([]CompileJobOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Items, true
-}
-
-// SetItems sets field value
-func (o *CompileJobListOut) SetItems(v []CompileJobOut) {
- o.Items = v
-}
-
-// GetJobs returns the Jobs field value
-// Deprecated
-func (o *CompileJobListOut) GetJobs() []CompileJobOut {
- if o == nil {
- var ret []CompileJobOut
- return ret
- }
-
- return o.Jobs
-}
-
-// GetJobsOk returns a tuple with the Jobs field value
-// and a boolean to check if the value has been set.
-// Deprecated
-func (o *CompileJobListOut) GetJobsOk() ([]CompileJobOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Jobs, true
-}
-
-// SetJobs sets field value
-// Deprecated
-func (o *CompileJobListOut) SetJobs(v []CompileJobOut) {
- o.Jobs = v
-}
-
-// GetNextCursor returns the NextCursor field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *CompileJobListOut) GetNextCursor() string {
- if o == nil || IsNil(o.NextCursor.Get()) {
- var ret string
- return ret
- }
- return *o.NextCursor.Get()
-}
-
-// GetNextCursorOk returns a tuple with the NextCursor field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *CompileJobListOut) GetNextCursorOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.NextCursor.Get(), o.NextCursor.IsSet()
-}
-
-// HasNextCursor returns a boolean if a field has been set.
-func (o *CompileJobListOut) HasNextCursor() bool {
- if o != nil && o.NextCursor.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetNextCursor gets a reference to the given NullableString and assigns it to the NextCursor field.
-func (o *CompileJobListOut) SetNextCursor(v string) {
- o.NextCursor.Set(&v)
-}
-// SetNextCursorNil sets the value for NextCursor to be an explicit nil
-func (o *CompileJobListOut) SetNextCursorNil() {
- o.NextCursor.Set(nil)
-}
-
-// UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-func (o *CompileJobListOut) UnsetNextCursor() {
- o.NextCursor.Unset()
-}
-
-func (o CompileJobListOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o CompileJobListOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["items"] = o.Items
- toSerialize["jobs"] = o.Jobs
- if o.NextCursor.IsSet() {
- toSerialize["next_cursor"] = o.NextCursor.Get()
- }
- return toSerialize, nil
-}
-
-func (o *CompileJobListOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "items",
- "jobs",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varCompileJobListOut := _CompileJobListOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varCompileJobListOut)
-
- if err != nil {
- return err
- }
-
- *o = CompileJobListOut(varCompileJobListOut)
-
- return err
-}
-
-type NullableCompileJobListOut struct {
- value *CompileJobListOut
- isSet bool
-}
-
-func (v NullableCompileJobListOut) Get() *CompileJobListOut {
- return v.value
-}
-
-func (v *NullableCompileJobListOut) Set(val *CompileJobListOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableCompileJobListOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableCompileJobListOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableCompileJobListOut(val *CompileJobListOut) *NullableCompileJobListOut {
- return &NullableCompileJobListOut{value: val, isSet: true}
-}
-
-func (v NullableCompileJobListOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableCompileJobListOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_compile_job_out.go b/sdk/go/model_compile_job_out.go
deleted file mode 100644
index 0cca7af..0000000
--- a/sdk/go/model_compile_job_out.go
+++ /dev/null
@@ -1,451 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
-)
-
-// checks if the CompileJobOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &CompileJobOut{}
-
-// CompileJobOut struct for CompileJobOut
-type CompileJobOut struct {
- CacheHit bool `json:"cache_hit"`
- Diagnostics []CompileDiagnosticOut `json:"diagnostics,omitempty"`
- DurationMs NullableInt32 `json:"duration_ms,omitempty"`
- Engine string `json:"engine"`
- JobId string `json:"job_id"`
- LogsUrl NullableString `json:"logs_url,omitempty"`
- Output map[string]interface{} `json:"output,omitempty"`
- Status string `json:"status"`
- Task string `json:"task"`
- AdditionalProperties map[string]interface{}
-}
-
-type _CompileJobOut CompileJobOut
-
-// NewCompileJobOut instantiates a new CompileJobOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewCompileJobOut(cacheHit bool, engine string, jobId string, status string, task string) *CompileJobOut {
- this := CompileJobOut{}
- this.CacheHit = cacheHit
- this.Engine = engine
- this.JobId = jobId
- this.Status = status
- this.Task = task
- return &this
-}
-
-// NewCompileJobOutWithDefaults instantiates a new CompileJobOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewCompileJobOutWithDefaults() *CompileJobOut {
- this := CompileJobOut{}
- return &this
-}
-
-// GetCacheHit returns the CacheHit field value
-func (o *CompileJobOut) GetCacheHit() bool {
- if o == nil {
- var ret bool
- return ret
- }
-
- return o.CacheHit
-}
-
-// GetCacheHitOk returns a tuple with the CacheHit field value
-// and a boolean to check if the value has been set.
-func (o *CompileJobOut) GetCacheHitOk() (*bool, bool) {
- if o == nil {
- return nil, false
- }
- return &o.CacheHit, true
-}
-
-// SetCacheHit sets field value
-func (o *CompileJobOut) SetCacheHit(v bool) {
- o.CacheHit = v
-}
-
-// GetDiagnostics returns the Diagnostics field value if set, zero value otherwise.
-func (o *CompileJobOut) GetDiagnostics() []CompileDiagnosticOut {
- if o == nil || IsNil(o.Diagnostics) {
- var ret []CompileDiagnosticOut
- return ret
- }
- return o.Diagnostics
-}
-
-// GetDiagnosticsOk returns a tuple with the Diagnostics field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompileJobOut) GetDiagnosticsOk() ([]CompileDiagnosticOut, bool) {
- if o == nil || IsNil(o.Diagnostics) {
- return nil, false
- }
- return o.Diagnostics, true
-}
-
-// HasDiagnostics returns a boolean if a field has been set.
-func (o *CompileJobOut) HasDiagnostics() bool {
- if o != nil && !IsNil(o.Diagnostics) {
- return true
- }
-
- return false
-}
-
-// SetDiagnostics gets a reference to the given []CompileDiagnosticOut and assigns it to the Diagnostics field.
-func (o *CompileJobOut) SetDiagnostics(v []CompileDiagnosticOut) {
- o.Diagnostics = v
-}
-
-// GetDurationMs returns the DurationMs field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *CompileJobOut) GetDurationMs() int32 {
- if o == nil || IsNil(o.DurationMs.Get()) {
- var ret int32
- return ret
- }
- return *o.DurationMs.Get()
-}
-
-// GetDurationMsOk returns a tuple with the DurationMs field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *CompileJobOut) GetDurationMsOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return o.DurationMs.Get(), o.DurationMs.IsSet()
-}
-
-// HasDurationMs returns a boolean if a field has been set.
-func (o *CompileJobOut) HasDurationMs() bool {
- if o != nil && o.DurationMs.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetDurationMs gets a reference to the given NullableInt32 and assigns it to the DurationMs field.
-func (o *CompileJobOut) SetDurationMs(v int32) {
- o.DurationMs.Set(&v)
-}
-// SetDurationMsNil sets the value for DurationMs to be an explicit nil
-func (o *CompileJobOut) SetDurationMsNil() {
- o.DurationMs.Set(nil)
-}
-
-// UnsetDurationMs ensures that no value is present for DurationMs, not even an explicit nil
-func (o *CompileJobOut) UnsetDurationMs() {
- o.DurationMs.Unset()
-}
-
-// GetEngine returns the Engine field value
-func (o *CompileJobOut) GetEngine() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Engine
-}
-
-// GetEngineOk returns a tuple with the Engine field value
-// and a boolean to check if the value has been set.
-func (o *CompileJobOut) GetEngineOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Engine, true
-}
-
-// SetEngine sets field value
-func (o *CompileJobOut) SetEngine(v string) {
- o.Engine = v
-}
-
-// GetJobId returns the JobId field value
-func (o *CompileJobOut) GetJobId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.JobId
-}
-
-// GetJobIdOk returns a tuple with the JobId field value
-// and a boolean to check if the value has been set.
-func (o *CompileJobOut) GetJobIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.JobId, true
-}
-
-// SetJobId sets field value
-func (o *CompileJobOut) SetJobId(v string) {
- o.JobId = v
-}
-
-// GetLogsUrl returns the LogsUrl field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *CompileJobOut) GetLogsUrl() string {
- if o == nil || IsNil(o.LogsUrl.Get()) {
- var ret string
- return ret
- }
- return *o.LogsUrl.Get()
-}
-
-// GetLogsUrlOk returns a tuple with the LogsUrl field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *CompileJobOut) GetLogsUrlOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.LogsUrl.Get(), o.LogsUrl.IsSet()
-}
-
-// HasLogsUrl returns a boolean if a field has been set.
-func (o *CompileJobOut) HasLogsUrl() bool {
- if o != nil && o.LogsUrl.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetLogsUrl gets a reference to the given NullableString and assigns it to the LogsUrl field.
-func (o *CompileJobOut) SetLogsUrl(v string) {
- o.LogsUrl.Set(&v)
-}
-// SetLogsUrlNil sets the value for LogsUrl to be an explicit nil
-func (o *CompileJobOut) SetLogsUrlNil() {
- o.LogsUrl.Set(nil)
-}
-
-// UnsetLogsUrl ensures that no value is present for LogsUrl, not even an explicit nil
-func (o *CompileJobOut) UnsetLogsUrl() {
- o.LogsUrl.Unset()
-}
-
-// GetOutput returns the Output field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *CompileJobOut) GetOutput() map[string]interface{} {
- if o == nil {
- var ret map[string]interface{}
- return ret
- }
- return o.Output
-}
-
-// GetOutputOk returns a tuple with the Output field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *CompileJobOut) GetOutputOk() (map[string]interface{}, bool) {
- if o == nil || IsNil(o.Output) {
- return map[string]interface{}{}, false
- }
- return o.Output, true
-}
-
-// HasOutput returns a boolean if a field has been set.
-func (o *CompileJobOut) HasOutput() bool {
- if o != nil && !IsNil(o.Output) {
- return true
- }
-
- return false
-}
-
-// SetOutput gets a reference to the given map[string]interface{} and assigns it to the Output field.
-func (o *CompileJobOut) SetOutput(v map[string]interface{}) {
- o.Output = v
-}
-
-// GetStatus returns the Status field value
-func (o *CompileJobOut) GetStatus() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Status
-}
-
-// GetStatusOk returns a tuple with the Status field value
-// and a boolean to check if the value has been set.
-func (o *CompileJobOut) GetStatusOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Status, true
-}
-
-// SetStatus sets field value
-func (o *CompileJobOut) SetStatus(v string) {
- o.Status = v
-}
-
-// GetTask returns the Task field value
-func (o *CompileJobOut) GetTask() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Task
-}
-
-// GetTaskOk returns a tuple with the Task field value
-// and a boolean to check if the value has been set.
-func (o *CompileJobOut) GetTaskOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Task, true
-}
-
-// SetTask sets field value
-func (o *CompileJobOut) SetTask(v string) {
- o.Task = v
-}
-
-func (o CompileJobOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o CompileJobOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["cache_hit"] = o.CacheHit
- if !IsNil(o.Diagnostics) {
- toSerialize["diagnostics"] = o.Diagnostics
- }
- if o.DurationMs.IsSet() {
- toSerialize["duration_ms"] = o.DurationMs.Get()
- }
- toSerialize["engine"] = o.Engine
- toSerialize["job_id"] = o.JobId
- if o.LogsUrl.IsSet() {
- toSerialize["logs_url"] = o.LogsUrl.Get()
- }
- if o.Output != nil {
- toSerialize["output"] = o.Output
- }
- toSerialize["status"] = o.Status
- toSerialize["task"] = o.Task
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
- return toSerialize, nil
-}
-
-func (o *CompileJobOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "cache_hit",
- "engine",
- "job_id",
- "status",
- "task",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varCompileJobOut := _CompileJobOut{}
-
- err = json.Unmarshal(data, &varCompileJobOut)
-
- if err != nil {
- return err
- }
-
- *o = CompileJobOut(varCompileJobOut)
-
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "cache_hit")
- delete(additionalProperties, "diagnostics")
- delete(additionalProperties, "duration_ms")
- delete(additionalProperties, "engine")
- delete(additionalProperties, "job_id")
- delete(additionalProperties, "logs_url")
- delete(additionalProperties, "output")
- delete(additionalProperties, "status")
- delete(additionalProperties, "task")
- o.AdditionalProperties = additionalProperties
- }
-
- return err
-}
-
-type NullableCompileJobOut struct {
- value *CompileJobOut
- isSet bool
-}
-
-func (v NullableCompileJobOut) Get() *CompileJobOut {
- return v.value
-}
-
-func (v *NullableCompileJobOut) Set(val *CompileJobOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableCompileJobOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableCompileJobOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableCompileJobOut(val *CompileJobOut) *NullableCompileJobOut {
- return &NullableCompileJobOut{value: val, isSet: true}
-}
-
-func (v NullableCompileJobOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableCompileJobOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_compile_options.go b/sdk/go/model_compile_options.go
deleted file mode 100644
index 75c6612..0000000
--- a/sdk/go/model_compile_options.go
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
-)
-
-// checks if the CompileOptions type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &CompileOptions{}
-
-// CompileOptions struct for CompileOptions
-type CompileOptions struct {
- Engine NullableString `json:"engine,omitempty"`
- Entrypoint NullableString `json:"entrypoint,omitempty"`
- Wait *bool `json:"wait,omitempty"`
-}
-
-// NewCompileOptions instantiates a new CompileOptions object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewCompileOptions() *CompileOptions {
- this := CompileOptions{}
- var wait bool = false
- this.Wait = &wait
- return &this
-}
-
-// NewCompileOptionsWithDefaults instantiates a new CompileOptions object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewCompileOptionsWithDefaults() *CompileOptions {
- this := CompileOptions{}
- var wait bool = false
- this.Wait = &wait
- return &this
-}
-
-// GetEngine returns the Engine field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *CompileOptions) GetEngine() string {
- if o == nil || IsNil(o.Engine.Get()) {
- var ret string
- return ret
- }
- return *o.Engine.Get()
-}
-
-// GetEngineOk returns a tuple with the Engine field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *CompileOptions) GetEngineOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Engine.Get(), o.Engine.IsSet()
-}
-
-// HasEngine returns a boolean if a field has been set.
-func (o *CompileOptions) HasEngine() bool {
- if o != nil && o.Engine.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetEngine gets a reference to the given NullableString and assigns it to the Engine field.
-func (o *CompileOptions) SetEngine(v string) {
- o.Engine.Set(&v)
-}
-// SetEngineNil sets the value for Engine to be an explicit nil
-func (o *CompileOptions) SetEngineNil() {
- o.Engine.Set(nil)
-}
-
-// UnsetEngine ensures that no value is present for Engine, not even an explicit nil
-func (o *CompileOptions) UnsetEngine() {
- o.Engine.Unset()
-}
-
-// GetEntrypoint returns the Entrypoint field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *CompileOptions) GetEntrypoint() string {
- if o == nil || IsNil(o.Entrypoint.Get()) {
- var ret string
- return ret
- }
- return *o.Entrypoint.Get()
-}
-
-// GetEntrypointOk returns a tuple with the Entrypoint field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *CompileOptions) GetEntrypointOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Entrypoint.Get(), o.Entrypoint.IsSet()
-}
-
-// HasEntrypoint returns a boolean if a field has been set.
-func (o *CompileOptions) HasEntrypoint() bool {
- if o != nil && o.Entrypoint.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetEntrypoint gets a reference to the given NullableString and assigns it to the Entrypoint field.
-func (o *CompileOptions) SetEntrypoint(v string) {
- o.Entrypoint.Set(&v)
-}
-// SetEntrypointNil sets the value for Entrypoint to be an explicit nil
-func (o *CompileOptions) SetEntrypointNil() {
- o.Entrypoint.Set(nil)
-}
-
-// UnsetEntrypoint ensures that no value is present for Entrypoint, not even an explicit nil
-func (o *CompileOptions) UnsetEntrypoint() {
- o.Entrypoint.Unset()
-}
-
-// GetWait returns the Wait field value if set, zero value otherwise.
-func (o *CompileOptions) GetWait() bool {
- if o == nil || IsNil(o.Wait) {
- var ret bool
- return ret
- }
- return *o.Wait
-}
-
-// GetWaitOk returns a tuple with the Wait field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompileOptions) GetWaitOk() (*bool, bool) {
- if o == nil || IsNil(o.Wait) {
- return nil, false
- }
- return o.Wait, true
-}
-
-// HasWait returns a boolean if a field has been set.
-func (o *CompileOptions) HasWait() bool {
- if o != nil && !IsNil(o.Wait) {
- return true
- }
-
- return false
-}
-
-// SetWait gets a reference to the given bool and assigns it to the Wait field.
-func (o *CompileOptions) SetWait(v bool) {
- o.Wait = &v
-}
-
-func (o CompileOptions) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o CompileOptions) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- if o.Engine.IsSet() {
- toSerialize["engine"] = o.Engine.Get()
- }
- if o.Entrypoint.IsSet() {
- toSerialize["entrypoint"] = o.Entrypoint.Get()
- }
- if !IsNil(o.Wait) {
- toSerialize["wait"] = o.Wait
- }
- return toSerialize, nil
-}
-
-type NullableCompileOptions struct {
- value *CompileOptions
- isSet bool
-}
-
-func (v NullableCompileOptions) Get() *CompileOptions {
- return v.value
-}
-
-func (v *NullableCompileOptions) Set(val *CompileOptions) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableCompileOptions) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableCompileOptions) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableCompileOptions(val *CompileOptions) *NullableCompileOptions {
- return &NullableCompileOptions{value: val, isSet: true}
-}
-
-func (v NullableCompileOptions) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableCompileOptions) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_compile_project_out.go b/sdk/go/model_compile_project_out.go
deleted file mode 100644
index d0bbb3f..0000000
--- a/sdk/go/model_compile_project_out.go
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the CompileProjectOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &CompileProjectOut{}
-
-// CompileProjectOut struct for CompileProjectOut
-type CompileProjectOut struct {
- AutoCompile bool `json:"auto_compile"`
- Engine string `json:"engine"`
- Entrypoint string `json:"entrypoint"`
- FldId string `json:"fld_id"`
-}
-
-type _CompileProjectOut CompileProjectOut
-
-// NewCompileProjectOut instantiates a new CompileProjectOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewCompileProjectOut(autoCompile bool, engine string, entrypoint string, fldId string) *CompileProjectOut {
- this := CompileProjectOut{}
- this.AutoCompile = autoCompile
- this.Engine = engine
- this.Entrypoint = entrypoint
- this.FldId = fldId
- return &this
-}
-
-// NewCompileProjectOutWithDefaults instantiates a new CompileProjectOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewCompileProjectOutWithDefaults() *CompileProjectOut {
- this := CompileProjectOut{}
- return &this
-}
-
-// GetAutoCompile returns the AutoCompile field value
-func (o *CompileProjectOut) GetAutoCompile() bool {
- if o == nil {
- var ret bool
- return ret
- }
-
- return o.AutoCompile
-}
-
-// GetAutoCompileOk returns a tuple with the AutoCompile field value
-// and a boolean to check if the value has been set.
-func (o *CompileProjectOut) GetAutoCompileOk() (*bool, bool) {
- if o == nil {
- return nil, false
- }
- return &o.AutoCompile, true
-}
-
-// SetAutoCompile sets field value
-func (o *CompileProjectOut) SetAutoCompile(v bool) {
- o.AutoCompile = v
-}
-
-// GetEngine returns the Engine field value
-func (o *CompileProjectOut) GetEngine() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Engine
-}
-
-// GetEngineOk returns a tuple with the Engine field value
-// and a boolean to check if the value has been set.
-func (o *CompileProjectOut) GetEngineOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Engine, true
-}
-
-// SetEngine sets field value
-func (o *CompileProjectOut) SetEngine(v string) {
- o.Engine = v
-}
-
-// GetEntrypoint returns the Entrypoint field value
-func (o *CompileProjectOut) GetEntrypoint() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Entrypoint
-}
-
-// GetEntrypointOk returns a tuple with the Entrypoint field value
-// and a boolean to check if the value has been set.
-func (o *CompileProjectOut) GetEntrypointOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Entrypoint, true
-}
-
-// SetEntrypoint sets field value
-func (o *CompileProjectOut) SetEntrypoint(v string) {
- o.Entrypoint = v
-}
-
-// GetFldId returns the FldId field value
-func (o *CompileProjectOut) GetFldId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.FldId
-}
-
-// GetFldIdOk returns a tuple with the FldId field value
-// and a boolean to check if the value has been set.
-func (o *CompileProjectOut) GetFldIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.FldId, true
-}
-
-// SetFldId sets field value
-func (o *CompileProjectOut) SetFldId(v string) {
- o.FldId = v
-}
-
-func (o CompileProjectOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o CompileProjectOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["auto_compile"] = o.AutoCompile
- toSerialize["engine"] = o.Engine
- toSerialize["entrypoint"] = o.Entrypoint
- toSerialize["fld_id"] = o.FldId
- return toSerialize, nil
-}
-
-func (o *CompileProjectOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "auto_compile",
- "engine",
- "entrypoint",
- "fld_id",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varCompileProjectOut := _CompileProjectOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varCompileProjectOut)
-
- if err != nil {
- return err
- }
-
- *o = CompileProjectOut(varCompileProjectOut)
-
- return err
-}
-
-type NullableCompileProjectOut struct {
- value *CompileProjectOut
- isSet bool
-}
-
-func (v NullableCompileProjectOut) Get() *CompileProjectOut {
- return v.value
-}
-
-func (v *NullableCompileProjectOut) Set(val *CompileProjectOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableCompileProjectOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableCompileProjectOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableCompileProjectOut(val *CompileProjectOut) *NullableCompileProjectOut {
- return &NullableCompileProjectOut{value: val, isSet: true}
-}
-
-func (v NullableCompileProjectOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableCompileProjectOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_copy_in.go b/sdk/go/model_copy_in.go
deleted file mode 100644
index e928652..0000000
--- a/sdk/go/model_copy_in.go
+++ /dev/null
@@ -1,248 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the CopyIn type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &CopyIn{}
-
-// CopyIn POST /v0/artifacts/{art_id}/copy body — duplicate to new path.
-type CopyIn struct {
- FromGeneration NullableInt32 `json:"from_generation,omitempty"`
- Path string `json:"path"`
- Source NullableArtifactSource `json:"source,omitempty"`
-}
-
-type _CopyIn CopyIn
-
-// NewCopyIn instantiates a new CopyIn object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewCopyIn(path string) *CopyIn {
- this := CopyIn{}
- this.Path = path
- return &this
-}
-
-// NewCopyInWithDefaults instantiates a new CopyIn object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewCopyInWithDefaults() *CopyIn {
- this := CopyIn{}
- return &this
-}
-
-// GetFromGeneration returns the FromGeneration field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *CopyIn) GetFromGeneration() int32 {
- if o == nil || IsNil(o.FromGeneration.Get()) {
- var ret int32
- return ret
- }
- return *o.FromGeneration.Get()
-}
-
-// GetFromGenerationOk returns a tuple with the FromGeneration field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *CopyIn) GetFromGenerationOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return o.FromGeneration.Get(), o.FromGeneration.IsSet()
-}
-
-// HasFromGeneration returns a boolean if a field has been set.
-func (o *CopyIn) HasFromGeneration() bool {
- if o != nil && o.FromGeneration.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetFromGeneration gets a reference to the given NullableInt32 and assigns it to the FromGeneration field.
-func (o *CopyIn) SetFromGeneration(v int32) {
- o.FromGeneration.Set(&v)
-}
-// SetFromGenerationNil sets the value for FromGeneration to be an explicit nil
-func (o *CopyIn) SetFromGenerationNil() {
- o.FromGeneration.Set(nil)
-}
-
-// UnsetFromGeneration ensures that no value is present for FromGeneration, not even an explicit nil
-func (o *CopyIn) UnsetFromGeneration() {
- o.FromGeneration.Unset()
-}
-
-// GetPath returns the Path field value
-func (o *CopyIn) GetPath() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Path
-}
-
-// GetPathOk returns a tuple with the Path field value
-// and a boolean to check if the value has been set.
-func (o *CopyIn) GetPathOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Path, true
-}
-
-// SetPath sets field value
-func (o *CopyIn) SetPath(v string) {
- o.Path = v
-}
-
-// GetSource returns the Source field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *CopyIn) GetSource() ArtifactSource {
- if o == nil || IsNil(o.Source.Get()) {
- var ret ArtifactSource
- return ret
- }
- return *o.Source.Get()
-}
-
-// GetSourceOk returns a tuple with the Source field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *CopyIn) GetSourceOk() (*ArtifactSource, bool) {
- if o == nil {
- return nil, false
- }
- return o.Source.Get(), o.Source.IsSet()
-}
-
-// HasSource returns a boolean if a field has been set.
-func (o *CopyIn) HasSource() bool {
- if o != nil && o.Source.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetSource gets a reference to the given NullableArtifactSource and assigns it to the Source field.
-func (o *CopyIn) SetSource(v ArtifactSource) {
- o.Source.Set(&v)
-}
-// SetSourceNil sets the value for Source to be an explicit nil
-func (o *CopyIn) SetSourceNil() {
- o.Source.Set(nil)
-}
-
-// UnsetSource ensures that no value is present for Source, not even an explicit nil
-func (o *CopyIn) UnsetSource() {
- o.Source.Unset()
-}
-
-func (o CopyIn) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o CopyIn) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- if o.FromGeneration.IsSet() {
- toSerialize["from_generation"] = o.FromGeneration.Get()
- }
- toSerialize["path"] = o.Path
- if o.Source.IsSet() {
- toSerialize["source"] = o.Source.Get()
- }
- return toSerialize, nil
-}
-
-func (o *CopyIn) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "path",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varCopyIn := _CopyIn{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varCopyIn)
-
- if err != nil {
- return err
- }
-
- *o = CopyIn(varCopyIn)
-
- return err
-}
-
-type NullableCopyIn struct {
- value *CopyIn
- isSet bool
-}
-
-func (v NullableCopyIn) Get() *CopyIn {
- return v.value
-}
-
-func (v *NullableCopyIn) Set(val *CopyIn) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableCopyIn) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableCopyIn) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableCopyIn(val *CopyIn) *NullableCopyIn {
- return &NullableCopyIn{value: val, isSet: true}
-}
-
-func (v NullableCopyIn) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableCopyIn) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_dataset_description_out.go b/sdk/go/model_dataset_description_out.go
deleted file mode 100644
index ca49b14..0000000
--- a/sdk/go/model_dataset_description_out.go
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the DatasetDescriptionOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &DatasetDescriptionOut{}
-
-// DatasetDescriptionOut struct for DatasetDescriptionOut
-type DatasetDescriptionOut struct {
- Columns []QueryColumnOut `json:"columns"`
- Dataset string `json:"dataset"`
-}
-
-type _DatasetDescriptionOut DatasetDescriptionOut
-
-// NewDatasetDescriptionOut instantiates a new DatasetDescriptionOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewDatasetDescriptionOut(columns []QueryColumnOut, dataset string) *DatasetDescriptionOut {
- this := DatasetDescriptionOut{}
- this.Columns = columns
- this.Dataset = dataset
- return &this
-}
-
-// NewDatasetDescriptionOutWithDefaults instantiates a new DatasetDescriptionOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewDatasetDescriptionOutWithDefaults() *DatasetDescriptionOut {
- this := DatasetDescriptionOut{}
- return &this
-}
-
-// GetColumns returns the Columns field value
-func (o *DatasetDescriptionOut) GetColumns() []QueryColumnOut {
- if o == nil {
- var ret []QueryColumnOut
- return ret
- }
-
- return o.Columns
-}
-
-// GetColumnsOk returns a tuple with the Columns field value
-// and a boolean to check if the value has been set.
-func (o *DatasetDescriptionOut) GetColumnsOk() ([]QueryColumnOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Columns, true
-}
-
-// SetColumns sets field value
-func (o *DatasetDescriptionOut) SetColumns(v []QueryColumnOut) {
- o.Columns = v
-}
-
-// GetDataset returns the Dataset field value
-func (o *DatasetDescriptionOut) GetDataset() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Dataset
-}
-
-// GetDatasetOk returns a tuple with the Dataset field value
-// and a boolean to check if the value has been set.
-func (o *DatasetDescriptionOut) GetDatasetOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Dataset, true
-}
-
-// SetDataset sets field value
-func (o *DatasetDescriptionOut) SetDataset(v string) {
- o.Dataset = v
-}
-
-func (o DatasetDescriptionOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o DatasetDescriptionOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["columns"] = o.Columns
- toSerialize["dataset"] = o.Dataset
- return toSerialize, nil
-}
-
-func (o *DatasetDescriptionOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "columns",
- "dataset",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varDatasetDescriptionOut := _DatasetDescriptionOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varDatasetDescriptionOut)
-
- if err != nil {
- return err
- }
-
- *o = DatasetDescriptionOut(varDatasetDescriptionOut)
-
- return err
-}
-
-type NullableDatasetDescriptionOut struct {
- value *DatasetDescriptionOut
- isSet bool
-}
-
-func (v NullableDatasetDescriptionOut) Get() *DatasetDescriptionOut {
- return v.value
-}
-
-func (v *NullableDatasetDescriptionOut) Set(val *DatasetDescriptionOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableDatasetDescriptionOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableDatasetDescriptionOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableDatasetDescriptionOut(val *DatasetDescriptionOut) *NullableDatasetDescriptionOut {
- return &NullableDatasetDescriptionOut{value: val, isSet: true}
-}
-
-func (v NullableDatasetDescriptionOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableDatasetDescriptionOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_describe_in.go b/sdk/go/model_describe_in.go
deleted file mode 100644
index 2add68c..0000000
--- a/sdk/go/model_describe_in.go
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the DescribeIn type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &DescribeIn{}
-
-// DescribeIn struct for DescribeIn
-type DescribeIn struct {
- Dataset string `json:"dataset"`
-}
-
-type _DescribeIn DescribeIn
-
-// NewDescribeIn instantiates a new DescribeIn object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewDescribeIn(dataset string) *DescribeIn {
- this := DescribeIn{}
- this.Dataset = dataset
- return &this
-}
-
-// NewDescribeInWithDefaults instantiates a new DescribeIn object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewDescribeInWithDefaults() *DescribeIn {
- this := DescribeIn{}
- return &this
-}
-
-// GetDataset returns the Dataset field value
-func (o *DescribeIn) GetDataset() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Dataset
-}
-
-// GetDatasetOk returns a tuple with the Dataset field value
-// and a boolean to check if the value has been set.
-func (o *DescribeIn) GetDatasetOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Dataset, true
-}
-
-// SetDataset sets field value
-func (o *DescribeIn) SetDataset(v string) {
- o.Dataset = v
-}
-
-func (o DescribeIn) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o DescribeIn) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["dataset"] = o.Dataset
- return toSerialize, nil
-}
-
-func (o *DescribeIn) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "dataset",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varDescribeIn := _DescribeIn{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varDescribeIn)
-
- if err != nil {
- return err
- }
-
- *o = DescribeIn(varDescribeIn)
-
- return err
-}
-
-type NullableDescribeIn struct {
- value *DescribeIn
- isSet bool
-}
-
-func (v NullableDescribeIn) Get() *DescribeIn {
- return v.value
-}
-
-func (v *NullableDescribeIn) Set(val *DescribeIn) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableDescribeIn) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableDescribeIn) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableDescribeIn(val *DescribeIn) *NullableDescribeIn {
- return &NullableDescribeIn{value: val, isSet: true}
-}
-
-func (v NullableDescribeIn) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableDescribeIn) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_download_url_out.go b/sdk/go/model_download_url_out.go
deleted file mode 100644
index e2fb17e..0000000
--- a/sdk/go/model_download_url_out.go
+++ /dev/null
@@ -1,315 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the DownloadUrlOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &DownloadUrlOut{}
-
-// DownloadUrlOut A URL the caller can GET to fetch the artifact's bytes. `direct=True` ⇒ a short-lived signed GCS URL on `storage.googleapis.com` (client downloads straight from GCS; `expires_at` is set). `direct=False` ⇒ the proxy `/download` endpoint on the API host (no expiry) — returned for sub-threshold artifacts or when signing is unavailable. The URL is opaque: callers should not parse it. See large-download-design.md §5.1.
-type DownloadUrlOut struct {
- ContentType string `json:"content_type"`
- Direct bool `json:"direct"`
- DownloadUrl string `json:"download_url"`
- ExpiresAt NullableTime `json:"expires_at,omitempty"`
- Filename string `json:"filename"`
- SizeBytes int32 `json:"size_bytes"`
-}
-
-type _DownloadUrlOut DownloadUrlOut
-
-// NewDownloadUrlOut instantiates a new DownloadUrlOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewDownloadUrlOut(contentType string, direct bool, downloadUrl string, filename string, sizeBytes int32) *DownloadUrlOut {
- this := DownloadUrlOut{}
- this.ContentType = contentType
- this.Direct = direct
- this.DownloadUrl = downloadUrl
- this.Filename = filename
- this.SizeBytes = sizeBytes
- return &this
-}
-
-// NewDownloadUrlOutWithDefaults instantiates a new DownloadUrlOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewDownloadUrlOutWithDefaults() *DownloadUrlOut {
- this := DownloadUrlOut{}
- return &this
-}
-
-// GetContentType returns the ContentType field value
-func (o *DownloadUrlOut) GetContentType() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.ContentType
-}
-
-// GetContentTypeOk returns a tuple with the ContentType field value
-// and a boolean to check if the value has been set.
-func (o *DownloadUrlOut) GetContentTypeOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ContentType, true
-}
-
-// SetContentType sets field value
-func (o *DownloadUrlOut) SetContentType(v string) {
- o.ContentType = v
-}
-
-// GetDirect returns the Direct field value
-func (o *DownloadUrlOut) GetDirect() bool {
- if o == nil {
- var ret bool
- return ret
- }
-
- return o.Direct
-}
-
-// GetDirectOk returns a tuple with the Direct field value
-// and a boolean to check if the value has been set.
-func (o *DownloadUrlOut) GetDirectOk() (*bool, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Direct, true
-}
-
-// SetDirect sets field value
-func (o *DownloadUrlOut) SetDirect(v bool) {
- o.Direct = v
-}
-
-// GetDownloadUrl returns the DownloadUrl field value
-func (o *DownloadUrlOut) GetDownloadUrl() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.DownloadUrl
-}
-
-// GetDownloadUrlOk returns a tuple with the DownloadUrl field value
-// and a boolean to check if the value has been set.
-func (o *DownloadUrlOut) GetDownloadUrlOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.DownloadUrl, true
-}
-
-// SetDownloadUrl sets field value
-func (o *DownloadUrlOut) SetDownloadUrl(v string) {
- o.DownloadUrl = v
-}
-
-// GetExpiresAt returns the ExpiresAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *DownloadUrlOut) GetExpiresAt() time.Time {
- if o == nil || IsNil(o.ExpiresAt.Get()) {
- var ret time.Time
- return ret
- }
- return *o.ExpiresAt.Get()
-}
-
-// GetExpiresAtOk returns a tuple with the ExpiresAt field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *DownloadUrlOut) GetExpiresAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return o.ExpiresAt.Get(), o.ExpiresAt.IsSet()
-}
-
-// HasExpiresAt returns a boolean if a field has been set.
-func (o *DownloadUrlOut) HasExpiresAt() bool {
- if o != nil && o.ExpiresAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetExpiresAt gets a reference to the given NullableTime and assigns it to the ExpiresAt field.
-func (o *DownloadUrlOut) SetExpiresAt(v time.Time) {
- o.ExpiresAt.Set(&v)
-}
-// SetExpiresAtNil sets the value for ExpiresAt to be an explicit nil
-func (o *DownloadUrlOut) SetExpiresAtNil() {
- o.ExpiresAt.Set(nil)
-}
-
-// UnsetExpiresAt ensures that no value is present for ExpiresAt, not even an explicit nil
-func (o *DownloadUrlOut) UnsetExpiresAt() {
- o.ExpiresAt.Unset()
-}
-
-// GetFilename returns the Filename field value
-func (o *DownloadUrlOut) GetFilename() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Filename
-}
-
-// GetFilenameOk returns a tuple with the Filename field value
-// and a boolean to check if the value has been set.
-func (o *DownloadUrlOut) GetFilenameOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Filename, true
-}
-
-// SetFilename sets field value
-func (o *DownloadUrlOut) SetFilename(v string) {
- o.Filename = v
-}
-
-// GetSizeBytes returns the SizeBytes field value
-func (o *DownloadUrlOut) GetSizeBytes() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.SizeBytes
-}
-
-// GetSizeBytesOk returns a tuple with the SizeBytes field value
-// and a boolean to check if the value has been set.
-func (o *DownloadUrlOut) GetSizeBytesOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.SizeBytes, true
-}
-
-// SetSizeBytes sets field value
-func (o *DownloadUrlOut) SetSizeBytes(v int32) {
- o.SizeBytes = v
-}
-
-func (o DownloadUrlOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o DownloadUrlOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["content_type"] = o.ContentType
- toSerialize["direct"] = o.Direct
- toSerialize["download_url"] = o.DownloadUrl
- if o.ExpiresAt.IsSet() {
- toSerialize["expires_at"] = o.ExpiresAt.Get()
- }
- toSerialize["filename"] = o.Filename
- toSerialize["size_bytes"] = o.SizeBytes
- return toSerialize, nil
-}
-
-func (o *DownloadUrlOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "content_type",
- "direct",
- "download_url",
- "filename",
- "size_bytes",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varDownloadUrlOut := _DownloadUrlOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varDownloadUrlOut)
-
- if err != nil {
- return err
- }
-
- *o = DownloadUrlOut(varDownloadUrlOut)
-
- return err
-}
-
-type NullableDownloadUrlOut struct {
- value *DownloadUrlOut
- isSet bool
-}
-
-func (v NullableDownloadUrlOut) Get() *DownloadUrlOut {
- return v.value
-}
-
-func (v *NullableDownloadUrlOut) Set(val *DownloadUrlOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableDownloadUrlOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableDownloadUrlOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableDownloadUrlOut(val *DownloadUrlOut) *NullableDownloadUrlOut {
- return &NullableDownloadUrlOut{value: val, isSet: true}
-}
-
-func (v NullableDownloadUrlOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableDownloadUrlOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_drive_api_key_create_in.go b/sdk/go/model_drive_api_key_create_in.go
deleted file mode 100644
index 24f4648..0000000
--- a/sdk/go/model_drive_api_key_create_in.go
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the DriveApiKeyCreateIn type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &DriveApiKeyCreateIn{}
-
-// DriveApiKeyCreateIn `POST /v0/drives/{id}/keys` body — a required human label (a name for the key, e.g. the agent/integration it's for).
-type DriveApiKeyCreateIn struct {
- Label string `json:"label"`
-}
-
-type _DriveApiKeyCreateIn DriveApiKeyCreateIn
-
-// NewDriveApiKeyCreateIn instantiates a new DriveApiKeyCreateIn object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewDriveApiKeyCreateIn(label string) *DriveApiKeyCreateIn {
- this := DriveApiKeyCreateIn{}
- this.Label = label
- return &this
-}
-
-// NewDriveApiKeyCreateInWithDefaults instantiates a new DriveApiKeyCreateIn object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewDriveApiKeyCreateInWithDefaults() *DriveApiKeyCreateIn {
- this := DriveApiKeyCreateIn{}
- return &this
-}
-
-// GetLabel returns the Label field value
-func (o *DriveApiKeyCreateIn) GetLabel() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Label
-}
-
-// GetLabelOk returns a tuple with the Label field value
-// and a boolean to check if the value has been set.
-func (o *DriveApiKeyCreateIn) GetLabelOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Label, true
-}
-
-// SetLabel sets field value
-func (o *DriveApiKeyCreateIn) SetLabel(v string) {
- o.Label = v
-}
-
-func (o DriveApiKeyCreateIn) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o DriveApiKeyCreateIn) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["label"] = o.Label
- return toSerialize, nil
-}
-
-func (o *DriveApiKeyCreateIn) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "label",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varDriveApiKeyCreateIn := _DriveApiKeyCreateIn{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varDriveApiKeyCreateIn)
-
- if err != nil {
- return err
- }
-
- *o = DriveApiKeyCreateIn(varDriveApiKeyCreateIn)
-
- return err
-}
-
-type NullableDriveApiKeyCreateIn struct {
- value *DriveApiKeyCreateIn
- isSet bool
-}
-
-func (v NullableDriveApiKeyCreateIn) Get() *DriveApiKeyCreateIn {
- return v.value
-}
-
-func (v *NullableDriveApiKeyCreateIn) Set(val *DriveApiKeyCreateIn) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableDriveApiKeyCreateIn) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableDriveApiKeyCreateIn) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableDriveApiKeyCreateIn(val *DriveApiKeyCreateIn) *NullableDriveApiKeyCreateIn {
- return &NullableDriveApiKeyCreateIn{value: val, isSet: true}
-}
-
-func (v NullableDriveApiKeyCreateIn) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableDriveApiKeyCreateIn) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_drive_api_key_create_out.go b/sdk/go/model_drive_api_key_create_out.go
deleted file mode 100644
index 7e11165..0000000
--- a/sdk/go/model_drive_api_key_create_out.go
+++ /dev/null
@@ -1,287 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the DriveApiKeyCreateOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &DriveApiKeyCreateOut{}
-
-// DriveApiKeyCreateOut `POST /v0/drives/{id}/keys` response — the new key's metadata PLUS the raw `ad_live_` value, returned **once**. Store `api_key` now; only its hash is persisted.
-type DriveApiKeyCreateOut struct {
- ApiKey string `json:"api_key"`
- CreatedAt time.Time `json:"created_at"`
- Id string `json:"id"`
- Label NullableString `json:"label,omitempty"`
- Prefix string `json:"prefix"`
-}
-
-type _DriveApiKeyCreateOut DriveApiKeyCreateOut
-
-// NewDriveApiKeyCreateOut instantiates a new DriveApiKeyCreateOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewDriveApiKeyCreateOut(apiKey string, createdAt time.Time, id string, prefix string) *DriveApiKeyCreateOut {
- this := DriveApiKeyCreateOut{}
- this.ApiKey = apiKey
- this.CreatedAt = createdAt
- this.Id = id
- this.Prefix = prefix
- return &this
-}
-
-// NewDriveApiKeyCreateOutWithDefaults instantiates a new DriveApiKeyCreateOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewDriveApiKeyCreateOutWithDefaults() *DriveApiKeyCreateOut {
- this := DriveApiKeyCreateOut{}
- return &this
-}
-
-// GetApiKey returns the ApiKey field value
-func (o *DriveApiKeyCreateOut) GetApiKey() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.ApiKey
-}
-
-// GetApiKeyOk returns a tuple with the ApiKey field value
-// and a boolean to check if the value has been set.
-func (o *DriveApiKeyCreateOut) GetApiKeyOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ApiKey, true
-}
-
-// SetApiKey sets field value
-func (o *DriveApiKeyCreateOut) SetApiKey(v string) {
- o.ApiKey = v
-}
-
-// GetCreatedAt returns the CreatedAt field value
-func (o *DriveApiKeyCreateOut) GetCreatedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.CreatedAt
-}
-
-// GetCreatedAtOk returns a tuple with the CreatedAt field value
-// and a boolean to check if the value has been set.
-func (o *DriveApiKeyCreateOut) GetCreatedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.CreatedAt, true
-}
-
-// SetCreatedAt sets field value
-func (o *DriveApiKeyCreateOut) SetCreatedAt(v time.Time) {
- o.CreatedAt = v
-}
-
-// GetId returns the Id field value
-func (o *DriveApiKeyCreateOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *DriveApiKeyCreateOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *DriveApiKeyCreateOut) SetId(v string) {
- o.Id = v
-}
-
-// GetLabel returns the Label field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *DriveApiKeyCreateOut) GetLabel() string {
- if o == nil || IsNil(o.Label.Get()) {
- var ret string
- return ret
- }
- return *o.Label.Get()
-}
-
-// GetLabelOk returns a tuple with the Label field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *DriveApiKeyCreateOut) GetLabelOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Label.Get(), o.Label.IsSet()
-}
-
-// HasLabel returns a boolean if a field has been set.
-func (o *DriveApiKeyCreateOut) HasLabel() bool {
- if o != nil && o.Label.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetLabel gets a reference to the given NullableString and assigns it to the Label field.
-func (o *DriveApiKeyCreateOut) SetLabel(v string) {
- o.Label.Set(&v)
-}
-// SetLabelNil sets the value for Label to be an explicit nil
-func (o *DriveApiKeyCreateOut) SetLabelNil() {
- o.Label.Set(nil)
-}
-
-// UnsetLabel ensures that no value is present for Label, not even an explicit nil
-func (o *DriveApiKeyCreateOut) UnsetLabel() {
- o.Label.Unset()
-}
-
-// GetPrefix returns the Prefix field value
-func (o *DriveApiKeyCreateOut) GetPrefix() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Prefix
-}
-
-// GetPrefixOk returns a tuple with the Prefix field value
-// and a boolean to check if the value has been set.
-func (o *DriveApiKeyCreateOut) GetPrefixOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Prefix, true
-}
-
-// SetPrefix sets field value
-func (o *DriveApiKeyCreateOut) SetPrefix(v string) {
- o.Prefix = v
-}
-
-func (o DriveApiKeyCreateOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o DriveApiKeyCreateOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["api_key"] = o.ApiKey
- toSerialize["created_at"] = o.CreatedAt
- toSerialize["id"] = o.Id
- if o.Label.IsSet() {
- toSerialize["label"] = o.Label.Get()
- }
- toSerialize["prefix"] = o.Prefix
- return toSerialize, nil
-}
-
-func (o *DriveApiKeyCreateOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "api_key",
- "created_at",
- "id",
- "prefix",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varDriveApiKeyCreateOut := _DriveApiKeyCreateOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varDriveApiKeyCreateOut)
-
- if err != nil {
- return err
- }
-
- *o = DriveApiKeyCreateOut(varDriveApiKeyCreateOut)
-
- return err
-}
-
-type NullableDriveApiKeyCreateOut struct {
- value *DriveApiKeyCreateOut
- isSet bool
-}
-
-func (v NullableDriveApiKeyCreateOut) Get() *DriveApiKeyCreateOut {
- return v.value
-}
-
-func (v *NullableDriveApiKeyCreateOut) Set(val *DriveApiKeyCreateOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableDriveApiKeyCreateOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableDriveApiKeyCreateOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableDriveApiKeyCreateOut(val *DriveApiKeyCreateOut) *NullableDriveApiKeyCreateOut {
- return &NullableDriveApiKeyCreateOut{value: val, isSet: true}
-}
-
-func (v NullableDriveApiKeyCreateOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableDriveApiKeyCreateOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_drive_api_key_list_out.go b/sdk/go/model_drive_api_key_list_out.go
deleted file mode 100644
index fa702e7..0000000
--- a/sdk/go/model_drive_api_key_list_out.go
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the DriveApiKeyListOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &DriveApiKeyListOut{}
-
-// DriveApiKeyListOut `GET /v0/drives/{id}/keys` response — the drive's keys, oldest first (keyset order, design §3), including recently-revoked rows (filter on `revoked_at` for live only). `items` is the canonical list field (B-3: one envelope key everywhere); `keys` is a deprecated same-value alias kept for one release — the REST twin of the grep `matches` / compile `jobs` aliases.
-type DriveApiKeyListOut struct {
- Items []DriveApiKeyOut `json:"items"`
- Keys []DriveApiKeyOut `json:"keys"`
- NextCursor NullableString `json:"next_cursor,omitempty"`
-}
-
-type _DriveApiKeyListOut DriveApiKeyListOut
-
-// NewDriveApiKeyListOut instantiates a new DriveApiKeyListOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewDriveApiKeyListOut(items []DriveApiKeyOut, keys []DriveApiKeyOut) *DriveApiKeyListOut {
- this := DriveApiKeyListOut{}
- this.Items = items
- this.Keys = keys
- return &this
-}
-
-// NewDriveApiKeyListOutWithDefaults instantiates a new DriveApiKeyListOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewDriveApiKeyListOutWithDefaults() *DriveApiKeyListOut {
- this := DriveApiKeyListOut{}
- return &this
-}
-
-// GetItems returns the Items field value
-func (o *DriveApiKeyListOut) GetItems() []DriveApiKeyOut {
- if o == nil {
- var ret []DriveApiKeyOut
- return ret
- }
-
- return o.Items
-}
-
-// GetItemsOk returns a tuple with the Items field value
-// and a boolean to check if the value has been set.
-func (o *DriveApiKeyListOut) GetItemsOk() ([]DriveApiKeyOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Items, true
-}
-
-// SetItems sets field value
-func (o *DriveApiKeyListOut) SetItems(v []DriveApiKeyOut) {
- o.Items = v
-}
-
-// GetKeys returns the Keys field value
-func (o *DriveApiKeyListOut) GetKeys() []DriveApiKeyOut {
- if o == nil {
- var ret []DriveApiKeyOut
- return ret
- }
-
- return o.Keys
-}
-
-// GetKeysOk returns a tuple with the Keys field value
-// and a boolean to check if the value has been set.
-func (o *DriveApiKeyListOut) GetKeysOk() ([]DriveApiKeyOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Keys, true
-}
-
-// SetKeys sets field value
-func (o *DriveApiKeyListOut) SetKeys(v []DriveApiKeyOut) {
- o.Keys = v
-}
-
-// GetNextCursor returns the NextCursor field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *DriveApiKeyListOut) GetNextCursor() string {
- if o == nil || IsNil(o.NextCursor.Get()) {
- var ret string
- return ret
- }
- return *o.NextCursor.Get()
-}
-
-// GetNextCursorOk returns a tuple with the NextCursor field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *DriveApiKeyListOut) GetNextCursorOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.NextCursor.Get(), o.NextCursor.IsSet()
-}
-
-// HasNextCursor returns a boolean if a field has been set.
-func (o *DriveApiKeyListOut) HasNextCursor() bool {
- if o != nil && o.NextCursor.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetNextCursor gets a reference to the given NullableString and assigns it to the NextCursor field.
-func (o *DriveApiKeyListOut) SetNextCursor(v string) {
- o.NextCursor.Set(&v)
-}
-// SetNextCursorNil sets the value for NextCursor to be an explicit nil
-func (o *DriveApiKeyListOut) SetNextCursorNil() {
- o.NextCursor.Set(nil)
-}
-
-// UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-func (o *DriveApiKeyListOut) UnsetNextCursor() {
- o.NextCursor.Unset()
-}
-
-func (o DriveApiKeyListOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o DriveApiKeyListOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["items"] = o.Items
- toSerialize["keys"] = o.Keys
- if o.NextCursor.IsSet() {
- toSerialize["next_cursor"] = o.NextCursor.Get()
- }
- return toSerialize, nil
-}
-
-func (o *DriveApiKeyListOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "items",
- "keys",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varDriveApiKeyListOut := _DriveApiKeyListOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varDriveApiKeyListOut)
-
- if err != nil {
- return err
- }
-
- *o = DriveApiKeyListOut(varDriveApiKeyListOut)
-
- return err
-}
-
-type NullableDriveApiKeyListOut struct {
- value *DriveApiKeyListOut
- isSet bool
-}
-
-func (v NullableDriveApiKeyListOut) Get() *DriveApiKeyListOut {
- return v.value
-}
-
-func (v *NullableDriveApiKeyListOut) Set(val *DriveApiKeyListOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableDriveApiKeyListOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableDriveApiKeyListOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableDriveApiKeyListOut(val *DriveApiKeyListOut) *NullableDriveApiKeyListOut {
- return &NullableDriveApiKeyListOut{value: val, isSet: true}
-}
-
-func (v NullableDriveApiKeyListOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableDriveApiKeyListOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_drive_api_key_out.go b/sdk/go/model_drive_api_key_out.go
deleted file mode 100644
index c6f2a43..0000000
--- a/sdk/go/model_drive_api_key_out.go
+++ /dev/null
@@ -1,351 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the DriveApiKeyOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &DriveApiKeyOut{}
-
-// DriveApiKeyOut One per-drive `ad_live_` key — metadata only (never the raw key or hash). Item shape for `GET /v0/drives/{id}/keys`.
-type DriveApiKeyOut struct {
- CreatedAt time.Time `json:"created_at"`
- Id string `json:"id"`
- Label NullableString `json:"label,omitempty"`
- LastUsedAt NullableTime `json:"last_used_at,omitempty"`
- Prefix string `json:"prefix"`
- RevokedAt NullableTime `json:"revoked_at,omitempty"`
-}
-
-type _DriveApiKeyOut DriveApiKeyOut
-
-// NewDriveApiKeyOut instantiates a new DriveApiKeyOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewDriveApiKeyOut(createdAt time.Time, id string, prefix string) *DriveApiKeyOut {
- this := DriveApiKeyOut{}
- this.CreatedAt = createdAt
- this.Id = id
- this.Prefix = prefix
- return &this
-}
-
-// NewDriveApiKeyOutWithDefaults instantiates a new DriveApiKeyOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewDriveApiKeyOutWithDefaults() *DriveApiKeyOut {
- this := DriveApiKeyOut{}
- return &this
-}
-
-// GetCreatedAt returns the CreatedAt field value
-func (o *DriveApiKeyOut) GetCreatedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.CreatedAt
-}
-
-// GetCreatedAtOk returns a tuple with the CreatedAt field value
-// and a boolean to check if the value has been set.
-func (o *DriveApiKeyOut) GetCreatedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.CreatedAt, true
-}
-
-// SetCreatedAt sets field value
-func (o *DriveApiKeyOut) SetCreatedAt(v time.Time) {
- o.CreatedAt = v
-}
-
-// GetId returns the Id field value
-func (o *DriveApiKeyOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *DriveApiKeyOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *DriveApiKeyOut) SetId(v string) {
- o.Id = v
-}
-
-// GetLabel returns the Label field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *DriveApiKeyOut) GetLabel() string {
- if o == nil || IsNil(o.Label.Get()) {
- var ret string
- return ret
- }
- return *o.Label.Get()
-}
-
-// GetLabelOk returns a tuple with the Label field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *DriveApiKeyOut) GetLabelOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Label.Get(), o.Label.IsSet()
-}
-
-// HasLabel returns a boolean if a field has been set.
-func (o *DriveApiKeyOut) HasLabel() bool {
- if o != nil && o.Label.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetLabel gets a reference to the given NullableString and assigns it to the Label field.
-func (o *DriveApiKeyOut) SetLabel(v string) {
- o.Label.Set(&v)
-}
-// SetLabelNil sets the value for Label to be an explicit nil
-func (o *DriveApiKeyOut) SetLabelNil() {
- o.Label.Set(nil)
-}
-
-// UnsetLabel ensures that no value is present for Label, not even an explicit nil
-func (o *DriveApiKeyOut) UnsetLabel() {
- o.Label.Unset()
-}
-
-// GetLastUsedAt returns the LastUsedAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *DriveApiKeyOut) GetLastUsedAt() time.Time {
- if o == nil || IsNil(o.LastUsedAt.Get()) {
- var ret time.Time
- return ret
- }
- return *o.LastUsedAt.Get()
-}
-
-// GetLastUsedAtOk returns a tuple with the LastUsedAt field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *DriveApiKeyOut) GetLastUsedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return o.LastUsedAt.Get(), o.LastUsedAt.IsSet()
-}
-
-// HasLastUsedAt returns a boolean if a field has been set.
-func (o *DriveApiKeyOut) HasLastUsedAt() bool {
- if o != nil && o.LastUsedAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetLastUsedAt gets a reference to the given NullableTime and assigns it to the LastUsedAt field.
-func (o *DriveApiKeyOut) SetLastUsedAt(v time.Time) {
- o.LastUsedAt.Set(&v)
-}
-// SetLastUsedAtNil sets the value for LastUsedAt to be an explicit nil
-func (o *DriveApiKeyOut) SetLastUsedAtNil() {
- o.LastUsedAt.Set(nil)
-}
-
-// UnsetLastUsedAt ensures that no value is present for LastUsedAt, not even an explicit nil
-func (o *DriveApiKeyOut) UnsetLastUsedAt() {
- o.LastUsedAt.Unset()
-}
-
-// GetPrefix returns the Prefix field value
-func (o *DriveApiKeyOut) GetPrefix() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Prefix
-}
-
-// GetPrefixOk returns a tuple with the Prefix field value
-// and a boolean to check if the value has been set.
-func (o *DriveApiKeyOut) GetPrefixOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Prefix, true
-}
-
-// SetPrefix sets field value
-func (o *DriveApiKeyOut) SetPrefix(v string) {
- o.Prefix = v
-}
-
-// GetRevokedAt returns the RevokedAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *DriveApiKeyOut) GetRevokedAt() time.Time {
- if o == nil || IsNil(o.RevokedAt.Get()) {
- var ret time.Time
- return ret
- }
- return *o.RevokedAt.Get()
-}
-
-// GetRevokedAtOk returns a tuple with the RevokedAt field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *DriveApiKeyOut) GetRevokedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return o.RevokedAt.Get(), o.RevokedAt.IsSet()
-}
-
-// HasRevokedAt returns a boolean if a field has been set.
-func (o *DriveApiKeyOut) HasRevokedAt() bool {
- if o != nil && o.RevokedAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetRevokedAt gets a reference to the given NullableTime and assigns it to the RevokedAt field.
-func (o *DriveApiKeyOut) SetRevokedAt(v time.Time) {
- o.RevokedAt.Set(&v)
-}
-// SetRevokedAtNil sets the value for RevokedAt to be an explicit nil
-func (o *DriveApiKeyOut) SetRevokedAtNil() {
- o.RevokedAt.Set(nil)
-}
-
-// UnsetRevokedAt ensures that no value is present for RevokedAt, not even an explicit nil
-func (o *DriveApiKeyOut) UnsetRevokedAt() {
- o.RevokedAt.Unset()
-}
-
-func (o DriveApiKeyOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o DriveApiKeyOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["created_at"] = o.CreatedAt
- toSerialize["id"] = o.Id
- if o.Label.IsSet() {
- toSerialize["label"] = o.Label.Get()
- }
- if o.LastUsedAt.IsSet() {
- toSerialize["last_used_at"] = o.LastUsedAt.Get()
- }
- toSerialize["prefix"] = o.Prefix
- if o.RevokedAt.IsSet() {
- toSerialize["revoked_at"] = o.RevokedAt.Get()
- }
- return toSerialize, nil
-}
-
-func (o *DriveApiKeyOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "created_at",
- "id",
- "prefix",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varDriveApiKeyOut := _DriveApiKeyOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varDriveApiKeyOut)
-
- if err != nil {
- return err
- }
-
- *o = DriveApiKeyOut(varDriveApiKeyOut)
-
- return err
-}
-
-type NullableDriveApiKeyOut struct {
- value *DriveApiKeyOut
- isSet bool
-}
-
-func (v NullableDriveApiKeyOut) Get() *DriveApiKeyOut {
- return v.value
-}
-
-func (v *NullableDriveApiKeyOut) Set(val *DriveApiKeyOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableDriveApiKeyOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableDriveApiKeyOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableDriveApiKeyOut(val *DriveApiKeyOut) *NullableDriveApiKeyOut {
- return &NullableDriveApiKeyOut{value: val, isSet: true}
-}
-
-func (v NullableDriveApiKeyOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableDriveApiKeyOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_drive_create_in.go b/sdk/go/model_drive_create_in.go
index ee13d8e..35b1950 100644
--- a/sdk/go/model_drive_create_in.go
+++ b/sdk/go/model_drive_create_in.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
@@ -12,16 +12,17 @@ package agentdrive
import (
"encoding/json"
- "bytes"
"fmt"
)
// checks if the DriveCreateIn type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &DriveCreateIn{}
-// DriveCreateIn POST /v0/drives body. `name` is the user-facing drive label; the creator becomes the owner.
+// DriveCreateIn POST /v0/drives body.
type DriveCreateIn struct {
+ Metadata map[string]interface{} `json:"metadata,omitempty"`
Name string `json:"name"`
+ AdditionalProperties map[string]interface{}
}
type _DriveCreateIn DriveCreateIn
@@ -44,6 +45,38 @@ func NewDriveCreateInWithDefaults() *DriveCreateIn {
return &this
}
+// GetMetadata returns the Metadata field value if set, zero value otherwise.
+func (o *DriveCreateIn) GetMetadata() map[string]interface{} {
+ if o == nil || IsNil(o.Metadata) {
+ var ret map[string]interface{}
+ return ret
+ }
+ return o.Metadata
+}
+
+// GetMetadataOk returns a tuple with the Metadata field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+func (o *DriveCreateIn) GetMetadataOk() (map[string]interface{}, bool) {
+ if o == nil || IsNil(o.Metadata) {
+ return map[string]interface{}{}, false
+ }
+ return o.Metadata, true
+}
+
+// HasMetadata returns a boolean if a field has been set.
+func (o *DriveCreateIn) HasMetadata() bool {
+ if o != nil && !IsNil(o.Metadata) {
+ return true
+ }
+
+ return false
+}
+
+// SetMetadata gets a reference to the given map[string]interface{} and assigns it to the Metadata field.
+func (o *DriveCreateIn) SetMetadata(v map[string]interface{}) {
+ o.Metadata = v
+}
+
// GetName returns the Name field value
func (o *DriveCreateIn) GetName() string {
if o == nil {
@@ -78,7 +111,15 @@ func (o DriveCreateIn) MarshalJSON() ([]byte, error) {
func (o DriveCreateIn) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
+ if !IsNil(o.Metadata) {
+ toSerialize["metadata"] = o.Metadata
+ }
toSerialize["name"] = o.Name
+
+ for key, value := range o.AdditionalProperties {
+ toSerialize[key] = value
+ }
+
return toSerialize, nil
}
@@ -106,9 +147,7 @@ func (o *DriveCreateIn) UnmarshalJSON(data []byte) (err error) {
varDriveCreateIn := _DriveCreateIn{}
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varDriveCreateIn)
+ err = json.Unmarshal(data, &varDriveCreateIn)
if err != nil {
return err
@@ -116,6 +155,14 @@ func (o *DriveCreateIn) UnmarshalJSON(data []byte) (err error) {
*o = DriveCreateIn(varDriveCreateIn)
+ additionalProperties := make(map[string]interface{})
+
+ if err = json.Unmarshal(data, &additionalProperties); err == nil {
+ delete(additionalProperties, "metadata")
+ delete(additionalProperties, "name")
+ o.AdditionalProperties = additionalProperties
+ }
+
return err
}
diff --git a/sdk/go/model_drive_create_out.go b/sdk/go/model_drive_create_out.go
deleted file mode 100644
index 6d1e73f..0000000
--- a/sdk/go/model_drive_create_out.go
+++ /dev/null
@@ -1,389 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the DriveCreateOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &DriveCreateOut{}
-
-// DriveCreateOut The create response — the ONLY place (besides key-rotate) a raw `ad_live_` key is returned, reveal-once.
-type DriveCreateOut struct {
- ApiKey string `json:"api_key"`
- CreatedAt time.Time `json:"created_at"`
- Id string `json:"id"`
- Name string `json:"name"`
- OrganizationId string `json:"organization_id"`
- OwnerEmail NullableString `json:"owner_email,omitempty"`
- OwnerUserId NullableString `json:"owner_user_id,omitempty"`
- StorageBytes int32 `json:"storage_bytes"`
-}
-
-type _DriveCreateOut DriveCreateOut
-
-// NewDriveCreateOut instantiates a new DriveCreateOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewDriveCreateOut(apiKey string, createdAt time.Time, id string, name string, organizationId string, storageBytes int32) *DriveCreateOut {
- this := DriveCreateOut{}
- this.ApiKey = apiKey
- this.CreatedAt = createdAt
- this.Id = id
- this.Name = name
- this.OrganizationId = organizationId
- this.StorageBytes = storageBytes
- return &this
-}
-
-// NewDriveCreateOutWithDefaults instantiates a new DriveCreateOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewDriveCreateOutWithDefaults() *DriveCreateOut {
- this := DriveCreateOut{}
- return &this
-}
-
-// GetApiKey returns the ApiKey field value
-func (o *DriveCreateOut) GetApiKey() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.ApiKey
-}
-
-// GetApiKeyOk returns a tuple with the ApiKey field value
-// and a boolean to check if the value has been set.
-func (o *DriveCreateOut) GetApiKeyOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ApiKey, true
-}
-
-// SetApiKey sets field value
-func (o *DriveCreateOut) SetApiKey(v string) {
- o.ApiKey = v
-}
-
-// GetCreatedAt returns the CreatedAt field value
-func (o *DriveCreateOut) GetCreatedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.CreatedAt
-}
-
-// GetCreatedAtOk returns a tuple with the CreatedAt field value
-// and a boolean to check if the value has been set.
-func (o *DriveCreateOut) GetCreatedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.CreatedAt, true
-}
-
-// SetCreatedAt sets field value
-func (o *DriveCreateOut) SetCreatedAt(v time.Time) {
- o.CreatedAt = v
-}
-
-// GetId returns the Id field value
-func (o *DriveCreateOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *DriveCreateOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *DriveCreateOut) SetId(v string) {
- o.Id = v
-}
-
-// GetName returns the Name field value
-func (o *DriveCreateOut) GetName() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Name
-}
-
-// GetNameOk returns a tuple with the Name field value
-// and a boolean to check if the value has been set.
-func (o *DriveCreateOut) GetNameOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Name, true
-}
-
-// SetName sets field value
-func (o *DriveCreateOut) SetName(v string) {
- o.Name = v
-}
-
-// GetOrganizationId returns the OrganizationId field value
-func (o *DriveCreateOut) GetOrganizationId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.OrganizationId
-}
-
-// GetOrganizationIdOk returns a tuple with the OrganizationId field value
-// and a boolean to check if the value has been set.
-func (o *DriveCreateOut) GetOrganizationIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.OrganizationId, true
-}
-
-// SetOrganizationId sets field value
-func (o *DriveCreateOut) SetOrganizationId(v string) {
- o.OrganizationId = v
-}
-
-// GetOwnerEmail returns the OwnerEmail field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *DriveCreateOut) GetOwnerEmail() string {
- if o == nil || IsNil(o.OwnerEmail.Get()) {
- var ret string
- return ret
- }
- return *o.OwnerEmail.Get()
-}
-
-// GetOwnerEmailOk returns a tuple with the OwnerEmail field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *DriveCreateOut) GetOwnerEmailOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.OwnerEmail.Get(), o.OwnerEmail.IsSet()
-}
-
-// HasOwnerEmail returns a boolean if a field has been set.
-func (o *DriveCreateOut) HasOwnerEmail() bool {
- if o != nil && o.OwnerEmail.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetOwnerEmail gets a reference to the given NullableString and assigns it to the OwnerEmail field.
-func (o *DriveCreateOut) SetOwnerEmail(v string) {
- o.OwnerEmail.Set(&v)
-}
-// SetOwnerEmailNil sets the value for OwnerEmail to be an explicit nil
-func (o *DriveCreateOut) SetOwnerEmailNil() {
- o.OwnerEmail.Set(nil)
-}
-
-// UnsetOwnerEmail ensures that no value is present for OwnerEmail, not even an explicit nil
-func (o *DriveCreateOut) UnsetOwnerEmail() {
- o.OwnerEmail.Unset()
-}
-
-// GetOwnerUserId returns the OwnerUserId field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *DriveCreateOut) GetOwnerUserId() string {
- if o == nil || IsNil(o.OwnerUserId.Get()) {
- var ret string
- return ret
- }
- return *o.OwnerUserId.Get()
-}
-
-// GetOwnerUserIdOk returns a tuple with the OwnerUserId field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *DriveCreateOut) GetOwnerUserIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.OwnerUserId.Get(), o.OwnerUserId.IsSet()
-}
-
-// HasOwnerUserId returns a boolean if a field has been set.
-func (o *DriveCreateOut) HasOwnerUserId() bool {
- if o != nil && o.OwnerUserId.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetOwnerUserId gets a reference to the given NullableString and assigns it to the OwnerUserId field.
-func (o *DriveCreateOut) SetOwnerUserId(v string) {
- o.OwnerUserId.Set(&v)
-}
-// SetOwnerUserIdNil sets the value for OwnerUserId to be an explicit nil
-func (o *DriveCreateOut) SetOwnerUserIdNil() {
- o.OwnerUserId.Set(nil)
-}
-
-// UnsetOwnerUserId ensures that no value is present for OwnerUserId, not even an explicit nil
-func (o *DriveCreateOut) UnsetOwnerUserId() {
- o.OwnerUserId.Unset()
-}
-
-// GetStorageBytes returns the StorageBytes field value
-func (o *DriveCreateOut) GetStorageBytes() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.StorageBytes
-}
-
-// GetStorageBytesOk returns a tuple with the StorageBytes field value
-// and a boolean to check if the value has been set.
-func (o *DriveCreateOut) GetStorageBytesOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.StorageBytes, true
-}
-
-// SetStorageBytes sets field value
-func (o *DriveCreateOut) SetStorageBytes(v int32) {
- o.StorageBytes = v
-}
-
-func (o DriveCreateOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o DriveCreateOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["api_key"] = o.ApiKey
- toSerialize["created_at"] = o.CreatedAt
- toSerialize["id"] = o.Id
- toSerialize["name"] = o.Name
- toSerialize["organization_id"] = o.OrganizationId
- if o.OwnerEmail.IsSet() {
- toSerialize["owner_email"] = o.OwnerEmail.Get()
- }
- if o.OwnerUserId.IsSet() {
- toSerialize["owner_user_id"] = o.OwnerUserId.Get()
- }
- toSerialize["storage_bytes"] = o.StorageBytes
- return toSerialize, nil
-}
-
-func (o *DriveCreateOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "api_key",
- "created_at",
- "id",
- "name",
- "organization_id",
- "storage_bytes",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varDriveCreateOut := _DriveCreateOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varDriveCreateOut)
-
- if err != nil {
- return err
- }
-
- *o = DriveCreateOut(varDriveCreateOut)
-
- return err
-}
-
-type NullableDriveCreateOut struct {
- value *DriveCreateOut
- isSet bool
-}
-
-func (v NullableDriveCreateOut) Get() *DriveCreateOut {
- return v.value
-}
-
-func (v *NullableDriveCreateOut) Set(val *DriveCreateOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableDriveCreateOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableDriveCreateOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableDriveCreateOut(val *DriveCreateOut) *NullableDriveCreateOut {
- return &NullableDriveCreateOut{value: val, isSet: true}
-}
-
-func (v NullableDriveCreateOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableDriveCreateOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_drive_delete_out.go b/sdk/go/model_drive_delete_out.go
deleted file mode 100644
index 9269f54..0000000
--- a/sdk/go/model_drive_delete_out.go
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the DriveDeleteOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &DriveDeleteOut{}
-
-// DriveDeleteOut DELETE /v0/drives/{drive_id} response — the drive soft-delete receipt. Reversible until the GC cron hard-deletes at `purge_at`; `restore_url` points at the drive restore endpoint (deletion-design.md §5.2).
-type DriveDeleteOut struct {
- DeletedAt time.Time `json:"deleted_at"`
- Id string `json:"id"`
- Ok *bool `json:"ok,omitempty"`
- PurgeAt time.Time `json:"purge_at"`
- RestoreUrl NullableString `json:"restore_url,omitempty"`
-}
-
-type _DriveDeleteOut DriveDeleteOut
-
-// NewDriveDeleteOut instantiates a new DriveDeleteOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewDriveDeleteOut(deletedAt time.Time, id string, purgeAt time.Time) *DriveDeleteOut {
- this := DriveDeleteOut{}
- this.DeletedAt = deletedAt
- this.Id = id
- var ok bool = true
- this.Ok = &ok
- this.PurgeAt = purgeAt
- return &this
-}
-
-// NewDriveDeleteOutWithDefaults instantiates a new DriveDeleteOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewDriveDeleteOutWithDefaults() *DriveDeleteOut {
- this := DriveDeleteOut{}
- var ok bool = true
- this.Ok = &ok
- return &this
-}
-
-// GetDeletedAt returns the DeletedAt field value
-func (o *DriveDeleteOut) GetDeletedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.DeletedAt
-}
-
-// GetDeletedAtOk returns a tuple with the DeletedAt field value
-// and a boolean to check if the value has been set.
-func (o *DriveDeleteOut) GetDeletedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.DeletedAt, true
-}
-
-// SetDeletedAt sets field value
-func (o *DriveDeleteOut) SetDeletedAt(v time.Time) {
- o.DeletedAt = v
-}
-
-// GetId returns the Id field value
-func (o *DriveDeleteOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *DriveDeleteOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *DriveDeleteOut) SetId(v string) {
- o.Id = v
-}
-
-// GetOk returns the Ok field value if set, zero value otherwise.
-func (o *DriveDeleteOut) GetOk() bool {
- if o == nil || IsNil(o.Ok) {
- var ret bool
- return ret
- }
- return *o.Ok
-}
-
-// GetOkOk returns a tuple with the Ok field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *DriveDeleteOut) GetOkOk() (*bool, bool) {
- if o == nil || IsNil(o.Ok) {
- return nil, false
- }
- return o.Ok, true
-}
-
-// HasOk returns a boolean if a field has been set.
-func (o *DriveDeleteOut) HasOk() bool {
- if o != nil && !IsNil(o.Ok) {
- return true
- }
-
- return false
-}
-
-// SetOk gets a reference to the given bool and assigns it to the Ok field.
-func (o *DriveDeleteOut) SetOk(v bool) {
- o.Ok = &v
-}
-
-// GetPurgeAt returns the PurgeAt field value
-func (o *DriveDeleteOut) GetPurgeAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.PurgeAt
-}
-
-// GetPurgeAtOk returns a tuple with the PurgeAt field value
-// and a boolean to check if the value has been set.
-func (o *DriveDeleteOut) GetPurgeAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.PurgeAt, true
-}
-
-// SetPurgeAt sets field value
-func (o *DriveDeleteOut) SetPurgeAt(v time.Time) {
- o.PurgeAt = v
-}
-
-// GetRestoreUrl returns the RestoreUrl field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *DriveDeleteOut) GetRestoreUrl() string {
- if o == nil || IsNil(o.RestoreUrl.Get()) {
- var ret string
- return ret
- }
- return *o.RestoreUrl.Get()
-}
-
-// GetRestoreUrlOk returns a tuple with the RestoreUrl field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *DriveDeleteOut) GetRestoreUrlOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.RestoreUrl.Get(), o.RestoreUrl.IsSet()
-}
-
-// HasRestoreUrl returns a boolean if a field has been set.
-func (o *DriveDeleteOut) HasRestoreUrl() bool {
- if o != nil && o.RestoreUrl.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetRestoreUrl gets a reference to the given NullableString and assigns it to the RestoreUrl field.
-func (o *DriveDeleteOut) SetRestoreUrl(v string) {
- o.RestoreUrl.Set(&v)
-}
-// SetRestoreUrlNil sets the value for RestoreUrl to be an explicit nil
-func (o *DriveDeleteOut) SetRestoreUrlNil() {
- o.RestoreUrl.Set(nil)
-}
-
-// UnsetRestoreUrl ensures that no value is present for RestoreUrl, not even an explicit nil
-func (o *DriveDeleteOut) UnsetRestoreUrl() {
- o.RestoreUrl.Unset()
-}
-
-func (o DriveDeleteOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o DriveDeleteOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["deleted_at"] = o.DeletedAt
- toSerialize["id"] = o.Id
- if !IsNil(o.Ok) {
- toSerialize["ok"] = o.Ok
- }
- toSerialize["purge_at"] = o.PurgeAt
- if o.RestoreUrl.IsSet() {
- toSerialize["restore_url"] = o.RestoreUrl.Get()
- }
- return toSerialize, nil
-}
-
-func (o *DriveDeleteOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "deleted_at",
- "id",
- "purge_at",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varDriveDeleteOut := _DriveDeleteOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varDriveDeleteOut)
-
- if err != nil {
- return err
- }
-
- *o = DriveDeleteOut(varDriveDeleteOut)
-
- return err
-}
-
-type NullableDriveDeleteOut struct {
- value *DriveDeleteOut
- isSet bool
-}
-
-func (v NullableDriveDeleteOut) Get() *DriveDeleteOut {
- return v.value
-}
-
-func (v *NullableDriveDeleteOut) Set(val *DriveDeleteOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableDriveDeleteOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableDriveDeleteOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableDriveDeleteOut(val *DriveDeleteOut) *NullableDriveDeleteOut {
- return &NullableDriveDeleteOut{value: val, isSet: true}
-}
-
-func (v NullableDriveDeleteOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableDriveDeleteOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_drive_list.go b/sdk/go/model_drive_list.go
deleted file mode 100644
index 4f4f877..0000000
--- a/sdk/go/model_drive_list.go
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the DriveList type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &DriveList{}
-
-// DriveList struct for DriveList
-type DriveList struct {
- Items []DriveOut `json:"items"`
- NextCursor NullableString `json:"next_cursor,omitempty"`
-}
-
-type _DriveList DriveList
-
-// NewDriveList instantiates a new DriveList object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewDriveList(items []DriveOut) *DriveList {
- this := DriveList{}
- this.Items = items
- return &this
-}
-
-// NewDriveListWithDefaults instantiates a new DriveList object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewDriveListWithDefaults() *DriveList {
- this := DriveList{}
- return &this
-}
-
-// GetItems returns the Items field value
-func (o *DriveList) GetItems() []DriveOut {
- if o == nil {
- var ret []DriveOut
- return ret
- }
-
- return o.Items
-}
-
-// GetItemsOk returns a tuple with the Items field value
-// and a boolean to check if the value has been set.
-func (o *DriveList) GetItemsOk() ([]DriveOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Items, true
-}
-
-// SetItems sets field value
-func (o *DriveList) SetItems(v []DriveOut) {
- o.Items = v
-}
-
-// GetNextCursor returns the NextCursor field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *DriveList) GetNextCursor() string {
- if o == nil || IsNil(o.NextCursor.Get()) {
- var ret string
- return ret
- }
- return *o.NextCursor.Get()
-}
-
-// GetNextCursorOk returns a tuple with the NextCursor field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *DriveList) GetNextCursorOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.NextCursor.Get(), o.NextCursor.IsSet()
-}
-
-// HasNextCursor returns a boolean if a field has been set.
-func (o *DriveList) HasNextCursor() bool {
- if o != nil && o.NextCursor.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetNextCursor gets a reference to the given NullableString and assigns it to the NextCursor field.
-func (o *DriveList) SetNextCursor(v string) {
- o.NextCursor.Set(&v)
-}
-// SetNextCursorNil sets the value for NextCursor to be an explicit nil
-func (o *DriveList) SetNextCursorNil() {
- o.NextCursor.Set(nil)
-}
-
-// UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-func (o *DriveList) UnsetNextCursor() {
- o.NextCursor.Unset()
-}
-
-func (o DriveList) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o DriveList) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["items"] = o.Items
- if o.NextCursor.IsSet() {
- toSerialize["next_cursor"] = o.NextCursor.Get()
- }
- return toSerialize, nil
-}
-
-func (o *DriveList) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "items",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varDriveList := _DriveList{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varDriveList)
-
- if err != nil {
- return err
- }
-
- *o = DriveList(varDriveList)
-
- return err
-}
-
-type NullableDriveList struct {
- value *DriveList
- isSet bool
-}
-
-func (v NullableDriveList) Get() *DriveList {
- return v.value
-}
-
-func (v *NullableDriveList) Set(val *DriveList) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableDriveList) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableDriveList) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableDriveList(val *DriveList) *NullableDriveList {
- return &NullableDriveList{value: val, isSet: true}
-}
-
-func (v NullableDriveList) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableDriveList) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_drive_list_out.go b/sdk/go/model_drive_list_out.go
new file mode 100644
index 0000000..210288c
--- /dev/null
+++ b/sdk/go/model_drive_list_out.go
@@ -0,0 +1,186 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "bytes"
+ "fmt"
+)
+
+// checks if the DriveListOut type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &DriveListOut{}
+
+// DriveListOut struct for DriveListOut
+type DriveListOut struct {
+ Items []DriveOut `json:"items"`
+ NextCursor NullableString `json:"next_cursor"`
+}
+
+type _DriveListOut DriveListOut
+
+// NewDriveListOut instantiates a new DriveListOut object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewDriveListOut(items []DriveOut, nextCursor NullableString) *DriveListOut {
+ this := DriveListOut{}
+ this.Items = items
+ this.NextCursor = nextCursor
+ return &this
+}
+
+// NewDriveListOutWithDefaults instantiates a new DriveListOut object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewDriveListOutWithDefaults() *DriveListOut {
+ this := DriveListOut{}
+ return &this
+}
+
+// GetItems returns the Items field value
+func (o *DriveListOut) GetItems() []DriveOut {
+ if o == nil {
+ var ret []DriveOut
+ return ret
+ }
+
+ return o.Items
+}
+
+// GetItemsOk returns a tuple with the Items field value
+// and a boolean to check if the value has been set.
+func (o *DriveListOut) GetItemsOk() ([]DriveOut, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.Items, true
+}
+
+// SetItems sets field value
+func (o *DriveListOut) SetItems(v []DriveOut) {
+ o.Items = v
+}
+
+// GetNextCursor returns the NextCursor field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *DriveListOut) GetNextCursor() string {
+ if o == nil || o.NextCursor.Get() == nil {
+ var ret string
+ return ret
+ }
+
+ return *o.NextCursor.Get()
+}
+
+// GetNextCursorOk returns a tuple with the NextCursor field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *DriveListOut) GetNextCursorOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.NextCursor.Get(), o.NextCursor.IsSet()
+}
+
+// SetNextCursor sets field value
+func (o *DriveListOut) SetNextCursor(v string) {
+ o.NextCursor.Set(&v)
+}
+
+func (o DriveListOut) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o DriveListOut) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["items"] = o.Items
+ toSerialize["next_cursor"] = o.NextCursor.Get()
+ return toSerialize, nil
+}
+
+func (o *DriveListOut) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "items",
+ "next_cursor",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varDriveListOut := _DriveListOut{}
+
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varDriveListOut)
+
+ if err != nil {
+ return err
+ }
+
+ *o = DriveListOut(varDriveListOut)
+
+ return err
+}
+
+type NullableDriveListOut struct {
+ value *DriveListOut
+ isSet bool
+}
+
+func (v NullableDriveListOut) Get() *DriveListOut {
+ return v.value
+}
+
+func (v *NullableDriveListOut) Set(val *DriveListOut) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableDriveListOut) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableDriveListOut) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableDriveListOut(val *DriveListOut) *NullableDriveListOut {
+ return &NullableDriveListOut{value: val, isSet: true}
+}
+
+func (v NullableDriveListOut) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableDriveListOut) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_drive_out.go b/sdk/go/model_drive_out.go
index 5ce837f..41f4c66 100644
--- a/sdk/go/model_drive_out.go
+++ b/sdk/go/model_drive_out.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
@@ -20,15 +20,21 @@ import (
// checks if the DriveOut type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &DriveOut{}
-// DriveOut One drive in a listing — metadata only (workspaces-design §4.2). Carries NO capability and NEVER a raw key. An admin's inventory and a member's owned list both serialize to this shape; `owner_email` is the only owner-identifying field surfaced.
+// DriveOut struct for DriveOut
type DriveOut struct {
CreatedAt time.Time `json:"created_at"`
- Id string `json:"id"`
+ CreatedBy NullableString `json:"created_by"`
+ DeletedAt NullableTime `json:"deleted_at"`
+ Id string `json:"id" validate:"regexp=^drv_[a-f0-9]{16}$"`
+ Metadata map[string]interface{} `json:"metadata"`
Name string `json:"name"`
- OrganizationId string `json:"organization_id"`
- OwnerEmail NullableString `json:"owner_email,omitempty"`
- OwnerUserId NullableString `json:"owner_user_id,omitempty"`
+ RetrievalBytes int32 `json:"retrieval_bytes"`
+ Revision string `json:"revision" validate:"regexp=^rev_[a-f0-9]{16}$"`
+ RootFolderId string `json:"root_folder_id"`
+ State string `json:"state"`
StorageBytes int32 `json:"storage_bytes"`
+ UpdatedAt time.Time `json:"updated_at"`
+ WorkspaceId string `json:"workspace_id"`
}
type _DriveOut DriveOut
@@ -37,13 +43,21 @@ type _DriveOut DriveOut
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
-func NewDriveOut(createdAt time.Time, id string, name string, organizationId string, storageBytes int32) *DriveOut {
+func NewDriveOut(createdAt time.Time, createdBy NullableString, deletedAt NullableTime, id string, metadata map[string]interface{}, name string, retrievalBytes int32, revision string, rootFolderId string, state string, storageBytes int32, updatedAt time.Time, workspaceId string) *DriveOut {
this := DriveOut{}
this.CreatedAt = createdAt
+ this.CreatedBy = createdBy
+ this.DeletedAt = deletedAt
this.Id = id
+ this.Metadata = metadata
this.Name = name
- this.OrganizationId = organizationId
+ this.RetrievalBytes = retrievalBytes
+ this.Revision = revision
+ this.RootFolderId = rootFolderId
+ this.State = state
this.StorageBytes = storageBytes
+ this.UpdatedAt = updatedAt
+ this.WorkspaceId = workspaceId
return &this
}
@@ -79,6 +93,58 @@ func (o *DriveOut) SetCreatedAt(v time.Time) {
o.CreatedAt = v
}
+// GetCreatedBy returns the CreatedBy field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *DriveOut) GetCreatedBy() string {
+ if o == nil || o.CreatedBy.Get() == nil {
+ var ret string
+ return ret
+ }
+
+ return *o.CreatedBy.Get()
+}
+
+// GetCreatedByOk returns a tuple with the CreatedBy field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *DriveOut) GetCreatedByOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.CreatedBy.Get(), o.CreatedBy.IsSet()
+}
+
+// SetCreatedBy sets field value
+func (o *DriveOut) SetCreatedBy(v string) {
+ o.CreatedBy.Set(&v)
+}
+
+// GetDeletedAt returns the DeletedAt field value
+// If the value is explicit nil, the zero value for time.Time will be returned
+func (o *DriveOut) GetDeletedAt() time.Time {
+ if o == nil || o.DeletedAt.Get() == nil {
+ var ret time.Time
+ return ret
+ }
+
+ return *o.DeletedAt.Get()
+}
+
+// GetDeletedAtOk returns a tuple with the DeletedAt field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *DriveOut) GetDeletedAtOk() (*time.Time, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.DeletedAt.Get(), o.DeletedAt.IsSet()
+}
+
+// SetDeletedAt sets field value
+func (o *DriveOut) SetDeletedAt(v time.Time) {
+ o.DeletedAt.Set(&v)
+}
+
// GetId returns the Id field value
func (o *DriveOut) GetId() string {
if o == nil {
@@ -103,6 +169,30 @@ func (o *DriveOut) SetId(v string) {
o.Id = v
}
+// GetMetadata returns the Metadata field value
+func (o *DriveOut) GetMetadata() map[string]interface{} {
+ if o == nil {
+ var ret map[string]interface{}
+ return ret
+ }
+
+ return o.Metadata
+}
+
+// GetMetadataOk returns a tuple with the Metadata field value
+// and a boolean to check if the value has been set.
+func (o *DriveOut) GetMetadataOk() (map[string]interface{}, bool) {
+ if o == nil {
+ return map[string]interface{}{}, false
+ }
+ return o.Metadata, true
+}
+
+// SetMetadata sets field value
+func (o *DriveOut) SetMetadata(v map[string]interface{}) {
+ o.Metadata = v
+}
+
// GetName returns the Name field value
func (o *DriveOut) GetName() string {
if o == nil {
@@ -127,112 +217,100 @@ func (o *DriveOut) SetName(v string) {
o.Name = v
}
-// GetOrganizationId returns the OrganizationId field value
-func (o *DriveOut) GetOrganizationId() string {
+// GetRetrievalBytes returns the RetrievalBytes field value
+func (o *DriveOut) GetRetrievalBytes() int32 {
if o == nil {
- var ret string
+ var ret int32
return ret
}
- return o.OrganizationId
+ return o.RetrievalBytes
}
-// GetOrganizationIdOk returns a tuple with the OrganizationId field value
+// GetRetrievalBytesOk returns a tuple with the RetrievalBytes field value
// and a boolean to check if the value has been set.
-func (o *DriveOut) GetOrganizationIdOk() (*string, bool) {
+func (o *DriveOut) GetRetrievalBytesOk() (*int32, bool) {
if o == nil {
return nil, false
}
- return &o.OrganizationId, true
+ return &o.RetrievalBytes, true
}
-// SetOrganizationId sets field value
-func (o *DriveOut) SetOrganizationId(v string) {
- o.OrganizationId = v
+// SetRetrievalBytes sets field value
+func (o *DriveOut) SetRetrievalBytes(v int32) {
+ o.RetrievalBytes = v
}
-// GetOwnerEmail returns the OwnerEmail field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *DriveOut) GetOwnerEmail() string {
- if o == nil || IsNil(o.OwnerEmail.Get()) {
+// GetRevision returns the Revision field value
+func (o *DriveOut) GetRevision() string {
+ if o == nil {
var ret string
return ret
}
- return *o.OwnerEmail.Get()
+
+ return o.Revision
}
-// GetOwnerEmailOk returns a tuple with the OwnerEmail field value if set, nil otherwise
+// GetRevisionOk returns a tuple with the Revision field value
// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *DriveOut) GetOwnerEmailOk() (*string, bool) {
+func (o *DriveOut) GetRevisionOk() (*string, bool) {
if o == nil {
return nil, false
}
- return o.OwnerEmail.Get(), o.OwnerEmail.IsSet()
-}
-
-// HasOwnerEmail returns a boolean if a field has been set.
-func (o *DriveOut) HasOwnerEmail() bool {
- if o != nil && o.OwnerEmail.IsSet() {
- return true
- }
-
- return false
+ return &o.Revision, true
}
-// SetOwnerEmail gets a reference to the given NullableString and assigns it to the OwnerEmail field.
-func (o *DriveOut) SetOwnerEmail(v string) {
- o.OwnerEmail.Set(&v)
-}
-// SetOwnerEmailNil sets the value for OwnerEmail to be an explicit nil
-func (o *DriveOut) SetOwnerEmailNil() {
- o.OwnerEmail.Set(nil)
+// SetRevision sets field value
+func (o *DriveOut) SetRevision(v string) {
+ o.Revision = v
}
-// UnsetOwnerEmail ensures that no value is present for OwnerEmail, not even an explicit nil
-func (o *DriveOut) UnsetOwnerEmail() {
- o.OwnerEmail.Unset()
-}
-
-// GetOwnerUserId returns the OwnerUserId field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *DriveOut) GetOwnerUserId() string {
- if o == nil || IsNil(o.OwnerUserId.Get()) {
+// GetRootFolderId returns the RootFolderId field value
+func (o *DriveOut) GetRootFolderId() string {
+ if o == nil {
var ret string
return ret
}
- return *o.OwnerUserId.Get()
+
+ return o.RootFolderId
}
-// GetOwnerUserIdOk returns a tuple with the OwnerUserId field value if set, nil otherwise
+// GetRootFolderIdOk returns a tuple with the RootFolderId field value
// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *DriveOut) GetOwnerUserIdOk() (*string, bool) {
+func (o *DriveOut) GetRootFolderIdOk() (*string, bool) {
if o == nil {
return nil, false
}
- return o.OwnerUserId.Get(), o.OwnerUserId.IsSet()
+ return &o.RootFolderId, true
+}
+
+// SetRootFolderId sets field value
+func (o *DriveOut) SetRootFolderId(v string) {
+ o.RootFolderId = v
}
-// HasOwnerUserId returns a boolean if a field has been set.
-func (o *DriveOut) HasOwnerUserId() bool {
- if o != nil && o.OwnerUserId.IsSet() {
- return true
+// GetState returns the State field value
+func (o *DriveOut) GetState() string {
+ if o == nil {
+ var ret string
+ return ret
}
- return false
+ return o.State
}
-// SetOwnerUserId gets a reference to the given NullableString and assigns it to the OwnerUserId field.
-func (o *DriveOut) SetOwnerUserId(v string) {
- o.OwnerUserId.Set(&v)
-}
-// SetOwnerUserIdNil sets the value for OwnerUserId to be an explicit nil
-func (o *DriveOut) SetOwnerUserIdNil() {
- o.OwnerUserId.Set(nil)
+// GetStateOk returns a tuple with the State field value
+// and a boolean to check if the value has been set.
+func (o *DriveOut) GetStateOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.State, true
}
-// UnsetOwnerUserId ensures that no value is present for OwnerUserId, not even an explicit nil
-func (o *DriveOut) UnsetOwnerUserId() {
- o.OwnerUserId.Unset()
+// SetState sets field value
+func (o *DriveOut) SetState(v string) {
+ o.State = v
}
// GetStorageBytes returns the StorageBytes field value
@@ -259,6 +337,54 @@ func (o *DriveOut) SetStorageBytes(v int32) {
o.StorageBytes = v
}
+// GetUpdatedAt returns the UpdatedAt field value
+func (o *DriveOut) GetUpdatedAt() time.Time {
+ if o == nil {
+ var ret time.Time
+ return ret
+ }
+
+ return o.UpdatedAt
+}
+
+// GetUpdatedAtOk returns a tuple with the UpdatedAt field value
+// and a boolean to check if the value has been set.
+func (o *DriveOut) GetUpdatedAtOk() (*time.Time, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.UpdatedAt, true
+}
+
+// SetUpdatedAt sets field value
+func (o *DriveOut) SetUpdatedAt(v time.Time) {
+ o.UpdatedAt = v
+}
+
+// GetWorkspaceId returns the WorkspaceId field value
+func (o *DriveOut) GetWorkspaceId() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.WorkspaceId
+}
+
+// GetWorkspaceIdOk returns a tuple with the WorkspaceId field value
+// and a boolean to check if the value has been set.
+func (o *DriveOut) GetWorkspaceIdOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.WorkspaceId, true
+}
+
+// SetWorkspaceId sets field value
+func (o *DriveOut) SetWorkspaceId(v string) {
+ o.WorkspaceId = v
+}
+
func (o DriveOut) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
@@ -270,16 +396,18 @@ func (o DriveOut) MarshalJSON() ([]byte, error) {
func (o DriveOut) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
toSerialize["created_at"] = o.CreatedAt
+ toSerialize["created_by"] = o.CreatedBy.Get()
+ toSerialize["deleted_at"] = o.DeletedAt.Get()
toSerialize["id"] = o.Id
+ toSerialize["metadata"] = o.Metadata
toSerialize["name"] = o.Name
- toSerialize["organization_id"] = o.OrganizationId
- if o.OwnerEmail.IsSet() {
- toSerialize["owner_email"] = o.OwnerEmail.Get()
- }
- if o.OwnerUserId.IsSet() {
- toSerialize["owner_user_id"] = o.OwnerUserId.Get()
- }
+ toSerialize["retrieval_bytes"] = o.RetrievalBytes
+ toSerialize["revision"] = o.Revision
+ toSerialize["root_folder_id"] = o.RootFolderId
+ toSerialize["state"] = o.State
toSerialize["storage_bytes"] = o.StorageBytes
+ toSerialize["updated_at"] = o.UpdatedAt
+ toSerialize["workspace_id"] = o.WorkspaceId
return toSerialize, nil
}
@@ -289,10 +417,18 @@ func (o *DriveOut) UnmarshalJSON(data []byte) (err error) {
// that every required field exists as a key in the generic map.
requiredProperties := []string{
"created_at",
+ "created_by",
+ "deleted_at",
"id",
+ "metadata",
"name",
- "organization_id",
+ "retrieval_bytes",
+ "revision",
+ "root_folder_id",
+ "state",
"storage_bytes",
+ "updated_at",
+ "workspace_id",
}
allProperties := make(map[string]interface{})
diff --git a/sdk/go/model_drive_read_out.go b/sdk/go/model_drive_read_out.go
deleted file mode 100644
index 3c3f399..0000000
--- a/sdk/go/model_drive_read_out.go
+++ /dev/null
@@ -1,371 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the DriveReadOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &DriveReadOut{}
-
-// DriveReadOut Drive singleton shape returned by both data-plane read routes.
-type DriveReadOut struct {
- CreatedAt time.Time `json:"created_at"`
- Email NullableString `json:"email,omitempty"`
- Etag string `json:"etag"`
- Id string `json:"id"`
- Metageneration int32 `json:"metageneration"`
- OrganizationId string `json:"organization_id"`
- StorageBytes int32 `json:"storage_bytes"`
- StorageLimit int32 `json:"storage_limit"`
-}
-
-type _DriveReadOut DriveReadOut
-
-// NewDriveReadOut instantiates a new DriveReadOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewDriveReadOut(createdAt time.Time, etag string, id string, metageneration int32, organizationId string, storageBytes int32, storageLimit int32) *DriveReadOut {
- this := DriveReadOut{}
- this.CreatedAt = createdAt
- this.Etag = etag
- this.Id = id
- this.Metageneration = metageneration
- this.OrganizationId = organizationId
- this.StorageBytes = storageBytes
- this.StorageLimit = storageLimit
- return &this
-}
-
-// NewDriveReadOutWithDefaults instantiates a new DriveReadOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewDriveReadOutWithDefaults() *DriveReadOut {
- this := DriveReadOut{}
- return &this
-}
-
-// GetCreatedAt returns the CreatedAt field value
-func (o *DriveReadOut) GetCreatedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.CreatedAt
-}
-
-// GetCreatedAtOk returns a tuple with the CreatedAt field value
-// and a boolean to check if the value has been set.
-func (o *DriveReadOut) GetCreatedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.CreatedAt, true
-}
-
-// SetCreatedAt sets field value
-func (o *DriveReadOut) SetCreatedAt(v time.Time) {
- o.CreatedAt = v
-}
-
-// GetEmail returns the Email field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *DriveReadOut) GetEmail() string {
- if o == nil || IsNil(o.Email.Get()) {
- var ret string
- return ret
- }
- return *o.Email.Get()
-}
-
-// GetEmailOk returns a tuple with the Email field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *DriveReadOut) GetEmailOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Email.Get(), o.Email.IsSet()
-}
-
-// HasEmail returns a boolean if a field has been set.
-func (o *DriveReadOut) HasEmail() bool {
- if o != nil && o.Email.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetEmail gets a reference to the given NullableString and assigns it to the Email field.
-func (o *DriveReadOut) SetEmail(v string) {
- o.Email.Set(&v)
-}
-// SetEmailNil sets the value for Email to be an explicit nil
-func (o *DriveReadOut) SetEmailNil() {
- o.Email.Set(nil)
-}
-
-// UnsetEmail ensures that no value is present for Email, not even an explicit nil
-func (o *DriveReadOut) UnsetEmail() {
- o.Email.Unset()
-}
-
-// GetEtag returns the Etag field value
-func (o *DriveReadOut) GetEtag() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Etag
-}
-
-// GetEtagOk returns a tuple with the Etag field value
-// and a boolean to check if the value has been set.
-func (o *DriveReadOut) GetEtagOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Etag, true
-}
-
-// SetEtag sets field value
-func (o *DriveReadOut) SetEtag(v string) {
- o.Etag = v
-}
-
-// GetId returns the Id field value
-func (o *DriveReadOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *DriveReadOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *DriveReadOut) SetId(v string) {
- o.Id = v
-}
-
-// GetMetageneration returns the Metageneration field value
-func (o *DriveReadOut) GetMetageneration() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.Metageneration
-}
-
-// GetMetagenerationOk returns a tuple with the Metageneration field value
-// and a boolean to check if the value has been set.
-func (o *DriveReadOut) GetMetagenerationOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Metageneration, true
-}
-
-// SetMetageneration sets field value
-func (o *DriveReadOut) SetMetageneration(v int32) {
- o.Metageneration = v
-}
-
-// GetOrganizationId returns the OrganizationId field value
-func (o *DriveReadOut) GetOrganizationId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.OrganizationId
-}
-
-// GetOrganizationIdOk returns a tuple with the OrganizationId field value
-// and a boolean to check if the value has been set.
-func (o *DriveReadOut) GetOrganizationIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.OrganizationId, true
-}
-
-// SetOrganizationId sets field value
-func (o *DriveReadOut) SetOrganizationId(v string) {
- o.OrganizationId = v
-}
-
-// GetStorageBytes returns the StorageBytes field value
-func (o *DriveReadOut) GetStorageBytes() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.StorageBytes
-}
-
-// GetStorageBytesOk returns a tuple with the StorageBytes field value
-// and a boolean to check if the value has been set.
-func (o *DriveReadOut) GetStorageBytesOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.StorageBytes, true
-}
-
-// SetStorageBytes sets field value
-func (o *DriveReadOut) SetStorageBytes(v int32) {
- o.StorageBytes = v
-}
-
-// GetStorageLimit returns the StorageLimit field value
-func (o *DriveReadOut) GetStorageLimit() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.StorageLimit
-}
-
-// GetStorageLimitOk returns a tuple with the StorageLimit field value
-// and a boolean to check if the value has been set.
-func (o *DriveReadOut) GetStorageLimitOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.StorageLimit, true
-}
-
-// SetStorageLimit sets field value
-func (o *DriveReadOut) SetStorageLimit(v int32) {
- o.StorageLimit = v
-}
-
-func (o DriveReadOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o DriveReadOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["created_at"] = o.CreatedAt
- if o.Email.IsSet() {
- toSerialize["email"] = o.Email.Get()
- }
- toSerialize["etag"] = o.Etag
- toSerialize["id"] = o.Id
- toSerialize["metageneration"] = o.Metageneration
- toSerialize["organization_id"] = o.OrganizationId
- toSerialize["storage_bytes"] = o.StorageBytes
- toSerialize["storage_limit"] = o.StorageLimit
- return toSerialize, nil
-}
-
-func (o *DriveReadOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "created_at",
- "etag",
- "id",
- "metageneration",
- "organization_id",
- "storage_bytes",
- "storage_limit",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varDriveReadOut := _DriveReadOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varDriveReadOut)
-
- if err != nil {
- return err
- }
-
- *o = DriveReadOut(varDriveReadOut)
-
- return err
-}
-
-type NullableDriveReadOut struct {
- value *DriveReadOut
- isSet bool
-}
-
-func (v NullableDriveReadOut) Get() *DriveReadOut {
- return v.value
-}
-
-func (v *NullableDriveReadOut) Set(val *DriveReadOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableDriveReadOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableDriveReadOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableDriveReadOut(val *DriveReadOut) *NullableDriveReadOut {
- return &NullableDriveReadOut{value: val, isSet: true}
-}
-
-func (v NullableDriveReadOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableDriveReadOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_drive_rename_in.go b/sdk/go/model_drive_rename_in.go
deleted file mode 100644
index fb6a926..0000000
--- a/sdk/go/model_drive_rename_in.go
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the DriveRenameIn type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &DriveRenameIn{}
-
-// DriveRenameIn PATCH /v0/drives/{id} body — rename a drive the caller owns.
-type DriveRenameIn struct {
- Name string `json:"name"`
-}
-
-type _DriveRenameIn DriveRenameIn
-
-// NewDriveRenameIn instantiates a new DriveRenameIn object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewDriveRenameIn(name string) *DriveRenameIn {
- this := DriveRenameIn{}
- this.Name = name
- return &this
-}
-
-// NewDriveRenameInWithDefaults instantiates a new DriveRenameIn object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewDriveRenameInWithDefaults() *DriveRenameIn {
- this := DriveRenameIn{}
- return &this
-}
-
-// GetName returns the Name field value
-func (o *DriveRenameIn) GetName() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Name
-}
-
-// GetNameOk returns a tuple with the Name field value
-// and a boolean to check if the value has been set.
-func (o *DriveRenameIn) GetNameOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Name, true
-}
-
-// SetName sets field value
-func (o *DriveRenameIn) SetName(v string) {
- o.Name = v
-}
-
-func (o DriveRenameIn) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o DriveRenameIn) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["name"] = o.Name
- return toSerialize, nil
-}
-
-func (o *DriveRenameIn) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "name",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varDriveRenameIn := _DriveRenameIn{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varDriveRenameIn)
-
- if err != nil {
- return err
- }
-
- *o = DriveRenameIn(varDriveRenameIn)
-
- return err
-}
-
-type NullableDriveRenameIn struct {
- value *DriveRenameIn
- isSet bool
-}
-
-func (v NullableDriveRenameIn) Get() *DriveRenameIn {
- return v.value
-}
-
-func (v *NullableDriveRenameIn) Set(val *DriveRenameIn) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableDriveRenameIn) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableDriveRenameIn) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableDriveRenameIn(val *DriveRenameIn) *NullableDriveRenameIn {
- return &NullableDriveRenameIn{value: val, isSet: true}
-}
-
-func (v NullableDriveRenameIn) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableDriveRenameIn) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_drive_restore_out.go b/sdk/go/model_drive_restore_out.go
deleted file mode 100644
index 43344aa..0000000
--- a/sdk/go/model_drive_restore_out.go
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the DriveRestoreOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &DriveRestoreOut{}
-
-// DriveRestoreOut struct for DriveRestoreOut
-type DriveRestoreOut struct {
- Id string `json:"id"`
- RebasedArtifactCount int32 `json:"rebased_artifact_count"`
- RestoredAt time.Time `json:"restored_at"`
-}
-
-type _DriveRestoreOut DriveRestoreOut
-
-// NewDriveRestoreOut instantiates a new DriveRestoreOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewDriveRestoreOut(id string, rebasedArtifactCount int32, restoredAt time.Time) *DriveRestoreOut {
- this := DriveRestoreOut{}
- this.Id = id
- this.RebasedArtifactCount = rebasedArtifactCount
- this.RestoredAt = restoredAt
- return &this
-}
-
-// NewDriveRestoreOutWithDefaults instantiates a new DriveRestoreOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewDriveRestoreOutWithDefaults() *DriveRestoreOut {
- this := DriveRestoreOut{}
- return &this
-}
-
-// GetId returns the Id field value
-func (o *DriveRestoreOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *DriveRestoreOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *DriveRestoreOut) SetId(v string) {
- o.Id = v
-}
-
-// GetRebasedArtifactCount returns the RebasedArtifactCount field value
-func (o *DriveRestoreOut) GetRebasedArtifactCount() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.RebasedArtifactCount
-}
-
-// GetRebasedArtifactCountOk returns a tuple with the RebasedArtifactCount field value
-// and a boolean to check if the value has been set.
-func (o *DriveRestoreOut) GetRebasedArtifactCountOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.RebasedArtifactCount, true
-}
-
-// SetRebasedArtifactCount sets field value
-func (o *DriveRestoreOut) SetRebasedArtifactCount(v int32) {
- o.RebasedArtifactCount = v
-}
-
-// GetRestoredAt returns the RestoredAt field value
-func (o *DriveRestoreOut) GetRestoredAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.RestoredAt
-}
-
-// GetRestoredAtOk returns a tuple with the RestoredAt field value
-// and a boolean to check if the value has been set.
-func (o *DriveRestoreOut) GetRestoredAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.RestoredAt, true
-}
-
-// SetRestoredAt sets field value
-func (o *DriveRestoreOut) SetRestoredAt(v time.Time) {
- o.RestoredAt = v
-}
-
-func (o DriveRestoreOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o DriveRestoreOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["id"] = o.Id
- toSerialize["rebased_artifact_count"] = o.RebasedArtifactCount
- toSerialize["restored_at"] = o.RestoredAt
- return toSerialize, nil
-}
-
-func (o *DriveRestoreOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "id",
- "rebased_artifact_count",
- "restored_at",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varDriveRestoreOut := _DriveRestoreOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varDriveRestoreOut)
-
- if err != nil {
- return err
- }
-
- *o = DriveRestoreOut(varDriveRestoreOut)
-
- return err
-}
-
-type NullableDriveRestoreOut struct {
- value *DriveRestoreOut
- isSet bool
-}
-
-func (v NullableDriveRestoreOut) Get() *DriveRestoreOut {
- return v.value
-}
-
-func (v *NullableDriveRestoreOut) Set(val *DriveRestoreOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableDriveRestoreOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableDriveRestoreOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableDriveRestoreOut(val *DriveRestoreOut) *NullableDriveRestoreOut {
- return &NullableDriveRestoreOut{value: val, isSet: true}
-}
-
-func (v NullableDriveRestoreOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableDriveRestoreOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_drive_update_in.go b/sdk/go/model_drive_update_in.go
new file mode 100644
index 0000000..5501805
--- /dev/null
+++ b/sdk/go/model_drive_update_in.go
@@ -0,0 +1,201 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+)
+
+// checks if the DriveUpdateIn type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &DriveUpdateIn{}
+
+// DriveUpdateIn PATCH /v0/drives/{id} body — at least one field is required.
+type DriveUpdateIn struct {
+ Metadata map[string]interface{} `json:"metadata,omitempty"`
+ Name NullableString `json:"name,omitempty"`
+ AdditionalProperties map[string]interface{}
+}
+
+type _DriveUpdateIn DriveUpdateIn
+
+// NewDriveUpdateIn instantiates a new DriveUpdateIn object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewDriveUpdateIn() *DriveUpdateIn {
+ this := DriveUpdateIn{}
+ return &this
+}
+
+// NewDriveUpdateInWithDefaults instantiates a new DriveUpdateIn object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewDriveUpdateInWithDefaults() *DriveUpdateIn {
+ this := DriveUpdateIn{}
+ return &this
+}
+
+// GetMetadata returns the Metadata field value if set, zero value otherwise (both if not set or set to explicit null).
+func (o *DriveUpdateIn) GetMetadata() map[string]interface{} {
+ if o == nil {
+ var ret map[string]interface{}
+ return ret
+ }
+ return o.Metadata
+}
+
+// GetMetadataOk returns a tuple with the Metadata field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *DriveUpdateIn) GetMetadataOk() (map[string]interface{}, bool) {
+ if o == nil || IsNil(o.Metadata) {
+ return map[string]interface{}{}, false
+ }
+ return o.Metadata, true
+}
+
+// HasMetadata returns a boolean if a field has been set.
+func (o *DriveUpdateIn) HasMetadata() bool {
+ if o != nil && !IsNil(o.Metadata) {
+ return true
+ }
+
+ return false
+}
+
+// SetMetadata gets a reference to the given map[string]interface{} and assigns it to the Metadata field.
+func (o *DriveUpdateIn) SetMetadata(v map[string]interface{}) {
+ o.Metadata = v
+}
+
+// GetName returns the Name field value if set, zero value otherwise (both if not set or set to explicit null).
+func (o *DriveUpdateIn) GetName() string {
+ if o == nil || IsNil(o.Name.Get()) {
+ var ret string
+ return ret
+ }
+ return *o.Name.Get()
+}
+
+// GetNameOk returns a tuple with the Name field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *DriveUpdateIn) GetNameOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.Name.Get(), o.Name.IsSet()
+}
+
+// HasName returns a boolean if a field has been set.
+func (o *DriveUpdateIn) HasName() bool {
+ if o != nil && o.Name.IsSet() {
+ return true
+ }
+
+ return false
+}
+
+// SetName gets a reference to the given NullableString and assigns it to the Name field.
+func (o *DriveUpdateIn) SetName(v string) {
+ o.Name.Set(&v)
+}
+// SetNameNil sets the value for Name to be an explicit nil
+func (o *DriveUpdateIn) SetNameNil() {
+ o.Name.Set(nil)
+}
+
+// UnsetName ensures that no value is present for Name, not even an explicit nil
+func (o *DriveUpdateIn) UnsetName() {
+ o.Name.Unset()
+}
+
+func (o DriveUpdateIn) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o DriveUpdateIn) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ if o.Metadata != nil {
+ toSerialize["metadata"] = o.Metadata
+ }
+ if o.Name.IsSet() {
+ toSerialize["name"] = o.Name.Get()
+ }
+
+ for key, value := range o.AdditionalProperties {
+ toSerialize[key] = value
+ }
+
+ return toSerialize, nil
+}
+
+func (o *DriveUpdateIn) UnmarshalJSON(data []byte) (err error) {
+ varDriveUpdateIn := _DriveUpdateIn{}
+
+ err = json.Unmarshal(data, &varDriveUpdateIn)
+
+ if err != nil {
+ return err
+ }
+
+ *o = DriveUpdateIn(varDriveUpdateIn)
+
+ additionalProperties := make(map[string]interface{})
+
+ if err = json.Unmarshal(data, &additionalProperties); err == nil {
+ delete(additionalProperties, "metadata")
+ delete(additionalProperties, "name")
+ o.AdditionalProperties = additionalProperties
+ }
+
+ return err
+}
+
+type NullableDriveUpdateIn struct {
+ value *DriveUpdateIn
+ isSet bool
+}
+
+func (v NullableDriveUpdateIn) Get() *DriveUpdateIn {
+ return v.value
+}
+
+func (v *NullableDriveUpdateIn) Set(val *DriveUpdateIn) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableDriveUpdateIn) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableDriveUpdateIn) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableDriveUpdateIn(val *DriveUpdateIn) *NullableDriveUpdateIn {
+ return &NullableDriveUpdateIn{value: val, isSet: true}
+}
+
+func (v NullableDriveUpdateIn) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableDriveUpdateIn) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_drive_usage_out.go b/sdk/go/model_drive_usage_out.go
index fcda97e..a23b07a 100644
--- a/sdk/go/model_drive_usage_out.go
+++ b/sdk/go/model_drive_usage_out.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
@@ -21,19 +21,8 @@ var _ MappedNullable = &DriveUsageOut{}
// DriveUsageOut struct for DriveUsageOut
type DriveUsageOut struct {
- AccountFootprint StorageFootprintOut `json:"account_footprint"`
- EgressBytes UsageCounterOut `json:"egress_bytes"`
- Footprint StorageFootprintOut `json:"footprint"`
- IndexedBytes UsageCounterOut `json:"indexed_bytes"`
- IndexingOps UsageCounterOut `json:"indexing_ops"`
- OpsThisMonth OperationUsageOut `json:"ops_this_month"`
- Period UsagePeriodOut `json:"period"`
- RetrievalQueries UsageCounterOut `json:"retrieval_queries"`
- Storage UsageCounterOut `json:"storage"`
- StorageBreakdown NullableStorageBreakdownOut `json:"storage_breakdown,omitempty"`
- TokensThisMonth TokenUsageOut `json:"tokens_this_month"`
- VersionRetention VersionRetentionOut `json:"version_retention"`
- WritesThisHour HourlyUsageCounterOut `json:"writes_this_hour"`
+ RetrievalBytes int32 `json:"retrieval_bytes"`
+ StorageBytes int32 `json:"storage_bytes"`
}
type _DriveUsageOut DriveUsageOut
@@ -42,20 +31,10 @@ type _DriveUsageOut DriveUsageOut
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
-func NewDriveUsageOut(accountFootprint StorageFootprintOut, egressBytes UsageCounterOut, footprint StorageFootprintOut, indexedBytes UsageCounterOut, indexingOps UsageCounterOut, opsThisMonth OperationUsageOut, period UsagePeriodOut, retrievalQueries UsageCounterOut, storage UsageCounterOut, tokensThisMonth TokenUsageOut, versionRetention VersionRetentionOut, writesThisHour HourlyUsageCounterOut) *DriveUsageOut {
+func NewDriveUsageOut(retrievalBytes int32, storageBytes int32) *DriveUsageOut {
this := DriveUsageOut{}
- this.AccountFootprint = accountFootprint
- this.EgressBytes = egressBytes
- this.Footprint = footprint
- this.IndexedBytes = indexedBytes
- this.IndexingOps = indexingOps
- this.OpsThisMonth = opsThisMonth
- this.Period = period
- this.RetrievalQueries = retrievalQueries
- this.Storage = storage
- this.TokensThisMonth = tokensThisMonth
- this.VersionRetention = versionRetention
- this.WritesThisHour = writesThisHour
+ this.RetrievalBytes = retrievalBytes
+ this.StorageBytes = storageBytes
return &this
}
@@ -67,334 +46,52 @@ func NewDriveUsageOutWithDefaults() *DriveUsageOut {
return &this
}
-// GetAccountFootprint returns the AccountFootprint field value
-func (o *DriveUsageOut) GetAccountFootprint() StorageFootprintOut {
+// GetRetrievalBytes returns the RetrievalBytes field value
+func (o *DriveUsageOut) GetRetrievalBytes() int32 {
if o == nil {
- var ret StorageFootprintOut
+ var ret int32
return ret
}
- return o.AccountFootprint
+ return o.RetrievalBytes
}
-// GetAccountFootprintOk returns a tuple with the AccountFootprint field value
+// GetRetrievalBytesOk returns a tuple with the RetrievalBytes field value
// and a boolean to check if the value has been set.
-func (o *DriveUsageOut) GetAccountFootprintOk() (*StorageFootprintOut, bool) {
+func (o *DriveUsageOut) GetRetrievalBytesOk() (*int32, bool) {
if o == nil {
return nil, false
}
- return &o.AccountFootprint, true
+ return &o.RetrievalBytes, true
}
-// SetAccountFootprint sets field value
-func (o *DriveUsageOut) SetAccountFootprint(v StorageFootprintOut) {
- o.AccountFootprint = v
+// SetRetrievalBytes sets field value
+func (o *DriveUsageOut) SetRetrievalBytes(v int32) {
+ o.RetrievalBytes = v
}
-// GetEgressBytes returns the EgressBytes field value
-func (o *DriveUsageOut) GetEgressBytes() UsageCounterOut {
+// GetStorageBytes returns the StorageBytes field value
+func (o *DriveUsageOut) GetStorageBytes() int32 {
if o == nil {
- var ret UsageCounterOut
+ var ret int32
return ret
}
- return o.EgressBytes
+ return o.StorageBytes
}
-// GetEgressBytesOk returns a tuple with the EgressBytes field value
+// GetStorageBytesOk returns a tuple with the StorageBytes field value
// and a boolean to check if the value has been set.
-func (o *DriveUsageOut) GetEgressBytesOk() (*UsageCounterOut, bool) {
+func (o *DriveUsageOut) GetStorageBytesOk() (*int32, bool) {
if o == nil {
return nil, false
}
- return &o.EgressBytes, true
+ return &o.StorageBytes, true
}
-// SetEgressBytes sets field value
-func (o *DriveUsageOut) SetEgressBytes(v UsageCounterOut) {
- o.EgressBytes = v
-}
-
-// GetFootprint returns the Footprint field value
-func (o *DriveUsageOut) GetFootprint() StorageFootprintOut {
- if o == nil {
- var ret StorageFootprintOut
- return ret
- }
-
- return o.Footprint
-}
-
-// GetFootprintOk returns a tuple with the Footprint field value
-// and a boolean to check if the value has been set.
-func (o *DriveUsageOut) GetFootprintOk() (*StorageFootprintOut, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Footprint, true
-}
-
-// SetFootprint sets field value
-func (o *DriveUsageOut) SetFootprint(v StorageFootprintOut) {
- o.Footprint = v
-}
-
-// GetIndexedBytes returns the IndexedBytes field value
-func (o *DriveUsageOut) GetIndexedBytes() UsageCounterOut {
- if o == nil {
- var ret UsageCounterOut
- return ret
- }
-
- return o.IndexedBytes
-}
-
-// GetIndexedBytesOk returns a tuple with the IndexedBytes field value
-// and a boolean to check if the value has been set.
-func (o *DriveUsageOut) GetIndexedBytesOk() (*UsageCounterOut, bool) {
- if o == nil {
- return nil, false
- }
- return &o.IndexedBytes, true
-}
-
-// SetIndexedBytes sets field value
-func (o *DriveUsageOut) SetIndexedBytes(v UsageCounterOut) {
- o.IndexedBytes = v
-}
-
-// GetIndexingOps returns the IndexingOps field value
-func (o *DriveUsageOut) GetIndexingOps() UsageCounterOut {
- if o == nil {
- var ret UsageCounterOut
- return ret
- }
-
- return o.IndexingOps
-}
-
-// GetIndexingOpsOk returns a tuple with the IndexingOps field value
-// and a boolean to check if the value has been set.
-func (o *DriveUsageOut) GetIndexingOpsOk() (*UsageCounterOut, bool) {
- if o == nil {
- return nil, false
- }
- return &o.IndexingOps, true
-}
-
-// SetIndexingOps sets field value
-func (o *DriveUsageOut) SetIndexingOps(v UsageCounterOut) {
- o.IndexingOps = v
-}
-
-// GetOpsThisMonth returns the OpsThisMonth field value
-func (o *DriveUsageOut) GetOpsThisMonth() OperationUsageOut {
- if o == nil {
- var ret OperationUsageOut
- return ret
- }
-
- return o.OpsThisMonth
-}
-
-// GetOpsThisMonthOk returns a tuple with the OpsThisMonth field value
-// and a boolean to check if the value has been set.
-func (o *DriveUsageOut) GetOpsThisMonthOk() (*OperationUsageOut, bool) {
- if o == nil {
- return nil, false
- }
- return &o.OpsThisMonth, true
-}
-
-// SetOpsThisMonth sets field value
-func (o *DriveUsageOut) SetOpsThisMonth(v OperationUsageOut) {
- o.OpsThisMonth = v
-}
-
-// GetPeriod returns the Period field value
-func (o *DriveUsageOut) GetPeriod() UsagePeriodOut {
- if o == nil {
- var ret UsagePeriodOut
- return ret
- }
-
- return o.Period
-}
-
-// GetPeriodOk returns a tuple with the Period field value
-// and a boolean to check if the value has been set.
-func (o *DriveUsageOut) GetPeriodOk() (*UsagePeriodOut, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Period, true
-}
-
-// SetPeriod sets field value
-func (o *DriveUsageOut) SetPeriod(v UsagePeriodOut) {
- o.Period = v
-}
-
-// GetRetrievalQueries returns the RetrievalQueries field value
-func (o *DriveUsageOut) GetRetrievalQueries() UsageCounterOut {
- if o == nil {
- var ret UsageCounterOut
- return ret
- }
-
- return o.RetrievalQueries
-}
-
-// GetRetrievalQueriesOk returns a tuple with the RetrievalQueries field value
-// and a boolean to check if the value has been set.
-func (o *DriveUsageOut) GetRetrievalQueriesOk() (*UsageCounterOut, bool) {
- if o == nil {
- return nil, false
- }
- return &o.RetrievalQueries, true
-}
-
-// SetRetrievalQueries sets field value
-func (o *DriveUsageOut) SetRetrievalQueries(v UsageCounterOut) {
- o.RetrievalQueries = v
-}
-
-// GetStorage returns the Storage field value
-func (o *DriveUsageOut) GetStorage() UsageCounterOut {
- if o == nil {
- var ret UsageCounterOut
- return ret
- }
-
- return o.Storage
-}
-
-// GetStorageOk returns a tuple with the Storage field value
-// and a boolean to check if the value has been set.
-func (o *DriveUsageOut) GetStorageOk() (*UsageCounterOut, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Storage, true
-}
-
-// SetStorage sets field value
-func (o *DriveUsageOut) SetStorage(v UsageCounterOut) {
- o.Storage = v
-}
-
-// GetStorageBreakdown returns the StorageBreakdown field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *DriveUsageOut) GetStorageBreakdown() StorageBreakdownOut {
- if o == nil || IsNil(o.StorageBreakdown.Get()) {
- var ret StorageBreakdownOut
- return ret
- }
- return *o.StorageBreakdown.Get()
-}
-
-// GetStorageBreakdownOk returns a tuple with the StorageBreakdown field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *DriveUsageOut) GetStorageBreakdownOk() (*StorageBreakdownOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.StorageBreakdown.Get(), o.StorageBreakdown.IsSet()
-}
-
-// HasStorageBreakdown returns a boolean if a field has been set.
-func (o *DriveUsageOut) HasStorageBreakdown() bool {
- if o != nil && o.StorageBreakdown.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetStorageBreakdown gets a reference to the given NullableStorageBreakdownOut and assigns it to the StorageBreakdown field.
-func (o *DriveUsageOut) SetStorageBreakdown(v StorageBreakdownOut) {
- o.StorageBreakdown.Set(&v)
-}
-// SetStorageBreakdownNil sets the value for StorageBreakdown to be an explicit nil
-func (o *DriveUsageOut) SetStorageBreakdownNil() {
- o.StorageBreakdown.Set(nil)
-}
-
-// UnsetStorageBreakdown ensures that no value is present for StorageBreakdown, not even an explicit nil
-func (o *DriveUsageOut) UnsetStorageBreakdown() {
- o.StorageBreakdown.Unset()
-}
-
-// GetTokensThisMonth returns the TokensThisMonth field value
-func (o *DriveUsageOut) GetTokensThisMonth() TokenUsageOut {
- if o == nil {
- var ret TokenUsageOut
- return ret
- }
-
- return o.TokensThisMonth
-}
-
-// GetTokensThisMonthOk returns a tuple with the TokensThisMonth field value
-// and a boolean to check if the value has been set.
-func (o *DriveUsageOut) GetTokensThisMonthOk() (*TokenUsageOut, bool) {
- if o == nil {
- return nil, false
- }
- return &o.TokensThisMonth, true
-}
-
-// SetTokensThisMonth sets field value
-func (o *DriveUsageOut) SetTokensThisMonth(v TokenUsageOut) {
- o.TokensThisMonth = v
-}
-
-// GetVersionRetention returns the VersionRetention field value
-func (o *DriveUsageOut) GetVersionRetention() VersionRetentionOut {
- if o == nil {
- var ret VersionRetentionOut
- return ret
- }
-
- return o.VersionRetention
-}
-
-// GetVersionRetentionOk returns a tuple with the VersionRetention field value
-// and a boolean to check if the value has been set.
-func (o *DriveUsageOut) GetVersionRetentionOk() (*VersionRetentionOut, bool) {
- if o == nil {
- return nil, false
- }
- return &o.VersionRetention, true
-}
-
-// SetVersionRetention sets field value
-func (o *DriveUsageOut) SetVersionRetention(v VersionRetentionOut) {
- o.VersionRetention = v
-}
-
-// GetWritesThisHour returns the WritesThisHour field value
-func (o *DriveUsageOut) GetWritesThisHour() HourlyUsageCounterOut {
- if o == nil {
- var ret HourlyUsageCounterOut
- return ret
- }
-
- return o.WritesThisHour
-}
-
-// GetWritesThisHourOk returns a tuple with the WritesThisHour field value
-// and a boolean to check if the value has been set.
-func (o *DriveUsageOut) GetWritesThisHourOk() (*HourlyUsageCounterOut, bool) {
- if o == nil {
- return nil, false
- }
- return &o.WritesThisHour, true
-}
-
-// SetWritesThisHour sets field value
-func (o *DriveUsageOut) SetWritesThisHour(v HourlyUsageCounterOut) {
- o.WritesThisHour = v
+// SetStorageBytes sets field value
+func (o *DriveUsageOut) SetStorageBytes(v int32) {
+ o.StorageBytes = v
}
func (o DriveUsageOut) MarshalJSON() ([]byte, error) {
@@ -407,21 +104,8 @@ func (o DriveUsageOut) MarshalJSON() ([]byte, error) {
func (o DriveUsageOut) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
- toSerialize["account_footprint"] = o.AccountFootprint
- toSerialize["egress_bytes"] = o.EgressBytes
- toSerialize["footprint"] = o.Footprint
- toSerialize["indexed_bytes"] = o.IndexedBytes
- toSerialize["indexing_ops"] = o.IndexingOps
- toSerialize["ops_this_month"] = o.OpsThisMonth
- toSerialize["period"] = o.Period
- toSerialize["retrieval_queries"] = o.RetrievalQueries
- toSerialize["storage"] = o.Storage
- if o.StorageBreakdown.IsSet() {
- toSerialize["storage_breakdown"] = o.StorageBreakdown.Get()
- }
- toSerialize["tokens_this_month"] = o.TokensThisMonth
- toSerialize["version_retention"] = o.VersionRetention
- toSerialize["writes_this_hour"] = o.WritesThisHour
+ toSerialize["retrieval_bytes"] = o.RetrievalBytes
+ toSerialize["storage_bytes"] = o.StorageBytes
return toSerialize, nil
}
@@ -430,18 +114,8 @@ func (o *DriveUsageOut) UnmarshalJSON(data []byte) (err error) {
// by unmarshalling the object into a generic map with string keys and checking
// that every required field exists as a key in the generic map.
requiredProperties := []string{
- "account_footprint",
- "egress_bytes",
- "footprint",
- "indexed_bytes",
- "indexing_ops",
- "ops_this_month",
- "period",
- "retrieval_queries",
- "storage",
- "tokens_this_month",
- "version_retention",
- "writes_this_hour",
+ "retrieval_bytes",
+ "storage_bytes",
}
allProperties := make(map[string]interface{})
diff --git a/sdk/go/model_drives_create_400_response.go b/sdk/go/model_drives_create_400_response.go
new file mode 100644
index 0000000..843b1e9
--- /dev/null
+++ b/sdk/go/model_drives_create_400_response.go
@@ -0,0 +1,156 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "bytes"
+ "fmt"
+)
+
+// checks if the DrivesCreate400Response type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &DrivesCreate400Response{}
+
+// DrivesCreate400Response struct for DrivesCreate400Response
+type DrivesCreate400Response struct {
+ Error DrivesCreate400ResponseError `json:"error"`
+}
+
+type _DrivesCreate400Response DrivesCreate400Response
+
+// NewDrivesCreate400Response instantiates a new DrivesCreate400Response object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewDrivesCreate400Response(error_ DrivesCreate400ResponseError) *DrivesCreate400Response {
+ this := DrivesCreate400Response{}
+ this.Error = error_
+ return &this
+}
+
+// NewDrivesCreate400ResponseWithDefaults instantiates a new DrivesCreate400Response object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewDrivesCreate400ResponseWithDefaults() *DrivesCreate400Response {
+ this := DrivesCreate400Response{}
+ return &this
+}
+
+// GetError returns the Error field value
+func (o *DrivesCreate400Response) GetError() DrivesCreate400ResponseError {
+ if o == nil {
+ var ret DrivesCreate400ResponseError
+ return ret
+ }
+
+ return o.Error
+}
+
+// GetErrorOk returns a tuple with the Error field value
+// and a boolean to check if the value has been set.
+func (o *DrivesCreate400Response) GetErrorOk() (*DrivesCreate400ResponseError, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Error, true
+}
+
+// SetError sets field value
+func (o *DrivesCreate400Response) SetError(v DrivesCreate400ResponseError) {
+ o.Error = v
+}
+
+func (o DrivesCreate400Response) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o DrivesCreate400Response) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["error"] = o.Error
+ return toSerialize, nil
+}
+
+func (o *DrivesCreate400Response) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "error",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varDrivesCreate400Response := _DrivesCreate400Response{}
+
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varDrivesCreate400Response)
+
+ if err != nil {
+ return err
+ }
+
+ *o = DrivesCreate400Response(varDrivesCreate400Response)
+
+ return err
+}
+
+type NullableDrivesCreate400Response struct {
+ value *DrivesCreate400Response
+ isSet bool
+}
+
+func (v NullableDrivesCreate400Response) Get() *DrivesCreate400Response {
+ return v.value
+}
+
+func (v *NullableDrivesCreate400Response) Set(val *DrivesCreate400Response) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableDrivesCreate400Response) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableDrivesCreate400Response) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableDrivesCreate400Response(val *DrivesCreate400Response) *NullableDrivesCreate400Response {
+ return &NullableDrivesCreate400Response{value: val, isSet: true}
+}
+
+func (v NullableDrivesCreate400Response) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableDrivesCreate400Response) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_drives_create_400_response_error.go b/sdk/go/model_drives_create_400_response_error.go
new file mode 100644
index 0000000..b13065d
--- /dev/null
+++ b/sdk/go/model_drives_create_400_response_error.go
@@ -0,0 +1,234 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "fmt"
+)
+
+// checks if the DrivesCreate400ResponseError type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &DrivesCreate400ResponseError{}
+
+// DrivesCreate400ResponseError struct for DrivesCreate400ResponseError
+type DrivesCreate400ResponseError struct {
+ // Stable machine-readable error code (see the error-catalog).
+ Code string `json:"code"`
+ // Error-code-specific context (optional).
+ Details map[string]interface{} `json:"details,omitempty"`
+ Message string `json:"message"`
+ AdditionalProperties map[string]interface{}
+}
+
+type _DrivesCreate400ResponseError DrivesCreate400ResponseError
+
+// NewDrivesCreate400ResponseError instantiates a new DrivesCreate400ResponseError object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewDrivesCreate400ResponseError(code string, message string) *DrivesCreate400ResponseError {
+ this := DrivesCreate400ResponseError{}
+ this.Code = code
+ this.Message = message
+ return &this
+}
+
+// NewDrivesCreate400ResponseErrorWithDefaults instantiates a new DrivesCreate400ResponseError object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewDrivesCreate400ResponseErrorWithDefaults() *DrivesCreate400ResponseError {
+ this := DrivesCreate400ResponseError{}
+ return &this
+}
+
+// GetCode returns the Code field value
+func (o *DrivesCreate400ResponseError) GetCode() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.Code
+}
+
+// GetCodeOk returns a tuple with the Code field value
+// and a boolean to check if the value has been set.
+func (o *DrivesCreate400ResponseError) GetCodeOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Code, true
+}
+
+// SetCode sets field value
+func (o *DrivesCreate400ResponseError) SetCode(v string) {
+ o.Code = v
+}
+
+// GetDetails returns the Details field value if set, zero value otherwise.
+func (o *DrivesCreate400ResponseError) GetDetails() map[string]interface{} {
+ if o == nil || IsNil(o.Details) {
+ var ret map[string]interface{}
+ return ret
+ }
+ return o.Details
+}
+
+// GetDetailsOk returns a tuple with the Details field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+func (o *DrivesCreate400ResponseError) GetDetailsOk() (map[string]interface{}, bool) {
+ if o == nil || IsNil(o.Details) {
+ return map[string]interface{}{}, false
+ }
+ return o.Details, true
+}
+
+// HasDetails returns a boolean if a field has been set.
+func (o *DrivesCreate400ResponseError) HasDetails() bool {
+ if o != nil && !IsNil(o.Details) {
+ return true
+ }
+
+ return false
+}
+
+// SetDetails gets a reference to the given map[string]interface{} and assigns it to the Details field.
+func (o *DrivesCreate400ResponseError) SetDetails(v map[string]interface{}) {
+ o.Details = v
+}
+
+// GetMessage returns the Message field value
+func (o *DrivesCreate400ResponseError) GetMessage() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.Message
+}
+
+// GetMessageOk returns a tuple with the Message field value
+// and a boolean to check if the value has been set.
+func (o *DrivesCreate400ResponseError) GetMessageOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Message, true
+}
+
+// SetMessage sets field value
+func (o *DrivesCreate400ResponseError) SetMessage(v string) {
+ o.Message = v
+}
+
+func (o DrivesCreate400ResponseError) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o DrivesCreate400ResponseError) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["code"] = o.Code
+ if !IsNil(o.Details) {
+ toSerialize["details"] = o.Details
+ }
+ toSerialize["message"] = o.Message
+
+ for key, value := range o.AdditionalProperties {
+ toSerialize[key] = value
+ }
+
+ return toSerialize, nil
+}
+
+func (o *DrivesCreate400ResponseError) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "code",
+ "message",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varDrivesCreate400ResponseError := _DrivesCreate400ResponseError{}
+
+ err = json.Unmarshal(data, &varDrivesCreate400ResponseError)
+
+ if err != nil {
+ return err
+ }
+
+ *o = DrivesCreate400ResponseError(varDrivesCreate400ResponseError)
+
+ additionalProperties := make(map[string]interface{})
+
+ if err = json.Unmarshal(data, &additionalProperties); err == nil {
+ delete(additionalProperties, "code")
+ delete(additionalProperties, "details")
+ delete(additionalProperties, "message")
+ o.AdditionalProperties = additionalProperties
+ }
+
+ return err
+}
+
+type NullableDrivesCreate400ResponseError struct {
+ value *DrivesCreate400ResponseError
+ isSet bool
+}
+
+func (v NullableDrivesCreate400ResponseError) Get() *DrivesCreate400ResponseError {
+ return v.value
+}
+
+func (v *NullableDrivesCreate400ResponseError) Set(val *DrivesCreate400ResponseError) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableDrivesCreate400ResponseError) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableDrivesCreate400ResponseError) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableDrivesCreate400ResponseError(val *DrivesCreate400ResponseError) *NullableDrivesCreate400ResponseError {
+ return &NullableDrivesCreate400ResponseError{value: val, isSet: true}
+}
+
+func (v NullableDrivesCreate400ResponseError) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableDrivesCreate400ResponseError) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_drives_list_400_response.go b/sdk/go/model_drives_list_400_response.go
new file mode 100644
index 0000000..c69b183
--- /dev/null
+++ b/sdk/go/model_drives_list_400_response.go
@@ -0,0 +1,156 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "bytes"
+ "fmt"
+)
+
+// checks if the DrivesList400Response type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &DrivesList400Response{}
+
+// DrivesList400Response struct for DrivesList400Response
+type DrivesList400Response struct {
+ Error DrivesList400ResponseError `json:"error"`
+}
+
+type _DrivesList400Response DrivesList400Response
+
+// NewDrivesList400Response instantiates a new DrivesList400Response object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewDrivesList400Response(error_ DrivesList400ResponseError) *DrivesList400Response {
+ this := DrivesList400Response{}
+ this.Error = error_
+ return &this
+}
+
+// NewDrivesList400ResponseWithDefaults instantiates a new DrivesList400Response object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewDrivesList400ResponseWithDefaults() *DrivesList400Response {
+ this := DrivesList400Response{}
+ return &this
+}
+
+// GetError returns the Error field value
+func (o *DrivesList400Response) GetError() DrivesList400ResponseError {
+ if o == nil {
+ var ret DrivesList400ResponseError
+ return ret
+ }
+
+ return o.Error
+}
+
+// GetErrorOk returns a tuple with the Error field value
+// and a boolean to check if the value has been set.
+func (o *DrivesList400Response) GetErrorOk() (*DrivesList400ResponseError, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Error, true
+}
+
+// SetError sets field value
+func (o *DrivesList400Response) SetError(v DrivesList400ResponseError) {
+ o.Error = v
+}
+
+func (o DrivesList400Response) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o DrivesList400Response) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["error"] = o.Error
+ return toSerialize, nil
+}
+
+func (o *DrivesList400Response) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "error",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varDrivesList400Response := _DrivesList400Response{}
+
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varDrivesList400Response)
+
+ if err != nil {
+ return err
+ }
+
+ *o = DrivesList400Response(varDrivesList400Response)
+
+ return err
+}
+
+type NullableDrivesList400Response struct {
+ value *DrivesList400Response
+ isSet bool
+}
+
+func (v NullableDrivesList400Response) Get() *DrivesList400Response {
+ return v.value
+}
+
+func (v *NullableDrivesList400Response) Set(val *DrivesList400Response) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableDrivesList400Response) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableDrivesList400Response) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableDrivesList400Response(val *DrivesList400Response) *NullableDrivesList400Response {
+ return &NullableDrivesList400Response{value: val, isSet: true}
+}
+
+func (v NullableDrivesList400Response) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableDrivesList400Response) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_drives_list_400_response_error.go b/sdk/go/model_drives_list_400_response_error.go
new file mode 100644
index 0000000..89297cb
--- /dev/null
+++ b/sdk/go/model_drives_list_400_response_error.go
@@ -0,0 +1,236 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "fmt"
+)
+
+// checks if the DrivesList400ResponseError type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &DrivesList400ResponseError{}
+
+// DrivesList400ResponseError struct for DrivesList400ResponseError
+type DrivesList400ResponseError struct {
+ // Stable machine-readable error code (see the error-catalog).
+ Code string `json:"code"`
+ // Error-code-specific context (optional).
+ Details map[string]interface{} `json:"details,omitempty"`
+ Message NullableString `json:"message"`
+ AdditionalProperties map[string]interface{}
+}
+
+type _DrivesList400ResponseError DrivesList400ResponseError
+
+// NewDrivesList400ResponseError instantiates a new DrivesList400ResponseError object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewDrivesList400ResponseError(code string, message NullableString) *DrivesList400ResponseError {
+ this := DrivesList400ResponseError{}
+ this.Code = code
+ this.Message = message
+ return &this
+}
+
+// NewDrivesList400ResponseErrorWithDefaults instantiates a new DrivesList400ResponseError object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewDrivesList400ResponseErrorWithDefaults() *DrivesList400ResponseError {
+ this := DrivesList400ResponseError{}
+ return &this
+}
+
+// GetCode returns the Code field value
+func (o *DrivesList400ResponseError) GetCode() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.Code
+}
+
+// GetCodeOk returns a tuple with the Code field value
+// and a boolean to check if the value has been set.
+func (o *DrivesList400ResponseError) GetCodeOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Code, true
+}
+
+// SetCode sets field value
+func (o *DrivesList400ResponseError) SetCode(v string) {
+ o.Code = v
+}
+
+// GetDetails returns the Details field value if set, zero value otherwise.
+func (o *DrivesList400ResponseError) GetDetails() map[string]interface{} {
+ if o == nil || IsNil(o.Details) {
+ var ret map[string]interface{}
+ return ret
+ }
+ return o.Details
+}
+
+// GetDetailsOk returns a tuple with the Details field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+func (o *DrivesList400ResponseError) GetDetailsOk() (map[string]interface{}, bool) {
+ if o == nil || IsNil(o.Details) {
+ return map[string]interface{}{}, false
+ }
+ return o.Details, true
+}
+
+// HasDetails returns a boolean if a field has been set.
+func (o *DrivesList400ResponseError) HasDetails() bool {
+ if o != nil && !IsNil(o.Details) {
+ return true
+ }
+
+ return false
+}
+
+// SetDetails gets a reference to the given map[string]interface{} and assigns it to the Details field.
+func (o *DrivesList400ResponseError) SetDetails(v map[string]interface{}) {
+ o.Details = v
+}
+
+// GetMessage returns the Message field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *DrivesList400ResponseError) GetMessage() string {
+ if o == nil || o.Message.Get() == nil {
+ var ret string
+ return ret
+ }
+
+ return *o.Message.Get()
+}
+
+// GetMessageOk returns a tuple with the Message field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *DrivesList400ResponseError) GetMessageOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.Message.Get(), o.Message.IsSet()
+}
+
+// SetMessage sets field value
+func (o *DrivesList400ResponseError) SetMessage(v string) {
+ o.Message.Set(&v)
+}
+
+func (o DrivesList400ResponseError) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o DrivesList400ResponseError) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["code"] = o.Code
+ if !IsNil(o.Details) {
+ toSerialize["details"] = o.Details
+ }
+ toSerialize["message"] = o.Message.Get()
+
+ for key, value := range o.AdditionalProperties {
+ toSerialize[key] = value
+ }
+
+ return toSerialize, nil
+}
+
+func (o *DrivesList400ResponseError) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "code",
+ "message",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varDrivesList400ResponseError := _DrivesList400ResponseError{}
+
+ err = json.Unmarshal(data, &varDrivesList400ResponseError)
+
+ if err != nil {
+ return err
+ }
+
+ *o = DrivesList400ResponseError(varDrivesList400ResponseError)
+
+ additionalProperties := make(map[string]interface{})
+
+ if err = json.Unmarshal(data, &additionalProperties); err == nil {
+ delete(additionalProperties, "code")
+ delete(additionalProperties, "details")
+ delete(additionalProperties, "message")
+ o.AdditionalProperties = additionalProperties
+ }
+
+ return err
+}
+
+type NullableDrivesList400ResponseError struct {
+ value *DrivesList400ResponseError
+ isSet bool
+}
+
+func (v NullableDrivesList400ResponseError) Get() *DrivesList400ResponseError {
+ return v.value
+}
+
+func (v *NullableDrivesList400ResponseError) Set(val *DrivesList400ResponseError) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableDrivesList400ResponseError) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableDrivesList400ResponseError) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableDrivesList400ResponseError(val *DrivesList400ResponseError) *NullableDrivesList400ResponseError {
+ return &NullableDrivesList400ResponseError{value: val, isSet: true}
+}
+
+func (v NullableDrivesList400ResponseError) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableDrivesList400ResponseError) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_error_body.go b/sdk/go/model_error_body.go
deleted file mode 100644
index ac16856..0000000
--- a/sdk/go/model_error_body.go
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
-)
-
-// checks if the ErrorBody type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ErrorBody{}
-
-// ErrorBody Machine-readable API error. Error-code-specific context (for example `limit`, `current_etag`, or `retry_after_s`) is intentionally additive.
-type ErrorBody struct {
- Code string `json:"code"`
- Message string `json:"message"`
- AdditionalProperties map[string]interface{}
-}
-
-type _ErrorBody ErrorBody
-
-// NewErrorBody instantiates a new ErrorBody object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewErrorBody(code string, message string) *ErrorBody {
- this := ErrorBody{}
- this.Code = code
- this.Message = message
- return &this
-}
-
-// NewErrorBodyWithDefaults instantiates a new ErrorBody object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewErrorBodyWithDefaults() *ErrorBody {
- this := ErrorBody{}
- return &this
-}
-
-// GetCode returns the Code field value
-func (o *ErrorBody) GetCode() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Code
-}
-
-// GetCodeOk returns a tuple with the Code field value
-// and a boolean to check if the value has been set.
-func (o *ErrorBody) GetCodeOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Code, true
-}
-
-// SetCode sets field value
-func (o *ErrorBody) SetCode(v string) {
- o.Code = v
-}
-
-// GetMessage returns the Message field value
-func (o *ErrorBody) GetMessage() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Message
-}
-
-// GetMessageOk returns a tuple with the Message field value
-// and a boolean to check if the value has been set.
-func (o *ErrorBody) GetMessageOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Message, true
-}
-
-// SetMessage sets field value
-func (o *ErrorBody) SetMessage(v string) {
- o.Message = v
-}
-
-func (o ErrorBody) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ErrorBody) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["code"] = o.Code
- toSerialize["message"] = o.Message
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
- return toSerialize, nil
-}
-
-func (o *ErrorBody) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "code",
- "message",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varErrorBody := _ErrorBody{}
-
- err = json.Unmarshal(data, &varErrorBody)
-
- if err != nil {
- return err
- }
-
- *o = ErrorBody(varErrorBody)
-
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "code")
- delete(additionalProperties, "message")
- o.AdditionalProperties = additionalProperties
- }
-
- return err
-}
-
-type NullableErrorBody struct {
- value *ErrorBody
- isSet bool
-}
-
-func (v NullableErrorBody) Get() *ErrorBody {
- return v.value
-}
-
-func (v *NullableErrorBody) Set(val *ErrorBody) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableErrorBody) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableErrorBody) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableErrorBody(val *ErrorBody) *NullableErrorBody {
- return &NullableErrorBody{value: val, isSet: true}
-}
-
-func (v NullableErrorBody) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableErrorBody) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_error_detail.go b/sdk/go/model_error_detail.go
deleted file mode 100644
index 06fa0cb..0000000
--- a/sdk/go/model_error_detail.go
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
-)
-
-// checks if the ErrorDetail type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ErrorDetail{}
-
-// ErrorDetail struct for ErrorDetail
-type ErrorDetail struct {
- Error ErrorBody `json:"error"`
- AdditionalProperties map[string]interface{}
-}
-
-type _ErrorDetail ErrorDetail
-
-// NewErrorDetail instantiates a new ErrorDetail object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewErrorDetail(error_ ErrorBody) *ErrorDetail {
- this := ErrorDetail{}
- this.Error = error_
- return &this
-}
-
-// NewErrorDetailWithDefaults instantiates a new ErrorDetail object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewErrorDetailWithDefaults() *ErrorDetail {
- this := ErrorDetail{}
- return &this
-}
-
-// GetError returns the Error field value
-func (o *ErrorDetail) GetError() ErrorBody {
- if o == nil {
- var ret ErrorBody
- return ret
- }
-
- return o.Error
-}
-
-// GetErrorOk returns a tuple with the Error field value
-// and a boolean to check if the value has been set.
-func (o *ErrorDetail) GetErrorOk() (*ErrorBody, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Error, true
-}
-
-// SetError sets field value
-func (o *ErrorDetail) SetError(v ErrorBody) {
- o.Error = v
-}
-
-func (o ErrorDetail) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ErrorDetail) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["error"] = o.Error
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
- return toSerialize, nil
-}
-
-func (o *ErrorDetail) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "error",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varErrorDetail := _ErrorDetail{}
-
- err = json.Unmarshal(data, &varErrorDetail)
-
- if err != nil {
- return err
- }
-
- *o = ErrorDetail(varErrorDetail)
-
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "error")
- o.AdditionalProperties = additionalProperties
- }
-
- return err
-}
-
-type NullableErrorDetail struct {
- value *ErrorDetail
- isSet bool
-}
-
-func (v NullableErrorDetail) Get() *ErrorDetail {
- return v.value
-}
-
-func (v *NullableErrorDetail) Set(val *ErrorDetail) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableErrorDetail) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableErrorDetail) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableErrorDetail(val *ErrorDetail) *NullableErrorDetail {
- return &NullableErrorDetail{value: val, isSet: true}
-}
-
-func (v NullableErrorDetail) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableErrorDetail) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_error_response.go b/sdk/go/model_error_response.go
index 9d25b17..ac6cbdc 100644
--- a/sdk/go/model_error_response.go
+++ b/sdk/go/model_error_response.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
@@ -12,16 +12,16 @@ package agentdrive
import (
"encoding/json"
+ "bytes"
"fmt"
)
// checks if the ErrorResponse type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &ErrorResponse{}
-// ErrorResponse Canonical non-validation error envelope emitted by AgentDrive.
+// ErrorResponse struct for ErrorResponse
type ErrorResponse struct {
- Detail ErrorDetail `json:"detail"`
- AdditionalProperties map[string]interface{}
+ Error DrivesCreate400ResponseError `json:"error"`
}
type _ErrorResponse ErrorResponse
@@ -30,9 +30,9 @@ type _ErrorResponse ErrorResponse
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
-func NewErrorResponse(detail ErrorDetail) *ErrorResponse {
+func NewErrorResponse(error_ DrivesCreate400ResponseError) *ErrorResponse {
this := ErrorResponse{}
- this.Detail = detail
+ this.Error = error_
return &this
}
@@ -44,28 +44,28 @@ func NewErrorResponseWithDefaults() *ErrorResponse {
return &this
}
-// GetDetail returns the Detail field value
-func (o *ErrorResponse) GetDetail() ErrorDetail {
+// GetError returns the Error field value
+func (o *ErrorResponse) GetError() DrivesCreate400ResponseError {
if o == nil {
- var ret ErrorDetail
+ var ret DrivesCreate400ResponseError
return ret
}
- return o.Detail
+ return o.Error
}
-// GetDetailOk returns a tuple with the Detail field value
+// GetErrorOk returns a tuple with the Error field value
// and a boolean to check if the value has been set.
-func (o *ErrorResponse) GetDetailOk() (*ErrorDetail, bool) {
+func (o *ErrorResponse) GetErrorOk() (*DrivesCreate400ResponseError, bool) {
if o == nil {
return nil, false
}
- return &o.Detail, true
+ return &o.Error, true
}
-// SetDetail sets field value
-func (o *ErrorResponse) SetDetail(v ErrorDetail) {
- o.Detail = v
+// SetError sets field value
+func (o *ErrorResponse) SetError(v DrivesCreate400ResponseError) {
+ o.Error = v
}
func (o ErrorResponse) MarshalJSON() ([]byte, error) {
@@ -78,12 +78,7 @@ func (o ErrorResponse) MarshalJSON() ([]byte, error) {
func (o ErrorResponse) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
- toSerialize["detail"] = o.Detail
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
+ toSerialize["error"] = o.Error
return toSerialize, nil
}
@@ -92,7 +87,7 @@ func (o *ErrorResponse) UnmarshalJSON(data []byte) (err error) {
// by unmarshalling the object into a generic map with string keys and checking
// that every required field exists as a key in the generic map.
requiredProperties := []string{
- "detail",
+ "error",
}
allProperties := make(map[string]interface{})
@@ -111,7 +106,9 @@ func (o *ErrorResponse) UnmarshalJSON(data []byte) (err error) {
varErrorResponse := _ErrorResponse{}
- err = json.Unmarshal(data, &varErrorResponse)
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varErrorResponse)
if err != nil {
return err
@@ -119,13 +116,6 @@ func (o *ErrorResponse) UnmarshalJSON(data []byte) (err error) {
*o = ErrorResponse(varErrorResponse)
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "detail")
- o.AdditionalProperties = additionalProperties
- }
-
return err
}
diff --git a/sdk/go/model_event_out.go b/sdk/go/model_event_out.go
deleted file mode 100644
index b195c0d..0000000
--- a/sdk/go/model_event_out.go
+++ /dev/null
@@ -1,369 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the EventOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &EventOut{}
-
-// EventOut struct for EventOut
-type EventOut struct {
- Action string `json:"action"`
- ActorName NullableString `json:"actor_name,omitempty"`
- ArtId NullableString `json:"art_id,omitempty"`
- CreatedAt time.Time `json:"created_at"`
- DriveId string `json:"drive_id"`
- Id string `json:"id"`
- Metadata map[string]interface{} `json:"metadata,omitempty"`
-}
-
-type _EventOut EventOut
-
-// NewEventOut instantiates a new EventOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewEventOut(action string, createdAt time.Time, driveId string, id string) *EventOut {
- this := EventOut{}
- this.Action = action
- this.CreatedAt = createdAt
- this.DriveId = driveId
- this.Id = id
- return &this
-}
-
-// NewEventOutWithDefaults instantiates a new EventOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewEventOutWithDefaults() *EventOut {
- this := EventOut{}
- return &this
-}
-
-// GetAction returns the Action field value
-func (o *EventOut) GetAction() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Action
-}
-
-// GetActionOk returns a tuple with the Action field value
-// and a boolean to check if the value has been set.
-func (o *EventOut) GetActionOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Action, true
-}
-
-// SetAction sets field value
-func (o *EventOut) SetAction(v string) {
- o.Action = v
-}
-
-// GetActorName returns the ActorName field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *EventOut) GetActorName() string {
- if o == nil || IsNil(o.ActorName.Get()) {
- var ret string
- return ret
- }
- return *o.ActorName.Get()
-}
-
-// GetActorNameOk returns a tuple with the ActorName field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *EventOut) GetActorNameOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.ActorName.Get(), o.ActorName.IsSet()
-}
-
-// HasActorName returns a boolean if a field has been set.
-func (o *EventOut) HasActorName() bool {
- if o != nil && o.ActorName.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetActorName gets a reference to the given NullableString and assigns it to the ActorName field.
-func (o *EventOut) SetActorName(v string) {
- o.ActorName.Set(&v)
-}
-// SetActorNameNil sets the value for ActorName to be an explicit nil
-func (o *EventOut) SetActorNameNil() {
- o.ActorName.Set(nil)
-}
-
-// UnsetActorName ensures that no value is present for ActorName, not even an explicit nil
-func (o *EventOut) UnsetActorName() {
- o.ActorName.Unset()
-}
-
-// GetArtId returns the ArtId field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *EventOut) GetArtId() string {
- if o == nil || IsNil(o.ArtId.Get()) {
- var ret string
- return ret
- }
- return *o.ArtId.Get()
-}
-
-// GetArtIdOk returns a tuple with the ArtId field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *EventOut) GetArtIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.ArtId.Get(), o.ArtId.IsSet()
-}
-
-// HasArtId returns a boolean if a field has been set.
-func (o *EventOut) HasArtId() bool {
- if o != nil && o.ArtId.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetArtId gets a reference to the given NullableString and assigns it to the ArtId field.
-func (o *EventOut) SetArtId(v string) {
- o.ArtId.Set(&v)
-}
-// SetArtIdNil sets the value for ArtId to be an explicit nil
-func (o *EventOut) SetArtIdNil() {
- o.ArtId.Set(nil)
-}
-
-// UnsetArtId ensures that no value is present for ArtId, not even an explicit nil
-func (o *EventOut) UnsetArtId() {
- o.ArtId.Unset()
-}
-
-// GetCreatedAt returns the CreatedAt field value
-func (o *EventOut) GetCreatedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.CreatedAt
-}
-
-// GetCreatedAtOk returns a tuple with the CreatedAt field value
-// and a boolean to check if the value has been set.
-func (o *EventOut) GetCreatedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.CreatedAt, true
-}
-
-// SetCreatedAt sets field value
-func (o *EventOut) SetCreatedAt(v time.Time) {
- o.CreatedAt = v
-}
-
-// GetDriveId returns the DriveId field value
-func (o *EventOut) GetDriveId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.DriveId
-}
-
-// GetDriveIdOk returns a tuple with the DriveId field value
-// and a boolean to check if the value has been set.
-func (o *EventOut) GetDriveIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.DriveId, true
-}
-
-// SetDriveId sets field value
-func (o *EventOut) SetDriveId(v string) {
- o.DriveId = v
-}
-
-// GetId returns the Id field value
-func (o *EventOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *EventOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *EventOut) SetId(v string) {
- o.Id = v
-}
-
-// GetMetadata returns the Metadata field value if set, zero value otherwise.
-func (o *EventOut) GetMetadata() map[string]interface{} {
- if o == nil || IsNil(o.Metadata) {
- var ret map[string]interface{}
- return ret
- }
- return o.Metadata
-}
-
-// GetMetadataOk returns a tuple with the Metadata field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *EventOut) GetMetadataOk() (map[string]interface{}, bool) {
- if o == nil || IsNil(o.Metadata) {
- return map[string]interface{}{}, false
- }
- return o.Metadata, true
-}
-
-// HasMetadata returns a boolean if a field has been set.
-func (o *EventOut) HasMetadata() bool {
- if o != nil && !IsNil(o.Metadata) {
- return true
- }
-
- return false
-}
-
-// SetMetadata gets a reference to the given map[string]interface{} and assigns it to the Metadata field.
-func (o *EventOut) SetMetadata(v map[string]interface{}) {
- o.Metadata = v
-}
-
-func (o EventOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o EventOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["action"] = o.Action
- if o.ActorName.IsSet() {
- toSerialize["actor_name"] = o.ActorName.Get()
- }
- if o.ArtId.IsSet() {
- toSerialize["art_id"] = o.ArtId.Get()
- }
- toSerialize["created_at"] = o.CreatedAt
- toSerialize["drive_id"] = o.DriveId
- toSerialize["id"] = o.Id
- if !IsNil(o.Metadata) {
- toSerialize["metadata"] = o.Metadata
- }
- return toSerialize, nil
-}
-
-func (o *EventOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "action",
- "created_at",
- "drive_id",
- "id",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varEventOut := _EventOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varEventOut)
-
- if err != nil {
- return err
- }
-
- *o = EventOut(varEventOut)
-
- return err
-}
-
-type NullableEventOut struct {
- value *EventOut
- isSet bool
-}
-
-func (v NullableEventOut) Get() *EventOut {
- return v.value
-}
-
-func (v *NullableEventOut) Set(val *EventOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableEventOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableEventOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableEventOut(val *EventOut) *NullableEventOut {
- return &NullableEventOut{value: val, isSet: true}
-}
-
-func (v NullableEventOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableEventOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_event_page.go b/sdk/go/model_event_page.go
deleted file mode 100644
index 9ab78ea..0000000
--- a/sdk/go/model_event_page.go
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the EventPage type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &EventPage{}
-
-// EventPage struct for EventPage
-type EventPage struct {
- Items []EventOut `json:"items"`
- NextCursor NullableString `json:"next_cursor,omitempty"`
-}
-
-type _EventPage EventPage
-
-// NewEventPage instantiates a new EventPage object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewEventPage(items []EventOut) *EventPage {
- this := EventPage{}
- this.Items = items
- return &this
-}
-
-// NewEventPageWithDefaults instantiates a new EventPage object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewEventPageWithDefaults() *EventPage {
- this := EventPage{}
- return &this
-}
-
-// GetItems returns the Items field value
-func (o *EventPage) GetItems() []EventOut {
- if o == nil {
- var ret []EventOut
- return ret
- }
-
- return o.Items
-}
-
-// GetItemsOk returns a tuple with the Items field value
-// and a boolean to check if the value has been set.
-func (o *EventPage) GetItemsOk() ([]EventOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Items, true
-}
-
-// SetItems sets field value
-func (o *EventPage) SetItems(v []EventOut) {
- o.Items = v
-}
-
-// GetNextCursor returns the NextCursor field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *EventPage) GetNextCursor() string {
- if o == nil || IsNil(o.NextCursor.Get()) {
- var ret string
- return ret
- }
- return *o.NextCursor.Get()
-}
-
-// GetNextCursorOk returns a tuple with the NextCursor field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *EventPage) GetNextCursorOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.NextCursor.Get(), o.NextCursor.IsSet()
-}
-
-// HasNextCursor returns a boolean if a field has been set.
-func (o *EventPage) HasNextCursor() bool {
- if o != nil && o.NextCursor.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetNextCursor gets a reference to the given NullableString and assigns it to the NextCursor field.
-func (o *EventPage) SetNextCursor(v string) {
- o.NextCursor.Set(&v)
-}
-// SetNextCursorNil sets the value for NextCursor to be an explicit nil
-func (o *EventPage) SetNextCursorNil() {
- o.NextCursor.Set(nil)
-}
-
-// UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-func (o *EventPage) UnsetNextCursor() {
- o.NextCursor.Unset()
-}
-
-func (o EventPage) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o EventPage) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["items"] = o.Items
- if o.NextCursor.IsSet() {
- toSerialize["next_cursor"] = o.NextCursor.Get()
- }
- return toSerialize, nil
-}
-
-func (o *EventPage) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "items",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varEventPage := _EventPage{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varEventPage)
-
- if err != nil {
- return err
- }
-
- *o = EventPage(varEventPage)
-
- return err
-}
-
-type NullableEventPage struct {
- value *EventPage
- isSet bool
-}
-
-func (v NullableEventPage) Get() *EventPage {
- return v.value
-}
-
-func (v *NullableEventPage) Set(val *EventPage) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableEventPage) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableEventPage) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableEventPage(val *EventPage) *NullableEventPage {
- return &NullableEventPage{value: val, isSet: true}
-}
-
-func (v NullableEventPage) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableEventPage) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_extension_exchange_request.go b/sdk/go/model_extension_exchange_request.go
deleted file mode 100644
index 676a2a9..0000000
--- a/sdk/go/model_extension_exchange_request.go
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the ExtensionExchangeRequest type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ExtensionExchangeRequest{}
-
-// ExtensionExchangeRequest Single-use ticket → JWT pair. Called by `auth-complete.html` inside the SnipIt extension. No `Authorization` header — the ticket itself is the credential.
-type ExtensionExchangeRequest struct {
- // The extension's ID (Chrome Web Store ID or unpacked dev ID).
- ExtId string `json:"ext_id"`
- // The opaque ticket from the /auth/callback handoff.
- Ticket string `json:"ticket"`
-}
-
-type _ExtensionExchangeRequest ExtensionExchangeRequest
-
-// NewExtensionExchangeRequest instantiates a new ExtensionExchangeRequest object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewExtensionExchangeRequest(extId string, ticket string) *ExtensionExchangeRequest {
- this := ExtensionExchangeRequest{}
- this.ExtId = extId
- this.Ticket = ticket
- return &this
-}
-
-// NewExtensionExchangeRequestWithDefaults instantiates a new ExtensionExchangeRequest object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewExtensionExchangeRequestWithDefaults() *ExtensionExchangeRequest {
- this := ExtensionExchangeRequest{}
- return &this
-}
-
-// GetExtId returns the ExtId field value
-func (o *ExtensionExchangeRequest) GetExtId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.ExtId
-}
-
-// GetExtIdOk returns a tuple with the ExtId field value
-// and a boolean to check if the value has been set.
-func (o *ExtensionExchangeRequest) GetExtIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ExtId, true
-}
-
-// SetExtId sets field value
-func (o *ExtensionExchangeRequest) SetExtId(v string) {
- o.ExtId = v
-}
-
-// GetTicket returns the Ticket field value
-func (o *ExtensionExchangeRequest) GetTicket() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Ticket
-}
-
-// GetTicketOk returns a tuple with the Ticket field value
-// and a boolean to check if the value has been set.
-func (o *ExtensionExchangeRequest) GetTicketOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Ticket, true
-}
-
-// SetTicket sets field value
-func (o *ExtensionExchangeRequest) SetTicket(v string) {
- o.Ticket = v
-}
-
-func (o ExtensionExchangeRequest) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ExtensionExchangeRequest) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["ext_id"] = o.ExtId
- toSerialize["ticket"] = o.Ticket
- return toSerialize, nil
-}
-
-func (o *ExtensionExchangeRequest) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "ext_id",
- "ticket",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varExtensionExchangeRequest := _ExtensionExchangeRequest{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varExtensionExchangeRequest)
-
- if err != nil {
- return err
- }
-
- *o = ExtensionExchangeRequest(varExtensionExchangeRequest)
-
- return err
-}
-
-type NullableExtensionExchangeRequest struct {
- value *ExtensionExchangeRequest
- isSet bool
-}
-
-func (v NullableExtensionExchangeRequest) Get() *ExtensionExchangeRequest {
- return v.value
-}
-
-func (v *NullableExtensionExchangeRequest) Set(val *ExtensionExchangeRequest) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableExtensionExchangeRequest) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableExtensionExchangeRequest) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableExtensionExchangeRequest(val *ExtensionExchangeRequest) *NullableExtensionExchangeRequest {
- return &NullableExtensionExchangeRequest{value: val, isSet: true}
-}
-
-func (v NullableExtensionExchangeRequest) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableExtensionExchangeRequest) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_extension_exchange_response.go b/sdk/go/model_extension_exchange_response.go
deleted file mode 100644
index cdf468b..0000000
--- a/sdk/go/model_extension_exchange_response.go
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the ExtensionExchangeResponse type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ExtensionExchangeResponse{}
-
-// ExtensionExchangeResponse struct for ExtensionExchangeResponse
-type ExtensionExchangeResponse struct {
- // 15-minute access_token (scope=extension).
- AccessToken string `json:"access_token"`
- // The drive these credentials are scoped to.
- DriveId string `json:"drive_id"`
- // Seconds until access_token expiry.
- ExpiresIn int32 `json:"expires_in"`
- // 90-day identity_assertion. Refresh via POST /oauth2/token.
- IdentityAssertion string `json:"identity_assertion"`
- Scope *string `json:"scope,omitempty"`
- TokenType *string `json:"token_type,omitempty"`
-}
-
-type _ExtensionExchangeResponse ExtensionExchangeResponse
-
-// NewExtensionExchangeResponse instantiates a new ExtensionExchangeResponse object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewExtensionExchangeResponse(accessToken string, driveId string, expiresIn int32, identityAssertion string) *ExtensionExchangeResponse {
- this := ExtensionExchangeResponse{}
- this.AccessToken = accessToken
- this.DriveId = driveId
- this.ExpiresIn = expiresIn
- this.IdentityAssertion = identityAssertion
- var scope string = "extension"
- this.Scope = &scope
- var tokenType string = "Bearer"
- this.TokenType = &tokenType
- return &this
-}
-
-// NewExtensionExchangeResponseWithDefaults instantiates a new ExtensionExchangeResponse object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewExtensionExchangeResponseWithDefaults() *ExtensionExchangeResponse {
- this := ExtensionExchangeResponse{}
- var scope string = "extension"
- this.Scope = &scope
- var tokenType string = "Bearer"
- this.TokenType = &tokenType
- return &this
-}
-
-// GetAccessToken returns the AccessToken field value
-func (o *ExtensionExchangeResponse) GetAccessToken() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.AccessToken
-}
-
-// GetAccessTokenOk returns a tuple with the AccessToken field value
-// and a boolean to check if the value has been set.
-func (o *ExtensionExchangeResponse) GetAccessTokenOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.AccessToken, true
-}
-
-// SetAccessToken sets field value
-func (o *ExtensionExchangeResponse) SetAccessToken(v string) {
- o.AccessToken = v
-}
-
-// GetDriveId returns the DriveId field value
-func (o *ExtensionExchangeResponse) GetDriveId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.DriveId
-}
-
-// GetDriveIdOk returns a tuple with the DriveId field value
-// and a boolean to check if the value has been set.
-func (o *ExtensionExchangeResponse) GetDriveIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.DriveId, true
-}
-
-// SetDriveId sets field value
-func (o *ExtensionExchangeResponse) SetDriveId(v string) {
- o.DriveId = v
-}
-
-// GetExpiresIn returns the ExpiresIn field value
-func (o *ExtensionExchangeResponse) GetExpiresIn() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.ExpiresIn
-}
-
-// GetExpiresInOk returns a tuple with the ExpiresIn field value
-// and a boolean to check if the value has been set.
-func (o *ExtensionExchangeResponse) GetExpiresInOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ExpiresIn, true
-}
-
-// SetExpiresIn sets field value
-func (o *ExtensionExchangeResponse) SetExpiresIn(v int32) {
- o.ExpiresIn = v
-}
-
-// GetIdentityAssertion returns the IdentityAssertion field value
-func (o *ExtensionExchangeResponse) GetIdentityAssertion() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.IdentityAssertion
-}
-
-// GetIdentityAssertionOk returns a tuple with the IdentityAssertion field value
-// and a boolean to check if the value has been set.
-func (o *ExtensionExchangeResponse) GetIdentityAssertionOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.IdentityAssertion, true
-}
-
-// SetIdentityAssertion sets field value
-func (o *ExtensionExchangeResponse) SetIdentityAssertion(v string) {
- o.IdentityAssertion = v
-}
-
-// GetScope returns the Scope field value if set, zero value otherwise.
-func (o *ExtensionExchangeResponse) GetScope() string {
- if o == nil || IsNil(o.Scope) {
- var ret string
- return ret
- }
- return *o.Scope
-}
-
-// GetScopeOk returns a tuple with the Scope field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *ExtensionExchangeResponse) GetScopeOk() (*string, bool) {
- if o == nil || IsNil(o.Scope) {
- return nil, false
- }
- return o.Scope, true
-}
-
-// HasScope returns a boolean if a field has been set.
-func (o *ExtensionExchangeResponse) HasScope() bool {
- if o != nil && !IsNil(o.Scope) {
- return true
- }
-
- return false
-}
-
-// SetScope gets a reference to the given string and assigns it to the Scope field.
-func (o *ExtensionExchangeResponse) SetScope(v string) {
- o.Scope = &v
-}
-
-// GetTokenType returns the TokenType field value if set, zero value otherwise.
-func (o *ExtensionExchangeResponse) GetTokenType() string {
- if o == nil || IsNil(o.TokenType) {
- var ret string
- return ret
- }
- return *o.TokenType
-}
-
-// GetTokenTypeOk returns a tuple with the TokenType field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *ExtensionExchangeResponse) GetTokenTypeOk() (*string, bool) {
- if o == nil || IsNil(o.TokenType) {
- return nil, false
- }
- return o.TokenType, true
-}
-
-// HasTokenType returns a boolean if a field has been set.
-func (o *ExtensionExchangeResponse) HasTokenType() bool {
- if o != nil && !IsNil(o.TokenType) {
- return true
- }
-
- return false
-}
-
-// SetTokenType gets a reference to the given string and assigns it to the TokenType field.
-func (o *ExtensionExchangeResponse) SetTokenType(v string) {
- o.TokenType = &v
-}
-
-func (o ExtensionExchangeResponse) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ExtensionExchangeResponse) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["access_token"] = o.AccessToken
- toSerialize["drive_id"] = o.DriveId
- toSerialize["expires_in"] = o.ExpiresIn
- toSerialize["identity_assertion"] = o.IdentityAssertion
- if !IsNil(o.Scope) {
- toSerialize["scope"] = o.Scope
- }
- if !IsNil(o.TokenType) {
- toSerialize["token_type"] = o.TokenType
- }
- return toSerialize, nil
-}
-
-func (o *ExtensionExchangeResponse) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "access_token",
- "drive_id",
- "expires_in",
- "identity_assertion",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varExtensionExchangeResponse := _ExtensionExchangeResponse{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varExtensionExchangeResponse)
-
- if err != nil {
- return err
- }
-
- *o = ExtensionExchangeResponse(varExtensionExchangeResponse)
-
- return err
-}
-
-type NullableExtensionExchangeResponse struct {
- value *ExtensionExchangeResponse
- isSet bool
-}
-
-func (v NullableExtensionExchangeResponse) Get() *ExtensionExchangeResponse {
- return v.value
-}
-
-func (v *NullableExtensionExchangeResponse) Set(val *ExtensionExchangeResponse) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableExtensionExchangeResponse) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableExtensionExchangeResponse) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableExtensionExchangeResponse(val *ExtensionExchangeResponse) *NullableExtensionExchangeResponse {
- return &NullableExtensionExchangeResponse{value: val, isSet: true}
-}
-
-func (v NullableExtensionExchangeResponse) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableExtensionExchangeResponse) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_feedback_create_out.go b/sdk/go/model_feedback_create_out.go
deleted file mode 100644
index 955bfda..0000000
--- a/sdk/go/model_feedback_create_out.go
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the FeedbackCreateOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &FeedbackCreateOut{}
-
-// FeedbackCreateOut struct for FeedbackCreateOut
-type FeedbackCreateOut struct {
- Contact bool `json:"contact"`
- Id string `json:"id"`
- Note NullableString `json:"note,omitempty"`
- Status string `json:"status"`
-}
-
-type _FeedbackCreateOut FeedbackCreateOut
-
-// NewFeedbackCreateOut instantiates a new FeedbackCreateOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewFeedbackCreateOut(contact bool, id string, status string) *FeedbackCreateOut {
- this := FeedbackCreateOut{}
- this.Contact = contact
- this.Id = id
- this.Status = status
- return &this
-}
-
-// NewFeedbackCreateOutWithDefaults instantiates a new FeedbackCreateOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewFeedbackCreateOutWithDefaults() *FeedbackCreateOut {
- this := FeedbackCreateOut{}
- return &this
-}
-
-// GetContact returns the Contact field value
-func (o *FeedbackCreateOut) GetContact() bool {
- if o == nil {
- var ret bool
- return ret
- }
-
- return o.Contact
-}
-
-// GetContactOk returns a tuple with the Contact field value
-// and a boolean to check if the value has been set.
-func (o *FeedbackCreateOut) GetContactOk() (*bool, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Contact, true
-}
-
-// SetContact sets field value
-func (o *FeedbackCreateOut) SetContact(v bool) {
- o.Contact = v
-}
-
-// GetId returns the Id field value
-func (o *FeedbackCreateOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *FeedbackCreateOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *FeedbackCreateOut) SetId(v string) {
- o.Id = v
-}
-
-// GetNote returns the Note field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FeedbackCreateOut) GetNote() string {
- if o == nil || IsNil(o.Note.Get()) {
- var ret string
- return ret
- }
- return *o.Note.Get()
-}
-
-// GetNoteOk returns a tuple with the Note field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FeedbackCreateOut) GetNoteOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Note.Get(), o.Note.IsSet()
-}
-
-// HasNote returns a boolean if a field has been set.
-func (o *FeedbackCreateOut) HasNote() bool {
- if o != nil && o.Note.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetNote gets a reference to the given NullableString and assigns it to the Note field.
-func (o *FeedbackCreateOut) SetNote(v string) {
- o.Note.Set(&v)
-}
-// SetNoteNil sets the value for Note to be an explicit nil
-func (o *FeedbackCreateOut) SetNoteNil() {
- o.Note.Set(nil)
-}
-
-// UnsetNote ensures that no value is present for Note, not even an explicit nil
-func (o *FeedbackCreateOut) UnsetNote() {
- o.Note.Unset()
-}
-
-// GetStatus returns the Status field value
-func (o *FeedbackCreateOut) GetStatus() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Status
-}
-
-// GetStatusOk returns a tuple with the Status field value
-// and a boolean to check if the value has been set.
-func (o *FeedbackCreateOut) GetStatusOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Status, true
-}
-
-// SetStatus sets field value
-func (o *FeedbackCreateOut) SetStatus(v string) {
- o.Status = v
-}
-
-func (o FeedbackCreateOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o FeedbackCreateOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["contact"] = o.Contact
- toSerialize["id"] = o.Id
- if o.Note.IsSet() {
- toSerialize["note"] = o.Note.Get()
- }
- toSerialize["status"] = o.Status
- return toSerialize, nil
-}
-
-func (o *FeedbackCreateOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "contact",
- "id",
- "status",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varFeedbackCreateOut := _FeedbackCreateOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varFeedbackCreateOut)
-
- if err != nil {
- return err
- }
-
- *o = FeedbackCreateOut(varFeedbackCreateOut)
-
- return err
-}
-
-type NullableFeedbackCreateOut struct {
- value *FeedbackCreateOut
- isSet bool
-}
-
-func (v NullableFeedbackCreateOut) Get() *FeedbackCreateOut {
- return v.value
-}
-
-func (v *NullableFeedbackCreateOut) Set(val *FeedbackCreateOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableFeedbackCreateOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableFeedbackCreateOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableFeedbackCreateOut(val *FeedbackCreateOut) *NullableFeedbackCreateOut {
- return &NullableFeedbackCreateOut{value: val, isSet: true}
-}
-
-func (v NullableFeedbackCreateOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableFeedbackCreateOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_feedback_status_out.go b/sdk/go/model_feedback_status_out.go
deleted file mode 100644
index 5b68724..0000000
--- a/sdk/go/model_feedback_status_out.go
+++ /dev/null
@@ -1,371 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the FeedbackStatusOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &FeedbackStatusOut{}
-
-// FeedbackStatusOut GET /v0/feedback/{fbk_id} response — lifecycle status of feedback THIS drive filed.
-type FeedbackStatusOut struct {
- Contact bool `json:"contact"`
- CreatedAt time.Time `json:"created_at"`
- DuplicateOf NullableString `json:"duplicate_of,omitempty"`
- Id string `json:"id"`
- Kind string `json:"kind"`
- Status string `json:"status"`
- StatusChangedAt time.Time `json:"status_changed_at"`
- Title string `json:"title"`
-}
-
-type _FeedbackStatusOut FeedbackStatusOut
-
-// NewFeedbackStatusOut instantiates a new FeedbackStatusOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewFeedbackStatusOut(contact bool, createdAt time.Time, id string, kind string, status string, statusChangedAt time.Time, title string) *FeedbackStatusOut {
- this := FeedbackStatusOut{}
- this.Contact = contact
- this.CreatedAt = createdAt
- this.Id = id
- this.Kind = kind
- this.Status = status
- this.StatusChangedAt = statusChangedAt
- this.Title = title
- return &this
-}
-
-// NewFeedbackStatusOutWithDefaults instantiates a new FeedbackStatusOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewFeedbackStatusOutWithDefaults() *FeedbackStatusOut {
- this := FeedbackStatusOut{}
- return &this
-}
-
-// GetContact returns the Contact field value
-func (o *FeedbackStatusOut) GetContact() bool {
- if o == nil {
- var ret bool
- return ret
- }
-
- return o.Contact
-}
-
-// GetContactOk returns a tuple with the Contact field value
-// and a boolean to check if the value has been set.
-func (o *FeedbackStatusOut) GetContactOk() (*bool, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Contact, true
-}
-
-// SetContact sets field value
-func (o *FeedbackStatusOut) SetContact(v bool) {
- o.Contact = v
-}
-
-// GetCreatedAt returns the CreatedAt field value
-func (o *FeedbackStatusOut) GetCreatedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.CreatedAt
-}
-
-// GetCreatedAtOk returns a tuple with the CreatedAt field value
-// and a boolean to check if the value has been set.
-func (o *FeedbackStatusOut) GetCreatedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.CreatedAt, true
-}
-
-// SetCreatedAt sets field value
-func (o *FeedbackStatusOut) SetCreatedAt(v time.Time) {
- o.CreatedAt = v
-}
-
-// GetDuplicateOf returns the DuplicateOf field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FeedbackStatusOut) GetDuplicateOf() string {
- if o == nil || IsNil(o.DuplicateOf.Get()) {
- var ret string
- return ret
- }
- return *o.DuplicateOf.Get()
-}
-
-// GetDuplicateOfOk returns a tuple with the DuplicateOf field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FeedbackStatusOut) GetDuplicateOfOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.DuplicateOf.Get(), o.DuplicateOf.IsSet()
-}
-
-// HasDuplicateOf returns a boolean if a field has been set.
-func (o *FeedbackStatusOut) HasDuplicateOf() bool {
- if o != nil && o.DuplicateOf.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetDuplicateOf gets a reference to the given NullableString and assigns it to the DuplicateOf field.
-func (o *FeedbackStatusOut) SetDuplicateOf(v string) {
- o.DuplicateOf.Set(&v)
-}
-// SetDuplicateOfNil sets the value for DuplicateOf to be an explicit nil
-func (o *FeedbackStatusOut) SetDuplicateOfNil() {
- o.DuplicateOf.Set(nil)
-}
-
-// UnsetDuplicateOf ensures that no value is present for DuplicateOf, not even an explicit nil
-func (o *FeedbackStatusOut) UnsetDuplicateOf() {
- o.DuplicateOf.Unset()
-}
-
-// GetId returns the Id field value
-func (o *FeedbackStatusOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *FeedbackStatusOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *FeedbackStatusOut) SetId(v string) {
- o.Id = v
-}
-
-// GetKind returns the Kind field value
-func (o *FeedbackStatusOut) GetKind() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Kind
-}
-
-// GetKindOk returns a tuple with the Kind field value
-// and a boolean to check if the value has been set.
-func (o *FeedbackStatusOut) GetKindOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Kind, true
-}
-
-// SetKind sets field value
-func (o *FeedbackStatusOut) SetKind(v string) {
- o.Kind = v
-}
-
-// GetStatus returns the Status field value
-func (o *FeedbackStatusOut) GetStatus() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Status
-}
-
-// GetStatusOk returns a tuple with the Status field value
-// and a boolean to check if the value has been set.
-func (o *FeedbackStatusOut) GetStatusOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Status, true
-}
-
-// SetStatus sets field value
-func (o *FeedbackStatusOut) SetStatus(v string) {
- o.Status = v
-}
-
-// GetStatusChangedAt returns the StatusChangedAt field value
-func (o *FeedbackStatusOut) GetStatusChangedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.StatusChangedAt
-}
-
-// GetStatusChangedAtOk returns a tuple with the StatusChangedAt field value
-// and a boolean to check if the value has been set.
-func (o *FeedbackStatusOut) GetStatusChangedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.StatusChangedAt, true
-}
-
-// SetStatusChangedAt sets field value
-func (o *FeedbackStatusOut) SetStatusChangedAt(v time.Time) {
- o.StatusChangedAt = v
-}
-
-// GetTitle returns the Title field value
-func (o *FeedbackStatusOut) GetTitle() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Title
-}
-
-// GetTitleOk returns a tuple with the Title field value
-// and a boolean to check if the value has been set.
-func (o *FeedbackStatusOut) GetTitleOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Title, true
-}
-
-// SetTitle sets field value
-func (o *FeedbackStatusOut) SetTitle(v string) {
- o.Title = v
-}
-
-func (o FeedbackStatusOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o FeedbackStatusOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["contact"] = o.Contact
- toSerialize["created_at"] = o.CreatedAt
- if o.DuplicateOf.IsSet() {
- toSerialize["duplicate_of"] = o.DuplicateOf.Get()
- }
- toSerialize["id"] = o.Id
- toSerialize["kind"] = o.Kind
- toSerialize["status"] = o.Status
- toSerialize["status_changed_at"] = o.StatusChangedAt
- toSerialize["title"] = o.Title
- return toSerialize, nil
-}
-
-func (o *FeedbackStatusOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "contact",
- "created_at",
- "id",
- "kind",
- "status",
- "status_changed_at",
- "title",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varFeedbackStatusOut := _FeedbackStatusOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varFeedbackStatusOut)
-
- if err != nil {
- return err
- }
-
- *o = FeedbackStatusOut(varFeedbackStatusOut)
-
- return err
-}
-
-type NullableFeedbackStatusOut struct {
- value *FeedbackStatusOut
- isSet bool
-}
-
-func (v NullableFeedbackStatusOut) Get() *FeedbackStatusOut {
- return v.value
-}
-
-func (v *NullableFeedbackStatusOut) Set(val *FeedbackStatusOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableFeedbackStatusOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableFeedbackStatusOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableFeedbackStatusOut(val *FeedbackStatusOut) *NullableFeedbackStatusOut {
- return &NullableFeedbackStatusOut{value: val, isSet: true}
-}
-
-func (v NullableFeedbackStatusOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableFeedbackStatusOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_find_hit_out.go b/sdk/go/model_find_hit_out.go
deleted file mode 100644
index 734f6eb..0000000
--- a/sdk/go/model_find_hit_out.go
+++ /dev/null
@@ -1,897 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the FindHitOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &FindHitOut{}
-
-// FindHitOut One passage-level hit from `/v0/find` (hybrid chunk RAG over `embed_chunks`). The unit is a passage, not a file — consecutive `ord` values from the same `art_id` are normal because chunks overlap by ~400 tokens. Span fields are modality-aware: only the pair matching `modality` is populated, the others stay None.
-type FindHitOut struct {
- ArtId string `json:"art_id"`
- CharEnd NullableInt32 `json:"char_end,omitempty"`
- CharStart NullableInt32 `json:"char_start,omitempty"`
- ContentType string `json:"content_type"`
- DriveId string `json:"drive_id"`
- FileType string `json:"file_type"`
- Labels []string `json:"labels,omitempty"`
- Modality string `json:"modality"`
- Ord int32 `json:"ord"`
- PageEnd NullableInt32 `json:"page_end,omitempty"`
- PageStart NullableInt32 `json:"page_start,omitempty"`
- Path string `json:"path"`
- RankLexical NullableInt32 `json:"rank_lexical,omitempty"`
- RankSemantic NullableInt32 `json:"rank_semantic,omitempty"`
- Score float32 `json:"score"`
- Snippet string `json:"snippet"`
- Text string `json:"text"`
- TimeEndMs NullableInt32 `json:"time_end_ms,omitempty"`
- TimeStartMs NullableInt32 `json:"time_start_ms,omitempty"`
- UpdatedAt time.Time `json:"updated_at"`
- Url string `json:"url"`
- VersionNumber int32 `json:"version_number"`
-}
-
-type _FindHitOut FindHitOut
-
-// NewFindHitOut instantiates a new FindHitOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewFindHitOut(artId string, contentType string, driveId string, fileType string, modality string, ord int32, path string, score float32, snippet string, text string, updatedAt time.Time, url string, versionNumber int32) *FindHitOut {
- this := FindHitOut{}
- this.ArtId = artId
- this.ContentType = contentType
- this.DriveId = driveId
- this.FileType = fileType
- this.Modality = modality
- this.Ord = ord
- this.Path = path
- this.Score = score
- this.Snippet = snippet
- this.Text = text
- this.UpdatedAt = updatedAt
- this.Url = url
- this.VersionNumber = versionNumber
- return &this
-}
-
-// NewFindHitOutWithDefaults instantiates a new FindHitOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewFindHitOutWithDefaults() *FindHitOut {
- this := FindHitOut{}
- return &this
-}
-
-// GetArtId returns the ArtId field value
-func (o *FindHitOut) GetArtId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.ArtId
-}
-
-// GetArtIdOk returns a tuple with the ArtId field value
-// and a boolean to check if the value has been set.
-func (o *FindHitOut) GetArtIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ArtId, true
-}
-
-// SetArtId sets field value
-func (o *FindHitOut) SetArtId(v string) {
- o.ArtId = v
-}
-
-// GetCharEnd returns the CharEnd field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FindHitOut) GetCharEnd() int32 {
- if o == nil || IsNil(o.CharEnd.Get()) {
- var ret int32
- return ret
- }
- return *o.CharEnd.Get()
-}
-
-// GetCharEndOk returns a tuple with the CharEnd field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FindHitOut) GetCharEndOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return o.CharEnd.Get(), o.CharEnd.IsSet()
-}
-
-// HasCharEnd returns a boolean if a field has been set.
-func (o *FindHitOut) HasCharEnd() bool {
- if o != nil && o.CharEnd.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetCharEnd gets a reference to the given NullableInt32 and assigns it to the CharEnd field.
-func (o *FindHitOut) SetCharEnd(v int32) {
- o.CharEnd.Set(&v)
-}
-// SetCharEndNil sets the value for CharEnd to be an explicit nil
-func (o *FindHitOut) SetCharEndNil() {
- o.CharEnd.Set(nil)
-}
-
-// UnsetCharEnd ensures that no value is present for CharEnd, not even an explicit nil
-func (o *FindHitOut) UnsetCharEnd() {
- o.CharEnd.Unset()
-}
-
-// GetCharStart returns the CharStart field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FindHitOut) GetCharStart() int32 {
- if o == nil || IsNil(o.CharStart.Get()) {
- var ret int32
- return ret
- }
- return *o.CharStart.Get()
-}
-
-// GetCharStartOk returns a tuple with the CharStart field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FindHitOut) GetCharStartOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return o.CharStart.Get(), o.CharStart.IsSet()
-}
-
-// HasCharStart returns a boolean if a field has been set.
-func (o *FindHitOut) HasCharStart() bool {
- if o != nil && o.CharStart.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetCharStart gets a reference to the given NullableInt32 and assigns it to the CharStart field.
-func (o *FindHitOut) SetCharStart(v int32) {
- o.CharStart.Set(&v)
-}
-// SetCharStartNil sets the value for CharStart to be an explicit nil
-func (o *FindHitOut) SetCharStartNil() {
- o.CharStart.Set(nil)
-}
-
-// UnsetCharStart ensures that no value is present for CharStart, not even an explicit nil
-func (o *FindHitOut) UnsetCharStart() {
- o.CharStart.Unset()
-}
-
-// GetContentType returns the ContentType field value
-func (o *FindHitOut) GetContentType() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.ContentType
-}
-
-// GetContentTypeOk returns a tuple with the ContentType field value
-// and a boolean to check if the value has been set.
-func (o *FindHitOut) GetContentTypeOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ContentType, true
-}
-
-// SetContentType sets field value
-func (o *FindHitOut) SetContentType(v string) {
- o.ContentType = v
-}
-
-// GetDriveId returns the DriveId field value
-func (o *FindHitOut) GetDriveId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.DriveId
-}
-
-// GetDriveIdOk returns a tuple with the DriveId field value
-// and a boolean to check if the value has been set.
-func (o *FindHitOut) GetDriveIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.DriveId, true
-}
-
-// SetDriveId sets field value
-func (o *FindHitOut) SetDriveId(v string) {
- o.DriveId = v
-}
-
-// GetFileType returns the FileType field value
-func (o *FindHitOut) GetFileType() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.FileType
-}
-
-// GetFileTypeOk returns a tuple with the FileType field value
-// and a boolean to check if the value has been set.
-func (o *FindHitOut) GetFileTypeOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.FileType, true
-}
-
-// SetFileType sets field value
-func (o *FindHitOut) SetFileType(v string) {
- o.FileType = v
-}
-
-// GetLabels returns the Labels field value if set, zero value otherwise.
-func (o *FindHitOut) GetLabels() []string {
- if o == nil || IsNil(o.Labels) {
- var ret []string
- return ret
- }
- return o.Labels
-}
-
-// GetLabelsOk returns a tuple with the Labels field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *FindHitOut) GetLabelsOk() ([]string, bool) {
- if o == nil || IsNil(o.Labels) {
- return nil, false
- }
- return o.Labels, true
-}
-
-// HasLabels returns a boolean if a field has been set.
-func (o *FindHitOut) HasLabels() bool {
- if o != nil && !IsNil(o.Labels) {
- return true
- }
-
- return false
-}
-
-// SetLabels gets a reference to the given []string and assigns it to the Labels field.
-func (o *FindHitOut) SetLabels(v []string) {
- o.Labels = v
-}
-
-// GetModality returns the Modality field value
-func (o *FindHitOut) GetModality() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Modality
-}
-
-// GetModalityOk returns a tuple with the Modality field value
-// and a boolean to check if the value has been set.
-func (o *FindHitOut) GetModalityOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Modality, true
-}
-
-// SetModality sets field value
-func (o *FindHitOut) SetModality(v string) {
- o.Modality = v
-}
-
-// GetOrd returns the Ord field value
-func (o *FindHitOut) GetOrd() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.Ord
-}
-
-// GetOrdOk returns a tuple with the Ord field value
-// and a boolean to check if the value has been set.
-func (o *FindHitOut) GetOrdOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Ord, true
-}
-
-// SetOrd sets field value
-func (o *FindHitOut) SetOrd(v int32) {
- o.Ord = v
-}
-
-// GetPageEnd returns the PageEnd field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FindHitOut) GetPageEnd() int32 {
- if o == nil || IsNil(o.PageEnd.Get()) {
- var ret int32
- return ret
- }
- return *o.PageEnd.Get()
-}
-
-// GetPageEndOk returns a tuple with the PageEnd field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FindHitOut) GetPageEndOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return o.PageEnd.Get(), o.PageEnd.IsSet()
-}
-
-// HasPageEnd returns a boolean if a field has been set.
-func (o *FindHitOut) HasPageEnd() bool {
- if o != nil && o.PageEnd.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetPageEnd gets a reference to the given NullableInt32 and assigns it to the PageEnd field.
-func (o *FindHitOut) SetPageEnd(v int32) {
- o.PageEnd.Set(&v)
-}
-// SetPageEndNil sets the value for PageEnd to be an explicit nil
-func (o *FindHitOut) SetPageEndNil() {
- o.PageEnd.Set(nil)
-}
-
-// UnsetPageEnd ensures that no value is present for PageEnd, not even an explicit nil
-func (o *FindHitOut) UnsetPageEnd() {
- o.PageEnd.Unset()
-}
-
-// GetPageStart returns the PageStart field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FindHitOut) GetPageStart() int32 {
- if o == nil || IsNil(o.PageStart.Get()) {
- var ret int32
- return ret
- }
- return *o.PageStart.Get()
-}
-
-// GetPageStartOk returns a tuple with the PageStart field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FindHitOut) GetPageStartOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return o.PageStart.Get(), o.PageStart.IsSet()
-}
-
-// HasPageStart returns a boolean if a field has been set.
-func (o *FindHitOut) HasPageStart() bool {
- if o != nil && o.PageStart.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetPageStart gets a reference to the given NullableInt32 and assigns it to the PageStart field.
-func (o *FindHitOut) SetPageStart(v int32) {
- o.PageStart.Set(&v)
-}
-// SetPageStartNil sets the value for PageStart to be an explicit nil
-func (o *FindHitOut) SetPageStartNil() {
- o.PageStart.Set(nil)
-}
-
-// UnsetPageStart ensures that no value is present for PageStart, not even an explicit nil
-func (o *FindHitOut) UnsetPageStart() {
- o.PageStart.Unset()
-}
-
-// GetPath returns the Path field value
-func (o *FindHitOut) GetPath() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Path
-}
-
-// GetPathOk returns a tuple with the Path field value
-// and a boolean to check if the value has been set.
-func (o *FindHitOut) GetPathOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Path, true
-}
-
-// SetPath sets field value
-func (o *FindHitOut) SetPath(v string) {
- o.Path = v
-}
-
-// GetRankLexical returns the RankLexical field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FindHitOut) GetRankLexical() int32 {
- if o == nil || IsNil(o.RankLexical.Get()) {
- var ret int32
- return ret
- }
- return *o.RankLexical.Get()
-}
-
-// GetRankLexicalOk returns a tuple with the RankLexical field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FindHitOut) GetRankLexicalOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return o.RankLexical.Get(), o.RankLexical.IsSet()
-}
-
-// HasRankLexical returns a boolean if a field has been set.
-func (o *FindHitOut) HasRankLexical() bool {
- if o != nil && o.RankLexical.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetRankLexical gets a reference to the given NullableInt32 and assigns it to the RankLexical field.
-func (o *FindHitOut) SetRankLexical(v int32) {
- o.RankLexical.Set(&v)
-}
-// SetRankLexicalNil sets the value for RankLexical to be an explicit nil
-func (o *FindHitOut) SetRankLexicalNil() {
- o.RankLexical.Set(nil)
-}
-
-// UnsetRankLexical ensures that no value is present for RankLexical, not even an explicit nil
-func (o *FindHitOut) UnsetRankLexical() {
- o.RankLexical.Unset()
-}
-
-// GetRankSemantic returns the RankSemantic field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FindHitOut) GetRankSemantic() int32 {
- if o == nil || IsNil(o.RankSemantic.Get()) {
- var ret int32
- return ret
- }
- return *o.RankSemantic.Get()
-}
-
-// GetRankSemanticOk returns a tuple with the RankSemantic field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FindHitOut) GetRankSemanticOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return o.RankSemantic.Get(), o.RankSemantic.IsSet()
-}
-
-// HasRankSemantic returns a boolean if a field has been set.
-func (o *FindHitOut) HasRankSemantic() bool {
- if o != nil && o.RankSemantic.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetRankSemantic gets a reference to the given NullableInt32 and assigns it to the RankSemantic field.
-func (o *FindHitOut) SetRankSemantic(v int32) {
- o.RankSemantic.Set(&v)
-}
-// SetRankSemanticNil sets the value for RankSemantic to be an explicit nil
-func (o *FindHitOut) SetRankSemanticNil() {
- o.RankSemantic.Set(nil)
-}
-
-// UnsetRankSemantic ensures that no value is present for RankSemantic, not even an explicit nil
-func (o *FindHitOut) UnsetRankSemantic() {
- o.RankSemantic.Unset()
-}
-
-// GetScore returns the Score field value
-func (o *FindHitOut) GetScore() float32 {
- if o == nil {
- var ret float32
- return ret
- }
-
- return o.Score
-}
-
-// GetScoreOk returns a tuple with the Score field value
-// and a boolean to check if the value has been set.
-func (o *FindHitOut) GetScoreOk() (*float32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Score, true
-}
-
-// SetScore sets field value
-func (o *FindHitOut) SetScore(v float32) {
- o.Score = v
-}
-
-// GetSnippet returns the Snippet field value
-func (o *FindHitOut) GetSnippet() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Snippet
-}
-
-// GetSnippetOk returns a tuple with the Snippet field value
-// and a boolean to check if the value has been set.
-func (o *FindHitOut) GetSnippetOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Snippet, true
-}
-
-// SetSnippet sets field value
-func (o *FindHitOut) SetSnippet(v string) {
- o.Snippet = v
-}
-
-// GetText returns the Text field value
-func (o *FindHitOut) GetText() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Text
-}
-
-// GetTextOk returns a tuple with the Text field value
-// and a boolean to check if the value has been set.
-func (o *FindHitOut) GetTextOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Text, true
-}
-
-// SetText sets field value
-func (o *FindHitOut) SetText(v string) {
- o.Text = v
-}
-
-// GetTimeEndMs returns the TimeEndMs field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FindHitOut) GetTimeEndMs() int32 {
- if o == nil || IsNil(o.TimeEndMs.Get()) {
- var ret int32
- return ret
- }
- return *o.TimeEndMs.Get()
-}
-
-// GetTimeEndMsOk returns a tuple with the TimeEndMs field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FindHitOut) GetTimeEndMsOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return o.TimeEndMs.Get(), o.TimeEndMs.IsSet()
-}
-
-// HasTimeEndMs returns a boolean if a field has been set.
-func (o *FindHitOut) HasTimeEndMs() bool {
- if o != nil && o.TimeEndMs.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetTimeEndMs gets a reference to the given NullableInt32 and assigns it to the TimeEndMs field.
-func (o *FindHitOut) SetTimeEndMs(v int32) {
- o.TimeEndMs.Set(&v)
-}
-// SetTimeEndMsNil sets the value for TimeEndMs to be an explicit nil
-func (o *FindHitOut) SetTimeEndMsNil() {
- o.TimeEndMs.Set(nil)
-}
-
-// UnsetTimeEndMs ensures that no value is present for TimeEndMs, not even an explicit nil
-func (o *FindHitOut) UnsetTimeEndMs() {
- o.TimeEndMs.Unset()
-}
-
-// GetTimeStartMs returns the TimeStartMs field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FindHitOut) GetTimeStartMs() int32 {
- if o == nil || IsNil(o.TimeStartMs.Get()) {
- var ret int32
- return ret
- }
- return *o.TimeStartMs.Get()
-}
-
-// GetTimeStartMsOk returns a tuple with the TimeStartMs field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FindHitOut) GetTimeStartMsOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return o.TimeStartMs.Get(), o.TimeStartMs.IsSet()
-}
-
-// HasTimeStartMs returns a boolean if a field has been set.
-func (o *FindHitOut) HasTimeStartMs() bool {
- if o != nil && o.TimeStartMs.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetTimeStartMs gets a reference to the given NullableInt32 and assigns it to the TimeStartMs field.
-func (o *FindHitOut) SetTimeStartMs(v int32) {
- o.TimeStartMs.Set(&v)
-}
-// SetTimeStartMsNil sets the value for TimeStartMs to be an explicit nil
-func (o *FindHitOut) SetTimeStartMsNil() {
- o.TimeStartMs.Set(nil)
-}
-
-// UnsetTimeStartMs ensures that no value is present for TimeStartMs, not even an explicit nil
-func (o *FindHitOut) UnsetTimeStartMs() {
- o.TimeStartMs.Unset()
-}
-
-// GetUpdatedAt returns the UpdatedAt field value
-func (o *FindHitOut) GetUpdatedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.UpdatedAt
-}
-
-// GetUpdatedAtOk returns a tuple with the UpdatedAt field value
-// and a boolean to check if the value has been set.
-func (o *FindHitOut) GetUpdatedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.UpdatedAt, true
-}
-
-// SetUpdatedAt sets field value
-func (o *FindHitOut) SetUpdatedAt(v time.Time) {
- o.UpdatedAt = v
-}
-
-// GetUrl returns the Url field value
-func (o *FindHitOut) GetUrl() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Url
-}
-
-// GetUrlOk returns a tuple with the Url field value
-// and a boolean to check if the value has been set.
-func (o *FindHitOut) GetUrlOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Url, true
-}
-
-// SetUrl sets field value
-func (o *FindHitOut) SetUrl(v string) {
- o.Url = v
-}
-
-// GetVersionNumber returns the VersionNumber field value
-func (o *FindHitOut) GetVersionNumber() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.VersionNumber
-}
-
-// GetVersionNumberOk returns a tuple with the VersionNumber field value
-// and a boolean to check if the value has been set.
-func (o *FindHitOut) GetVersionNumberOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.VersionNumber, true
-}
-
-// SetVersionNumber sets field value
-func (o *FindHitOut) SetVersionNumber(v int32) {
- o.VersionNumber = v
-}
-
-func (o FindHitOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o FindHitOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["art_id"] = o.ArtId
- if o.CharEnd.IsSet() {
- toSerialize["char_end"] = o.CharEnd.Get()
- }
- if o.CharStart.IsSet() {
- toSerialize["char_start"] = o.CharStart.Get()
- }
- toSerialize["content_type"] = o.ContentType
- toSerialize["drive_id"] = o.DriveId
- toSerialize["file_type"] = o.FileType
- if !IsNil(o.Labels) {
- toSerialize["labels"] = o.Labels
- }
- toSerialize["modality"] = o.Modality
- toSerialize["ord"] = o.Ord
- if o.PageEnd.IsSet() {
- toSerialize["page_end"] = o.PageEnd.Get()
- }
- if o.PageStart.IsSet() {
- toSerialize["page_start"] = o.PageStart.Get()
- }
- toSerialize["path"] = o.Path
- if o.RankLexical.IsSet() {
- toSerialize["rank_lexical"] = o.RankLexical.Get()
- }
- if o.RankSemantic.IsSet() {
- toSerialize["rank_semantic"] = o.RankSemantic.Get()
- }
- toSerialize["score"] = o.Score
- toSerialize["snippet"] = o.Snippet
- toSerialize["text"] = o.Text
- if o.TimeEndMs.IsSet() {
- toSerialize["time_end_ms"] = o.TimeEndMs.Get()
- }
- if o.TimeStartMs.IsSet() {
- toSerialize["time_start_ms"] = o.TimeStartMs.Get()
- }
- toSerialize["updated_at"] = o.UpdatedAt
- toSerialize["url"] = o.Url
- toSerialize["version_number"] = o.VersionNumber
- return toSerialize, nil
-}
-
-func (o *FindHitOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "art_id",
- "content_type",
- "drive_id",
- "file_type",
- "modality",
- "ord",
- "path",
- "score",
- "snippet",
- "text",
- "updated_at",
- "url",
- "version_number",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varFindHitOut := _FindHitOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varFindHitOut)
-
- if err != nil {
- return err
- }
-
- *o = FindHitOut(varFindHitOut)
-
- return err
-}
-
-type NullableFindHitOut struct {
- value *FindHitOut
- isSet bool
-}
-
-func (v NullableFindHitOut) Get() *FindHitOut {
- return v.value
-}
-
-func (v *NullableFindHitOut) Set(val *FindHitOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableFindHitOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableFindHitOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableFindHitOut(val *FindHitOut) *NullableFindHitOut {
- return &NullableFindHitOut{value: val, isSet: true}
-}
-
-func (v NullableFindHitOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableFindHitOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_find_page.go b/sdk/go/model_find_page.go
deleted file mode 100644
index 1782366..0000000
--- a/sdk/go/model_find_page.go
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the FindPage type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &FindPage{}
-
-// FindPage `/v0/find` response — single-shot top-N, deliberately unpaginated (same contract + rationale as `SearchPage`).
-type FindPage struct {
- Items []FindHitOut `json:"items"`
-}
-
-type _FindPage FindPage
-
-// NewFindPage instantiates a new FindPage object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewFindPage(items []FindHitOut) *FindPage {
- this := FindPage{}
- this.Items = items
- return &this
-}
-
-// NewFindPageWithDefaults instantiates a new FindPage object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewFindPageWithDefaults() *FindPage {
- this := FindPage{}
- return &this
-}
-
-// GetItems returns the Items field value
-func (o *FindPage) GetItems() []FindHitOut {
- if o == nil {
- var ret []FindHitOut
- return ret
- }
-
- return o.Items
-}
-
-// GetItemsOk returns a tuple with the Items field value
-// and a boolean to check if the value has been set.
-func (o *FindPage) GetItemsOk() ([]FindHitOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Items, true
-}
-
-// SetItems sets field value
-func (o *FindPage) SetItems(v []FindHitOut) {
- o.Items = v
-}
-
-func (o FindPage) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o FindPage) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["items"] = o.Items
- return toSerialize, nil
-}
-
-func (o *FindPage) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "items",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varFindPage := _FindPage{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varFindPage)
-
- if err != nil {
- return err
- }
-
- *o = FindPage(varFindPage)
-
- return err
-}
-
-type NullableFindPage struct {
- value *FindPage
- isSet bool
-}
-
-func (v NullableFindPage) Get() *FindPage {
- return v.value
-}
-
-func (v *NullableFindPage) Set(val *FindPage) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableFindPage) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableFindPage) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableFindPage(val *FindPage) *NullableFindPage {
- return &NullableFindPage{value: val, isSet: true}
-}
-
-func (v NullableFindPage) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableFindPage) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_folder_cascade_out.go b/sdk/go/model_folder_cascade_out.go
new file mode 100644
index 0000000..a556aa8
--- /dev/null
+++ b/sdk/go/model_folder_cascade_out.go
@@ -0,0 +1,184 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "bytes"
+ "fmt"
+)
+
+// checks if the FolderCascadeOut type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &FolderCascadeOut{}
+
+// FolderCascadeOut struct for FolderCascadeOut
+type FolderCascadeOut struct {
+ Cascade map[string]int32 `json:"cascade"`
+ Folder FolderOut `json:"folder"`
+}
+
+type _FolderCascadeOut FolderCascadeOut
+
+// NewFolderCascadeOut instantiates a new FolderCascadeOut object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewFolderCascadeOut(cascade map[string]int32, folder FolderOut) *FolderCascadeOut {
+ this := FolderCascadeOut{}
+ this.Cascade = cascade
+ this.Folder = folder
+ return &this
+}
+
+// NewFolderCascadeOutWithDefaults instantiates a new FolderCascadeOut object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewFolderCascadeOutWithDefaults() *FolderCascadeOut {
+ this := FolderCascadeOut{}
+ return &this
+}
+
+// GetCascade returns the Cascade field value
+func (o *FolderCascadeOut) GetCascade() map[string]int32 {
+ if o == nil {
+ var ret map[string]int32
+ return ret
+ }
+
+ return o.Cascade
+}
+
+// GetCascadeOk returns a tuple with the Cascade field value
+// and a boolean to check if the value has been set.
+func (o *FolderCascadeOut) GetCascadeOk() (map[string]int32, bool) {
+ if o == nil {
+ return map[string]int32{}, false
+ }
+ return o.Cascade, true
+}
+
+// SetCascade sets field value
+func (o *FolderCascadeOut) SetCascade(v map[string]int32) {
+ o.Cascade = v
+}
+
+// GetFolder returns the Folder field value
+func (o *FolderCascadeOut) GetFolder() FolderOut {
+ if o == nil {
+ var ret FolderOut
+ return ret
+ }
+
+ return o.Folder
+}
+
+// GetFolderOk returns a tuple with the Folder field value
+// and a boolean to check if the value has been set.
+func (o *FolderCascadeOut) GetFolderOk() (*FolderOut, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Folder, true
+}
+
+// SetFolder sets field value
+func (o *FolderCascadeOut) SetFolder(v FolderOut) {
+ o.Folder = v
+}
+
+func (o FolderCascadeOut) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o FolderCascadeOut) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["cascade"] = o.Cascade
+ toSerialize["folder"] = o.Folder
+ return toSerialize, nil
+}
+
+func (o *FolderCascadeOut) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "cascade",
+ "folder",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varFolderCascadeOut := _FolderCascadeOut{}
+
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varFolderCascadeOut)
+
+ if err != nil {
+ return err
+ }
+
+ *o = FolderCascadeOut(varFolderCascadeOut)
+
+ return err
+}
+
+type NullableFolderCascadeOut struct {
+ value *FolderCascadeOut
+ isSet bool
+}
+
+func (v NullableFolderCascadeOut) Get() *FolderCascadeOut {
+ return v.value
+}
+
+func (v *NullableFolderCascadeOut) Set(val *FolderCascadeOut) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableFolderCascadeOut) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableFolderCascadeOut) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableFolderCascadeOut(val *FolderCascadeOut) *NullableFolderCascadeOut {
+ return &NullableFolderCascadeOut{value: val, isSet: true}
+}
+
+func (v NullableFolderCascadeOut) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableFolderCascadeOut) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_folder_copy_in.go b/sdk/go/model_folder_copy_in.go
index e8ca76d..a1fa002 100644
--- a/sdk/go/model_folder_copy_in.go
+++ b/sdk/go/model_folder_copy_in.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
@@ -19,10 +19,11 @@ import (
// checks if the FolderCopyIn type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &FolderCopyIn{}
-// FolderCopyIn POST /v0/folders/{fld_id}/copy body — duplicate the subtree to a new path. `path` is the target folder path (canonical, trailing slash). Its own schema (vs. reusing `FolderMoveIn`) keeps the copy surface self-documenting in the OpenAPI spec.
+// FolderCopyIn POST /v0/drives/{id}/folders/{folder_id}/copy body. ``destination_drive_id`` must equal the source drive (or be absent) — cross-drive copy is out of v0 scope and rejected.
type FolderCopyIn struct {
- FromMetageneration NullableInt32 `json:"from_metageneration,omitempty"`
- Path string `json:"path"`
+ DestinationDriveId NullableString `json:"destination_drive_id,omitempty" validate:"regexp=^drv_[a-f0-9]{16}$"`
+ DestinationName string `json:"destination_name"`
+ DestinationParentId string `json:"destination_parent_id" validate:"regexp=^fld_[a-f0-9]{16}$"`
}
type _FolderCopyIn FolderCopyIn
@@ -31,9 +32,10 @@ type _FolderCopyIn FolderCopyIn
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
-func NewFolderCopyIn(path string) *FolderCopyIn {
+func NewFolderCopyIn(destinationName string, destinationParentId string) *FolderCopyIn {
this := FolderCopyIn{}
- this.Path = path
+ this.DestinationName = destinationName
+ this.DestinationParentId = destinationParentId
return &this
}
@@ -45,70 +47,94 @@ func NewFolderCopyInWithDefaults() *FolderCopyIn {
return &this
}
-// GetFromMetageneration returns the FromMetageneration field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FolderCopyIn) GetFromMetageneration() int32 {
- if o == nil || IsNil(o.FromMetageneration.Get()) {
- var ret int32
+// GetDestinationDriveId returns the DestinationDriveId field value if set, zero value otherwise (both if not set or set to explicit null).
+func (o *FolderCopyIn) GetDestinationDriveId() string {
+ if o == nil || IsNil(o.DestinationDriveId.Get()) {
+ var ret string
return ret
}
- return *o.FromMetageneration.Get()
+ return *o.DestinationDriveId.Get()
}
-// GetFromMetagenerationOk returns a tuple with the FromMetageneration field value if set, nil otherwise
+// GetDestinationDriveIdOk returns a tuple with the DestinationDriveId field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FolderCopyIn) GetFromMetagenerationOk() (*int32, bool) {
+func (o *FolderCopyIn) GetDestinationDriveIdOk() (*string, bool) {
if o == nil {
return nil, false
}
- return o.FromMetageneration.Get(), o.FromMetageneration.IsSet()
+ return o.DestinationDriveId.Get(), o.DestinationDriveId.IsSet()
}
-// HasFromMetageneration returns a boolean if a field has been set.
-func (o *FolderCopyIn) HasFromMetageneration() bool {
- if o != nil && o.FromMetageneration.IsSet() {
+// HasDestinationDriveId returns a boolean if a field has been set.
+func (o *FolderCopyIn) HasDestinationDriveId() bool {
+ if o != nil && o.DestinationDriveId.IsSet() {
return true
}
return false
}
-// SetFromMetageneration gets a reference to the given NullableInt32 and assigns it to the FromMetageneration field.
-func (o *FolderCopyIn) SetFromMetageneration(v int32) {
- o.FromMetageneration.Set(&v)
+// SetDestinationDriveId gets a reference to the given NullableString and assigns it to the DestinationDriveId field.
+func (o *FolderCopyIn) SetDestinationDriveId(v string) {
+ o.DestinationDriveId.Set(&v)
+}
+// SetDestinationDriveIdNil sets the value for DestinationDriveId to be an explicit nil
+func (o *FolderCopyIn) SetDestinationDriveIdNil() {
+ o.DestinationDriveId.Set(nil)
+}
+
+// UnsetDestinationDriveId ensures that no value is present for DestinationDriveId, not even an explicit nil
+func (o *FolderCopyIn) UnsetDestinationDriveId() {
+ o.DestinationDriveId.Unset()
+}
+
+// GetDestinationName returns the DestinationName field value
+func (o *FolderCopyIn) GetDestinationName() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.DestinationName
}
-// SetFromMetagenerationNil sets the value for FromMetageneration to be an explicit nil
-func (o *FolderCopyIn) SetFromMetagenerationNil() {
- o.FromMetageneration.Set(nil)
+
+// GetDestinationNameOk returns a tuple with the DestinationName field value
+// and a boolean to check if the value has been set.
+func (o *FolderCopyIn) GetDestinationNameOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.DestinationName, true
}
-// UnsetFromMetageneration ensures that no value is present for FromMetageneration, not even an explicit nil
-func (o *FolderCopyIn) UnsetFromMetageneration() {
- o.FromMetageneration.Unset()
+// SetDestinationName sets field value
+func (o *FolderCopyIn) SetDestinationName(v string) {
+ o.DestinationName = v
}
-// GetPath returns the Path field value
-func (o *FolderCopyIn) GetPath() string {
+// GetDestinationParentId returns the DestinationParentId field value
+func (o *FolderCopyIn) GetDestinationParentId() string {
if o == nil {
var ret string
return ret
}
- return o.Path
+ return o.DestinationParentId
}
-// GetPathOk returns a tuple with the Path field value
+// GetDestinationParentIdOk returns a tuple with the DestinationParentId field value
// and a boolean to check if the value has been set.
-func (o *FolderCopyIn) GetPathOk() (*string, bool) {
+func (o *FolderCopyIn) GetDestinationParentIdOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.Path, true
+ return &o.DestinationParentId, true
}
-// SetPath sets field value
-func (o *FolderCopyIn) SetPath(v string) {
- o.Path = v
+// SetDestinationParentId sets field value
+func (o *FolderCopyIn) SetDestinationParentId(v string) {
+ o.DestinationParentId = v
}
func (o FolderCopyIn) MarshalJSON() ([]byte, error) {
@@ -121,10 +147,11 @@ func (o FolderCopyIn) MarshalJSON() ([]byte, error) {
func (o FolderCopyIn) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
- if o.FromMetageneration.IsSet() {
- toSerialize["from_metageneration"] = o.FromMetageneration.Get()
+ if o.DestinationDriveId.IsSet() {
+ toSerialize["destination_drive_id"] = o.DestinationDriveId.Get()
}
- toSerialize["path"] = o.Path
+ toSerialize["destination_name"] = o.DestinationName
+ toSerialize["destination_parent_id"] = o.DestinationParentId
return toSerialize, nil
}
@@ -133,7 +160,8 @@ func (o *FolderCopyIn) UnmarshalJSON(data []byte) (err error) {
// by unmarshalling the object into a generic map with string keys and checking
// that every required field exists as a key in the generic map.
requiredProperties := []string{
- "path",
+ "destination_name",
+ "destination_parent_id",
}
allProperties := make(map[string]interface{})
diff --git a/sdk/go/model_folder_copy_out.go b/sdk/go/model_folder_copy_out.go
deleted file mode 100644
index 3ee3ad8..0000000
--- a/sdk/go/model_folder_copy_out.go
+++ /dev/null
@@ -1,571 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the FolderCopyOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &FolderCopyOut{}
-
-// FolderCopyOut POST /v0/folders/{fld_id}/copy response — the newly-created folder resource (same shape as `FolderOut`) plus copy-provenance fields: `from_fld_id` is the source folder and `n_artifacts_copied` is the number of descendant artifacts cloned into the new subtree. Mirrors the MCP `copy` folder route's conceptual shape.
-type FolderCopyOut struct {
- CreatedAt time.Time `json:"created_at"`
- DeletedAt NullableTime `json:"deleted_at,omitempty"`
- Description NullableString `json:"description,omitempty"`
- DriveId string `json:"drive_id"`
- Etag string `json:"etag"`
- FromFldId string `json:"from_fld_id"`
- Id string `json:"id"`
- InheritGrants *bool `json:"inherit_grants,omitempty"`
- Metageneration *int32 `json:"metageneration,omitempty"`
- NArtifactsCopied int32 `json:"n_artifacts_copied"`
- Path string `json:"path"`
- PurgeAt NullableTime `json:"purge_at,omitempty"`
- UpdatedAt time.Time `json:"updated_at"`
-}
-
-type _FolderCopyOut FolderCopyOut
-
-// NewFolderCopyOut instantiates a new FolderCopyOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewFolderCopyOut(createdAt time.Time, driveId string, etag string, fromFldId string, id string, nArtifactsCopied int32, path string, updatedAt time.Time) *FolderCopyOut {
- this := FolderCopyOut{}
- this.CreatedAt = createdAt
- this.DriveId = driveId
- this.Etag = etag
- this.FromFldId = fromFldId
- this.Id = id
- var inheritGrants bool = true
- this.InheritGrants = &inheritGrants
- var metageneration int32 = 1
- this.Metageneration = &metageneration
- this.NArtifactsCopied = nArtifactsCopied
- this.Path = path
- this.UpdatedAt = updatedAt
- return &this
-}
-
-// NewFolderCopyOutWithDefaults instantiates a new FolderCopyOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewFolderCopyOutWithDefaults() *FolderCopyOut {
- this := FolderCopyOut{}
- var inheritGrants bool = true
- this.InheritGrants = &inheritGrants
- var metageneration int32 = 1
- this.Metageneration = &metageneration
- return &this
-}
-
-// GetCreatedAt returns the CreatedAt field value
-func (o *FolderCopyOut) GetCreatedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.CreatedAt
-}
-
-// GetCreatedAtOk returns a tuple with the CreatedAt field value
-// and a boolean to check if the value has been set.
-func (o *FolderCopyOut) GetCreatedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.CreatedAt, true
-}
-
-// SetCreatedAt sets field value
-func (o *FolderCopyOut) SetCreatedAt(v time.Time) {
- o.CreatedAt = v
-}
-
-// GetDeletedAt returns the DeletedAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FolderCopyOut) GetDeletedAt() time.Time {
- if o == nil || IsNil(o.DeletedAt.Get()) {
- var ret time.Time
- return ret
- }
- return *o.DeletedAt.Get()
-}
-
-// GetDeletedAtOk returns a tuple with the DeletedAt field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FolderCopyOut) GetDeletedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return o.DeletedAt.Get(), o.DeletedAt.IsSet()
-}
-
-// HasDeletedAt returns a boolean if a field has been set.
-func (o *FolderCopyOut) HasDeletedAt() bool {
- if o != nil && o.DeletedAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetDeletedAt gets a reference to the given NullableTime and assigns it to the DeletedAt field.
-func (o *FolderCopyOut) SetDeletedAt(v time.Time) {
- o.DeletedAt.Set(&v)
-}
-// SetDeletedAtNil sets the value for DeletedAt to be an explicit nil
-func (o *FolderCopyOut) SetDeletedAtNil() {
- o.DeletedAt.Set(nil)
-}
-
-// UnsetDeletedAt ensures that no value is present for DeletedAt, not even an explicit nil
-func (o *FolderCopyOut) UnsetDeletedAt() {
- o.DeletedAt.Unset()
-}
-
-// GetDescription returns the Description field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FolderCopyOut) GetDescription() string {
- if o == nil || IsNil(o.Description.Get()) {
- var ret string
- return ret
- }
- return *o.Description.Get()
-}
-
-// GetDescriptionOk returns a tuple with the Description field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FolderCopyOut) GetDescriptionOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Description.Get(), o.Description.IsSet()
-}
-
-// HasDescription returns a boolean if a field has been set.
-func (o *FolderCopyOut) HasDescription() bool {
- if o != nil && o.Description.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetDescription gets a reference to the given NullableString and assigns it to the Description field.
-func (o *FolderCopyOut) SetDescription(v string) {
- o.Description.Set(&v)
-}
-// SetDescriptionNil sets the value for Description to be an explicit nil
-func (o *FolderCopyOut) SetDescriptionNil() {
- o.Description.Set(nil)
-}
-
-// UnsetDescription ensures that no value is present for Description, not even an explicit nil
-func (o *FolderCopyOut) UnsetDescription() {
- o.Description.Unset()
-}
-
-// GetDriveId returns the DriveId field value
-func (o *FolderCopyOut) GetDriveId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.DriveId
-}
-
-// GetDriveIdOk returns a tuple with the DriveId field value
-// and a boolean to check if the value has been set.
-func (o *FolderCopyOut) GetDriveIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.DriveId, true
-}
-
-// SetDriveId sets field value
-func (o *FolderCopyOut) SetDriveId(v string) {
- o.DriveId = v
-}
-
-// GetEtag returns the Etag field value
-func (o *FolderCopyOut) GetEtag() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Etag
-}
-
-// GetEtagOk returns a tuple with the Etag field value
-// and a boolean to check if the value has been set.
-func (o *FolderCopyOut) GetEtagOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Etag, true
-}
-
-// SetEtag sets field value
-func (o *FolderCopyOut) SetEtag(v string) {
- o.Etag = v
-}
-
-// GetFromFldId returns the FromFldId field value
-func (o *FolderCopyOut) GetFromFldId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.FromFldId
-}
-
-// GetFromFldIdOk returns a tuple with the FromFldId field value
-// and a boolean to check if the value has been set.
-func (o *FolderCopyOut) GetFromFldIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.FromFldId, true
-}
-
-// SetFromFldId sets field value
-func (o *FolderCopyOut) SetFromFldId(v string) {
- o.FromFldId = v
-}
-
-// GetId returns the Id field value
-func (o *FolderCopyOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *FolderCopyOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *FolderCopyOut) SetId(v string) {
- o.Id = v
-}
-
-// GetInheritGrants returns the InheritGrants field value if set, zero value otherwise.
-func (o *FolderCopyOut) GetInheritGrants() bool {
- if o == nil || IsNil(o.InheritGrants) {
- var ret bool
- return ret
- }
- return *o.InheritGrants
-}
-
-// GetInheritGrantsOk returns a tuple with the InheritGrants field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *FolderCopyOut) GetInheritGrantsOk() (*bool, bool) {
- if o == nil || IsNil(o.InheritGrants) {
- return nil, false
- }
- return o.InheritGrants, true
-}
-
-// HasInheritGrants returns a boolean if a field has been set.
-func (o *FolderCopyOut) HasInheritGrants() bool {
- if o != nil && !IsNil(o.InheritGrants) {
- return true
- }
-
- return false
-}
-
-// SetInheritGrants gets a reference to the given bool and assigns it to the InheritGrants field.
-func (o *FolderCopyOut) SetInheritGrants(v bool) {
- o.InheritGrants = &v
-}
-
-// GetMetageneration returns the Metageneration field value if set, zero value otherwise.
-func (o *FolderCopyOut) GetMetageneration() int32 {
- if o == nil || IsNil(o.Metageneration) {
- var ret int32
- return ret
- }
- return *o.Metageneration
-}
-
-// GetMetagenerationOk returns a tuple with the Metageneration field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *FolderCopyOut) GetMetagenerationOk() (*int32, bool) {
- if o == nil || IsNil(o.Metageneration) {
- return nil, false
- }
- return o.Metageneration, true
-}
-
-// HasMetageneration returns a boolean if a field has been set.
-func (o *FolderCopyOut) HasMetageneration() bool {
- if o != nil && !IsNil(o.Metageneration) {
- return true
- }
-
- return false
-}
-
-// SetMetageneration gets a reference to the given int32 and assigns it to the Metageneration field.
-func (o *FolderCopyOut) SetMetageneration(v int32) {
- o.Metageneration = &v
-}
-
-// GetNArtifactsCopied returns the NArtifactsCopied field value
-func (o *FolderCopyOut) GetNArtifactsCopied() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.NArtifactsCopied
-}
-
-// GetNArtifactsCopiedOk returns a tuple with the NArtifactsCopied field value
-// and a boolean to check if the value has been set.
-func (o *FolderCopyOut) GetNArtifactsCopiedOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.NArtifactsCopied, true
-}
-
-// SetNArtifactsCopied sets field value
-func (o *FolderCopyOut) SetNArtifactsCopied(v int32) {
- o.NArtifactsCopied = v
-}
-
-// GetPath returns the Path field value
-func (o *FolderCopyOut) GetPath() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Path
-}
-
-// GetPathOk returns a tuple with the Path field value
-// and a boolean to check if the value has been set.
-func (o *FolderCopyOut) GetPathOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Path, true
-}
-
-// SetPath sets field value
-func (o *FolderCopyOut) SetPath(v string) {
- o.Path = v
-}
-
-// GetPurgeAt returns the PurgeAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FolderCopyOut) GetPurgeAt() time.Time {
- if o == nil || IsNil(o.PurgeAt.Get()) {
- var ret time.Time
- return ret
- }
- return *o.PurgeAt.Get()
-}
-
-// GetPurgeAtOk returns a tuple with the PurgeAt field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FolderCopyOut) GetPurgeAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return o.PurgeAt.Get(), o.PurgeAt.IsSet()
-}
-
-// HasPurgeAt returns a boolean if a field has been set.
-func (o *FolderCopyOut) HasPurgeAt() bool {
- if o != nil && o.PurgeAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetPurgeAt gets a reference to the given NullableTime and assigns it to the PurgeAt field.
-func (o *FolderCopyOut) SetPurgeAt(v time.Time) {
- o.PurgeAt.Set(&v)
-}
-// SetPurgeAtNil sets the value for PurgeAt to be an explicit nil
-func (o *FolderCopyOut) SetPurgeAtNil() {
- o.PurgeAt.Set(nil)
-}
-
-// UnsetPurgeAt ensures that no value is present for PurgeAt, not even an explicit nil
-func (o *FolderCopyOut) UnsetPurgeAt() {
- o.PurgeAt.Unset()
-}
-
-// GetUpdatedAt returns the UpdatedAt field value
-func (o *FolderCopyOut) GetUpdatedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.UpdatedAt
-}
-
-// GetUpdatedAtOk returns a tuple with the UpdatedAt field value
-// and a boolean to check if the value has been set.
-func (o *FolderCopyOut) GetUpdatedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.UpdatedAt, true
-}
-
-// SetUpdatedAt sets field value
-func (o *FolderCopyOut) SetUpdatedAt(v time.Time) {
- o.UpdatedAt = v
-}
-
-func (o FolderCopyOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o FolderCopyOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["created_at"] = o.CreatedAt
- if o.DeletedAt.IsSet() {
- toSerialize["deleted_at"] = o.DeletedAt.Get()
- }
- if o.Description.IsSet() {
- toSerialize["description"] = o.Description.Get()
- }
- toSerialize["drive_id"] = o.DriveId
- toSerialize["etag"] = o.Etag
- toSerialize["from_fld_id"] = o.FromFldId
- toSerialize["id"] = o.Id
- if !IsNil(o.InheritGrants) {
- toSerialize["inherit_grants"] = o.InheritGrants
- }
- if !IsNil(o.Metageneration) {
- toSerialize["metageneration"] = o.Metageneration
- }
- toSerialize["n_artifacts_copied"] = o.NArtifactsCopied
- toSerialize["path"] = o.Path
- if o.PurgeAt.IsSet() {
- toSerialize["purge_at"] = o.PurgeAt.Get()
- }
- toSerialize["updated_at"] = o.UpdatedAt
- return toSerialize, nil
-}
-
-func (o *FolderCopyOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "created_at",
- "drive_id",
- "etag",
- "from_fld_id",
- "id",
- "n_artifacts_copied",
- "path",
- "updated_at",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varFolderCopyOut := _FolderCopyOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varFolderCopyOut)
-
- if err != nil {
- return err
- }
-
- *o = FolderCopyOut(varFolderCopyOut)
-
- return err
-}
-
-type NullableFolderCopyOut struct {
- value *FolderCopyOut
- isSet bool
-}
-
-func (v NullableFolderCopyOut) Get() *FolderCopyOut {
- return v.value
-}
-
-func (v *NullableFolderCopyOut) Set(val *FolderCopyOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableFolderCopyOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableFolderCopyOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableFolderCopyOut(val *FolderCopyOut) *NullableFolderCopyOut {
- return &NullableFolderCopyOut{value: val, isSet: true}
-}
-
-func (v NullableFolderCopyOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableFolderCopyOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_folder_create_in.go b/sdk/go/model_folder_create_in.go
index ddd9157..e29ef23 100644
--- a/sdk/go/model_folder_create_in.go
+++ b/sdk/go/model_folder_create_in.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
@@ -12,22 +12,33 @@ package agentdrive
import (
"encoding/json"
+ "fmt"
)
// checks if the FolderCreateIn type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &FolderCreateIn{}
-// FolderCreateIn PUT /v0/folders/{path} body for the optional metadata params. Empty body is fine — `mkdir` with no description just creates the folder row.
+// FolderCreateIn POST /v0/drives/{id}/folders body.
type FolderCreateIn struct {
- Description NullableString `json:"description,omitempty"`
+ GrantInheritance *string `json:"grant_inheritance,omitempty"`
+ Metadata map[string]interface{} `json:"metadata,omitempty"`
+ Name string `json:"name"`
+ ParentId string `json:"parent_id" validate:"regexp=^fld_[a-f0-9]{16}$"`
+ AdditionalProperties map[string]interface{}
}
+type _FolderCreateIn FolderCreateIn
+
// NewFolderCreateIn instantiates a new FolderCreateIn object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
-func NewFolderCreateIn() *FolderCreateIn {
+func NewFolderCreateIn(name string, parentId string) *FolderCreateIn {
this := FolderCreateIn{}
+ var grantInheritance string = "inherit"
+ this.GrantInheritance = &grantInheritance
+ this.Name = name
+ this.ParentId = parentId
return &this
}
@@ -36,49 +47,121 @@ func NewFolderCreateIn() *FolderCreateIn {
// but it doesn't guarantee that properties required by API are set
func NewFolderCreateInWithDefaults() *FolderCreateIn {
this := FolderCreateIn{}
+ var grantInheritance string = "inherit"
+ this.GrantInheritance = &grantInheritance
return &this
}
-// GetDescription returns the Description field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FolderCreateIn) GetDescription() string {
- if o == nil || IsNil(o.Description.Get()) {
+// GetGrantInheritance returns the GrantInheritance field value if set, zero value otherwise.
+func (o *FolderCreateIn) GetGrantInheritance() string {
+ if o == nil || IsNil(o.GrantInheritance) {
var ret string
return ret
}
- return *o.Description.Get()
+ return *o.GrantInheritance
}
-// GetDescriptionOk returns a tuple with the Description field value if set, nil otherwise
+// GetGrantInheritanceOk returns a tuple with the GrantInheritance field value if set, nil otherwise
// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FolderCreateIn) GetDescriptionOk() (*string, bool) {
- if o == nil {
+func (o *FolderCreateIn) GetGrantInheritanceOk() (*string, bool) {
+ if o == nil || IsNil(o.GrantInheritance) {
return nil, false
}
- return o.Description.Get(), o.Description.IsSet()
+ return o.GrantInheritance, true
}
-// HasDescription returns a boolean if a field has been set.
-func (o *FolderCreateIn) HasDescription() bool {
- if o != nil && o.Description.IsSet() {
+// HasGrantInheritance returns a boolean if a field has been set.
+func (o *FolderCreateIn) HasGrantInheritance() bool {
+ if o != nil && !IsNil(o.GrantInheritance) {
return true
}
return false
}
-// SetDescription gets a reference to the given NullableString and assigns it to the Description field.
-func (o *FolderCreateIn) SetDescription(v string) {
- o.Description.Set(&v)
+// SetGrantInheritance gets a reference to the given string and assigns it to the GrantInheritance field.
+func (o *FolderCreateIn) SetGrantInheritance(v string) {
+ o.GrantInheritance = &v
+}
+
+// GetMetadata returns the Metadata field value if set, zero value otherwise.
+func (o *FolderCreateIn) GetMetadata() map[string]interface{} {
+ if o == nil || IsNil(o.Metadata) {
+ var ret map[string]interface{}
+ return ret
+ }
+ return o.Metadata
+}
+
+// GetMetadataOk returns a tuple with the Metadata field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+func (o *FolderCreateIn) GetMetadataOk() (map[string]interface{}, bool) {
+ if o == nil || IsNil(o.Metadata) {
+ return map[string]interface{}{}, false
+ }
+ return o.Metadata, true
}
-// SetDescriptionNil sets the value for Description to be an explicit nil
-func (o *FolderCreateIn) SetDescriptionNil() {
- o.Description.Set(nil)
+
+// HasMetadata returns a boolean if a field has been set.
+func (o *FolderCreateIn) HasMetadata() bool {
+ if o != nil && !IsNil(o.Metadata) {
+ return true
+ }
+
+ return false
}
-// UnsetDescription ensures that no value is present for Description, not even an explicit nil
-func (o *FolderCreateIn) UnsetDescription() {
- o.Description.Unset()
+// SetMetadata gets a reference to the given map[string]interface{} and assigns it to the Metadata field.
+func (o *FolderCreateIn) SetMetadata(v map[string]interface{}) {
+ o.Metadata = v
+}
+
+// GetName returns the Name field value
+func (o *FolderCreateIn) GetName() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.Name
+}
+
+// GetNameOk returns a tuple with the Name field value
+// and a boolean to check if the value has been set.
+func (o *FolderCreateIn) GetNameOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Name, true
+}
+
+// SetName sets field value
+func (o *FolderCreateIn) SetName(v string) {
+ o.Name = v
+}
+
+// GetParentId returns the ParentId field value
+func (o *FolderCreateIn) GetParentId() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.ParentId
+}
+
+// GetParentIdOk returns a tuple with the ParentId field value
+// and a boolean to check if the value has been set.
+func (o *FolderCreateIn) GetParentIdOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.ParentId, true
+}
+
+// SetParentId sets field value
+func (o *FolderCreateIn) SetParentId(v string) {
+ o.ParentId = v
}
func (o FolderCreateIn) MarshalJSON() ([]byte, error) {
@@ -91,12 +174,68 @@ func (o FolderCreateIn) MarshalJSON() ([]byte, error) {
func (o FolderCreateIn) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
- if o.Description.IsSet() {
- toSerialize["description"] = o.Description.Get()
+ if !IsNil(o.GrantInheritance) {
+ toSerialize["grant_inheritance"] = o.GrantInheritance
+ }
+ if !IsNil(o.Metadata) {
+ toSerialize["metadata"] = o.Metadata
+ }
+ toSerialize["name"] = o.Name
+ toSerialize["parent_id"] = o.ParentId
+
+ for key, value := range o.AdditionalProperties {
+ toSerialize[key] = value
}
+
return toSerialize, nil
}
+func (o *FolderCreateIn) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "name",
+ "parent_id",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varFolderCreateIn := _FolderCreateIn{}
+
+ err = json.Unmarshal(data, &varFolderCreateIn)
+
+ if err != nil {
+ return err
+ }
+
+ *o = FolderCreateIn(varFolderCreateIn)
+
+ additionalProperties := make(map[string]interface{})
+
+ if err = json.Unmarshal(data, &additionalProperties); err == nil {
+ delete(additionalProperties, "grant_inheritance")
+ delete(additionalProperties, "metadata")
+ delete(additionalProperties, "name")
+ delete(additionalProperties, "parent_id")
+ o.AdditionalProperties = additionalProperties
+ }
+
+ return err
+}
+
type NullableFolderCreateIn struct {
value *FolderCreateIn
isSet bool
diff --git a/sdk/go/model_folder_delete_out.go b/sdk/go/model_folder_delete_out.go
deleted file mode 100644
index 48dc235..0000000
--- a/sdk/go/model_folder_delete_out.go
+++ /dev/null
@@ -1,365 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the FolderDeleteOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &FolderDeleteOut{}
-
-// FolderDeleteOut DELETE response — surfaces cascade counts so the caller can confirm scope of an rmdir before the client retries with `?recursive=true`.
-type FolderDeleteOut struct {
- DeletedAt time.Time `json:"deleted_at"`
- Id string `json:"id"`
- NArtifactsDeleted int32 `json:"n_artifacts_deleted"`
- NSubfoldersDeleted int32 `json:"n_subfolders_deleted"`
- Ok *bool `json:"ok,omitempty"`
- Path string `json:"path"`
- PurgeAt time.Time `json:"purge_at"`
- RetentionDays int32 `json:"retention_days"`
-}
-
-type _FolderDeleteOut FolderDeleteOut
-
-// NewFolderDeleteOut instantiates a new FolderDeleteOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewFolderDeleteOut(deletedAt time.Time, id string, nArtifactsDeleted int32, nSubfoldersDeleted int32, path string, purgeAt time.Time, retentionDays int32) *FolderDeleteOut {
- this := FolderDeleteOut{}
- this.DeletedAt = deletedAt
- this.Id = id
- this.NArtifactsDeleted = nArtifactsDeleted
- this.NSubfoldersDeleted = nSubfoldersDeleted
- var ok bool = true
- this.Ok = &ok
- this.Path = path
- this.PurgeAt = purgeAt
- this.RetentionDays = retentionDays
- return &this
-}
-
-// NewFolderDeleteOutWithDefaults instantiates a new FolderDeleteOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewFolderDeleteOutWithDefaults() *FolderDeleteOut {
- this := FolderDeleteOut{}
- var ok bool = true
- this.Ok = &ok
- return &this
-}
-
-// GetDeletedAt returns the DeletedAt field value
-func (o *FolderDeleteOut) GetDeletedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.DeletedAt
-}
-
-// GetDeletedAtOk returns a tuple with the DeletedAt field value
-// and a boolean to check if the value has been set.
-func (o *FolderDeleteOut) GetDeletedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.DeletedAt, true
-}
-
-// SetDeletedAt sets field value
-func (o *FolderDeleteOut) SetDeletedAt(v time.Time) {
- o.DeletedAt = v
-}
-
-// GetId returns the Id field value
-func (o *FolderDeleteOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *FolderDeleteOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *FolderDeleteOut) SetId(v string) {
- o.Id = v
-}
-
-// GetNArtifactsDeleted returns the NArtifactsDeleted field value
-func (o *FolderDeleteOut) GetNArtifactsDeleted() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.NArtifactsDeleted
-}
-
-// GetNArtifactsDeletedOk returns a tuple with the NArtifactsDeleted field value
-// and a boolean to check if the value has been set.
-func (o *FolderDeleteOut) GetNArtifactsDeletedOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.NArtifactsDeleted, true
-}
-
-// SetNArtifactsDeleted sets field value
-func (o *FolderDeleteOut) SetNArtifactsDeleted(v int32) {
- o.NArtifactsDeleted = v
-}
-
-// GetNSubfoldersDeleted returns the NSubfoldersDeleted field value
-func (o *FolderDeleteOut) GetNSubfoldersDeleted() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.NSubfoldersDeleted
-}
-
-// GetNSubfoldersDeletedOk returns a tuple with the NSubfoldersDeleted field value
-// and a boolean to check if the value has been set.
-func (o *FolderDeleteOut) GetNSubfoldersDeletedOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.NSubfoldersDeleted, true
-}
-
-// SetNSubfoldersDeleted sets field value
-func (o *FolderDeleteOut) SetNSubfoldersDeleted(v int32) {
- o.NSubfoldersDeleted = v
-}
-
-// GetOk returns the Ok field value if set, zero value otherwise.
-func (o *FolderDeleteOut) GetOk() bool {
- if o == nil || IsNil(o.Ok) {
- var ret bool
- return ret
- }
- return *o.Ok
-}
-
-// GetOkOk returns a tuple with the Ok field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *FolderDeleteOut) GetOkOk() (*bool, bool) {
- if o == nil || IsNil(o.Ok) {
- return nil, false
- }
- return o.Ok, true
-}
-
-// HasOk returns a boolean if a field has been set.
-func (o *FolderDeleteOut) HasOk() bool {
- if o != nil && !IsNil(o.Ok) {
- return true
- }
-
- return false
-}
-
-// SetOk gets a reference to the given bool and assigns it to the Ok field.
-func (o *FolderDeleteOut) SetOk(v bool) {
- o.Ok = &v
-}
-
-// GetPath returns the Path field value
-func (o *FolderDeleteOut) GetPath() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Path
-}
-
-// GetPathOk returns a tuple with the Path field value
-// and a boolean to check if the value has been set.
-func (o *FolderDeleteOut) GetPathOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Path, true
-}
-
-// SetPath sets field value
-func (o *FolderDeleteOut) SetPath(v string) {
- o.Path = v
-}
-
-// GetPurgeAt returns the PurgeAt field value
-func (o *FolderDeleteOut) GetPurgeAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.PurgeAt
-}
-
-// GetPurgeAtOk returns a tuple with the PurgeAt field value
-// and a boolean to check if the value has been set.
-func (o *FolderDeleteOut) GetPurgeAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.PurgeAt, true
-}
-
-// SetPurgeAt sets field value
-func (o *FolderDeleteOut) SetPurgeAt(v time.Time) {
- o.PurgeAt = v
-}
-
-// GetRetentionDays returns the RetentionDays field value
-func (o *FolderDeleteOut) GetRetentionDays() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.RetentionDays
-}
-
-// GetRetentionDaysOk returns a tuple with the RetentionDays field value
-// and a boolean to check if the value has been set.
-func (o *FolderDeleteOut) GetRetentionDaysOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.RetentionDays, true
-}
-
-// SetRetentionDays sets field value
-func (o *FolderDeleteOut) SetRetentionDays(v int32) {
- o.RetentionDays = v
-}
-
-func (o FolderDeleteOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o FolderDeleteOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["deleted_at"] = o.DeletedAt
- toSerialize["id"] = o.Id
- toSerialize["n_artifacts_deleted"] = o.NArtifactsDeleted
- toSerialize["n_subfolders_deleted"] = o.NSubfoldersDeleted
- if !IsNil(o.Ok) {
- toSerialize["ok"] = o.Ok
- }
- toSerialize["path"] = o.Path
- toSerialize["purge_at"] = o.PurgeAt
- toSerialize["retention_days"] = o.RetentionDays
- return toSerialize, nil
-}
-
-func (o *FolderDeleteOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "deleted_at",
- "id",
- "n_artifacts_deleted",
- "n_subfolders_deleted",
- "path",
- "purge_at",
- "retention_days",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varFolderDeleteOut := _FolderDeleteOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varFolderDeleteOut)
-
- if err != nil {
- return err
- }
-
- *o = FolderDeleteOut(varFolderDeleteOut)
-
- return err
-}
-
-type NullableFolderDeleteOut struct {
- value *FolderDeleteOut
- isSet bool
-}
-
-func (v NullableFolderDeleteOut) Get() *FolderDeleteOut {
- return v.value
-}
-
-func (v *NullableFolderDeleteOut) Set(val *FolderDeleteOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableFolderDeleteOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableFolderDeleteOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableFolderDeleteOut(val *FolderDeleteOut) *NullableFolderDeleteOut {
- return &NullableFolderDeleteOut{value: val, isSet: true}
-}
-
-func (v NullableFolderDeleteOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableFolderDeleteOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_folder_list_out.go b/sdk/go/model_folder_list_out.go
new file mode 100644
index 0000000..af983fa
--- /dev/null
+++ b/sdk/go/model_folder_list_out.go
@@ -0,0 +1,186 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "bytes"
+ "fmt"
+)
+
+// checks if the FolderListOut type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &FolderListOut{}
+
+// FolderListOut struct for FolderListOut
+type FolderListOut struct {
+ Items []FolderOut `json:"items"`
+ NextCursor NullableString `json:"next_cursor"`
+}
+
+type _FolderListOut FolderListOut
+
+// NewFolderListOut instantiates a new FolderListOut object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewFolderListOut(items []FolderOut, nextCursor NullableString) *FolderListOut {
+ this := FolderListOut{}
+ this.Items = items
+ this.NextCursor = nextCursor
+ return &this
+}
+
+// NewFolderListOutWithDefaults instantiates a new FolderListOut object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewFolderListOutWithDefaults() *FolderListOut {
+ this := FolderListOut{}
+ return &this
+}
+
+// GetItems returns the Items field value
+func (o *FolderListOut) GetItems() []FolderOut {
+ if o == nil {
+ var ret []FolderOut
+ return ret
+ }
+
+ return o.Items
+}
+
+// GetItemsOk returns a tuple with the Items field value
+// and a boolean to check if the value has been set.
+func (o *FolderListOut) GetItemsOk() ([]FolderOut, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.Items, true
+}
+
+// SetItems sets field value
+func (o *FolderListOut) SetItems(v []FolderOut) {
+ o.Items = v
+}
+
+// GetNextCursor returns the NextCursor field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *FolderListOut) GetNextCursor() string {
+ if o == nil || o.NextCursor.Get() == nil {
+ var ret string
+ return ret
+ }
+
+ return *o.NextCursor.Get()
+}
+
+// GetNextCursorOk returns a tuple with the NextCursor field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *FolderListOut) GetNextCursorOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.NextCursor.Get(), o.NextCursor.IsSet()
+}
+
+// SetNextCursor sets field value
+func (o *FolderListOut) SetNextCursor(v string) {
+ o.NextCursor.Set(&v)
+}
+
+func (o FolderListOut) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o FolderListOut) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["items"] = o.Items
+ toSerialize["next_cursor"] = o.NextCursor.Get()
+ return toSerialize, nil
+}
+
+func (o *FolderListOut) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "items",
+ "next_cursor",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varFolderListOut := _FolderListOut{}
+
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varFolderListOut)
+
+ if err != nil {
+ return err
+ }
+
+ *o = FolderListOut(varFolderListOut)
+
+ return err
+}
+
+type NullableFolderListOut struct {
+ value *FolderListOut
+ isSet bool
+}
+
+func (v NullableFolderListOut) Get() *FolderListOut {
+ return v.value
+}
+
+func (v *NullableFolderListOut) Set(val *FolderListOut) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableFolderListOut) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableFolderListOut) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableFolderListOut(val *FolderListOut) *NullableFolderListOut {
+ return &NullableFolderListOut{value: val, isSet: true}
+}
+
+func (v NullableFolderListOut) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableFolderListOut) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_folder_move_in.go b/sdk/go/model_folder_move_in.go
deleted file mode 100644
index d00b8d8..0000000
--- a/sdk/go/model_folder_move_in.go
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the FolderMoveIn type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &FolderMoveIn{}
-
-// FolderMoveIn POST /v0/folders/{fld_id}/move body — rename / move.
-type FolderMoveIn struct {
- Path string `json:"path"`
-}
-
-type _FolderMoveIn FolderMoveIn
-
-// NewFolderMoveIn instantiates a new FolderMoveIn object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewFolderMoveIn(path string) *FolderMoveIn {
- this := FolderMoveIn{}
- this.Path = path
- return &this
-}
-
-// NewFolderMoveInWithDefaults instantiates a new FolderMoveIn object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewFolderMoveInWithDefaults() *FolderMoveIn {
- this := FolderMoveIn{}
- return &this
-}
-
-// GetPath returns the Path field value
-func (o *FolderMoveIn) GetPath() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Path
-}
-
-// GetPathOk returns a tuple with the Path field value
-// and a boolean to check if the value has been set.
-func (o *FolderMoveIn) GetPathOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Path, true
-}
-
-// SetPath sets field value
-func (o *FolderMoveIn) SetPath(v string) {
- o.Path = v
-}
-
-func (o FolderMoveIn) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o FolderMoveIn) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["path"] = o.Path
- return toSerialize, nil
-}
-
-func (o *FolderMoveIn) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "path",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varFolderMoveIn := _FolderMoveIn{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varFolderMoveIn)
-
- if err != nil {
- return err
- }
-
- *o = FolderMoveIn(varFolderMoveIn)
-
- return err
-}
-
-type NullableFolderMoveIn struct {
- value *FolderMoveIn
- isSet bool
-}
-
-func (v NullableFolderMoveIn) Get() *FolderMoveIn {
- return v.value
-}
-
-func (v *NullableFolderMoveIn) Set(val *FolderMoveIn) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableFolderMoveIn) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableFolderMoveIn) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableFolderMoveIn(val *FolderMoveIn) *NullableFolderMoveIn {
- return &NullableFolderMoveIn{value: val, isSet: true}
-}
-
-func (v NullableFolderMoveIn) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableFolderMoveIn) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_folder_out.go b/sdk/go/model_folder_out.go
index 4b42e03..650bab3 100644
--- a/sdk/go/model_folder_out.go
+++ b/sdk/go/model_folder_out.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
@@ -20,18 +20,18 @@ import (
// checks if the FolderOut type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &FolderOut{}
-// FolderOut Folder resource (folders+permalinks design §13). `path` is the canonical leading+trailing-slash form. Access is expressed through grants (permission-sharing-design §4.4), not a folder-level flag.
+// FolderOut struct for FolderOut
type FolderOut struct {
CreatedAt time.Time `json:"created_at"`
- DeletedAt NullableTime `json:"deleted_at,omitempty"`
- Description NullableString `json:"description,omitempty"`
- DriveId string `json:"drive_id"`
- Etag string `json:"etag"`
- Id string `json:"id"`
- InheritGrants *bool `json:"inherit_grants,omitempty"`
- Metageneration *int32 `json:"metageneration,omitempty"`
- Path string `json:"path"`
- PurgeAt NullableTime `json:"purge_at,omitempty"`
+ DeletedAt NullableTime `json:"deleted_at"`
+ DriveId string `json:"drive_id" validate:"regexp=^drv_[a-f0-9]{16}$"`
+ GrantInheritance string `json:"grant_inheritance"`
+ Id string `json:"id" validate:"regexp=^fld_[a-f0-9]{16}$"`
+ Metadata map[string]interface{} `json:"metadata"`
+ Name NullableString `json:"name"`
+ ParentId NullableString `json:"parent_id"`
+ Revision string `json:"revision" validate:"regexp=^rev_[a-f0-9]{16}$"`
+ State string `json:"state"`
UpdatedAt time.Time `json:"updated_at"`
}
@@ -41,17 +41,18 @@ type _FolderOut FolderOut
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
-func NewFolderOut(createdAt time.Time, driveId string, etag string, id string, path string, updatedAt time.Time) *FolderOut {
+func NewFolderOut(createdAt time.Time, deletedAt NullableTime, driveId string, grantInheritance string, id string, metadata map[string]interface{}, name NullableString, parentId NullableString, revision string, state string, updatedAt time.Time) *FolderOut {
this := FolderOut{}
this.CreatedAt = createdAt
+ this.DeletedAt = deletedAt
this.DriveId = driveId
- this.Etag = etag
+ this.GrantInheritance = grantInheritance
this.Id = id
- var inheritGrants bool = true
- this.InheritGrants = &inheritGrants
- var metageneration int32 = 1
- this.Metageneration = &metageneration
- this.Path = path
+ this.Metadata = metadata
+ this.Name = name
+ this.ParentId = parentId
+ this.Revision = revision
+ this.State = state
this.UpdatedAt = updatedAt
return &this
}
@@ -61,10 +62,6 @@ func NewFolderOut(createdAt time.Time, driveId string, etag string, id string, p
// but it doesn't guarantee that properties required by API are set
func NewFolderOutWithDefaults() *FolderOut {
this := FolderOut{}
- var inheritGrants bool = true
- this.InheritGrants = &inheritGrants
- var metageneration int32 = 1
- this.Metageneration = &metageneration
return &this
}
@@ -92,16 +89,18 @@ func (o *FolderOut) SetCreatedAt(v time.Time) {
o.CreatedAt = v
}
-// GetDeletedAt returns the DeletedAt field value if set, zero value otherwise (both if not set or set to explicit null).
+// GetDeletedAt returns the DeletedAt field value
+// If the value is explicit nil, the zero value for time.Time will be returned
func (o *FolderOut) GetDeletedAt() time.Time {
- if o == nil || IsNil(o.DeletedAt.Get()) {
+ if o == nil || o.DeletedAt.Get() == nil {
var ret time.Time
return ret
}
+
return *o.DeletedAt.Get()
}
-// GetDeletedAtOk returns a tuple with the DeletedAt field value if set, nil otherwise
+// GetDeletedAtOk returns a tuple with the DeletedAt field value
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *FolderOut) GetDeletedAtOk() (*time.Time, bool) {
@@ -111,70 +110,10 @@ func (o *FolderOut) GetDeletedAtOk() (*time.Time, bool) {
return o.DeletedAt.Get(), o.DeletedAt.IsSet()
}
-// HasDeletedAt returns a boolean if a field has been set.
-func (o *FolderOut) HasDeletedAt() bool {
- if o != nil && o.DeletedAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetDeletedAt gets a reference to the given NullableTime and assigns it to the DeletedAt field.
+// SetDeletedAt sets field value
func (o *FolderOut) SetDeletedAt(v time.Time) {
o.DeletedAt.Set(&v)
}
-// SetDeletedAtNil sets the value for DeletedAt to be an explicit nil
-func (o *FolderOut) SetDeletedAtNil() {
- o.DeletedAt.Set(nil)
-}
-
-// UnsetDeletedAt ensures that no value is present for DeletedAt, not even an explicit nil
-func (o *FolderOut) UnsetDeletedAt() {
- o.DeletedAt.Unset()
-}
-
-// GetDescription returns the Description field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FolderOut) GetDescription() string {
- if o == nil || IsNil(o.Description.Get()) {
- var ret string
- return ret
- }
- return *o.Description.Get()
-}
-
-// GetDescriptionOk returns a tuple with the Description field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FolderOut) GetDescriptionOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Description.Get(), o.Description.IsSet()
-}
-
-// HasDescription returns a boolean if a field has been set.
-func (o *FolderOut) HasDescription() bool {
- if o != nil && o.Description.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetDescription gets a reference to the given NullableString and assigns it to the Description field.
-func (o *FolderOut) SetDescription(v string) {
- o.Description.Set(&v)
-}
-// SetDescriptionNil sets the value for Description to be an explicit nil
-func (o *FolderOut) SetDescriptionNil() {
- o.Description.Set(nil)
-}
-
-// UnsetDescription ensures that no value is present for Description, not even an explicit nil
-func (o *FolderOut) UnsetDescription() {
- o.Description.Unset()
-}
// GetDriveId returns the DriveId field value
func (o *FolderOut) GetDriveId() string {
@@ -200,28 +139,28 @@ func (o *FolderOut) SetDriveId(v string) {
o.DriveId = v
}
-// GetEtag returns the Etag field value
-func (o *FolderOut) GetEtag() string {
+// GetGrantInheritance returns the GrantInheritance field value
+func (o *FolderOut) GetGrantInheritance() string {
if o == nil {
var ret string
return ret
}
- return o.Etag
+ return o.GrantInheritance
}
-// GetEtagOk returns a tuple with the Etag field value
+// GetGrantInheritanceOk returns a tuple with the GrantInheritance field value
// and a boolean to check if the value has been set.
-func (o *FolderOut) GetEtagOk() (*string, bool) {
+func (o *FolderOut) GetGrantInheritanceOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.Etag, true
+ return &o.GrantInheritance, true
}
-// SetEtag sets field value
-func (o *FolderOut) SetEtag(v string) {
- o.Etag = v
+// SetGrantInheritance sets field value
+func (o *FolderOut) SetGrantInheritance(v string) {
+ o.GrantInheritance = v
}
// GetId returns the Id field value
@@ -248,134 +187,128 @@ func (o *FolderOut) SetId(v string) {
o.Id = v
}
-// GetInheritGrants returns the InheritGrants field value if set, zero value otherwise.
-func (o *FolderOut) GetInheritGrants() bool {
- if o == nil || IsNil(o.InheritGrants) {
- var ret bool
+// GetMetadata returns the Metadata field value
+func (o *FolderOut) GetMetadata() map[string]interface{} {
+ if o == nil {
+ var ret map[string]interface{}
return ret
}
- return *o.InheritGrants
-}
-// GetInheritGrantsOk returns a tuple with the InheritGrants field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *FolderOut) GetInheritGrantsOk() (*bool, bool) {
- if o == nil || IsNil(o.InheritGrants) {
- return nil, false
- }
- return o.InheritGrants, true
+ return o.Metadata
}
-// HasInheritGrants returns a boolean if a field has been set.
-func (o *FolderOut) HasInheritGrants() bool {
- if o != nil && !IsNil(o.InheritGrants) {
- return true
+// GetMetadataOk returns a tuple with the Metadata field value
+// and a boolean to check if the value has been set.
+func (o *FolderOut) GetMetadataOk() (map[string]interface{}, bool) {
+ if o == nil {
+ return map[string]interface{}{}, false
}
-
- return false
+ return o.Metadata, true
}
-// SetInheritGrants gets a reference to the given bool and assigns it to the InheritGrants field.
-func (o *FolderOut) SetInheritGrants(v bool) {
- o.InheritGrants = &v
+// SetMetadata sets field value
+func (o *FolderOut) SetMetadata(v map[string]interface{}) {
+ o.Metadata = v
}
-// GetMetageneration returns the Metageneration field value if set, zero value otherwise.
-func (o *FolderOut) GetMetageneration() int32 {
- if o == nil || IsNil(o.Metageneration) {
- var ret int32
+// GetName returns the Name field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *FolderOut) GetName() string {
+ if o == nil || o.Name.Get() == nil {
+ var ret string
return ret
}
- return *o.Metageneration
+
+ return *o.Name.Get()
}
-// GetMetagenerationOk returns a tuple with the Metageneration field value if set, nil otherwise
+// GetNameOk returns a tuple with the Name field value
// and a boolean to check if the value has been set.
-func (o *FolderOut) GetMetagenerationOk() (*int32, bool) {
- if o == nil || IsNil(o.Metageneration) {
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *FolderOut) GetNameOk() (*string, bool) {
+ if o == nil {
return nil, false
}
- return o.Metageneration, true
+ return o.Name.Get(), o.Name.IsSet()
}
-// HasMetageneration returns a boolean if a field has been set.
-func (o *FolderOut) HasMetageneration() bool {
- if o != nil && !IsNil(o.Metageneration) {
- return true
- }
-
- return false
+// SetName sets field value
+func (o *FolderOut) SetName(v string) {
+ o.Name.Set(&v)
}
-// SetMetageneration gets a reference to the given int32 and assigns it to the Metageneration field.
-func (o *FolderOut) SetMetageneration(v int32) {
- o.Metageneration = &v
-}
-
-// GetPath returns the Path field value
-func (o *FolderOut) GetPath() string {
- if o == nil {
+// GetParentId returns the ParentId field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *FolderOut) GetParentId() string {
+ if o == nil || o.ParentId.Get() == nil {
var ret string
return ret
}
- return o.Path
+ return *o.ParentId.Get()
}
-// GetPathOk returns a tuple with the Path field value
+// GetParentIdOk returns a tuple with the ParentId field value
// and a boolean to check if the value has been set.
-func (o *FolderOut) GetPathOk() (*string, bool) {
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *FolderOut) GetParentIdOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.Path, true
+ return o.ParentId.Get(), o.ParentId.IsSet()
}
-// SetPath sets field value
-func (o *FolderOut) SetPath(v string) {
- o.Path = v
+// SetParentId sets field value
+func (o *FolderOut) SetParentId(v string) {
+ o.ParentId.Set(&v)
}
-// GetPurgeAt returns the PurgeAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FolderOut) GetPurgeAt() time.Time {
- if o == nil || IsNil(o.PurgeAt.Get()) {
- var ret time.Time
+// GetRevision returns the Revision field value
+func (o *FolderOut) GetRevision() string {
+ if o == nil {
+ var ret string
return ret
}
- return *o.PurgeAt.Get()
+
+ return o.Revision
}
-// GetPurgeAtOk returns a tuple with the PurgeAt field value if set, nil otherwise
+// GetRevisionOk returns a tuple with the Revision field value
// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FolderOut) GetPurgeAtOk() (*time.Time, bool) {
+func (o *FolderOut) GetRevisionOk() (*string, bool) {
if o == nil {
return nil, false
}
- return o.PurgeAt.Get(), o.PurgeAt.IsSet()
+ return &o.Revision, true
+}
+
+// SetRevision sets field value
+func (o *FolderOut) SetRevision(v string) {
+ o.Revision = v
}
-// HasPurgeAt returns a boolean if a field has been set.
-func (o *FolderOut) HasPurgeAt() bool {
- if o != nil && o.PurgeAt.IsSet() {
- return true
+// GetState returns the State field value
+func (o *FolderOut) GetState() string {
+ if o == nil {
+ var ret string
+ return ret
}
- return false
+ return o.State
}
-// SetPurgeAt gets a reference to the given NullableTime and assigns it to the PurgeAt field.
-func (o *FolderOut) SetPurgeAt(v time.Time) {
- o.PurgeAt.Set(&v)
-}
-// SetPurgeAtNil sets the value for PurgeAt to be an explicit nil
-func (o *FolderOut) SetPurgeAtNil() {
- o.PurgeAt.Set(nil)
+// GetStateOk returns a tuple with the State field value
+// and a boolean to check if the value has been set.
+func (o *FolderOut) GetStateOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.State, true
}
-// UnsetPurgeAt ensures that no value is present for PurgeAt, not even an explicit nil
-func (o *FolderOut) UnsetPurgeAt() {
- o.PurgeAt.Unset()
+// SetState sets field value
+func (o *FolderOut) SetState(v string) {
+ o.State = v
}
// GetUpdatedAt returns the UpdatedAt field value
@@ -413,25 +346,15 @@ func (o FolderOut) MarshalJSON() ([]byte, error) {
func (o FolderOut) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
toSerialize["created_at"] = o.CreatedAt
- if o.DeletedAt.IsSet() {
- toSerialize["deleted_at"] = o.DeletedAt.Get()
- }
- if o.Description.IsSet() {
- toSerialize["description"] = o.Description.Get()
- }
+ toSerialize["deleted_at"] = o.DeletedAt.Get()
toSerialize["drive_id"] = o.DriveId
- toSerialize["etag"] = o.Etag
+ toSerialize["grant_inheritance"] = o.GrantInheritance
toSerialize["id"] = o.Id
- if !IsNil(o.InheritGrants) {
- toSerialize["inherit_grants"] = o.InheritGrants
- }
- if !IsNil(o.Metageneration) {
- toSerialize["metageneration"] = o.Metageneration
- }
- toSerialize["path"] = o.Path
- if o.PurgeAt.IsSet() {
- toSerialize["purge_at"] = o.PurgeAt.Get()
- }
+ toSerialize["metadata"] = o.Metadata
+ toSerialize["name"] = o.Name.Get()
+ toSerialize["parent_id"] = o.ParentId.Get()
+ toSerialize["revision"] = o.Revision
+ toSerialize["state"] = o.State
toSerialize["updated_at"] = o.UpdatedAt
return toSerialize, nil
}
@@ -442,10 +365,15 @@ func (o *FolderOut) UnmarshalJSON(data []byte) (err error) {
// that every required field exists as a key in the generic map.
requiredProperties := []string{
"created_at",
+ "deleted_at",
"drive_id",
- "etag",
+ "grant_inheritance",
"id",
- "path",
+ "metadata",
+ "name",
+ "parent_id",
+ "revision",
+ "state",
"updated_at",
}
diff --git a/sdk/go/model_folder_patch_in.go b/sdk/go/model_folder_patch_in.go
deleted file mode 100644
index 5bf5a8e..0000000
--- a/sdk/go/model_folder_patch_in.go
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
-)
-
-// checks if the FolderPatchIn type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &FolderPatchIn{}
-
-// FolderPatchIn PATCH /v0/folders/{fld_id} body — partial update. Field absence = unchanged. `description`: explicit null = clear. `inherit_grants`: non-nullable — null/absent = unchanged (it cannot be cleared, only flipped true/false).
-type FolderPatchIn struct {
- Description NullableString `json:"description,omitempty"`
- InheritGrants NullableBool `json:"inherit_grants,omitempty"`
-}
-
-// NewFolderPatchIn instantiates a new FolderPatchIn object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewFolderPatchIn() *FolderPatchIn {
- this := FolderPatchIn{}
- return &this
-}
-
-// NewFolderPatchInWithDefaults instantiates a new FolderPatchIn object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewFolderPatchInWithDefaults() *FolderPatchIn {
- this := FolderPatchIn{}
- return &this
-}
-
-// GetDescription returns the Description field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FolderPatchIn) GetDescription() string {
- if o == nil || IsNil(o.Description.Get()) {
- var ret string
- return ret
- }
- return *o.Description.Get()
-}
-
-// GetDescriptionOk returns a tuple with the Description field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FolderPatchIn) GetDescriptionOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Description.Get(), o.Description.IsSet()
-}
-
-// HasDescription returns a boolean if a field has been set.
-func (o *FolderPatchIn) HasDescription() bool {
- if o != nil && o.Description.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetDescription gets a reference to the given NullableString and assigns it to the Description field.
-func (o *FolderPatchIn) SetDescription(v string) {
- o.Description.Set(&v)
-}
-// SetDescriptionNil sets the value for Description to be an explicit nil
-func (o *FolderPatchIn) SetDescriptionNil() {
- o.Description.Set(nil)
-}
-
-// UnsetDescription ensures that no value is present for Description, not even an explicit nil
-func (o *FolderPatchIn) UnsetDescription() {
- o.Description.Unset()
-}
-
-// GetInheritGrants returns the InheritGrants field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FolderPatchIn) GetInheritGrants() bool {
- if o == nil || IsNil(o.InheritGrants.Get()) {
- var ret bool
- return ret
- }
- return *o.InheritGrants.Get()
-}
-
-// GetInheritGrantsOk returns a tuple with the InheritGrants field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FolderPatchIn) GetInheritGrantsOk() (*bool, bool) {
- if o == nil {
- return nil, false
- }
- return o.InheritGrants.Get(), o.InheritGrants.IsSet()
-}
-
-// HasInheritGrants returns a boolean if a field has been set.
-func (o *FolderPatchIn) HasInheritGrants() bool {
- if o != nil && o.InheritGrants.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetInheritGrants gets a reference to the given NullableBool and assigns it to the InheritGrants field.
-func (o *FolderPatchIn) SetInheritGrants(v bool) {
- o.InheritGrants.Set(&v)
-}
-// SetInheritGrantsNil sets the value for InheritGrants to be an explicit nil
-func (o *FolderPatchIn) SetInheritGrantsNil() {
- o.InheritGrants.Set(nil)
-}
-
-// UnsetInheritGrants ensures that no value is present for InheritGrants, not even an explicit nil
-func (o *FolderPatchIn) UnsetInheritGrants() {
- o.InheritGrants.Unset()
-}
-
-func (o FolderPatchIn) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o FolderPatchIn) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- if o.Description.IsSet() {
- toSerialize["description"] = o.Description.Get()
- }
- if o.InheritGrants.IsSet() {
- toSerialize["inherit_grants"] = o.InheritGrants.Get()
- }
- return toSerialize, nil
-}
-
-type NullableFolderPatchIn struct {
- value *FolderPatchIn
- isSet bool
-}
-
-func (v NullableFolderPatchIn) Get() *FolderPatchIn {
- return v.value
-}
-
-func (v *NullableFolderPatchIn) Set(val *FolderPatchIn) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableFolderPatchIn) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableFolderPatchIn) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableFolderPatchIn(val *FolderPatchIn) *NullableFolderPatchIn {
- return &NullableFolderPatchIn{value: val, isSet: true}
-}
-
-func (v NullableFolderPatchIn) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableFolderPatchIn) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_folder_restore_out.go b/sdk/go/model_folder_restore_out.go
deleted file mode 100644
index 9171a4b..0000000
--- a/sdk/go/model_folder_restore_out.go
+++ /dev/null
@@ -1,571 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the FolderRestoreOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &FolderRestoreOut{}
-
-// FolderRestoreOut POST /v0/folders/{fld_id}/restore response — the restored (live) folder resource (same shape as `FolderOut`) plus the cascade counts from `core.folders.restore_cascade` (dashboard-file-operations-design §4.5), so the caller can confirm the scope of what came back with the root.
-type FolderRestoreOut struct {
- CreatedAt time.Time `json:"created_at"`
- DeletedAt NullableTime `json:"deleted_at,omitempty"`
- Description NullableString `json:"description,omitempty"`
- DriveId string `json:"drive_id"`
- Etag string `json:"etag"`
- Id string `json:"id"`
- InheritGrants *bool `json:"inherit_grants,omitempty"`
- Metageneration *int32 `json:"metageneration,omitempty"`
- NArtifactsRestored int32 `json:"n_artifacts_restored"`
- NSubfoldersRestored int32 `json:"n_subfolders_restored"`
- Path string `json:"path"`
- PurgeAt NullableTime `json:"purge_at,omitempty"`
- UpdatedAt time.Time `json:"updated_at"`
-}
-
-type _FolderRestoreOut FolderRestoreOut
-
-// NewFolderRestoreOut instantiates a new FolderRestoreOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewFolderRestoreOut(createdAt time.Time, driveId string, etag string, id string, nArtifactsRestored int32, nSubfoldersRestored int32, path string, updatedAt time.Time) *FolderRestoreOut {
- this := FolderRestoreOut{}
- this.CreatedAt = createdAt
- this.DriveId = driveId
- this.Etag = etag
- this.Id = id
- var inheritGrants bool = true
- this.InheritGrants = &inheritGrants
- var metageneration int32 = 1
- this.Metageneration = &metageneration
- this.NArtifactsRestored = nArtifactsRestored
- this.NSubfoldersRestored = nSubfoldersRestored
- this.Path = path
- this.UpdatedAt = updatedAt
- return &this
-}
-
-// NewFolderRestoreOutWithDefaults instantiates a new FolderRestoreOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewFolderRestoreOutWithDefaults() *FolderRestoreOut {
- this := FolderRestoreOut{}
- var inheritGrants bool = true
- this.InheritGrants = &inheritGrants
- var metageneration int32 = 1
- this.Metageneration = &metageneration
- return &this
-}
-
-// GetCreatedAt returns the CreatedAt field value
-func (o *FolderRestoreOut) GetCreatedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.CreatedAt
-}
-
-// GetCreatedAtOk returns a tuple with the CreatedAt field value
-// and a boolean to check if the value has been set.
-func (o *FolderRestoreOut) GetCreatedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.CreatedAt, true
-}
-
-// SetCreatedAt sets field value
-func (o *FolderRestoreOut) SetCreatedAt(v time.Time) {
- o.CreatedAt = v
-}
-
-// GetDeletedAt returns the DeletedAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FolderRestoreOut) GetDeletedAt() time.Time {
- if o == nil || IsNil(o.DeletedAt.Get()) {
- var ret time.Time
- return ret
- }
- return *o.DeletedAt.Get()
-}
-
-// GetDeletedAtOk returns a tuple with the DeletedAt field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FolderRestoreOut) GetDeletedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return o.DeletedAt.Get(), o.DeletedAt.IsSet()
-}
-
-// HasDeletedAt returns a boolean if a field has been set.
-func (o *FolderRestoreOut) HasDeletedAt() bool {
- if o != nil && o.DeletedAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetDeletedAt gets a reference to the given NullableTime and assigns it to the DeletedAt field.
-func (o *FolderRestoreOut) SetDeletedAt(v time.Time) {
- o.DeletedAt.Set(&v)
-}
-// SetDeletedAtNil sets the value for DeletedAt to be an explicit nil
-func (o *FolderRestoreOut) SetDeletedAtNil() {
- o.DeletedAt.Set(nil)
-}
-
-// UnsetDeletedAt ensures that no value is present for DeletedAt, not even an explicit nil
-func (o *FolderRestoreOut) UnsetDeletedAt() {
- o.DeletedAt.Unset()
-}
-
-// GetDescription returns the Description field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FolderRestoreOut) GetDescription() string {
- if o == nil || IsNil(o.Description.Get()) {
- var ret string
- return ret
- }
- return *o.Description.Get()
-}
-
-// GetDescriptionOk returns a tuple with the Description field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FolderRestoreOut) GetDescriptionOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Description.Get(), o.Description.IsSet()
-}
-
-// HasDescription returns a boolean if a field has been set.
-func (o *FolderRestoreOut) HasDescription() bool {
- if o != nil && o.Description.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetDescription gets a reference to the given NullableString and assigns it to the Description field.
-func (o *FolderRestoreOut) SetDescription(v string) {
- o.Description.Set(&v)
-}
-// SetDescriptionNil sets the value for Description to be an explicit nil
-func (o *FolderRestoreOut) SetDescriptionNil() {
- o.Description.Set(nil)
-}
-
-// UnsetDescription ensures that no value is present for Description, not even an explicit nil
-func (o *FolderRestoreOut) UnsetDescription() {
- o.Description.Unset()
-}
-
-// GetDriveId returns the DriveId field value
-func (o *FolderRestoreOut) GetDriveId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.DriveId
-}
-
-// GetDriveIdOk returns a tuple with the DriveId field value
-// and a boolean to check if the value has been set.
-func (o *FolderRestoreOut) GetDriveIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.DriveId, true
-}
-
-// SetDriveId sets field value
-func (o *FolderRestoreOut) SetDriveId(v string) {
- o.DriveId = v
-}
-
-// GetEtag returns the Etag field value
-func (o *FolderRestoreOut) GetEtag() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Etag
-}
-
-// GetEtagOk returns a tuple with the Etag field value
-// and a boolean to check if the value has been set.
-func (o *FolderRestoreOut) GetEtagOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Etag, true
-}
-
-// SetEtag sets field value
-func (o *FolderRestoreOut) SetEtag(v string) {
- o.Etag = v
-}
-
-// GetId returns the Id field value
-func (o *FolderRestoreOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *FolderRestoreOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *FolderRestoreOut) SetId(v string) {
- o.Id = v
-}
-
-// GetInheritGrants returns the InheritGrants field value if set, zero value otherwise.
-func (o *FolderRestoreOut) GetInheritGrants() bool {
- if o == nil || IsNil(o.InheritGrants) {
- var ret bool
- return ret
- }
- return *o.InheritGrants
-}
-
-// GetInheritGrantsOk returns a tuple with the InheritGrants field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *FolderRestoreOut) GetInheritGrantsOk() (*bool, bool) {
- if o == nil || IsNil(o.InheritGrants) {
- return nil, false
- }
- return o.InheritGrants, true
-}
-
-// HasInheritGrants returns a boolean if a field has been set.
-func (o *FolderRestoreOut) HasInheritGrants() bool {
- if o != nil && !IsNil(o.InheritGrants) {
- return true
- }
-
- return false
-}
-
-// SetInheritGrants gets a reference to the given bool and assigns it to the InheritGrants field.
-func (o *FolderRestoreOut) SetInheritGrants(v bool) {
- o.InheritGrants = &v
-}
-
-// GetMetageneration returns the Metageneration field value if set, zero value otherwise.
-func (o *FolderRestoreOut) GetMetageneration() int32 {
- if o == nil || IsNil(o.Metageneration) {
- var ret int32
- return ret
- }
- return *o.Metageneration
-}
-
-// GetMetagenerationOk returns a tuple with the Metageneration field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *FolderRestoreOut) GetMetagenerationOk() (*int32, bool) {
- if o == nil || IsNil(o.Metageneration) {
- return nil, false
- }
- return o.Metageneration, true
-}
-
-// HasMetageneration returns a boolean if a field has been set.
-func (o *FolderRestoreOut) HasMetageneration() bool {
- if o != nil && !IsNil(o.Metageneration) {
- return true
- }
-
- return false
-}
-
-// SetMetageneration gets a reference to the given int32 and assigns it to the Metageneration field.
-func (o *FolderRestoreOut) SetMetageneration(v int32) {
- o.Metageneration = &v
-}
-
-// GetNArtifactsRestored returns the NArtifactsRestored field value
-func (o *FolderRestoreOut) GetNArtifactsRestored() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.NArtifactsRestored
-}
-
-// GetNArtifactsRestoredOk returns a tuple with the NArtifactsRestored field value
-// and a boolean to check if the value has been set.
-func (o *FolderRestoreOut) GetNArtifactsRestoredOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.NArtifactsRestored, true
-}
-
-// SetNArtifactsRestored sets field value
-func (o *FolderRestoreOut) SetNArtifactsRestored(v int32) {
- o.NArtifactsRestored = v
-}
-
-// GetNSubfoldersRestored returns the NSubfoldersRestored field value
-func (o *FolderRestoreOut) GetNSubfoldersRestored() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.NSubfoldersRestored
-}
-
-// GetNSubfoldersRestoredOk returns a tuple with the NSubfoldersRestored field value
-// and a boolean to check if the value has been set.
-func (o *FolderRestoreOut) GetNSubfoldersRestoredOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.NSubfoldersRestored, true
-}
-
-// SetNSubfoldersRestored sets field value
-func (o *FolderRestoreOut) SetNSubfoldersRestored(v int32) {
- o.NSubfoldersRestored = v
-}
-
-// GetPath returns the Path field value
-func (o *FolderRestoreOut) GetPath() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Path
-}
-
-// GetPathOk returns a tuple with the Path field value
-// and a boolean to check if the value has been set.
-func (o *FolderRestoreOut) GetPathOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Path, true
-}
-
-// SetPath sets field value
-func (o *FolderRestoreOut) SetPath(v string) {
- o.Path = v
-}
-
-// GetPurgeAt returns the PurgeAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *FolderRestoreOut) GetPurgeAt() time.Time {
- if o == nil || IsNil(o.PurgeAt.Get()) {
- var ret time.Time
- return ret
- }
- return *o.PurgeAt.Get()
-}
-
-// GetPurgeAtOk returns a tuple with the PurgeAt field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *FolderRestoreOut) GetPurgeAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return o.PurgeAt.Get(), o.PurgeAt.IsSet()
-}
-
-// HasPurgeAt returns a boolean if a field has been set.
-func (o *FolderRestoreOut) HasPurgeAt() bool {
- if o != nil && o.PurgeAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetPurgeAt gets a reference to the given NullableTime and assigns it to the PurgeAt field.
-func (o *FolderRestoreOut) SetPurgeAt(v time.Time) {
- o.PurgeAt.Set(&v)
-}
-// SetPurgeAtNil sets the value for PurgeAt to be an explicit nil
-func (o *FolderRestoreOut) SetPurgeAtNil() {
- o.PurgeAt.Set(nil)
-}
-
-// UnsetPurgeAt ensures that no value is present for PurgeAt, not even an explicit nil
-func (o *FolderRestoreOut) UnsetPurgeAt() {
- o.PurgeAt.Unset()
-}
-
-// GetUpdatedAt returns the UpdatedAt field value
-func (o *FolderRestoreOut) GetUpdatedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.UpdatedAt
-}
-
-// GetUpdatedAtOk returns a tuple with the UpdatedAt field value
-// and a boolean to check if the value has been set.
-func (o *FolderRestoreOut) GetUpdatedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.UpdatedAt, true
-}
-
-// SetUpdatedAt sets field value
-func (o *FolderRestoreOut) SetUpdatedAt(v time.Time) {
- o.UpdatedAt = v
-}
-
-func (o FolderRestoreOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o FolderRestoreOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["created_at"] = o.CreatedAt
- if o.DeletedAt.IsSet() {
- toSerialize["deleted_at"] = o.DeletedAt.Get()
- }
- if o.Description.IsSet() {
- toSerialize["description"] = o.Description.Get()
- }
- toSerialize["drive_id"] = o.DriveId
- toSerialize["etag"] = o.Etag
- toSerialize["id"] = o.Id
- if !IsNil(o.InheritGrants) {
- toSerialize["inherit_grants"] = o.InheritGrants
- }
- if !IsNil(o.Metageneration) {
- toSerialize["metageneration"] = o.Metageneration
- }
- toSerialize["n_artifacts_restored"] = o.NArtifactsRestored
- toSerialize["n_subfolders_restored"] = o.NSubfoldersRestored
- toSerialize["path"] = o.Path
- if o.PurgeAt.IsSet() {
- toSerialize["purge_at"] = o.PurgeAt.Get()
- }
- toSerialize["updated_at"] = o.UpdatedAt
- return toSerialize, nil
-}
-
-func (o *FolderRestoreOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "created_at",
- "drive_id",
- "etag",
- "id",
- "n_artifacts_restored",
- "n_subfolders_restored",
- "path",
- "updated_at",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varFolderRestoreOut := _FolderRestoreOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varFolderRestoreOut)
-
- if err != nil {
- return err
- }
-
- *o = FolderRestoreOut(varFolderRestoreOut)
-
- return err
-}
-
-type NullableFolderRestoreOut struct {
- value *FolderRestoreOut
- isSet bool
-}
-
-func (v NullableFolderRestoreOut) Get() *FolderRestoreOut {
- return v.value
-}
-
-func (v *NullableFolderRestoreOut) Set(val *FolderRestoreOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableFolderRestoreOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableFolderRestoreOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableFolderRestoreOut(val *FolderRestoreOut) *NullableFolderRestoreOut {
- return &NullableFolderRestoreOut{value: val, isSet: true}
-}
-
-func (v NullableFolderRestoreOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableFolderRestoreOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_folder_update_in.go b/sdk/go/model_folder_update_in.go
new file mode 100644
index 0000000..c995757
--- /dev/null
+++ b/sdk/go/model_folder_update_in.go
@@ -0,0 +1,295 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+)
+
+// checks if the FolderUpdateIn type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &FolderUpdateIn{}
+
+// FolderUpdateIn PATCH /v0/drives/{id}/folders/{folder_id} body — at least one field is required.
+type FolderUpdateIn struct {
+ GrantInheritance NullableString `json:"grant_inheritance,omitempty"`
+ Metadata map[string]interface{} `json:"metadata,omitempty"`
+ Name NullableString `json:"name,omitempty"`
+ ParentId NullableString `json:"parent_id,omitempty" validate:"regexp=^fld_[a-f0-9]{16}$"`
+ AdditionalProperties map[string]interface{}
+}
+
+type _FolderUpdateIn FolderUpdateIn
+
+// NewFolderUpdateIn instantiates a new FolderUpdateIn object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewFolderUpdateIn() *FolderUpdateIn {
+ this := FolderUpdateIn{}
+ return &this
+}
+
+// NewFolderUpdateInWithDefaults instantiates a new FolderUpdateIn object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewFolderUpdateInWithDefaults() *FolderUpdateIn {
+ this := FolderUpdateIn{}
+ return &this
+}
+
+// GetGrantInheritance returns the GrantInheritance field value if set, zero value otherwise (both if not set or set to explicit null).
+func (o *FolderUpdateIn) GetGrantInheritance() string {
+ if o == nil || IsNil(o.GrantInheritance.Get()) {
+ var ret string
+ return ret
+ }
+ return *o.GrantInheritance.Get()
+}
+
+// GetGrantInheritanceOk returns a tuple with the GrantInheritance field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *FolderUpdateIn) GetGrantInheritanceOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.GrantInheritance.Get(), o.GrantInheritance.IsSet()
+}
+
+// HasGrantInheritance returns a boolean if a field has been set.
+func (o *FolderUpdateIn) HasGrantInheritance() bool {
+ if o != nil && o.GrantInheritance.IsSet() {
+ return true
+ }
+
+ return false
+}
+
+// SetGrantInheritance gets a reference to the given NullableString and assigns it to the GrantInheritance field.
+func (o *FolderUpdateIn) SetGrantInheritance(v string) {
+ o.GrantInheritance.Set(&v)
+}
+// SetGrantInheritanceNil sets the value for GrantInheritance to be an explicit nil
+func (o *FolderUpdateIn) SetGrantInheritanceNil() {
+ o.GrantInheritance.Set(nil)
+}
+
+// UnsetGrantInheritance ensures that no value is present for GrantInheritance, not even an explicit nil
+func (o *FolderUpdateIn) UnsetGrantInheritance() {
+ o.GrantInheritance.Unset()
+}
+
+// GetMetadata returns the Metadata field value if set, zero value otherwise (both if not set or set to explicit null).
+func (o *FolderUpdateIn) GetMetadata() map[string]interface{} {
+ if o == nil {
+ var ret map[string]interface{}
+ return ret
+ }
+ return o.Metadata
+}
+
+// GetMetadataOk returns a tuple with the Metadata field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *FolderUpdateIn) GetMetadataOk() (map[string]interface{}, bool) {
+ if o == nil || IsNil(o.Metadata) {
+ return map[string]interface{}{}, false
+ }
+ return o.Metadata, true
+}
+
+// HasMetadata returns a boolean if a field has been set.
+func (o *FolderUpdateIn) HasMetadata() bool {
+ if o != nil && !IsNil(o.Metadata) {
+ return true
+ }
+
+ return false
+}
+
+// SetMetadata gets a reference to the given map[string]interface{} and assigns it to the Metadata field.
+func (o *FolderUpdateIn) SetMetadata(v map[string]interface{}) {
+ o.Metadata = v
+}
+
+// GetName returns the Name field value if set, zero value otherwise (both if not set or set to explicit null).
+func (o *FolderUpdateIn) GetName() string {
+ if o == nil || IsNil(o.Name.Get()) {
+ var ret string
+ return ret
+ }
+ return *o.Name.Get()
+}
+
+// GetNameOk returns a tuple with the Name field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *FolderUpdateIn) GetNameOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.Name.Get(), o.Name.IsSet()
+}
+
+// HasName returns a boolean if a field has been set.
+func (o *FolderUpdateIn) HasName() bool {
+ if o != nil && o.Name.IsSet() {
+ return true
+ }
+
+ return false
+}
+
+// SetName gets a reference to the given NullableString and assigns it to the Name field.
+func (o *FolderUpdateIn) SetName(v string) {
+ o.Name.Set(&v)
+}
+// SetNameNil sets the value for Name to be an explicit nil
+func (o *FolderUpdateIn) SetNameNil() {
+ o.Name.Set(nil)
+}
+
+// UnsetName ensures that no value is present for Name, not even an explicit nil
+func (o *FolderUpdateIn) UnsetName() {
+ o.Name.Unset()
+}
+
+// GetParentId returns the ParentId field value if set, zero value otherwise (both if not set or set to explicit null).
+func (o *FolderUpdateIn) GetParentId() string {
+ if o == nil || IsNil(o.ParentId.Get()) {
+ var ret string
+ return ret
+ }
+ return *o.ParentId.Get()
+}
+
+// GetParentIdOk returns a tuple with the ParentId field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *FolderUpdateIn) GetParentIdOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.ParentId.Get(), o.ParentId.IsSet()
+}
+
+// HasParentId returns a boolean if a field has been set.
+func (o *FolderUpdateIn) HasParentId() bool {
+ if o != nil && o.ParentId.IsSet() {
+ return true
+ }
+
+ return false
+}
+
+// SetParentId gets a reference to the given NullableString and assigns it to the ParentId field.
+func (o *FolderUpdateIn) SetParentId(v string) {
+ o.ParentId.Set(&v)
+}
+// SetParentIdNil sets the value for ParentId to be an explicit nil
+func (o *FolderUpdateIn) SetParentIdNil() {
+ o.ParentId.Set(nil)
+}
+
+// UnsetParentId ensures that no value is present for ParentId, not even an explicit nil
+func (o *FolderUpdateIn) UnsetParentId() {
+ o.ParentId.Unset()
+}
+
+func (o FolderUpdateIn) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o FolderUpdateIn) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ if o.GrantInheritance.IsSet() {
+ toSerialize["grant_inheritance"] = o.GrantInheritance.Get()
+ }
+ if o.Metadata != nil {
+ toSerialize["metadata"] = o.Metadata
+ }
+ if o.Name.IsSet() {
+ toSerialize["name"] = o.Name.Get()
+ }
+ if o.ParentId.IsSet() {
+ toSerialize["parent_id"] = o.ParentId.Get()
+ }
+
+ for key, value := range o.AdditionalProperties {
+ toSerialize[key] = value
+ }
+
+ return toSerialize, nil
+}
+
+func (o *FolderUpdateIn) UnmarshalJSON(data []byte) (err error) {
+ varFolderUpdateIn := _FolderUpdateIn{}
+
+ err = json.Unmarshal(data, &varFolderUpdateIn)
+
+ if err != nil {
+ return err
+ }
+
+ *o = FolderUpdateIn(varFolderUpdateIn)
+
+ additionalProperties := make(map[string]interface{})
+
+ if err = json.Unmarshal(data, &additionalProperties); err == nil {
+ delete(additionalProperties, "grant_inheritance")
+ delete(additionalProperties, "metadata")
+ delete(additionalProperties, "name")
+ delete(additionalProperties, "parent_id")
+ o.AdditionalProperties = additionalProperties
+ }
+
+ return err
+}
+
+type NullableFolderUpdateIn struct {
+ value *FolderUpdateIn
+ isSet bool
+}
+
+func (v NullableFolderUpdateIn) Get() *FolderUpdateIn {
+ return v.value
+}
+
+func (v *NullableFolderUpdateIn) Set(val *FolderUpdateIn) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableFolderUpdateIn) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableFolderUpdateIn) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableFolderUpdateIn(val *FolderUpdateIn) *NullableFolderUpdateIn {
+ return &NullableFolderUpdateIn{value: val, isSet: true}
+}
+
+func (v NullableFolderUpdateIn) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableFolderUpdateIn) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_grant_create_in.go b/sdk/go/model_grant_create_in.go
index 08bf54b..6b6cf78 100644
--- a/sdk/go/model_grant_create_in.go
+++ b/sdk/go/model_grant_create_in.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
@@ -12,6 +12,7 @@ package agentdrive
import (
"encoding/json"
+ "time"
"bytes"
"fmt"
)
@@ -19,11 +20,13 @@ import (
// checks if the GrantCreateIn type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &GrantCreateIn{}
-// GrantCreateIn POST /v0/grants body. `resource` is an `art_*`/`fld_*` id or a path (resolved within the caller's drive). `expires_in` is seconds from now (omit for a permanent grant).
+// GrantCreateIn POST /v0/drives/{id}/grants body.
type GrantCreateIn struct {
- ExpiresIn NullableInt32 `json:"expires_in,omitempty"`
- Principal GrantPrincipalIn `json:"principal"`
- Resource string `json:"resource"`
+ ExpiresAt NullableTime `json:"expires_at,omitempty"`
+ PrincipalId NullableString `json:"principal_id,omitempty"`
+ PrincipalType string `json:"principal_type"`
+ ResourceId string `json:"resource_id"`
+ ResourceType string `json:"resource_type"`
Role string `json:"role"`
}
@@ -33,10 +36,11 @@ type _GrantCreateIn GrantCreateIn
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
-func NewGrantCreateIn(principal GrantPrincipalIn, resource string, role string) *GrantCreateIn {
+func NewGrantCreateIn(principalType string, resourceId string, resourceType string, role string) *GrantCreateIn {
this := GrantCreateIn{}
- this.Principal = principal
- this.Resource = resource
+ this.PrincipalType = principalType
+ this.ResourceId = resourceId
+ this.ResourceType = resourceType
this.Role = role
return &this
}
@@ -49,94 +53,160 @@ func NewGrantCreateInWithDefaults() *GrantCreateIn {
return &this
}
-// GetExpiresIn returns the ExpiresIn field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *GrantCreateIn) GetExpiresIn() int32 {
- if o == nil || IsNil(o.ExpiresIn.Get()) {
- var ret int32
+// GetExpiresAt returns the ExpiresAt field value if set, zero value otherwise (both if not set or set to explicit null).
+func (o *GrantCreateIn) GetExpiresAt() time.Time {
+ if o == nil || IsNil(o.ExpiresAt.Get()) {
+ var ret time.Time
return ret
}
- return *o.ExpiresIn.Get()
+ return *o.ExpiresAt.Get()
}
-// GetExpiresInOk returns a tuple with the ExpiresIn field value if set, nil otherwise
+// GetExpiresAtOk returns a tuple with the ExpiresAt field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *GrantCreateIn) GetExpiresInOk() (*int32, bool) {
+func (o *GrantCreateIn) GetExpiresAtOk() (*time.Time, bool) {
if o == nil {
return nil, false
}
- return o.ExpiresIn.Get(), o.ExpiresIn.IsSet()
+ return o.ExpiresAt.Get(), o.ExpiresAt.IsSet()
}
-// HasExpiresIn returns a boolean if a field has been set.
-func (o *GrantCreateIn) HasExpiresIn() bool {
- if o != nil && o.ExpiresIn.IsSet() {
+// HasExpiresAt returns a boolean if a field has been set.
+func (o *GrantCreateIn) HasExpiresAt() bool {
+ if o != nil && o.ExpiresAt.IsSet() {
return true
}
return false
}
-// SetExpiresIn gets a reference to the given NullableInt32 and assigns it to the ExpiresIn field.
-func (o *GrantCreateIn) SetExpiresIn(v int32) {
- o.ExpiresIn.Set(&v)
+// SetExpiresAt gets a reference to the given NullableTime and assigns it to the ExpiresAt field.
+func (o *GrantCreateIn) SetExpiresAt(v time.Time) {
+ o.ExpiresAt.Set(&v)
}
-// SetExpiresInNil sets the value for ExpiresIn to be an explicit nil
-func (o *GrantCreateIn) SetExpiresInNil() {
- o.ExpiresIn.Set(nil)
+// SetExpiresAtNil sets the value for ExpiresAt to be an explicit nil
+func (o *GrantCreateIn) SetExpiresAtNil() {
+ o.ExpiresAt.Set(nil)
}
-// UnsetExpiresIn ensures that no value is present for ExpiresIn, not even an explicit nil
-func (o *GrantCreateIn) UnsetExpiresIn() {
- o.ExpiresIn.Unset()
+// UnsetExpiresAt ensures that no value is present for ExpiresAt, not even an explicit nil
+func (o *GrantCreateIn) UnsetExpiresAt() {
+ o.ExpiresAt.Unset()
}
-// GetPrincipal returns the Principal field value
-func (o *GrantCreateIn) GetPrincipal() GrantPrincipalIn {
+// GetPrincipalId returns the PrincipalId field value if set, zero value otherwise (both if not set or set to explicit null).
+func (o *GrantCreateIn) GetPrincipalId() string {
+ if o == nil || IsNil(o.PrincipalId.Get()) {
+ var ret string
+ return ret
+ }
+ return *o.PrincipalId.Get()
+}
+
+// GetPrincipalIdOk returns a tuple with the PrincipalId field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *GrantCreateIn) GetPrincipalIdOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.PrincipalId.Get(), o.PrincipalId.IsSet()
+}
+
+// HasPrincipalId returns a boolean if a field has been set.
+func (o *GrantCreateIn) HasPrincipalId() bool {
+ if o != nil && o.PrincipalId.IsSet() {
+ return true
+ }
+
+ return false
+}
+
+// SetPrincipalId gets a reference to the given NullableString and assigns it to the PrincipalId field.
+func (o *GrantCreateIn) SetPrincipalId(v string) {
+ o.PrincipalId.Set(&v)
+}
+// SetPrincipalIdNil sets the value for PrincipalId to be an explicit nil
+func (o *GrantCreateIn) SetPrincipalIdNil() {
+ o.PrincipalId.Set(nil)
+}
+
+// UnsetPrincipalId ensures that no value is present for PrincipalId, not even an explicit nil
+func (o *GrantCreateIn) UnsetPrincipalId() {
+ o.PrincipalId.Unset()
+}
+
+// GetPrincipalType returns the PrincipalType field value
+func (o *GrantCreateIn) GetPrincipalType() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.PrincipalType
+}
+
+// GetPrincipalTypeOk returns a tuple with the PrincipalType field value
+// and a boolean to check if the value has been set.
+func (o *GrantCreateIn) GetPrincipalTypeOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.PrincipalType, true
+}
+
+// SetPrincipalType sets field value
+func (o *GrantCreateIn) SetPrincipalType(v string) {
+ o.PrincipalType = v
+}
+
+// GetResourceId returns the ResourceId field value
+func (o *GrantCreateIn) GetResourceId() string {
if o == nil {
- var ret GrantPrincipalIn
+ var ret string
return ret
}
- return o.Principal
+ return o.ResourceId
}
-// GetPrincipalOk returns a tuple with the Principal field value
+// GetResourceIdOk returns a tuple with the ResourceId field value
// and a boolean to check if the value has been set.
-func (o *GrantCreateIn) GetPrincipalOk() (*GrantPrincipalIn, bool) {
+func (o *GrantCreateIn) GetResourceIdOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.Principal, true
+ return &o.ResourceId, true
}
-// SetPrincipal sets field value
-func (o *GrantCreateIn) SetPrincipal(v GrantPrincipalIn) {
- o.Principal = v
+// SetResourceId sets field value
+func (o *GrantCreateIn) SetResourceId(v string) {
+ o.ResourceId = v
}
-// GetResource returns the Resource field value
-func (o *GrantCreateIn) GetResource() string {
+// GetResourceType returns the ResourceType field value
+func (o *GrantCreateIn) GetResourceType() string {
if o == nil {
var ret string
return ret
}
- return o.Resource
+ return o.ResourceType
}
-// GetResourceOk returns a tuple with the Resource field value
+// GetResourceTypeOk returns a tuple with the ResourceType field value
// and a boolean to check if the value has been set.
-func (o *GrantCreateIn) GetResourceOk() (*string, bool) {
+func (o *GrantCreateIn) GetResourceTypeOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.Resource, true
+ return &o.ResourceType, true
}
-// SetResource sets field value
-func (o *GrantCreateIn) SetResource(v string) {
- o.Resource = v
+// SetResourceType sets field value
+func (o *GrantCreateIn) SetResourceType(v string) {
+ o.ResourceType = v
}
// GetRole returns the Role field value
@@ -173,11 +243,15 @@ func (o GrantCreateIn) MarshalJSON() ([]byte, error) {
func (o GrantCreateIn) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
- if o.ExpiresIn.IsSet() {
- toSerialize["expires_in"] = o.ExpiresIn.Get()
+ if o.ExpiresAt.IsSet() {
+ toSerialize["expires_at"] = o.ExpiresAt.Get()
+ }
+ if o.PrincipalId.IsSet() {
+ toSerialize["principal_id"] = o.PrincipalId.Get()
}
- toSerialize["principal"] = o.Principal
- toSerialize["resource"] = o.Resource
+ toSerialize["principal_type"] = o.PrincipalType
+ toSerialize["resource_id"] = o.ResourceId
+ toSerialize["resource_type"] = o.ResourceType
toSerialize["role"] = o.Role
return toSerialize, nil
}
@@ -187,8 +261,9 @@ func (o *GrantCreateIn) UnmarshalJSON(data []byte) (err error) {
// by unmarshalling the object into a generic map with string keys and checking
// that every required field exists as a key in the generic map.
requiredProperties := []string{
- "principal",
- "resource",
+ "principal_type",
+ "resource_id",
+ "resource_type",
"role",
}
diff --git a/sdk/go/model_grant_list.go b/sdk/go/model_grant_list.go
deleted file mode 100644
index 78b47e8..0000000
--- a/sdk/go/model_grant_list.go
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the GrantList type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &GrantList{}
-
-// GrantList struct for GrantList
-type GrantList struct {
- Items []GrantOut `json:"items"`
- NextCursor NullableString `json:"next_cursor,omitempty"`
-}
-
-type _GrantList GrantList
-
-// NewGrantList instantiates a new GrantList object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewGrantList(items []GrantOut) *GrantList {
- this := GrantList{}
- this.Items = items
- return &this
-}
-
-// NewGrantListWithDefaults instantiates a new GrantList object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewGrantListWithDefaults() *GrantList {
- this := GrantList{}
- return &this
-}
-
-// GetItems returns the Items field value
-func (o *GrantList) GetItems() []GrantOut {
- if o == nil {
- var ret []GrantOut
- return ret
- }
-
- return o.Items
-}
-
-// GetItemsOk returns a tuple with the Items field value
-// and a boolean to check if the value has been set.
-func (o *GrantList) GetItemsOk() ([]GrantOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Items, true
-}
-
-// SetItems sets field value
-func (o *GrantList) SetItems(v []GrantOut) {
- o.Items = v
-}
-
-// GetNextCursor returns the NextCursor field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *GrantList) GetNextCursor() string {
- if o == nil || IsNil(o.NextCursor.Get()) {
- var ret string
- return ret
- }
- return *o.NextCursor.Get()
-}
-
-// GetNextCursorOk returns a tuple with the NextCursor field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *GrantList) GetNextCursorOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.NextCursor.Get(), o.NextCursor.IsSet()
-}
-
-// HasNextCursor returns a boolean if a field has been set.
-func (o *GrantList) HasNextCursor() bool {
- if o != nil && o.NextCursor.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetNextCursor gets a reference to the given NullableString and assigns it to the NextCursor field.
-func (o *GrantList) SetNextCursor(v string) {
- o.NextCursor.Set(&v)
-}
-// SetNextCursorNil sets the value for NextCursor to be an explicit nil
-func (o *GrantList) SetNextCursorNil() {
- o.NextCursor.Set(nil)
-}
-
-// UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-func (o *GrantList) UnsetNextCursor() {
- o.NextCursor.Unset()
-}
-
-func (o GrantList) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o GrantList) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["items"] = o.Items
- if o.NextCursor.IsSet() {
- toSerialize["next_cursor"] = o.NextCursor.Get()
- }
- return toSerialize, nil
-}
-
-func (o *GrantList) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "items",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varGrantList := _GrantList{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varGrantList)
-
- if err != nil {
- return err
- }
-
- *o = GrantList(varGrantList)
-
- return err
-}
-
-type NullableGrantList struct {
- value *GrantList
- isSet bool
-}
-
-func (v NullableGrantList) Get() *GrantList {
- return v.value
-}
-
-func (v *NullableGrantList) Set(val *GrantList) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableGrantList) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableGrantList) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableGrantList(val *GrantList) *NullableGrantList {
- return &NullableGrantList{value: val, isSet: true}
-}
-
-func (v NullableGrantList) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableGrantList) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_grant_list_out.go b/sdk/go/model_grant_list_out.go
new file mode 100644
index 0000000..ee9e12b
--- /dev/null
+++ b/sdk/go/model_grant_list_out.go
@@ -0,0 +1,186 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "bytes"
+ "fmt"
+)
+
+// checks if the GrantListOut type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &GrantListOut{}
+
+// GrantListOut struct for GrantListOut
+type GrantListOut struct {
+ Items []GrantOut `json:"items"`
+ NextCursor NullableString `json:"next_cursor"`
+}
+
+type _GrantListOut GrantListOut
+
+// NewGrantListOut instantiates a new GrantListOut object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewGrantListOut(items []GrantOut, nextCursor NullableString) *GrantListOut {
+ this := GrantListOut{}
+ this.Items = items
+ this.NextCursor = nextCursor
+ return &this
+}
+
+// NewGrantListOutWithDefaults instantiates a new GrantListOut object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewGrantListOutWithDefaults() *GrantListOut {
+ this := GrantListOut{}
+ return &this
+}
+
+// GetItems returns the Items field value
+func (o *GrantListOut) GetItems() []GrantOut {
+ if o == nil {
+ var ret []GrantOut
+ return ret
+ }
+
+ return o.Items
+}
+
+// GetItemsOk returns a tuple with the Items field value
+// and a boolean to check if the value has been set.
+func (o *GrantListOut) GetItemsOk() ([]GrantOut, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.Items, true
+}
+
+// SetItems sets field value
+func (o *GrantListOut) SetItems(v []GrantOut) {
+ o.Items = v
+}
+
+// GetNextCursor returns the NextCursor field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *GrantListOut) GetNextCursor() string {
+ if o == nil || o.NextCursor.Get() == nil {
+ var ret string
+ return ret
+ }
+
+ return *o.NextCursor.Get()
+}
+
+// GetNextCursorOk returns a tuple with the NextCursor field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *GrantListOut) GetNextCursorOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.NextCursor.Get(), o.NextCursor.IsSet()
+}
+
+// SetNextCursor sets field value
+func (o *GrantListOut) SetNextCursor(v string) {
+ o.NextCursor.Set(&v)
+}
+
+func (o GrantListOut) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o GrantListOut) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["items"] = o.Items
+ toSerialize["next_cursor"] = o.NextCursor.Get()
+ return toSerialize, nil
+}
+
+func (o *GrantListOut) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "items",
+ "next_cursor",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varGrantListOut := _GrantListOut{}
+
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varGrantListOut)
+
+ if err != nil {
+ return err
+ }
+
+ *o = GrantListOut(varGrantListOut)
+
+ return err
+}
+
+type NullableGrantListOut struct {
+ value *GrantListOut
+ isSet bool
+}
+
+func (v NullableGrantListOut) Get() *GrantListOut {
+ return v.value
+}
+
+func (v *NullableGrantListOut) Set(val *GrantListOut) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableGrantListOut) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableGrantListOut) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableGrantListOut(val *GrantListOut) *NullableGrantListOut {
+ return &NullableGrantListOut{value: val, isSet: true}
+}
+
+func (v NullableGrantListOut) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableGrantListOut) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_grant_out.go b/sdk/go/model_grant_out.go
index c11a21d..652b4ec 100644
--- a/sdk/go/model_grant_out.go
+++ b/sdk/go/model_grant_out.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
@@ -20,21 +20,20 @@ import (
// checks if the GrantOut type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &GrantOut{}
-// GrantOut A live grant. Audit fields (`granted_by_*`, `on_behalf_of`) are surfaced so a manager can see who shared what.
+// GrantOut struct for GrantOut
type GrantOut struct {
- ArtifactsAffected NullableInt32 `json:"artifacts_affected,omitempty"`
CreatedAt time.Time `json:"created_at"`
- ExpiresAt NullableTime `json:"expires_at,omitempty"`
- GrantedById string `json:"granted_by_id"`
- GrantedByType string `json:"granted_by_type"`
- Id string `json:"id"`
- OnBehalfOf NullableString `json:"on_behalf_of,omitempty"`
- PrincipalEmail NullableString `json:"principal_email,omitempty"`
- PrincipalId NullableString `json:"principal_id,omitempty"`
+ DriveId string `json:"drive_id" validate:"regexp=^drv_[a-f0-9]{16}$"`
+ ExpiresAt NullableTime `json:"expires_at"`
+ Id string `json:"id" validate:"regexp=^grn_[a-f0-9]{16}$"`
+ PrincipalId NullableString `json:"principal_id"`
PrincipalType string `json:"principal_type"`
ResourceId string `json:"resource_id"`
ResourceType string `json:"resource_type"`
+ Revision string `json:"revision" validate:"regexp=^rev_[a-f0-9]{16}$"`
+ RevokedAt NullableTime `json:"revoked_at"`
Role string `json:"role"`
+ State string `json:"state"`
}
type _GrantOut GrantOut
@@ -43,16 +42,20 @@ type _GrantOut GrantOut
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
-func NewGrantOut(createdAt time.Time, grantedById string, grantedByType string, id string, principalType string, resourceId string, resourceType string, role string) *GrantOut {
+func NewGrantOut(createdAt time.Time, driveId string, expiresAt NullableTime, id string, principalId NullableString, principalType string, resourceId string, resourceType string, revision string, revokedAt NullableTime, role string, state string) *GrantOut {
this := GrantOut{}
this.CreatedAt = createdAt
- this.GrantedById = grantedById
- this.GrantedByType = grantedByType
+ this.DriveId = driveId
+ this.ExpiresAt = expiresAt
this.Id = id
+ this.PrincipalId = principalId
this.PrincipalType = principalType
this.ResourceId = resourceId
this.ResourceType = resourceType
+ this.Revision = revision
+ this.RevokedAt = revokedAt
this.Role = role
+ this.State = state
return &this
}
@@ -64,48 +67,6 @@ func NewGrantOutWithDefaults() *GrantOut {
return &this
}
-// GetArtifactsAffected returns the ArtifactsAffected field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *GrantOut) GetArtifactsAffected() int32 {
- if o == nil || IsNil(o.ArtifactsAffected.Get()) {
- var ret int32
- return ret
- }
- return *o.ArtifactsAffected.Get()
-}
-
-// GetArtifactsAffectedOk returns a tuple with the ArtifactsAffected field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *GrantOut) GetArtifactsAffectedOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return o.ArtifactsAffected.Get(), o.ArtifactsAffected.IsSet()
-}
-
-// HasArtifactsAffected returns a boolean if a field has been set.
-func (o *GrantOut) HasArtifactsAffected() bool {
- if o != nil && o.ArtifactsAffected.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetArtifactsAffected gets a reference to the given NullableInt32 and assigns it to the ArtifactsAffected field.
-func (o *GrantOut) SetArtifactsAffected(v int32) {
- o.ArtifactsAffected.Set(&v)
-}
-// SetArtifactsAffectedNil sets the value for ArtifactsAffected to be an explicit nil
-func (o *GrantOut) SetArtifactsAffectedNil() {
- o.ArtifactsAffected.Set(nil)
-}
-
-// UnsetArtifactsAffected ensures that no value is present for ArtifactsAffected, not even an explicit nil
-func (o *GrantOut) UnsetArtifactsAffected() {
- o.ArtifactsAffected.Unset()
-}
-
// GetCreatedAt returns the CreatedAt field value
func (o *GrantOut) GetCreatedAt() time.Time {
if o == nil {
@@ -130,94 +91,54 @@ func (o *GrantOut) SetCreatedAt(v time.Time) {
o.CreatedAt = v
}
-// GetExpiresAt returns the ExpiresAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *GrantOut) GetExpiresAt() time.Time {
- if o == nil || IsNil(o.ExpiresAt.Get()) {
- var ret time.Time
- return ret
- }
- return *o.ExpiresAt.Get()
-}
-
-// GetExpiresAtOk returns a tuple with the ExpiresAt field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *GrantOut) GetExpiresAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return o.ExpiresAt.Get(), o.ExpiresAt.IsSet()
-}
-
-// HasExpiresAt returns a boolean if a field has been set.
-func (o *GrantOut) HasExpiresAt() bool {
- if o != nil && o.ExpiresAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetExpiresAt gets a reference to the given NullableTime and assigns it to the ExpiresAt field.
-func (o *GrantOut) SetExpiresAt(v time.Time) {
- o.ExpiresAt.Set(&v)
-}
-// SetExpiresAtNil sets the value for ExpiresAt to be an explicit nil
-func (o *GrantOut) SetExpiresAtNil() {
- o.ExpiresAt.Set(nil)
-}
-
-// UnsetExpiresAt ensures that no value is present for ExpiresAt, not even an explicit nil
-func (o *GrantOut) UnsetExpiresAt() {
- o.ExpiresAt.Unset()
-}
-
-// GetGrantedById returns the GrantedById field value
-func (o *GrantOut) GetGrantedById() string {
+// GetDriveId returns the DriveId field value
+func (o *GrantOut) GetDriveId() string {
if o == nil {
var ret string
return ret
}
- return o.GrantedById
+ return o.DriveId
}
-// GetGrantedByIdOk returns a tuple with the GrantedById field value
+// GetDriveIdOk returns a tuple with the DriveId field value
// and a boolean to check if the value has been set.
-func (o *GrantOut) GetGrantedByIdOk() (*string, bool) {
+func (o *GrantOut) GetDriveIdOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.GrantedById, true
+ return &o.DriveId, true
}
-// SetGrantedById sets field value
-func (o *GrantOut) SetGrantedById(v string) {
- o.GrantedById = v
+// SetDriveId sets field value
+func (o *GrantOut) SetDriveId(v string) {
+ o.DriveId = v
}
-// GetGrantedByType returns the GrantedByType field value
-func (o *GrantOut) GetGrantedByType() string {
- if o == nil {
- var ret string
+// GetExpiresAt returns the ExpiresAt field value
+// If the value is explicit nil, the zero value for time.Time will be returned
+func (o *GrantOut) GetExpiresAt() time.Time {
+ if o == nil || o.ExpiresAt.Get() == nil {
+ var ret time.Time
return ret
}
- return o.GrantedByType
+ return *o.ExpiresAt.Get()
}
-// GetGrantedByTypeOk returns a tuple with the GrantedByType field value
+// GetExpiresAtOk returns a tuple with the ExpiresAt field value
// and a boolean to check if the value has been set.
-func (o *GrantOut) GetGrantedByTypeOk() (*string, bool) {
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *GrantOut) GetExpiresAtOk() (*time.Time, bool) {
if o == nil {
return nil, false
}
- return &o.GrantedByType, true
+ return o.ExpiresAt.Get(), o.ExpiresAt.IsSet()
}
-// SetGrantedByType sets field value
-func (o *GrantOut) SetGrantedByType(v string) {
- o.GrantedByType = v
+// SetExpiresAt sets field value
+func (o *GrantOut) SetExpiresAt(v time.Time) {
+ o.ExpiresAt.Set(&v)
}
// GetId returns the Id field value
@@ -244,100 +165,18 @@ func (o *GrantOut) SetId(v string) {
o.Id = v
}
-// GetOnBehalfOf returns the OnBehalfOf field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *GrantOut) GetOnBehalfOf() string {
- if o == nil || IsNil(o.OnBehalfOf.Get()) {
- var ret string
- return ret
- }
- return *o.OnBehalfOf.Get()
-}
-
-// GetOnBehalfOfOk returns a tuple with the OnBehalfOf field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *GrantOut) GetOnBehalfOfOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.OnBehalfOf.Get(), o.OnBehalfOf.IsSet()
-}
-
-// HasOnBehalfOf returns a boolean if a field has been set.
-func (o *GrantOut) HasOnBehalfOf() bool {
- if o != nil && o.OnBehalfOf.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetOnBehalfOf gets a reference to the given NullableString and assigns it to the OnBehalfOf field.
-func (o *GrantOut) SetOnBehalfOf(v string) {
- o.OnBehalfOf.Set(&v)
-}
-// SetOnBehalfOfNil sets the value for OnBehalfOf to be an explicit nil
-func (o *GrantOut) SetOnBehalfOfNil() {
- o.OnBehalfOf.Set(nil)
-}
-
-// UnsetOnBehalfOf ensures that no value is present for OnBehalfOf, not even an explicit nil
-func (o *GrantOut) UnsetOnBehalfOf() {
- o.OnBehalfOf.Unset()
-}
-
-// GetPrincipalEmail returns the PrincipalEmail field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *GrantOut) GetPrincipalEmail() string {
- if o == nil || IsNil(o.PrincipalEmail.Get()) {
- var ret string
- return ret
- }
- return *o.PrincipalEmail.Get()
-}
-
-// GetPrincipalEmailOk returns a tuple with the PrincipalEmail field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *GrantOut) GetPrincipalEmailOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.PrincipalEmail.Get(), o.PrincipalEmail.IsSet()
-}
-
-// HasPrincipalEmail returns a boolean if a field has been set.
-func (o *GrantOut) HasPrincipalEmail() bool {
- if o != nil && o.PrincipalEmail.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetPrincipalEmail gets a reference to the given NullableString and assigns it to the PrincipalEmail field.
-func (o *GrantOut) SetPrincipalEmail(v string) {
- o.PrincipalEmail.Set(&v)
-}
-// SetPrincipalEmailNil sets the value for PrincipalEmail to be an explicit nil
-func (o *GrantOut) SetPrincipalEmailNil() {
- o.PrincipalEmail.Set(nil)
-}
-
-// UnsetPrincipalEmail ensures that no value is present for PrincipalEmail, not even an explicit nil
-func (o *GrantOut) UnsetPrincipalEmail() {
- o.PrincipalEmail.Unset()
-}
-
-// GetPrincipalId returns the PrincipalId field value if set, zero value otherwise (both if not set or set to explicit null).
+// GetPrincipalId returns the PrincipalId field value
+// If the value is explicit nil, the zero value for string will be returned
func (o *GrantOut) GetPrincipalId() string {
- if o == nil || IsNil(o.PrincipalId.Get()) {
+ if o == nil || o.PrincipalId.Get() == nil {
var ret string
return ret
}
+
return *o.PrincipalId.Get()
}
-// GetPrincipalIdOk returns a tuple with the PrincipalId field value if set, nil otherwise
+// GetPrincipalIdOk returns a tuple with the PrincipalId field value
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GrantOut) GetPrincipalIdOk() (*string, bool) {
@@ -347,28 +186,10 @@ func (o *GrantOut) GetPrincipalIdOk() (*string, bool) {
return o.PrincipalId.Get(), o.PrincipalId.IsSet()
}
-// HasPrincipalId returns a boolean if a field has been set.
-func (o *GrantOut) HasPrincipalId() bool {
- if o != nil && o.PrincipalId.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetPrincipalId gets a reference to the given NullableString and assigns it to the PrincipalId field.
+// SetPrincipalId sets field value
func (o *GrantOut) SetPrincipalId(v string) {
o.PrincipalId.Set(&v)
}
-// SetPrincipalIdNil sets the value for PrincipalId to be an explicit nil
-func (o *GrantOut) SetPrincipalIdNil() {
- o.PrincipalId.Set(nil)
-}
-
-// UnsetPrincipalId ensures that no value is present for PrincipalId, not even an explicit nil
-func (o *GrantOut) UnsetPrincipalId() {
- o.PrincipalId.Unset()
-}
// GetPrincipalType returns the PrincipalType field value
func (o *GrantOut) GetPrincipalType() string {
@@ -442,6 +263,56 @@ func (o *GrantOut) SetResourceType(v string) {
o.ResourceType = v
}
+// GetRevision returns the Revision field value
+func (o *GrantOut) GetRevision() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.Revision
+}
+
+// GetRevisionOk returns a tuple with the Revision field value
+// and a boolean to check if the value has been set.
+func (o *GrantOut) GetRevisionOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Revision, true
+}
+
+// SetRevision sets field value
+func (o *GrantOut) SetRevision(v string) {
+ o.Revision = v
+}
+
+// GetRevokedAt returns the RevokedAt field value
+// If the value is explicit nil, the zero value for time.Time will be returned
+func (o *GrantOut) GetRevokedAt() time.Time {
+ if o == nil || o.RevokedAt.Get() == nil {
+ var ret time.Time
+ return ret
+ }
+
+ return *o.RevokedAt.Get()
+}
+
+// GetRevokedAtOk returns a tuple with the RevokedAt field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *GrantOut) GetRevokedAtOk() (*time.Time, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.RevokedAt.Get(), o.RevokedAt.IsSet()
+}
+
+// SetRevokedAt sets field value
+func (o *GrantOut) SetRevokedAt(v time.Time) {
+ o.RevokedAt.Set(&v)
+}
+
// GetRole returns the Role field value
func (o *GrantOut) GetRole() string {
if o == nil {
@@ -466,6 +337,30 @@ func (o *GrantOut) SetRole(v string) {
o.Role = v
}
+// GetState returns the State field value
+func (o *GrantOut) GetState() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.State
+}
+
+// GetStateOk returns a tuple with the State field value
+// and a boolean to check if the value has been set.
+func (o *GrantOut) GetStateOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.State, true
+}
+
+// SetState sets field value
+func (o *GrantOut) SetState(v string) {
+ o.State = v
+}
+
func (o GrantOut) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
@@ -476,29 +371,18 @@ func (o GrantOut) MarshalJSON() ([]byte, error) {
func (o GrantOut) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
- if o.ArtifactsAffected.IsSet() {
- toSerialize["artifacts_affected"] = o.ArtifactsAffected.Get()
- }
toSerialize["created_at"] = o.CreatedAt
- if o.ExpiresAt.IsSet() {
- toSerialize["expires_at"] = o.ExpiresAt.Get()
- }
- toSerialize["granted_by_id"] = o.GrantedById
- toSerialize["granted_by_type"] = o.GrantedByType
+ toSerialize["drive_id"] = o.DriveId
+ toSerialize["expires_at"] = o.ExpiresAt.Get()
toSerialize["id"] = o.Id
- if o.OnBehalfOf.IsSet() {
- toSerialize["on_behalf_of"] = o.OnBehalfOf.Get()
- }
- if o.PrincipalEmail.IsSet() {
- toSerialize["principal_email"] = o.PrincipalEmail.Get()
- }
- if o.PrincipalId.IsSet() {
- toSerialize["principal_id"] = o.PrincipalId.Get()
- }
+ toSerialize["principal_id"] = o.PrincipalId.Get()
toSerialize["principal_type"] = o.PrincipalType
toSerialize["resource_id"] = o.ResourceId
toSerialize["resource_type"] = o.ResourceType
+ toSerialize["revision"] = o.Revision
+ toSerialize["revoked_at"] = o.RevokedAt.Get()
toSerialize["role"] = o.Role
+ toSerialize["state"] = o.State
return toSerialize, nil
}
@@ -508,13 +392,17 @@ func (o *GrantOut) UnmarshalJSON(data []byte) (err error) {
// that every required field exists as a key in the generic map.
requiredProperties := []string{
"created_at",
- "granted_by_id",
- "granted_by_type",
+ "drive_id",
+ "expires_at",
"id",
+ "principal_id",
"principal_type",
"resource_id",
"resource_type",
+ "revision",
+ "revoked_at",
"role",
+ "state",
}
allProperties := make(map[string]interface{})
diff --git a/sdk/go/model_grant_patch_in.go b/sdk/go/model_grant_patch_in.go
deleted file mode 100644
index 3a8e798..0000000
--- a/sdk/go/model_grant_patch_in.go
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
-)
-
-// checks if the GrantPatchIn type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &GrantPatchIn{}
-
-// GrantPatchIn PATCH /v0/grants/{grn_id} body. Field absence = unchanged; explicit `expires_in: null` clears the expiry (makes the grant permanent).
-type GrantPatchIn struct {
- ExpiresIn NullableInt32 `json:"expires_in,omitempty"`
- Role NullableString `json:"role,omitempty"`
-}
-
-// NewGrantPatchIn instantiates a new GrantPatchIn object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewGrantPatchIn() *GrantPatchIn {
- this := GrantPatchIn{}
- return &this
-}
-
-// NewGrantPatchInWithDefaults instantiates a new GrantPatchIn object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewGrantPatchInWithDefaults() *GrantPatchIn {
- this := GrantPatchIn{}
- return &this
-}
-
-// GetExpiresIn returns the ExpiresIn field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *GrantPatchIn) GetExpiresIn() int32 {
- if o == nil || IsNil(o.ExpiresIn.Get()) {
- var ret int32
- return ret
- }
- return *o.ExpiresIn.Get()
-}
-
-// GetExpiresInOk returns a tuple with the ExpiresIn field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *GrantPatchIn) GetExpiresInOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return o.ExpiresIn.Get(), o.ExpiresIn.IsSet()
-}
-
-// HasExpiresIn returns a boolean if a field has been set.
-func (o *GrantPatchIn) HasExpiresIn() bool {
- if o != nil && o.ExpiresIn.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetExpiresIn gets a reference to the given NullableInt32 and assigns it to the ExpiresIn field.
-func (o *GrantPatchIn) SetExpiresIn(v int32) {
- o.ExpiresIn.Set(&v)
-}
-// SetExpiresInNil sets the value for ExpiresIn to be an explicit nil
-func (o *GrantPatchIn) SetExpiresInNil() {
- o.ExpiresIn.Set(nil)
-}
-
-// UnsetExpiresIn ensures that no value is present for ExpiresIn, not even an explicit nil
-func (o *GrantPatchIn) UnsetExpiresIn() {
- o.ExpiresIn.Unset()
-}
-
-// GetRole returns the Role field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *GrantPatchIn) GetRole() string {
- if o == nil || IsNil(o.Role.Get()) {
- var ret string
- return ret
- }
- return *o.Role.Get()
-}
-
-// GetRoleOk returns a tuple with the Role field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *GrantPatchIn) GetRoleOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Role.Get(), o.Role.IsSet()
-}
-
-// HasRole returns a boolean if a field has been set.
-func (o *GrantPatchIn) HasRole() bool {
- if o != nil && o.Role.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetRole gets a reference to the given NullableString and assigns it to the Role field.
-func (o *GrantPatchIn) SetRole(v string) {
- o.Role.Set(&v)
-}
-// SetRoleNil sets the value for Role to be an explicit nil
-func (o *GrantPatchIn) SetRoleNil() {
- o.Role.Set(nil)
-}
-
-// UnsetRole ensures that no value is present for Role, not even an explicit nil
-func (o *GrantPatchIn) UnsetRole() {
- o.Role.Unset()
-}
-
-func (o GrantPatchIn) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o GrantPatchIn) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- if o.ExpiresIn.IsSet() {
- toSerialize["expires_in"] = o.ExpiresIn.Get()
- }
- if o.Role.IsSet() {
- toSerialize["role"] = o.Role.Get()
- }
- return toSerialize, nil
-}
-
-type NullableGrantPatchIn struct {
- value *GrantPatchIn
- isSet bool
-}
-
-func (v NullableGrantPatchIn) Get() *GrantPatchIn {
- return v.value
-}
-
-func (v *NullableGrantPatchIn) Set(val *GrantPatchIn) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableGrantPatchIn) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableGrantPatchIn) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableGrantPatchIn(val *GrantPatchIn) *NullableGrantPatchIn {
- return &NullableGrantPatchIn{value: val, isSet: true}
-}
-
-func (v NullableGrantPatchIn) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableGrantPatchIn) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_grant_principal_in.go b/sdk/go/model_grant_principal_in.go
deleted file mode 100644
index 6ad878b..0000000
--- a/sdk/go/model_grant_principal_in.go
+++ /dev/null
@@ -1,248 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the GrantPrincipalIn type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &GrantPrincipalIn{}
-
-// GrantPrincipalIn Who a grant is for. `anyone` carries no id/email; `org`/`agent` require `id`; `user` requires exactly one of `id` / `email` (an email with no account becomes a pending-email invite resolved on sign-in).
-type GrantPrincipalIn struct {
- Email NullableString `json:"email,omitempty"`
- Id NullableString `json:"id,omitempty"`
- Type string `json:"type"`
-}
-
-type _GrantPrincipalIn GrantPrincipalIn
-
-// NewGrantPrincipalIn instantiates a new GrantPrincipalIn object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewGrantPrincipalIn(type_ string) *GrantPrincipalIn {
- this := GrantPrincipalIn{}
- this.Type = type_
- return &this
-}
-
-// NewGrantPrincipalInWithDefaults instantiates a new GrantPrincipalIn object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewGrantPrincipalInWithDefaults() *GrantPrincipalIn {
- this := GrantPrincipalIn{}
- return &this
-}
-
-// GetEmail returns the Email field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *GrantPrincipalIn) GetEmail() string {
- if o == nil || IsNil(o.Email.Get()) {
- var ret string
- return ret
- }
- return *o.Email.Get()
-}
-
-// GetEmailOk returns a tuple with the Email field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *GrantPrincipalIn) GetEmailOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Email.Get(), o.Email.IsSet()
-}
-
-// HasEmail returns a boolean if a field has been set.
-func (o *GrantPrincipalIn) HasEmail() bool {
- if o != nil && o.Email.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetEmail gets a reference to the given NullableString and assigns it to the Email field.
-func (o *GrantPrincipalIn) SetEmail(v string) {
- o.Email.Set(&v)
-}
-// SetEmailNil sets the value for Email to be an explicit nil
-func (o *GrantPrincipalIn) SetEmailNil() {
- o.Email.Set(nil)
-}
-
-// UnsetEmail ensures that no value is present for Email, not even an explicit nil
-func (o *GrantPrincipalIn) UnsetEmail() {
- o.Email.Unset()
-}
-
-// GetId returns the Id field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *GrantPrincipalIn) GetId() string {
- if o == nil || IsNil(o.Id.Get()) {
- var ret string
- return ret
- }
- return *o.Id.Get()
-}
-
-// GetIdOk returns a tuple with the Id field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *GrantPrincipalIn) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Id.Get(), o.Id.IsSet()
-}
-
-// HasId returns a boolean if a field has been set.
-func (o *GrantPrincipalIn) HasId() bool {
- if o != nil && o.Id.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetId gets a reference to the given NullableString and assigns it to the Id field.
-func (o *GrantPrincipalIn) SetId(v string) {
- o.Id.Set(&v)
-}
-// SetIdNil sets the value for Id to be an explicit nil
-func (o *GrantPrincipalIn) SetIdNil() {
- o.Id.Set(nil)
-}
-
-// UnsetId ensures that no value is present for Id, not even an explicit nil
-func (o *GrantPrincipalIn) UnsetId() {
- o.Id.Unset()
-}
-
-// GetType returns the Type field value
-func (o *GrantPrincipalIn) GetType() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Type
-}
-
-// GetTypeOk returns a tuple with the Type field value
-// and a boolean to check if the value has been set.
-func (o *GrantPrincipalIn) GetTypeOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Type, true
-}
-
-// SetType sets field value
-func (o *GrantPrincipalIn) SetType(v string) {
- o.Type = v
-}
-
-func (o GrantPrincipalIn) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o GrantPrincipalIn) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- if o.Email.IsSet() {
- toSerialize["email"] = o.Email.Get()
- }
- if o.Id.IsSet() {
- toSerialize["id"] = o.Id.Get()
- }
- toSerialize["type"] = o.Type
- return toSerialize, nil
-}
-
-func (o *GrantPrincipalIn) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "type",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varGrantPrincipalIn := _GrantPrincipalIn{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varGrantPrincipalIn)
-
- if err != nil {
- return err
- }
-
- *o = GrantPrincipalIn(varGrantPrincipalIn)
-
- return err
-}
-
-type NullableGrantPrincipalIn struct {
- value *GrantPrincipalIn
- isSet bool
-}
-
-func (v NullableGrantPrincipalIn) Get() *GrantPrincipalIn {
- return v.value
-}
-
-func (v *NullableGrantPrincipalIn) Set(val *GrantPrincipalIn) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableGrantPrincipalIn) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableGrantPrincipalIn) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableGrantPrincipalIn(val *GrantPrincipalIn) *NullableGrantPrincipalIn {
- return &NullableGrantPrincipalIn{value: val, isSet: true}
-}
-
-func (v NullableGrantPrincipalIn) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableGrantPrincipalIn) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_grant_update_in.go b/sdk/go/model_grant_update_in.go
new file mode 100644
index 0000000..74ea5cf
--- /dev/null
+++ b/sdk/go/model_grant_update_in.go
@@ -0,0 +1,181 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "time"
+)
+
+// checks if the GrantUpdateIn type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &GrantUpdateIn{}
+
+// GrantUpdateIn PATCH /v0/drives/{id}/grants/{grant_id} body — at least one field is required. An explicit ``expires_at: null`` clears the expiry; omitting it leaves it unchanged.
+type GrantUpdateIn struct {
+ ExpiresAt NullableTime `json:"expires_at,omitempty"`
+ Role NullableString `json:"role,omitempty"`
+}
+
+// NewGrantUpdateIn instantiates a new GrantUpdateIn object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewGrantUpdateIn() *GrantUpdateIn {
+ this := GrantUpdateIn{}
+ return &this
+}
+
+// NewGrantUpdateInWithDefaults instantiates a new GrantUpdateIn object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewGrantUpdateInWithDefaults() *GrantUpdateIn {
+ this := GrantUpdateIn{}
+ return &this
+}
+
+// GetExpiresAt returns the ExpiresAt field value if set, zero value otherwise (both if not set or set to explicit null).
+func (o *GrantUpdateIn) GetExpiresAt() time.Time {
+ if o == nil || IsNil(o.ExpiresAt.Get()) {
+ var ret time.Time
+ return ret
+ }
+ return *o.ExpiresAt.Get()
+}
+
+// GetExpiresAtOk returns a tuple with the ExpiresAt field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *GrantUpdateIn) GetExpiresAtOk() (*time.Time, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.ExpiresAt.Get(), o.ExpiresAt.IsSet()
+}
+
+// HasExpiresAt returns a boolean if a field has been set.
+func (o *GrantUpdateIn) HasExpiresAt() bool {
+ if o != nil && o.ExpiresAt.IsSet() {
+ return true
+ }
+
+ return false
+}
+
+// SetExpiresAt gets a reference to the given NullableTime and assigns it to the ExpiresAt field.
+func (o *GrantUpdateIn) SetExpiresAt(v time.Time) {
+ o.ExpiresAt.Set(&v)
+}
+// SetExpiresAtNil sets the value for ExpiresAt to be an explicit nil
+func (o *GrantUpdateIn) SetExpiresAtNil() {
+ o.ExpiresAt.Set(nil)
+}
+
+// UnsetExpiresAt ensures that no value is present for ExpiresAt, not even an explicit nil
+func (o *GrantUpdateIn) UnsetExpiresAt() {
+ o.ExpiresAt.Unset()
+}
+
+// GetRole returns the Role field value if set, zero value otherwise (both if not set or set to explicit null).
+func (o *GrantUpdateIn) GetRole() string {
+ if o == nil || IsNil(o.Role.Get()) {
+ var ret string
+ return ret
+ }
+ return *o.Role.Get()
+}
+
+// GetRoleOk returns a tuple with the Role field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *GrantUpdateIn) GetRoleOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.Role.Get(), o.Role.IsSet()
+}
+
+// HasRole returns a boolean if a field has been set.
+func (o *GrantUpdateIn) HasRole() bool {
+ if o != nil && o.Role.IsSet() {
+ return true
+ }
+
+ return false
+}
+
+// SetRole gets a reference to the given NullableString and assigns it to the Role field.
+func (o *GrantUpdateIn) SetRole(v string) {
+ o.Role.Set(&v)
+}
+// SetRoleNil sets the value for Role to be an explicit nil
+func (o *GrantUpdateIn) SetRoleNil() {
+ o.Role.Set(nil)
+}
+
+// UnsetRole ensures that no value is present for Role, not even an explicit nil
+func (o *GrantUpdateIn) UnsetRole() {
+ o.Role.Unset()
+}
+
+func (o GrantUpdateIn) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o GrantUpdateIn) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ if o.ExpiresAt.IsSet() {
+ toSerialize["expires_at"] = o.ExpiresAt.Get()
+ }
+ if o.Role.IsSet() {
+ toSerialize["role"] = o.Role.Get()
+ }
+ return toSerialize, nil
+}
+
+type NullableGrantUpdateIn struct {
+ value *GrantUpdateIn
+ isSet bool
+}
+
+func (v NullableGrantUpdateIn) Get() *GrantUpdateIn {
+ return v.value
+}
+
+func (v *NullableGrantUpdateIn) Set(val *GrantUpdateIn) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableGrantUpdateIn) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableGrantUpdateIn) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableGrantUpdateIn(val *GrantUpdateIn) *NullableGrantUpdateIn {
+ return &NullableGrantUpdateIn{value: val, isSet: true}
+}
+
+func (v NullableGrantUpdateIn) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableGrantUpdateIn) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_health_degraded_detail.go b/sdk/go/model_health_degraded_detail.go
index 130e68b..5d4f25d 100644
--- a/sdk/go/model_health_degraded_detail.go
+++ b/sdk/go/model_health_degraded_detail.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
diff --git a/sdk/go/model_health_degraded_response.go b/sdk/go/model_health_degraded_response.go
index 47d89c2..37d1150 100644
--- a/sdk/go/model_health_degraded_response.go
+++ b/sdk/go/model_health_degraded_response.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
diff --git a/sdk/go/model_health_out.go b/sdk/go/model_health_out.go
index f2ed7e9..af9ae92 100644
--- a/sdk/go/model_health_out.go
+++ b/sdk/go/model_health_out.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
diff --git a/sdk/go/model_hourly_usage_counter_out.go b/sdk/go/model_hourly_usage_counter_out.go
deleted file mode 100644
index 9bf3a42..0000000
--- a/sdk/go/model_hourly_usage_counter_out.go
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the HourlyUsageCounterOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &HourlyUsageCounterOut{}
-
-// HourlyUsageCounterOut struct for HourlyUsageCounterOut
-type HourlyUsageCounterOut struct {
- Limit int32 `json:"limit"`
- ResetAt time.Time `json:"reset_at"`
- Used int32 `json:"used"`
-}
-
-type _HourlyUsageCounterOut HourlyUsageCounterOut
-
-// NewHourlyUsageCounterOut instantiates a new HourlyUsageCounterOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewHourlyUsageCounterOut(limit int32, resetAt time.Time, used int32) *HourlyUsageCounterOut {
- this := HourlyUsageCounterOut{}
- this.Limit = limit
- this.ResetAt = resetAt
- this.Used = used
- return &this
-}
-
-// NewHourlyUsageCounterOutWithDefaults instantiates a new HourlyUsageCounterOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewHourlyUsageCounterOutWithDefaults() *HourlyUsageCounterOut {
- this := HourlyUsageCounterOut{}
- return &this
-}
-
-// GetLimit returns the Limit field value
-func (o *HourlyUsageCounterOut) GetLimit() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.Limit
-}
-
-// GetLimitOk returns a tuple with the Limit field value
-// and a boolean to check if the value has been set.
-func (o *HourlyUsageCounterOut) GetLimitOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Limit, true
-}
-
-// SetLimit sets field value
-func (o *HourlyUsageCounterOut) SetLimit(v int32) {
- o.Limit = v
-}
-
-// GetResetAt returns the ResetAt field value
-func (o *HourlyUsageCounterOut) GetResetAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.ResetAt
-}
-
-// GetResetAtOk returns a tuple with the ResetAt field value
-// and a boolean to check if the value has been set.
-func (o *HourlyUsageCounterOut) GetResetAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ResetAt, true
-}
-
-// SetResetAt sets field value
-func (o *HourlyUsageCounterOut) SetResetAt(v time.Time) {
- o.ResetAt = v
-}
-
-// GetUsed returns the Used field value
-func (o *HourlyUsageCounterOut) GetUsed() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.Used
-}
-
-// GetUsedOk returns a tuple with the Used field value
-// and a boolean to check if the value has been set.
-func (o *HourlyUsageCounterOut) GetUsedOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Used, true
-}
-
-// SetUsed sets field value
-func (o *HourlyUsageCounterOut) SetUsed(v int32) {
- o.Used = v
-}
-
-func (o HourlyUsageCounterOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o HourlyUsageCounterOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["limit"] = o.Limit
- toSerialize["reset_at"] = o.ResetAt
- toSerialize["used"] = o.Used
- return toSerialize, nil
-}
-
-func (o *HourlyUsageCounterOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "limit",
- "reset_at",
- "used",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varHourlyUsageCounterOut := _HourlyUsageCounterOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varHourlyUsageCounterOut)
-
- if err != nil {
- return err
- }
-
- *o = HourlyUsageCounterOut(varHourlyUsageCounterOut)
-
- return err
-}
-
-type NullableHourlyUsageCounterOut struct {
- value *HourlyUsageCounterOut
- isSet bool
-}
-
-func (v NullableHourlyUsageCounterOut) Get() *HourlyUsageCounterOut {
- return v.value
-}
-
-func (v *NullableHourlyUsageCounterOut) Set(val *HourlyUsageCounterOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableHourlyUsageCounterOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableHourlyUsageCounterOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableHourlyUsageCounterOut(val *HourlyUsageCounterOut) *NullableHourlyUsageCounterOut {
- return &NullableHourlyUsageCounterOut{value: val, isSet: true}
-}
-
-func (v NullableHourlyUsageCounterOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableHourlyUsageCounterOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_identity_assertion_metadata_out.go b/sdk/go/model_identity_assertion_metadata_out.go
deleted file mode 100644
index a24305f..0000000
--- a/sdk/go/model_identity_assertion_metadata_out.go
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
-)
-
-// checks if the IdentityAssertionMetadataOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &IdentityAssertionMetadataOut{}
-
-// IdentityAssertionMetadataOut struct for IdentityAssertionMetadataOut
-type IdentityAssertionMetadataOut struct {
- Alg string `json:"alg"`
- Iss string `json:"iss"`
- Version int32 `json:"version"`
- AdditionalProperties map[string]interface{}
-}
-
-type _IdentityAssertionMetadataOut IdentityAssertionMetadataOut
-
-// NewIdentityAssertionMetadataOut instantiates a new IdentityAssertionMetadataOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewIdentityAssertionMetadataOut(alg string, iss string, version int32) *IdentityAssertionMetadataOut {
- this := IdentityAssertionMetadataOut{}
- this.Alg = alg
- this.Iss = iss
- this.Version = version
- return &this
-}
-
-// NewIdentityAssertionMetadataOutWithDefaults instantiates a new IdentityAssertionMetadataOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewIdentityAssertionMetadataOutWithDefaults() *IdentityAssertionMetadataOut {
- this := IdentityAssertionMetadataOut{}
- return &this
-}
-
-// GetAlg returns the Alg field value
-func (o *IdentityAssertionMetadataOut) GetAlg() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Alg
-}
-
-// GetAlgOk returns a tuple with the Alg field value
-// and a boolean to check if the value has been set.
-func (o *IdentityAssertionMetadataOut) GetAlgOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Alg, true
-}
-
-// SetAlg sets field value
-func (o *IdentityAssertionMetadataOut) SetAlg(v string) {
- o.Alg = v
-}
-
-// GetIss returns the Iss field value
-func (o *IdentityAssertionMetadataOut) GetIss() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Iss
-}
-
-// GetIssOk returns a tuple with the Iss field value
-// and a boolean to check if the value has been set.
-func (o *IdentityAssertionMetadataOut) GetIssOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Iss, true
-}
-
-// SetIss sets field value
-func (o *IdentityAssertionMetadataOut) SetIss(v string) {
- o.Iss = v
-}
-
-// GetVersion returns the Version field value
-func (o *IdentityAssertionMetadataOut) GetVersion() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.Version
-}
-
-// GetVersionOk returns a tuple with the Version field value
-// and a boolean to check if the value has been set.
-func (o *IdentityAssertionMetadataOut) GetVersionOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Version, true
-}
-
-// SetVersion sets field value
-func (o *IdentityAssertionMetadataOut) SetVersion(v int32) {
- o.Version = v
-}
-
-func (o IdentityAssertionMetadataOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o IdentityAssertionMetadataOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["alg"] = o.Alg
- toSerialize["iss"] = o.Iss
- toSerialize["version"] = o.Version
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
- return toSerialize, nil
-}
-
-func (o *IdentityAssertionMetadataOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "alg",
- "iss",
- "version",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varIdentityAssertionMetadataOut := _IdentityAssertionMetadataOut{}
-
- err = json.Unmarshal(data, &varIdentityAssertionMetadataOut)
-
- if err != nil {
- return err
- }
-
- *o = IdentityAssertionMetadataOut(varIdentityAssertionMetadataOut)
-
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "alg")
- delete(additionalProperties, "iss")
- delete(additionalProperties, "version")
- o.AdditionalProperties = additionalProperties
- }
-
- return err
-}
-
-type NullableIdentityAssertionMetadataOut struct {
- value *IdentityAssertionMetadataOut
- isSet bool
-}
-
-func (v NullableIdentityAssertionMetadataOut) Get() *IdentityAssertionMetadataOut {
- return v.value
-}
-
-func (v *NullableIdentityAssertionMetadataOut) Set(val *IdentityAssertionMetadataOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableIdentityAssertionMetadataOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableIdentityAssertionMetadataOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableIdentityAssertionMetadataOut(val *IdentityAssertionMetadataOut) *NullableIdentityAssertionMetadataOut {
- return &NullableIdentityAssertionMetadataOut{value: val, isSet: true}
-}
-
-func (v NullableIdentityAssertionMetadataOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableIdentityAssertionMetadataOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_invitation_list.go b/sdk/go/model_invitation_list.go
deleted file mode 100644
index bde4067..0000000
--- a/sdk/go/model_invitation_list.go
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the InvitationList type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &InvitationList{}
-
-// InvitationList struct for InvitationList
-type InvitationList struct {
- Items []InvitationOut `json:"items"`
- NextCursor NullableString `json:"next_cursor,omitempty"`
-}
-
-type _InvitationList InvitationList
-
-// NewInvitationList instantiates a new InvitationList object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewInvitationList(items []InvitationOut) *InvitationList {
- this := InvitationList{}
- this.Items = items
- return &this
-}
-
-// NewInvitationListWithDefaults instantiates a new InvitationList object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewInvitationListWithDefaults() *InvitationList {
- this := InvitationList{}
- return &this
-}
-
-// GetItems returns the Items field value
-func (o *InvitationList) GetItems() []InvitationOut {
- if o == nil {
- var ret []InvitationOut
- return ret
- }
-
- return o.Items
-}
-
-// GetItemsOk returns a tuple with the Items field value
-// and a boolean to check if the value has been set.
-func (o *InvitationList) GetItemsOk() ([]InvitationOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Items, true
-}
-
-// SetItems sets field value
-func (o *InvitationList) SetItems(v []InvitationOut) {
- o.Items = v
-}
-
-// GetNextCursor returns the NextCursor field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *InvitationList) GetNextCursor() string {
- if o == nil || IsNil(o.NextCursor.Get()) {
- var ret string
- return ret
- }
- return *o.NextCursor.Get()
-}
-
-// GetNextCursorOk returns a tuple with the NextCursor field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *InvitationList) GetNextCursorOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.NextCursor.Get(), o.NextCursor.IsSet()
-}
-
-// HasNextCursor returns a boolean if a field has been set.
-func (o *InvitationList) HasNextCursor() bool {
- if o != nil && o.NextCursor.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetNextCursor gets a reference to the given NullableString and assigns it to the NextCursor field.
-func (o *InvitationList) SetNextCursor(v string) {
- o.NextCursor.Set(&v)
-}
-// SetNextCursorNil sets the value for NextCursor to be an explicit nil
-func (o *InvitationList) SetNextCursorNil() {
- o.NextCursor.Set(nil)
-}
-
-// UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-func (o *InvitationList) UnsetNextCursor() {
- o.NextCursor.Unset()
-}
-
-func (o InvitationList) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o InvitationList) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["items"] = o.Items
- if o.NextCursor.IsSet() {
- toSerialize["next_cursor"] = o.NextCursor.Get()
- }
- return toSerialize, nil
-}
-
-func (o *InvitationList) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "items",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varInvitationList := _InvitationList{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varInvitationList)
-
- if err != nil {
- return err
- }
-
- *o = InvitationList(varInvitationList)
-
- return err
-}
-
-type NullableInvitationList struct {
- value *InvitationList
- isSet bool
-}
-
-func (v NullableInvitationList) Get() *InvitationList {
- return v.value
-}
-
-func (v *NullableInvitationList) Set(val *InvitationList) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableInvitationList) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableInvitationList) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableInvitationList(val *InvitationList) *NullableInvitationList {
- return &NullableInvitationList{value: val, isSet: true}
-}
-
-func (v NullableInvitationList) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableInvitationList) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_invitation_out.go b/sdk/go/model_invitation_out.go
deleted file mode 100644
index 180c31f..0000000
--- a/sdk/go/model_invitation_out.go
+++ /dev/null
@@ -1,371 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the InvitationOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &InvitationOut{}
-
-// InvitationOut One workspace invitation — metadata only; the raw token is never surfaced over the API (it lives only in the invite email).
-type InvitationOut struct {
- CreatedAt time.Time `json:"created_at"`
- Email string `json:"email"`
- ExpiresAt time.Time `json:"expires_at"`
- Id string `json:"id"`
- InvitedBy NullableString `json:"invited_by,omitempty"`
- OrganizationId string `json:"organization_id"`
- Role string `json:"role"`
- Status string `json:"status"`
-}
-
-type _InvitationOut InvitationOut
-
-// NewInvitationOut instantiates a new InvitationOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewInvitationOut(createdAt time.Time, email string, expiresAt time.Time, id string, organizationId string, role string, status string) *InvitationOut {
- this := InvitationOut{}
- this.CreatedAt = createdAt
- this.Email = email
- this.ExpiresAt = expiresAt
- this.Id = id
- this.OrganizationId = organizationId
- this.Role = role
- this.Status = status
- return &this
-}
-
-// NewInvitationOutWithDefaults instantiates a new InvitationOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewInvitationOutWithDefaults() *InvitationOut {
- this := InvitationOut{}
- return &this
-}
-
-// GetCreatedAt returns the CreatedAt field value
-func (o *InvitationOut) GetCreatedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.CreatedAt
-}
-
-// GetCreatedAtOk returns a tuple with the CreatedAt field value
-// and a boolean to check if the value has been set.
-func (o *InvitationOut) GetCreatedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.CreatedAt, true
-}
-
-// SetCreatedAt sets field value
-func (o *InvitationOut) SetCreatedAt(v time.Time) {
- o.CreatedAt = v
-}
-
-// GetEmail returns the Email field value
-func (o *InvitationOut) GetEmail() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Email
-}
-
-// GetEmailOk returns a tuple with the Email field value
-// and a boolean to check if the value has been set.
-func (o *InvitationOut) GetEmailOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Email, true
-}
-
-// SetEmail sets field value
-func (o *InvitationOut) SetEmail(v string) {
- o.Email = v
-}
-
-// GetExpiresAt returns the ExpiresAt field value
-func (o *InvitationOut) GetExpiresAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.ExpiresAt
-}
-
-// GetExpiresAtOk returns a tuple with the ExpiresAt field value
-// and a boolean to check if the value has been set.
-func (o *InvitationOut) GetExpiresAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ExpiresAt, true
-}
-
-// SetExpiresAt sets field value
-func (o *InvitationOut) SetExpiresAt(v time.Time) {
- o.ExpiresAt = v
-}
-
-// GetId returns the Id field value
-func (o *InvitationOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *InvitationOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *InvitationOut) SetId(v string) {
- o.Id = v
-}
-
-// GetInvitedBy returns the InvitedBy field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *InvitationOut) GetInvitedBy() string {
- if o == nil || IsNil(o.InvitedBy.Get()) {
- var ret string
- return ret
- }
- return *o.InvitedBy.Get()
-}
-
-// GetInvitedByOk returns a tuple with the InvitedBy field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *InvitationOut) GetInvitedByOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.InvitedBy.Get(), o.InvitedBy.IsSet()
-}
-
-// HasInvitedBy returns a boolean if a field has been set.
-func (o *InvitationOut) HasInvitedBy() bool {
- if o != nil && o.InvitedBy.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetInvitedBy gets a reference to the given NullableString and assigns it to the InvitedBy field.
-func (o *InvitationOut) SetInvitedBy(v string) {
- o.InvitedBy.Set(&v)
-}
-// SetInvitedByNil sets the value for InvitedBy to be an explicit nil
-func (o *InvitationOut) SetInvitedByNil() {
- o.InvitedBy.Set(nil)
-}
-
-// UnsetInvitedBy ensures that no value is present for InvitedBy, not even an explicit nil
-func (o *InvitationOut) UnsetInvitedBy() {
- o.InvitedBy.Unset()
-}
-
-// GetOrganizationId returns the OrganizationId field value
-func (o *InvitationOut) GetOrganizationId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.OrganizationId
-}
-
-// GetOrganizationIdOk returns a tuple with the OrganizationId field value
-// and a boolean to check if the value has been set.
-func (o *InvitationOut) GetOrganizationIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.OrganizationId, true
-}
-
-// SetOrganizationId sets field value
-func (o *InvitationOut) SetOrganizationId(v string) {
- o.OrganizationId = v
-}
-
-// GetRole returns the Role field value
-func (o *InvitationOut) GetRole() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Role
-}
-
-// GetRoleOk returns a tuple with the Role field value
-// and a boolean to check if the value has been set.
-func (o *InvitationOut) GetRoleOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Role, true
-}
-
-// SetRole sets field value
-func (o *InvitationOut) SetRole(v string) {
- o.Role = v
-}
-
-// GetStatus returns the Status field value
-func (o *InvitationOut) GetStatus() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Status
-}
-
-// GetStatusOk returns a tuple with the Status field value
-// and a boolean to check if the value has been set.
-func (o *InvitationOut) GetStatusOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Status, true
-}
-
-// SetStatus sets field value
-func (o *InvitationOut) SetStatus(v string) {
- o.Status = v
-}
-
-func (o InvitationOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o InvitationOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["created_at"] = o.CreatedAt
- toSerialize["email"] = o.Email
- toSerialize["expires_at"] = o.ExpiresAt
- toSerialize["id"] = o.Id
- if o.InvitedBy.IsSet() {
- toSerialize["invited_by"] = o.InvitedBy.Get()
- }
- toSerialize["organization_id"] = o.OrganizationId
- toSerialize["role"] = o.Role
- toSerialize["status"] = o.Status
- return toSerialize, nil
-}
-
-func (o *InvitationOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "created_at",
- "email",
- "expires_at",
- "id",
- "organization_id",
- "role",
- "status",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varInvitationOut := _InvitationOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varInvitationOut)
-
- if err != nil {
- return err
- }
-
- *o = InvitationOut(varInvitationOut)
-
- return err
-}
-
-type NullableInvitationOut struct {
- value *InvitationOut
- isSet bool
-}
-
-func (v NullableInvitationOut) Get() *InvitationOut {
- return v.value
-}
-
-func (v *NullableInvitationOut) Set(val *InvitationOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableInvitationOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableInvitationOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableInvitationOut(val *InvitationOut) *NullableInvitationOut {
- return &NullableInvitationOut{value: val, isSet: true}
-}
-
-func (v NullableInvitationOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableInvitationOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_invite_create_out.go b/sdk/go/model_invite_create_out.go
deleted file mode 100644
index 5b30177..0000000
--- a/sdk/go/model_invite_create_out.go
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
-)
-
-// checks if the InviteCreateOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &InviteCreateOut{}
-
-// InviteCreateOut POST /v0/members/invite response. `already_member` is True when the email was already a live member (no invite created — a no-op success). `email_delivered` is False when the invite row was created but the notification email failed to send — the invite is still valid and can be resent, but the invitee has not yet received a link.
-type InviteCreateOut struct {
- AlreadyMember *bool `json:"already_member,omitempty"`
- EmailDelivered *bool `json:"email_delivered,omitempty"`
- Invitation NullableInvitationOut `json:"invitation,omitempty"`
-}
-
-// NewInviteCreateOut instantiates a new InviteCreateOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewInviteCreateOut() *InviteCreateOut {
- this := InviteCreateOut{}
- var alreadyMember bool = false
- this.AlreadyMember = &alreadyMember
- var emailDelivered bool = true
- this.EmailDelivered = &emailDelivered
- return &this
-}
-
-// NewInviteCreateOutWithDefaults instantiates a new InviteCreateOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewInviteCreateOutWithDefaults() *InviteCreateOut {
- this := InviteCreateOut{}
- var alreadyMember bool = false
- this.AlreadyMember = &alreadyMember
- var emailDelivered bool = true
- this.EmailDelivered = &emailDelivered
- return &this
-}
-
-// GetAlreadyMember returns the AlreadyMember field value if set, zero value otherwise.
-func (o *InviteCreateOut) GetAlreadyMember() bool {
- if o == nil || IsNil(o.AlreadyMember) {
- var ret bool
- return ret
- }
- return *o.AlreadyMember
-}
-
-// GetAlreadyMemberOk returns a tuple with the AlreadyMember field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *InviteCreateOut) GetAlreadyMemberOk() (*bool, bool) {
- if o == nil || IsNil(o.AlreadyMember) {
- return nil, false
- }
- return o.AlreadyMember, true
-}
-
-// HasAlreadyMember returns a boolean if a field has been set.
-func (o *InviteCreateOut) HasAlreadyMember() bool {
- if o != nil && !IsNil(o.AlreadyMember) {
- return true
- }
-
- return false
-}
-
-// SetAlreadyMember gets a reference to the given bool and assigns it to the AlreadyMember field.
-func (o *InviteCreateOut) SetAlreadyMember(v bool) {
- o.AlreadyMember = &v
-}
-
-// GetEmailDelivered returns the EmailDelivered field value if set, zero value otherwise.
-func (o *InviteCreateOut) GetEmailDelivered() bool {
- if o == nil || IsNil(o.EmailDelivered) {
- var ret bool
- return ret
- }
- return *o.EmailDelivered
-}
-
-// GetEmailDeliveredOk returns a tuple with the EmailDelivered field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *InviteCreateOut) GetEmailDeliveredOk() (*bool, bool) {
- if o == nil || IsNil(o.EmailDelivered) {
- return nil, false
- }
- return o.EmailDelivered, true
-}
-
-// HasEmailDelivered returns a boolean if a field has been set.
-func (o *InviteCreateOut) HasEmailDelivered() bool {
- if o != nil && !IsNil(o.EmailDelivered) {
- return true
- }
-
- return false
-}
-
-// SetEmailDelivered gets a reference to the given bool and assigns it to the EmailDelivered field.
-func (o *InviteCreateOut) SetEmailDelivered(v bool) {
- o.EmailDelivered = &v
-}
-
-// GetInvitation returns the Invitation field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *InviteCreateOut) GetInvitation() InvitationOut {
- if o == nil || IsNil(o.Invitation.Get()) {
- var ret InvitationOut
- return ret
- }
- return *o.Invitation.Get()
-}
-
-// GetInvitationOk returns a tuple with the Invitation field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *InviteCreateOut) GetInvitationOk() (*InvitationOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Invitation.Get(), o.Invitation.IsSet()
-}
-
-// HasInvitation returns a boolean if a field has been set.
-func (o *InviteCreateOut) HasInvitation() bool {
- if o != nil && o.Invitation.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetInvitation gets a reference to the given NullableInvitationOut and assigns it to the Invitation field.
-func (o *InviteCreateOut) SetInvitation(v InvitationOut) {
- o.Invitation.Set(&v)
-}
-// SetInvitationNil sets the value for Invitation to be an explicit nil
-func (o *InviteCreateOut) SetInvitationNil() {
- o.Invitation.Set(nil)
-}
-
-// UnsetInvitation ensures that no value is present for Invitation, not even an explicit nil
-func (o *InviteCreateOut) UnsetInvitation() {
- o.Invitation.Unset()
-}
-
-func (o InviteCreateOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o InviteCreateOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- if !IsNil(o.AlreadyMember) {
- toSerialize["already_member"] = o.AlreadyMember
- }
- if !IsNil(o.EmailDelivered) {
- toSerialize["email_delivered"] = o.EmailDelivered
- }
- if o.Invitation.IsSet() {
- toSerialize["invitation"] = o.Invitation.Get()
- }
- return toSerialize, nil
-}
-
-type NullableInviteCreateOut struct {
- value *InviteCreateOut
- isSet bool
-}
-
-func (v NullableInviteCreateOut) Get() *InviteCreateOut {
- return v.value
-}
-
-func (v *NullableInviteCreateOut) Set(val *InviteCreateOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableInviteCreateOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableInviteCreateOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableInviteCreateOut(val *InviteCreateOut) *NullableInviteCreateOut {
- return &NullableInviteCreateOut{value: val, isSet: true}
-}
-
-func (v NullableInviteCreateOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableInviteCreateOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_jwk_out.go b/sdk/go/model_jwk_out.go
deleted file mode 100644
index afbb301..0000000
--- a/sdk/go/model_jwk_out.go
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
-)
-
-// checks if the JwkOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &JwkOut{}
-
-// JwkOut struct for JwkOut
-type JwkOut struct {
- Alg string `json:"alg"`
- E string `json:"e"`
- Kid string `json:"kid"`
- Kty string `json:"kty"`
- N string `json:"n"`
- Use string `json:"use"`
- AdditionalProperties map[string]interface{}
-}
-
-type _JwkOut JwkOut
-
-// NewJwkOut instantiates a new JwkOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewJwkOut(alg string, e string, kid string, kty string, n string, use string) *JwkOut {
- this := JwkOut{}
- this.Alg = alg
- this.E = e
- this.Kid = kid
- this.Kty = kty
- this.N = n
- this.Use = use
- return &this
-}
-
-// NewJwkOutWithDefaults instantiates a new JwkOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewJwkOutWithDefaults() *JwkOut {
- this := JwkOut{}
- return &this
-}
-
-// GetAlg returns the Alg field value
-func (o *JwkOut) GetAlg() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Alg
-}
-
-// GetAlgOk returns a tuple with the Alg field value
-// and a boolean to check if the value has been set.
-func (o *JwkOut) GetAlgOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Alg, true
-}
-
-// SetAlg sets field value
-func (o *JwkOut) SetAlg(v string) {
- o.Alg = v
-}
-
-// GetE returns the E field value
-func (o *JwkOut) GetE() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.E
-}
-
-// GetEOk returns a tuple with the E field value
-// and a boolean to check if the value has been set.
-func (o *JwkOut) GetEOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.E, true
-}
-
-// SetE sets field value
-func (o *JwkOut) SetE(v string) {
- o.E = v
-}
-
-// GetKid returns the Kid field value
-func (o *JwkOut) GetKid() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Kid
-}
-
-// GetKidOk returns a tuple with the Kid field value
-// and a boolean to check if the value has been set.
-func (o *JwkOut) GetKidOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Kid, true
-}
-
-// SetKid sets field value
-func (o *JwkOut) SetKid(v string) {
- o.Kid = v
-}
-
-// GetKty returns the Kty field value
-func (o *JwkOut) GetKty() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Kty
-}
-
-// GetKtyOk returns a tuple with the Kty field value
-// and a boolean to check if the value has been set.
-func (o *JwkOut) GetKtyOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Kty, true
-}
-
-// SetKty sets field value
-func (o *JwkOut) SetKty(v string) {
- o.Kty = v
-}
-
-// GetN returns the N field value
-func (o *JwkOut) GetN() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.N
-}
-
-// GetNOk returns a tuple with the N field value
-// and a boolean to check if the value has been set.
-func (o *JwkOut) GetNOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.N, true
-}
-
-// SetN sets field value
-func (o *JwkOut) SetN(v string) {
- o.N = v
-}
-
-// GetUse returns the Use field value
-func (o *JwkOut) GetUse() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Use
-}
-
-// GetUseOk returns a tuple with the Use field value
-// and a boolean to check if the value has been set.
-func (o *JwkOut) GetUseOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Use, true
-}
-
-// SetUse sets field value
-func (o *JwkOut) SetUse(v string) {
- o.Use = v
-}
-
-func (o JwkOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o JwkOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["alg"] = o.Alg
- toSerialize["e"] = o.E
- toSerialize["kid"] = o.Kid
- toSerialize["kty"] = o.Kty
- toSerialize["n"] = o.N
- toSerialize["use"] = o.Use
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
- return toSerialize, nil
-}
-
-func (o *JwkOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "alg",
- "e",
- "kid",
- "kty",
- "n",
- "use",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varJwkOut := _JwkOut{}
-
- err = json.Unmarshal(data, &varJwkOut)
-
- if err != nil {
- return err
- }
-
- *o = JwkOut(varJwkOut)
-
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "alg")
- delete(additionalProperties, "e")
- delete(additionalProperties, "kid")
- delete(additionalProperties, "kty")
- delete(additionalProperties, "n")
- delete(additionalProperties, "use")
- o.AdditionalProperties = additionalProperties
- }
-
- return err
-}
-
-type NullableJwkOut struct {
- value *JwkOut
- isSet bool
-}
-
-func (v NullableJwkOut) Get() *JwkOut {
- return v.value
-}
-
-func (v *NullableJwkOut) Set(val *JwkOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableJwkOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableJwkOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableJwkOut(val *JwkOut) *NullableJwkOut {
- return &NullableJwkOut{value: val, isSet: true}
-}
-
-func (v NullableJwkOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableJwkOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_jwks_out.go b/sdk/go/model_jwks_out.go
deleted file mode 100644
index c5cea5c..0000000
--- a/sdk/go/model_jwks_out.go
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
-)
-
-// checks if the JwksOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &JwksOut{}
-
-// JwksOut struct for JwksOut
-type JwksOut struct {
- Keys []JwkOut `json:"keys"`
- AdditionalProperties map[string]interface{}
-}
-
-type _JwksOut JwksOut
-
-// NewJwksOut instantiates a new JwksOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewJwksOut(keys []JwkOut) *JwksOut {
- this := JwksOut{}
- this.Keys = keys
- return &this
-}
-
-// NewJwksOutWithDefaults instantiates a new JwksOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewJwksOutWithDefaults() *JwksOut {
- this := JwksOut{}
- return &this
-}
-
-// GetKeys returns the Keys field value
-func (o *JwksOut) GetKeys() []JwkOut {
- if o == nil {
- var ret []JwkOut
- return ret
- }
-
- return o.Keys
-}
-
-// GetKeysOk returns a tuple with the Keys field value
-// and a boolean to check if the value has been set.
-func (o *JwksOut) GetKeysOk() ([]JwkOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Keys, true
-}
-
-// SetKeys sets field value
-func (o *JwksOut) SetKeys(v []JwkOut) {
- o.Keys = v
-}
-
-func (o JwksOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o JwksOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["keys"] = o.Keys
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
- return toSerialize, nil
-}
-
-func (o *JwksOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "keys",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varJwksOut := _JwksOut{}
-
- err = json.Unmarshal(data, &varJwksOut)
-
- if err != nil {
- return err
- }
-
- *o = JwksOut(varJwksOut)
-
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "keys")
- o.AdditionalProperties = additionalProperties
- }
-
- return err
-}
-
-type NullableJwksOut struct {
- value *JwksOut
- isSet bool
-}
-
-func (v NullableJwksOut) Get() *JwksOut {
- return v.value
-}
-
-func (v *NullableJwksOut) Set(val *JwksOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableJwksOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableJwksOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableJwksOut(val *JwksOut) *NullableJwksOut {
- return &NullableJwksOut{value: val, isSet: true}
-}
-
-func (v NullableJwksOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableJwksOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_lookup_values_in.go b/sdk/go/model_lookup_values_in.go
deleted file mode 100644
index af9c8ba..0000000
--- a/sdk/go/model_lookup_values_in.go
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the LookupValuesIn type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &LookupValuesIn{}
-
-// LookupValuesIn struct for LookupValuesIn
-type LookupValuesIn struct {
- Column string `json:"column"`
- Dataset string `json:"dataset"`
- Limit *int32 `json:"limit,omitempty"`
-}
-
-type _LookupValuesIn LookupValuesIn
-
-// NewLookupValuesIn instantiates a new LookupValuesIn object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewLookupValuesIn(column string, dataset string) *LookupValuesIn {
- this := LookupValuesIn{}
- this.Column = column
- this.Dataset = dataset
- var limit int32 = 50
- this.Limit = &limit
- return &this
-}
-
-// NewLookupValuesInWithDefaults instantiates a new LookupValuesIn object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewLookupValuesInWithDefaults() *LookupValuesIn {
- this := LookupValuesIn{}
- var limit int32 = 50
- this.Limit = &limit
- return &this
-}
-
-// GetColumn returns the Column field value
-func (o *LookupValuesIn) GetColumn() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Column
-}
-
-// GetColumnOk returns a tuple with the Column field value
-// and a boolean to check if the value has been set.
-func (o *LookupValuesIn) GetColumnOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Column, true
-}
-
-// SetColumn sets field value
-func (o *LookupValuesIn) SetColumn(v string) {
- o.Column = v
-}
-
-// GetDataset returns the Dataset field value
-func (o *LookupValuesIn) GetDataset() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Dataset
-}
-
-// GetDatasetOk returns a tuple with the Dataset field value
-// and a boolean to check if the value has been set.
-func (o *LookupValuesIn) GetDatasetOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Dataset, true
-}
-
-// SetDataset sets field value
-func (o *LookupValuesIn) SetDataset(v string) {
- o.Dataset = v
-}
-
-// GetLimit returns the Limit field value if set, zero value otherwise.
-func (o *LookupValuesIn) GetLimit() int32 {
- if o == nil || IsNil(o.Limit) {
- var ret int32
- return ret
- }
- return *o.Limit
-}
-
-// GetLimitOk returns a tuple with the Limit field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *LookupValuesIn) GetLimitOk() (*int32, bool) {
- if o == nil || IsNil(o.Limit) {
- return nil, false
- }
- return o.Limit, true
-}
-
-// HasLimit returns a boolean if a field has been set.
-func (o *LookupValuesIn) HasLimit() bool {
- if o != nil && !IsNil(o.Limit) {
- return true
- }
-
- return false
-}
-
-// SetLimit gets a reference to the given int32 and assigns it to the Limit field.
-func (o *LookupValuesIn) SetLimit(v int32) {
- o.Limit = &v
-}
-
-func (o LookupValuesIn) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o LookupValuesIn) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["column"] = o.Column
- toSerialize["dataset"] = o.Dataset
- if !IsNil(o.Limit) {
- toSerialize["limit"] = o.Limit
- }
- return toSerialize, nil
-}
-
-func (o *LookupValuesIn) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "column",
- "dataset",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varLookupValuesIn := _LookupValuesIn{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varLookupValuesIn)
-
- if err != nil {
- return err
- }
-
- *o = LookupValuesIn(varLookupValuesIn)
-
- return err
-}
-
-type NullableLookupValuesIn struct {
- value *LookupValuesIn
- isSet bool
-}
-
-func (v NullableLookupValuesIn) Get() *LookupValuesIn {
- return v.value
-}
-
-func (v *NullableLookupValuesIn) Set(val *LookupValuesIn) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableLookupValuesIn) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableLookupValuesIn) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableLookupValuesIn(val *LookupValuesIn) *NullableLookupValuesIn {
- return &NullableLookupValuesIn{value: val, isSet: true}
-}
-
-func (v NullableLookupValuesIn) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableLookupValuesIn) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_lookup_values_out.go b/sdk/go/model_lookup_values_out.go
deleted file mode 100644
index 0376f7c..0000000
--- a/sdk/go/model_lookup_values_out.go
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the LookupValuesOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &LookupValuesOut{}
-
-// LookupValuesOut struct for LookupValuesOut
-type LookupValuesOut struct {
- Column string `json:"column"`
- Dataset string `json:"dataset"`
- Values []interface{} `json:"values"`
-}
-
-type _LookupValuesOut LookupValuesOut
-
-// NewLookupValuesOut instantiates a new LookupValuesOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewLookupValuesOut(column string, dataset string, values []interface{}) *LookupValuesOut {
- this := LookupValuesOut{}
- this.Column = column
- this.Dataset = dataset
- this.Values = values
- return &this
-}
-
-// NewLookupValuesOutWithDefaults instantiates a new LookupValuesOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewLookupValuesOutWithDefaults() *LookupValuesOut {
- this := LookupValuesOut{}
- return &this
-}
-
-// GetColumn returns the Column field value
-func (o *LookupValuesOut) GetColumn() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Column
-}
-
-// GetColumnOk returns a tuple with the Column field value
-// and a boolean to check if the value has been set.
-func (o *LookupValuesOut) GetColumnOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Column, true
-}
-
-// SetColumn sets field value
-func (o *LookupValuesOut) SetColumn(v string) {
- o.Column = v
-}
-
-// GetDataset returns the Dataset field value
-func (o *LookupValuesOut) GetDataset() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Dataset
-}
-
-// GetDatasetOk returns a tuple with the Dataset field value
-// and a boolean to check if the value has been set.
-func (o *LookupValuesOut) GetDatasetOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Dataset, true
-}
-
-// SetDataset sets field value
-func (o *LookupValuesOut) SetDataset(v string) {
- o.Dataset = v
-}
-
-// GetValues returns the Values field value
-func (o *LookupValuesOut) GetValues() []interface{} {
- if o == nil {
- var ret []interface{}
- return ret
- }
-
- return o.Values
-}
-
-// GetValuesOk returns a tuple with the Values field value
-// and a boolean to check if the value has been set.
-func (o *LookupValuesOut) GetValuesOk() ([]interface{}, bool) {
- if o == nil {
- return nil, false
- }
- return o.Values, true
-}
-
-// SetValues sets field value
-func (o *LookupValuesOut) SetValues(v []interface{}) {
- o.Values = v
-}
-
-func (o LookupValuesOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o LookupValuesOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["column"] = o.Column
- toSerialize["dataset"] = o.Dataset
- toSerialize["values"] = o.Values
- return toSerialize, nil
-}
-
-func (o *LookupValuesOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "column",
- "dataset",
- "values",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varLookupValuesOut := _LookupValuesOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varLookupValuesOut)
-
- if err != nil {
- return err
- }
-
- *o = LookupValuesOut(varLookupValuesOut)
-
- return err
-}
-
-type NullableLookupValuesOut struct {
- value *LookupValuesOut
- isSet bool
-}
-
-func (v NullableLookupValuesOut) Get() *LookupValuesOut {
- return v.value
-}
-
-func (v *NullableLookupValuesOut) Set(val *LookupValuesOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableLookupValuesOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableLookupValuesOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableLookupValuesOut(val *LookupValuesOut) *NullableLookupValuesOut {
- return &NullableLookupValuesOut{value: val, isSet: true}
-}
-
-func (v NullableLookupValuesOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableLookupValuesOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_member_invite_in.go b/sdk/go/model_member_invite_in.go
deleted file mode 100644
index 16687cf..0000000
--- a/sdk/go/model_member_invite_in.go
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the MemberInviteIn type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &MemberInviteIn{}
-
-// MemberInviteIn POST /v0/members/invite body — invite a person by email.
-type MemberInviteIn struct {
- Email string `json:"email"`
- Role *string `json:"role,omitempty"`
-}
-
-type _MemberInviteIn MemberInviteIn
-
-// NewMemberInviteIn instantiates a new MemberInviteIn object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewMemberInviteIn(email string) *MemberInviteIn {
- this := MemberInviteIn{}
- this.Email = email
- var role string = "member"
- this.Role = &role
- return &this
-}
-
-// NewMemberInviteInWithDefaults instantiates a new MemberInviteIn object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewMemberInviteInWithDefaults() *MemberInviteIn {
- this := MemberInviteIn{}
- var role string = "member"
- this.Role = &role
- return &this
-}
-
-// GetEmail returns the Email field value
-func (o *MemberInviteIn) GetEmail() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Email
-}
-
-// GetEmailOk returns a tuple with the Email field value
-// and a boolean to check if the value has been set.
-func (o *MemberInviteIn) GetEmailOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Email, true
-}
-
-// SetEmail sets field value
-func (o *MemberInviteIn) SetEmail(v string) {
- o.Email = v
-}
-
-// GetRole returns the Role field value if set, zero value otherwise.
-func (o *MemberInviteIn) GetRole() string {
- if o == nil || IsNil(o.Role) {
- var ret string
- return ret
- }
- return *o.Role
-}
-
-// GetRoleOk returns a tuple with the Role field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *MemberInviteIn) GetRoleOk() (*string, bool) {
- if o == nil || IsNil(o.Role) {
- return nil, false
- }
- return o.Role, true
-}
-
-// HasRole returns a boolean if a field has been set.
-func (o *MemberInviteIn) HasRole() bool {
- if o != nil && !IsNil(o.Role) {
- return true
- }
-
- return false
-}
-
-// SetRole gets a reference to the given string and assigns it to the Role field.
-func (o *MemberInviteIn) SetRole(v string) {
- o.Role = &v
-}
-
-func (o MemberInviteIn) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o MemberInviteIn) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["email"] = o.Email
- if !IsNil(o.Role) {
- toSerialize["role"] = o.Role
- }
- return toSerialize, nil
-}
-
-func (o *MemberInviteIn) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "email",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varMemberInviteIn := _MemberInviteIn{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varMemberInviteIn)
-
- if err != nil {
- return err
- }
-
- *o = MemberInviteIn(varMemberInviteIn)
-
- return err
-}
-
-type NullableMemberInviteIn struct {
- value *MemberInviteIn
- isSet bool
-}
-
-func (v NullableMemberInviteIn) Get() *MemberInviteIn {
- return v.value
-}
-
-func (v *NullableMemberInviteIn) Set(val *MemberInviteIn) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableMemberInviteIn) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableMemberInviteIn) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableMemberInviteIn(val *MemberInviteIn) *NullableMemberInviteIn {
- return &NullableMemberInviteIn{value: val, isSet: true}
-}
-
-func (v NullableMemberInviteIn) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableMemberInviteIn) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_member_list.go b/sdk/go/model_member_list.go
deleted file mode 100644
index 55ba08d..0000000
--- a/sdk/go/model_member_list.go
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the MemberList type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &MemberList{}
-
-// MemberList struct for MemberList
-type MemberList struct {
- Items []MemberOut `json:"items"`
- NextCursor NullableString `json:"next_cursor,omitempty"`
-}
-
-type _MemberList MemberList
-
-// NewMemberList instantiates a new MemberList object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewMemberList(items []MemberOut) *MemberList {
- this := MemberList{}
- this.Items = items
- return &this
-}
-
-// NewMemberListWithDefaults instantiates a new MemberList object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewMemberListWithDefaults() *MemberList {
- this := MemberList{}
- return &this
-}
-
-// GetItems returns the Items field value
-func (o *MemberList) GetItems() []MemberOut {
- if o == nil {
- var ret []MemberOut
- return ret
- }
-
- return o.Items
-}
-
-// GetItemsOk returns a tuple with the Items field value
-// and a boolean to check if the value has been set.
-func (o *MemberList) GetItemsOk() ([]MemberOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Items, true
-}
-
-// SetItems sets field value
-func (o *MemberList) SetItems(v []MemberOut) {
- o.Items = v
-}
-
-// GetNextCursor returns the NextCursor field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *MemberList) GetNextCursor() string {
- if o == nil || IsNil(o.NextCursor.Get()) {
- var ret string
- return ret
- }
- return *o.NextCursor.Get()
-}
-
-// GetNextCursorOk returns a tuple with the NextCursor field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *MemberList) GetNextCursorOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.NextCursor.Get(), o.NextCursor.IsSet()
-}
-
-// HasNextCursor returns a boolean if a field has been set.
-func (o *MemberList) HasNextCursor() bool {
- if o != nil && o.NextCursor.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetNextCursor gets a reference to the given NullableString and assigns it to the NextCursor field.
-func (o *MemberList) SetNextCursor(v string) {
- o.NextCursor.Set(&v)
-}
-// SetNextCursorNil sets the value for NextCursor to be an explicit nil
-func (o *MemberList) SetNextCursorNil() {
- o.NextCursor.Set(nil)
-}
-
-// UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-func (o *MemberList) UnsetNextCursor() {
- o.NextCursor.Unset()
-}
-
-func (o MemberList) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o MemberList) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["items"] = o.Items
- if o.NextCursor.IsSet() {
- toSerialize["next_cursor"] = o.NextCursor.Get()
- }
- return toSerialize, nil
-}
-
-func (o *MemberList) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "items",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varMemberList := _MemberList{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varMemberList)
-
- if err != nil {
- return err
- }
-
- *o = MemberList(varMemberList)
-
- return err
-}
-
-type NullableMemberList struct {
- value *MemberList
- isSet bool
-}
-
-func (v NullableMemberList) Get() *MemberList {
- return v.value
-}
-
-func (v *NullableMemberList) Set(val *MemberList) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableMemberList) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableMemberList) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableMemberList(val *MemberList) *NullableMemberList {
- return &NullableMemberList{value: val, isSet: true}
-}
-
-func (v NullableMemberList) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableMemberList) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_member_out.go b/sdk/go/model_member_out.go
deleted file mode 100644
index 6f4fb84..0000000
--- a/sdk/go/model_member_out.go
+++ /dev/null
@@ -1,333 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the MemberOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &MemberOut{}
-
-// MemberOut One live member of a workspace — metadata for the members page / `GET /v0/members`.
-type MemberOut struct {
- CreatedAt time.Time `json:"created_at"`
- Email string `json:"email"`
- FirstName NullableString `json:"first_name,omitempty"`
- LastName NullableString `json:"last_name,omitempty"`
- Role string `json:"role"`
- UserId string `json:"user_id"`
-}
-
-type _MemberOut MemberOut
-
-// NewMemberOut instantiates a new MemberOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewMemberOut(createdAt time.Time, email string, role string, userId string) *MemberOut {
- this := MemberOut{}
- this.CreatedAt = createdAt
- this.Email = email
- this.Role = role
- this.UserId = userId
- return &this
-}
-
-// NewMemberOutWithDefaults instantiates a new MemberOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewMemberOutWithDefaults() *MemberOut {
- this := MemberOut{}
- return &this
-}
-
-// GetCreatedAt returns the CreatedAt field value
-func (o *MemberOut) GetCreatedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.CreatedAt
-}
-
-// GetCreatedAtOk returns a tuple with the CreatedAt field value
-// and a boolean to check if the value has been set.
-func (o *MemberOut) GetCreatedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.CreatedAt, true
-}
-
-// SetCreatedAt sets field value
-func (o *MemberOut) SetCreatedAt(v time.Time) {
- o.CreatedAt = v
-}
-
-// GetEmail returns the Email field value
-func (o *MemberOut) GetEmail() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Email
-}
-
-// GetEmailOk returns a tuple with the Email field value
-// and a boolean to check if the value has been set.
-func (o *MemberOut) GetEmailOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Email, true
-}
-
-// SetEmail sets field value
-func (o *MemberOut) SetEmail(v string) {
- o.Email = v
-}
-
-// GetFirstName returns the FirstName field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *MemberOut) GetFirstName() string {
- if o == nil || IsNil(o.FirstName.Get()) {
- var ret string
- return ret
- }
- return *o.FirstName.Get()
-}
-
-// GetFirstNameOk returns a tuple with the FirstName field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *MemberOut) GetFirstNameOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.FirstName.Get(), o.FirstName.IsSet()
-}
-
-// HasFirstName returns a boolean if a field has been set.
-func (o *MemberOut) HasFirstName() bool {
- if o != nil && o.FirstName.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetFirstName gets a reference to the given NullableString and assigns it to the FirstName field.
-func (o *MemberOut) SetFirstName(v string) {
- o.FirstName.Set(&v)
-}
-// SetFirstNameNil sets the value for FirstName to be an explicit nil
-func (o *MemberOut) SetFirstNameNil() {
- o.FirstName.Set(nil)
-}
-
-// UnsetFirstName ensures that no value is present for FirstName, not even an explicit nil
-func (o *MemberOut) UnsetFirstName() {
- o.FirstName.Unset()
-}
-
-// GetLastName returns the LastName field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *MemberOut) GetLastName() string {
- if o == nil || IsNil(o.LastName.Get()) {
- var ret string
- return ret
- }
- return *o.LastName.Get()
-}
-
-// GetLastNameOk returns a tuple with the LastName field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *MemberOut) GetLastNameOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.LastName.Get(), o.LastName.IsSet()
-}
-
-// HasLastName returns a boolean if a field has been set.
-func (o *MemberOut) HasLastName() bool {
- if o != nil && o.LastName.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetLastName gets a reference to the given NullableString and assigns it to the LastName field.
-func (o *MemberOut) SetLastName(v string) {
- o.LastName.Set(&v)
-}
-// SetLastNameNil sets the value for LastName to be an explicit nil
-func (o *MemberOut) SetLastNameNil() {
- o.LastName.Set(nil)
-}
-
-// UnsetLastName ensures that no value is present for LastName, not even an explicit nil
-func (o *MemberOut) UnsetLastName() {
- o.LastName.Unset()
-}
-
-// GetRole returns the Role field value
-func (o *MemberOut) GetRole() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Role
-}
-
-// GetRoleOk returns a tuple with the Role field value
-// and a boolean to check if the value has been set.
-func (o *MemberOut) GetRoleOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Role, true
-}
-
-// SetRole sets field value
-func (o *MemberOut) SetRole(v string) {
- o.Role = v
-}
-
-// GetUserId returns the UserId field value
-func (o *MemberOut) GetUserId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.UserId
-}
-
-// GetUserIdOk returns a tuple with the UserId field value
-// and a boolean to check if the value has been set.
-func (o *MemberOut) GetUserIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.UserId, true
-}
-
-// SetUserId sets field value
-func (o *MemberOut) SetUserId(v string) {
- o.UserId = v
-}
-
-func (o MemberOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o MemberOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["created_at"] = o.CreatedAt
- toSerialize["email"] = o.Email
- if o.FirstName.IsSet() {
- toSerialize["first_name"] = o.FirstName.Get()
- }
- if o.LastName.IsSet() {
- toSerialize["last_name"] = o.LastName.Get()
- }
- toSerialize["role"] = o.Role
- toSerialize["user_id"] = o.UserId
- return toSerialize, nil
-}
-
-func (o *MemberOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "created_at",
- "email",
- "role",
- "user_id",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varMemberOut := _MemberOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varMemberOut)
-
- if err != nil {
- return err
- }
-
- *o = MemberOut(varMemberOut)
-
- return err
-}
-
-type NullableMemberOut struct {
- value *MemberOut
- isSet bool
-}
-
-func (v NullableMemberOut) Get() *MemberOut {
- return v.value
-}
-
-func (v *NullableMemberOut) Set(val *MemberOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableMemberOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableMemberOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableMemberOut(val *MemberOut) *NullableMemberOut {
- return &NullableMemberOut{value: val, isSet: true}
-}
-
-func (v NullableMemberOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableMemberOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_member_remove_out.go b/sdk/go/model_member_remove_out.go
deleted file mode 100644
index 95f192b..0000000
--- a/sdk/go/model_member_remove_out.go
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the MemberRemoveOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &MemberRemoveOut{}
-
-// MemberRemoveOut DELETE /v0/members/{user_id} response — the member-removal receipt. `id` is the removed user's id (replaces the ad-hoc `removed` key).
-type MemberRemoveOut struct {
- Id string `json:"id"`
- Ok *bool `json:"ok,omitempty"`
- OrganizationId string `json:"organization_id"`
-}
-
-type _MemberRemoveOut MemberRemoveOut
-
-// NewMemberRemoveOut instantiates a new MemberRemoveOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewMemberRemoveOut(id string, organizationId string) *MemberRemoveOut {
- this := MemberRemoveOut{}
- this.Id = id
- var ok bool = true
- this.Ok = &ok
- this.OrganizationId = organizationId
- return &this
-}
-
-// NewMemberRemoveOutWithDefaults instantiates a new MemberRemoveOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewMemberRemoveOutWithDefaults() *MemberRemoveOut {
- this := MemberRemoveOut{}
- var ok bool = true
- this.Ok = &ok
- return &this
-}
-
-// GetId returns the Id field value
-func (o *MemberRemoveOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *MemberRemoveOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *MemberRemoveOut) SetId(v string) {
- o.Id = v
-}
-
-// GetOk returns the Ok field value if set, zero value otherwise.
-func (o *MemberRemoveOut) GetOk() bool {
- if o == nil || IsNil(o.Ok) {
- var ret bool
- return ret
- }
- return *o.Ok
-}
-
-// GetOkOk returns a tuple with the Ok field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *MemberRemoveOut) GetOkOk() (*bool, bool) {
- if o == nil || IsNil(o.Ok) {
- return nil, false
- }
- return o.Ok, true
-}
-
-// HasOk returns a boolean if a field has been set.
-func (o *MemberRemoveOut) HasOk() bool {
- if o != nil && !IsNil(o.Ok) {
- return true
- }
-
- return false
-}
-
-// SetOk gets a reference to the given bool and assigns it to the Ok field.
-func (o *MemberRemoveOut) SetOk(v bool) {
- o.Ok = &v
-}
-
-// GetOrganizationId returns the OrganizationId field value
-func (o *MemberRemoveOut) GetOrganizationId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.OrganizationId
-}
-
-// GetOrganizationIdOk returns a tuple with the OrganizationId field value
-// and a boolean to check if the value has been set.
-func (o *MemberRemoveOut) GetOrganizationIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.OrganizationId, true
-}
-
-// SetOrganizationId sets field value
-func (o *MemberRemoveOut) SetOrganizationId(v string) {
- o.OrganizationId = v
-}
-
-func (o MemberRemoveOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o MemberRemoveOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["id"] = o.Id
- if !IsNil(o.Ok) {
- toSerialize["ok"] = o.Ok
- }
- toSerialize["organization_id"] = o.OrganizationId
- return toSerialize, nil
-}
-
-func (o *MemberRemoveOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "id",
- "organization_id",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varMemberRemoveOut := _MemberRemoveOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varMemberRemoveOut)
-
- if err != nil {
- return err
- }
-
- *o = MemberRemoveOut(varMemberRemoveOut)
-
- return err
-}
-
-type NullableMemberRemoveOut struct {
- value *MemberRemoveOut
- isSet bool
-}
-
-func (v NullableMemberRemoveOut) Get() *MemberRemoveOut {
- return v.value
-}
-
-func (v *NullableMemberRemoveOut) Set(val *MemberRemoveOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableMemberRemoveOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableMemberRemoveOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableMemberRemoveOut(val *MemberRemoveOut) *NullableMemberRemoveOut {
- return &NullableMemberRemoveOut{value: val, isSet: true}
-}
-
-func (v NullableMemberRemoveOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableMemberRemoveOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_member_role_in.go b/sdk/go/model_member_role_in.go
deleted file mode 100644
index e42418c..0000000
--- a/sdk/go/model_member_role_in.go
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the MemberRoleIn type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &MemberRoleIn{}
-
-// MemberRoleIn PATCH /v0/members/{user} body — promote/demote a member.
-type MemberRoleIn struct {
- Role string `json:"role"`
-}
-
-type _MemberRoleIn MemberRoleIn
-
-// NewMemberRoleIn instantiates a new MemberRoleIn object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewMemberRoleIn(role string) *MemberRoleIn {
- this := MemberRoleIn{}
- this.Role = role
- return &this
-}
-
-// NewMemberRoleInWithDefaults instantiates a new MemberRoleIn object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewMemberRoleInWithDefaults() *MemberRoleIn {
- this := MemberRoleIn{}
- return &this
-}
-
-// GetRole returns the Role field value
-func (o *MemberRoleIn) GetRole() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Role
-}
-
-// GetRoleOk returns a tuple with the Role field value
-// and a boolean to check if the value has been set.
-func (o *MemberRoleIn) GetRoleOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Role, true
-}
-
-// SetRole sets field value
-func (o *MemberRoleIn) SetRole(v string) {
- o.Role = v
-}
-
-func (o MemberRoleIn) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o MemberRoleIn) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["role"] = o.Role
- return toSerialize, nil
-}
-
-func (o *MemberRoleIn) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "role",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varMemberRoleIn := _MemberRoleIn{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varMemberRoleIn)
-
- if err != nil {
- return err
- }
-
- *o = MemberRoleIn(varMemberRoleIn)
-
- return err
-}
-
-type NullableMemberRoleIn struct {
- value *MemberRoleIn
- isSet bool
-}
-
-func (v NullableMemberRoleIn) Get() *MemberRoleIn {
- return v.value
-}
-
-func (v *NullableMemberRoleIn) Set(val *MemberRoleIn) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableMemberRoleIn) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableMemberRoleIn) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableMemberRoleIn(val *MemberRoleIn) *NullableMemberRoleIn {
- return &NullableMemberRoleIn{value: val, isSet: true}
-}
-
-func (v NullableMemberRoleIn) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableMemberRoleIn) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_o_auth_protocol_error_out.go b/sdk/go/model_o_auth_protocol_error_out.go
deleted file mode 100644
index 88a32a6..0000000
--- a/sdk/go/model_o_auth_protocol_error_out.go
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
-)
-
-// checks if the OAuthProtocolErrorOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &OAuthProtocolErrorOut{}
-
-// OAuthProtocolErrorOut RFC OAuth error shape used by public protocol endpoints.
-type OAuthProtocolErrorOut struct {
- Error string `json:"error"`
- ErrorDescription NullableString `json:"error_description,omitempty"`
- AdditionalProperties map[string]interface{}
-}
-
-type _OAuthProtocolErrorOut OAuthProtocolErrorOut
-
-// NewOAuthProtocolErrorOut instantiates a new OAuthProtocolErrorOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewOAuthProtocolErrorOut(error_ string) *OAuthProtocolErrorOut {
- this := OAuthProtocolErrorOut{}
- this.Error = error_
- return &this
-}
-
-// NewOAuthProtocolErrorOutWithDefaults instantiates a new OAuthProtocolErrorOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewOAuthProtocolErrorOutWithDefaults() *OAuthProtocolErrorOut {
- this := OAuthProtocolErrorOut{}
- return &this
-}
-
-// GetError returns the Error field value
-func (o *OAuthProtocolErrorOut) GetError() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Error
-}
-
-// GetErrorOk returns a tuple with the Error field value
-// and a boolean to check if the value has been set.
-func (o *OAuthProtocolErrorOut) GetErrorOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Error, true
-}
-
-// SetError sets field value
-func (o *OAuthProtocolErrorOut) SetError(v string) {
- o.Error = v
-}
-
-// GetErrorDescription returns the ErrorDescription field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *OAuthProtocolErrorOut) GetErrorDescription() string {
- if o == nil || IsNil(o.ErrorDescription.Get()) {
- var ret string
- return ret
- }
- return *o.ErrorDescription.Get()
-}
-
-// GetErrorDescriptionOk returns a tuple with the ErrorDescription field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *OAuthProtocolErrorOut) GetErrorDescriptionOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.ErrorDescription.Get(), o.ErrorDescription.IsSet()
-}
-
-// HasErrorDescription returns a boolean if a field has been set.
-func (o *OAuthProtocolErrorOut) HasErrorDescription() bool {
- if o != nil && o.ErrorDescription.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetErrorDescription gets a reference to the given NullableString and assigns it to the ErrorDescription field.
-func (o *OAuthProtocolErrorOut) SetErrorDescription(v string) {
- o.ErrorDescription.Set(&v)
-}
-// SetErrorDescriptionNil sets the value for ErrorDescription to be an explicit nil
-func (o *OAuthProtocolErrorOut) SetErrorDescriptionNil() {
- o.ErrorDescription.Set(nil)
-}
-
-// UnsetErrorDescription ensures that no value is present for ErrorDescription, not even an explicit nil
-func (o *OAuthProtocolErrorOut) UnsetErrorDescription() {
- o.ErrorDescription.Unset()
-}
-
-func (o OAuthProtocolErrorOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o OAuthProtocolErrorOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["error"] = o.Error
- if o.ErrorDescription.IsSet() {
- toSerialize["error_description"] = o.ErrorDescription.Get()
- }
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
- return toSerialize, nil
-}
-
-func (o *OAuthProtocolErrorOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "error",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varOAuthProtocolErrorOut := _OAuthProtocolErrorOut{}
-
- err = json.Unmarshal(data, &varOAuthProtocolErrorOut)
-
- if err != nil {
- return err
- }
-
- *o = OAuthProtocolErrorOut(varOAuthProtocolErrorOut)
-
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "error")
- delete(additionalProperties, "error_description")
- o.AdditionalProperties = additionalProperties
- }
-
- return err
-}
-
-type NullableOAuthProtocolErrorOut struct {
- value *OAuthProtocolErrorOut
- isSet bool
-}
-
-func (v NullableOAuthProtocolErrorOut) Get() *OAuthProtocolErrorOut {
- return v.value
-}
-
-func (v *NullableOAuthProtocolErrorOut) Set(val *OAuthProtocolErrorOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableOAuthProtocolErrorOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableOAuthProtocolErrorOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableOAuthProtocolErrorOut(val *OAuthProtocolErrorOut) *NullableOAuthProtocolErrorOut {
- return &NullableOAuthProtocolErrorOut{value: val, isSet: true}
-}
-
-func (v NullableOAuthProtocolErrorOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableOAuthProtocolErrorOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_operation_usage_out.go b/sdk/go/model_operation_usage_out.go
deleted file mode 100644
index a01c620..0000000
--- a/sdk/go/model_operation_usage_out.go
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the OperationUsageOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &OperationUsageOut{}
-
-// OperationUsageOut struct for OperationUsageOut
-type OperationUsageOut struct {
- Reads int32 `json:"reads"`
- Writes int32 `json:"writes"`
-}
-
-type _OperationUsageOut OperationUsageOut
-
-// NewOperationUsageOut instantiates a new OperationUsageOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewOperationUsageOut(reads int32, writes int32) *OperationUsageOut {
- this := OperationUsageOut{}
- this.Reads = reads
- this.Writes = writes
- return &this
-}
-
-// NewOperationUsageOutWithDefaults instantiates a new OperationUsageOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewOperationUsageOutWithDefaults() *OperationUsageOut {
- this := OperationUsageOut{}
- return &this
-}
-
-// GetReads returns the Reads field value
-func (o *OperationUsageOut) GetReads() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.Reads
-}
-
-// GetReadsOk returns a tuple with the Reads field value
-// and a boolean to check if the value has been set.
-func (o *OperationUsageOut) GetReadsOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Reads, true
-}
-
-// SetReads sets field value
-func (o *OperationUsageOut) SetReads(v int32) {
- o.Reads = v
-}
-
-// GetWrites returns the Writes field value
-func (o *OperationUsageOut) GetWrites() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.Writes
-}
-
-// GetWritesOk returns a tuple with the Writes field value
-// and a boolean to check if the value has been set.
-func (o *OperationUsageOut) GetWritesOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Writes, true
-}
-
-// SetWrites sets field value
-func (o *OperationUsageOut) SetWrites(v int32) {
- o.Writes = v
-}
-
-func (o OperationUsageOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o OperationUsageOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["reads"] = o.Reads
- toSerialize["writes"] = o.Writes
- return toSerialize, nil
-}
-
-func (o *OperationUsageOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "reads",
- "writes",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varOperationUsageOut := _OperationUsageOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varOperationUsageOut)
-
- if err != nil {
- return err
- }
-
- *o = OperationUsageOut(varOperationUsageOut)
-
- return err
-}
-
-type NullableOperationUsageOut struct {
- value *OperationUsageOut
- isSet bool
-}
-
-func (v NullableOperationUsageOut) Get() *OperationUsageOut {
- return v.value
-}
-
-func (v *NullableOperationUsageOut) Set(val *OperationUsageOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableOperationUsageOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableOperationUsageOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableOperationUsageOut(val *OperationUsageOut) *NullableOperationUsageOut {
- return &NullableOperationUsageOut{value: val, isSet: true}
-}
-
-func (v NullableOperationUsageOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableOperationUsageOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_page.go b/sdk/go/model_page.go
deleted file mode 100644
index 19dab3a..0000000
--- a/sdk/go/model_page.go
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the Page type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &Page{}
-
-// Page struct for Page
-type Page struct {
- Items []ArtifactOut `json:"items"`
- NextCursor NullableString `json:"next_cursor,omitempty"`
-}
-
-type _Page Page
-
-// NewPage instantiates a new Page object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewPage(items []ArtifactOut) *Page {
- this := Page{}
- this.Items = items
- return &this
-}
-
-// NewPageWithDefaults instantiates a new Page object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewPageWithDefaults() *Page {
- this := Page{}
- return &this
-}
-
-// GetItems returns the Items field value
-func (o *Page) GetItems() []ArtifactOut {
- if o == nil {
- var ret []ArtifactOut
- return ret
- }
-
- return o.Items
-}
-
-// GetItemsOk returns a tuple with the Items field value
-// and a boolean to check if the value has been set.
-func (o *Page) GetItemsOk() ([]ArtifactOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Items, true
-}
-
-// SetItems sets field value
-func (o *Page) SetItems(v []ArtifactOut) {
- o.Items = v
-}
-
-// GetNextCursor returns the NextCursor field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *Page) GetNextCursor() string {
- if o == nil || IsNil(o.NextCursor.Get()) {
- var ret string
- return ret
- }
- return *o.NextCursor.Get()
-}
-
-// GetNextCursorOk returns a tuple with the NextCursor field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *Page) GetNextCursorOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.NextCursor.Get(), o.NextCursor.IsSet()
-}
-
-// HasNextCursor returns a boolean if a field has been set.
-func (o *Page) HasNextCursor() bool {
- if o != nil && o.NextCursor.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetNextCursor gets a reference to the given NullableString and assigns it to the NextCursor field.
-func (o *Page) SetNextCursor(v string) {
- o.NextCursor.Set(&v)
-}
-// SetNextCursorNil sets the value for NextCursor to be an explicit nil
-func (o *Page) SetNextCursorNil() {
- o.NextCursor.Set(nil)
-}
-
-// UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-func (o *Page) UnsetNextCursor() {
- o.NextCursor.Unset()
-}
-
-func (o Page) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o Page) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["items"] = o.Items
- if o.NextCursor.IsSet() {
- toSerialize["next_cursor"] = o.NextCursor.Get()
- }
- return toSerialize, nil
-}
-
-func (o *Page) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "items",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varPage := _Page{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varPage)
-
- if err != nil {
- return err
- }
-
- *o = Page(varPage)
-
- return err
-}
-
-type NullablePage struct {
- value *Page
- isSet bool
-}
-
-func (v NullablePage) Get() *Page {
- return v.value
-}
-
-func (v *NullablePage) Set(val *Page) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullablePage) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullablePage) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullablePage(val *Page) *NullablePage {
- return &NullablePage{value: val, isSet: true}
-}
-
-func (v NullablePage) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullablePage) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_project_config_in.go b/sdk/go/model_project_config_in.go
deleted file mode 100644
index c386f1c..0000000
--- a/sdk/go/model_project_config_in.go
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the ProjectConfigIn type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ProjectConfigIn{}
-
-// ProjectConfigIn struct for ProjectConfigIn
-type ProjectConfigIn struct {
- AutoCompile *bool `json:"auto_compile,omitempty"`
- Engine NullableString `json:"engine,omitempty"`
- Entrypoint string `json:"entrypoint"`
-}
-
-type _ProjectConfigIn ProjectConfigIn
-
-// NewProjectConfigIn instantiates a new ProjectConfigIn object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewProjectConfigIn(entrypoint string) *ProjectConfigIn {
- this := ProjectConfigIn{}
- var autoCompile bool = false
- this.AutoCompile = &autoCompile
- this.Entrypoint = entrypoint
- return &this
-}
-
-// NewProjectConfigInWithDefaults instantiates a new ProjectConfigIn object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewProjectConfigInWithDefaults() *ProjectConfigIn {
- this := ProjectConfigIn{}
- var autoCompile bool = false
- this.AutoCompile = &autoCompile
- return &this
-}
-
-// GetAutoCompile returns the AutoCompile field value if set, zero value otherwise.
-func (o *ProjectConfigIn) GetAutoCompile() bool {
- if o == nil || IsNil(o.AutoCompile) {
- var ret bool
- return ret
- }
- return *o.AutoCompile
-}
-
-// GetAutoCompileOk returns a tuple with the AutoCompile field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *ProjectConfigIn) GetAutoCompileOk() (*bool, bool) {
- if o == nil || IsNil(o.AutoCompile) {
- return nil, false
- }
- return o.AutoCompile, true
-}
-
-// HasAutoCompile returns a boolean if a field has been set.
-func (o *ProjectConfigIn) HasAutoCompile() bool {
- if o != nil && !IsNil(o.AutoCompile) {
- return true
- }
-
- return false
-}
-
-// SetAutoCompile gets a reference to the given bool and assigns it to the AutoCompile field.
-func (o *ProjectConfigIn) SetAutoCompile(v bool) {
- o.AutoCompile = &v
-}
-
-// GetEngine returns the Engine field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *ProjectConfigIn) GetEngine() string {
- if o == nil || IsNil(o.Engine.Get()) {
- var ret string
- return ret
- }
- return *o.Engine.Get()
-}
-
-// GetEngineOk returns a tuple with the Engine field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *ProjectConfigIn) GetEngineOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Engine.Get(), o.Engine.IsSet()
-}
-
-// HasEngine returns a boolean if a field has been set.
-func (o *ProjectConfigIn) HasEngine() bool {
- if o != nil && o.Engine.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetEngine gets a reference to the given NullableString and assigns it to the Engine field.
-func (o *ProjectConfigIn) SetEngine(v string) {
- o.Engine.Set(&v)
-}
-// SetEngineNil sets the value for Engine to be an explicit nil
-func (o *ProjectConfigIn) SetEngineNil() {
- o.Engine.Set(nil)
-}
-
-// UnsetEngine ensures that no value is present for Engine, not even an explicit nil
-func (o *ProjectConfigIn) UnsetEngine() {
- o.Engine.Unset()
-}
-
-// GetEntrypoint returns the Entrypoint field value
-func (o *ProjectConfigIn) GetEntrypoint() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Entrypoint
-}
-
-// GetEntrypointOk returns a tuple with the Entrypoint field value
-// and a boolean to check if the value has been set.
-func (o *ProjectConfigIn) GetEntrypointOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Entrypoint, true
-}
-
-// SetEntrypoint sets field value
-func (o *ProjectConfigIn) SetEntrypoint(v string) {
- o.Entrypoint = v
-}
-
-func (o ProjectConfigIn) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ProjectConfigIn) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- if !IsNil(o.AutoCompile) {
- toSerialize["auto_compile"] = o.AutoCompile
- }
- if o.Engine.IsSet() {
- toSerialize["engine"] = o.Engine.Get()
- }
- toSerialize["entrypoint"] = o.Entrypoint
- return toSerialize, nil
-}
-
-func (o *ProjectConfigIn) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "entrypoint",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varProjectConfigIn := _ProjectConfigIn{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varProjectConfigIn)
-
- if err != nil {
- return err
- }
-
- *o = ProjectConfigIn(varProjectConfigIn)
-
- return err
-}
-
-type NullableProjectConfigIn struct {
- value *ProjectConfigIn
- isSet bool
-}
-
-func (v NullableProjectConfigIn) Get() *ProjectConfigIn {
- return v.value
-}
-
-func (v *NullableProjectConfigIn) Set(val *ProjectConfigIn) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableProjectConfigIn) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableProjectConfigIn) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableProjectConfigIn(val *ProjectConfigIn) *NullableProjectConfigIn {
- return &NullableProjectConfigIn{value: val, isSet: true}
-}
-
-func (v NullableProjectConfigIn) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableProjectConfigIn) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_protected_resource_metadata_out.go b/sdk/go/model_protected_resource_metadata_out.go
deleted file mode 100644
index 60d6be7..0000000
--- a/sdk/go/model_protected_resource_metadata_out.go
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
-)
-
-// checks if the ProtectedResourceMetadataOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ProtectedResourceMetadataOut{}
-
-// ProtectedResourceMetadataOut struct for ProtectedResourceMetadataOut
-type ProtectedResourceMetadataOut struct {
- AuthorizationServers []string `json:"authorization_servers"`
- BearerMethodsSupported []string `json:"bearer_methods_supported"`
- Resource string `json:"resource"`
- ScopesSupported []string `json:"scopes_supported"`
- AdditionalProperties map[string]interface{}
-}
-
-type _ProtectedResourceMetadataOut ProtectedResourceMetadataOut
-
-// NewProtectedResourceMetadataOut instantiates a new ProtectedResourceMetadataOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewProtectedResourceMetadataOut(authorizationServers []string, bearerMethodsSupported []string, resource string, scopesSupported []string) *ProtectedResourceMetadataOut {
- this := ProtectedResourceMetadataOut{}
- this.AuthorizationServers = authorizationServers
- this.BearerMethodsSupported = bearerMethodsSupported
- this.Resource = resource
- this.ScopesSupported = scopesSupported
- return &this
-}
-
-// NewProtectedResourceMetadataOutWithDefaults instantiates a new ProtectedResourceMetadataOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewProtectedResourceMetadataOutWithDefaults() *ProtectedResourceMetadataOut {
- this := ProtectedResourceMetadataOut{}
- return &this
-}
-
-// GetAuthorizationServers returns the AuthorizationServers field value
-func (o *ProtectedResourceMetadataOut) GetAuthorizationServers() []string {
- if o == nil {
- var ret []string
- return ret
- }
-
- return o.AuthorizationServers
-}
-
-// GetAuthorizationServersOk returns a tuple with the AuthorizationServers field value
-// and a boolean to check if the value has been set.
-func (o *ProtectedResourceMetadataOut) GetAuthorizationServersOk() ([]string, bool) {
- if o == nil {
- return nil, false
- }
- return o.AuthorizationServers, true
-}
-
-// SetAuthorizationServers sets field value
-func (o *ProtectedResourceMetadataOut) SetAuthorizationServers(v []string) {
- o.AuthorizationServers = v
-}
-
-// GetBearerMethodsSupported returns the BearerMethodsSupported field value
-func (o *ProtectedResourceMetadataOut) GetBearerMethodsSupported() []string {
- if o == nil {
- var ret []string
- return ret
- }
-
- return o.BearerMethodsSupported
-}
-
-// GetBearerMethodsSupportedOk returns a tuple with the BearerMethodsSupported field value
-// and a boolean to check if the value has been set.
-func (o *ProtectedResourceMetadataOut) GetBearerMethodsSupportedOk() ([]string, bool) {
- if o == nil {
- return nil, false
- }
- return o.BearerMethodsSupported, true
-}
-
-// SetBearerMethodsSupported sets field value
-func (o *ProtectedResourceMetadataOut) SetBearerMethodsSupported(v []string) {
- o.BearerMethodsSupported = v
-}
-
-// GetResource returns the Resource field value
-func (o *ProtectedResourceMetadataOut) GetResource() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Resource
-}
-
-// GetResourceOk returns a tuple with the Resource field value
-// and a boolean to check if the value has been set.
-func (o *ProtectedResourceMetadataOut) GetResourceOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Resource, true
-}
-
-// SetResource sets field value
-func (o *ProtectedResourceMetadataOut) SetResource(v string) {
- o.Resource = v
-}
-
-// GetScopesSupported returns the ScopesSupported field value
-func (o *ProtectedResourceMetadataOut) GetScopesSupported() []string {
- if o == nil {
- var ret []string
- return ret
- }
-
- return o.ScopesSupported
-}
-
-// GetScopesSupportedOk returns a tuple with the ScopesSupported field value
-// and a boolean to check if the value has been set.
-func (o *ProtectedResourceMetadataOut) GetScopesSupportedOk() ([]string, bool) {
- if o == nil {
- return nil, false
- }
- return o.ScopesSupported, true
-}
-
-// SetScopesSupported sets field value
-func (o *ProtectedResourceMetadataOut) SetScopesSupported(v []string) {
- o.ScopesSupported = v
-}
-
-func (o ProtectedResourceMetadataOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ProtectedResourceMetadataOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["authorization_servers"] = o.AuthorizationServers
- toSerialize["bearer_methods_supported"] = o.BearerMethodsSupported
- toSerialize["resource"] = o.Resource
- toSerialize["scopes_supported"] = o.ScopesSupported
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
- return toSerialize, nil
-}
-
-func (o *ProtectedResourceMetadataOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "authorization_servers",
- "bearer_methods_supported",
- "resource",
- "scopes_supported",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varProtectedResourceMetadataOut := _ProtectedResourceMetadataOut{}
-
- err = json.Unmarshal(data, &varProtectedResourceMetadataOut)
-
- if err != nil {
- return err
- }
-
- *o = ProtectedResourceMetadataOut(varProtectedResourceMetadataOut)
-
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "authorization_servers")
- delete(additionalProperties, "bearer_methods_supported")
- delete(additionalProperties, "resource")
- delete(additionalProperties, "scopes_supported")
- o.AdditionalProperties = additionalProperties
- }
-
- return err
-}
-
-type NullableProtectedResourceMetadataOut struct {
- value *ProtectedResourceMetadataOut
- isSet bool
-}
-
-func (v NullableProtectedResourceMetadataOut) Get() *ProtectedResourceMetadataOut {
- return v.value
-}
-
-func (v *NullableProtectedResourceMetadataOut) Set(val *ProtectedResourceMetadataOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableProtectedResourceMetadataOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableProtectedResourceMetadataOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableProtectedResourceMetadataOut(val *ProtectedResourceMetadataOut) *NullableProtectedResourceMetadataOut {
- return &NullableProtectedResourceMetadataOut{value: val, isSet: true}
-}
-
-func (v NullableProtectedResourceMetadataOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableProtectedResourceMetadataOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_query_column_out.go b/sdk/go/model_query_column_out.go
deleted file mode 100644
index bd80c85..0000000
--- a/sdk/go/model_query_column_out.go
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
-)
-
-// checks if the QueryColumnOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &QueryColumnOut{}
-
-// QueryColumnOut struct for QueryColumnOut
-type QueryColumnOut struct {
- Name string `json:"name"`
- Type NullableString `json:"type,omitempty"`
- AdditionalProperties map[string]interface{}
-}
-
-type _QueryColumnOut QueryColumnOut
-
-// NewQueryColumnOut instantiates a new QueryColumnOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewQueryColumnOut(name string) *QueryColumnOut {
- this := QueryColumnOut{}
- this.Name = name
- return &this
-}
-
-// NewQueryColumnOutWithDefaults instantiates a new QueryColumnOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewQueryColumnOutWithDefaults() *QueryColumnOut {
- this := QueryColumnOut{}
- return &this
-}
-
-// GetName returns the Name field value
-func (o *QueryColumnOut) GetName() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Name
-}
-
-// GetNameOk returns a tuple with the Name field value
-// and a boolean to check if the value has been set.
-func (o *QueryColumnOut) GetNameOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Name, true
-}
-
-// SetName sets field value
-func (o *QueryColumnOut) SetName(v string) {
- o.Name = v
-}
-
-// GetType returns the Type field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *QueryColumnOut) GetType() string {
- if o == nil || IsNil(o.Type.Get()) {
- var ret string
- return ret
- }
- return *o.Type.Get()
-}
-
-// GetTypeOk returns a tuple with the Type field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *QueryColumnOut) GetTypeOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Type.Get(), o.Type.IsSet()
-}
-
-// HasType returns a boolean if a field has been set.
-func (o *QueryColumnOut) HasType() bool {
- if o != nil && o.Type.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetType gets a reference to the given NullableString and assigns it to the Type field.
-func (o *QueryColumnOut) SetType(v string) {
- o.Type.Set(&v)
-}
-// SetTypeNil sets the value for Type to be an explicit nil
-func (o *QueryColumnOut) SetTypeNil() {
- o.Type.Set(nil)
-}
-
-// UnsetType ensures that no value is present for Type, not even an explicit nil
-func (o *QueryColumnOut) UnsetType() {
- o.Type.Unset()
-}
-
-func (o QueryColumnOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o QueryColumnOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["name"] = o.Name
- if o.Type.IsSet() {
- toSerialize["type"] = o.Type.Get()
- }
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
- return toSerialize, nil
-}
-
-func (o *QueryColumnOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "name",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varQueryColumnOut := _QueryColumnOut{}
-
- err = json.Unmarshal(data, &varQueryColumnOut)
-
- if err != nil {
- return err
- }
-
- *o = QueryColumnOut(varQueryColumnOut)
-
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "name")
- delete(additionalProperties, "type")
- o.AdditionalProperties = additionalProperties
- }
-
- return err
-}
-
-type NullableQueryColumnOut struct {
- value *QueryColumnOut
- isSet bool
-}
-
-func (v NullableQueryColumnOut) Get() *QueryColumnOut {
- return v.value
-}
-
-func (v *NullableQueryColumnOut) Set(val *QueryColumnOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableQueryColumnOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableQueryColumnOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableQueryColumnOut(val *QueryColumnOut) *NullableQueryColumnOut {
- return &NullableQueryColumnOut{value: val, isSet: true}
-}
-
-func (v NullableQueryColumnOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableQueryColumnOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_query_dry_run_out.go b/sdk/go/model_query_dry_run_out.go
deleted file mode 100644
index 0544e6d..0000000
--- a/sdk/go/model_query_dry_run_out.go
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
-)
-
-// checks if the QueryDryRunOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &QueryDryRunOut{}
-
-// QueryDryRunOut struct for QueryDryRunOut
-type QueryDryRunOut struct {
- DryRun bool `json:"dry_run"`
- Engine string `json:"engine"`
- EstimatedBytesProcessed int32 `json:"estimated_bytes_processed"`
- ResultSchema []QueryColumnOut `json:"result_schema"`
- Valid bool `json:"valid"`
- AdditionalProperties map[string]interface{}
-}
-
-type _QueryDryRunOut QueryDryRunOut
-
-// NewQueryDryRunOut instantiates a new QueryDryRunOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewQueryDryRunOut(dryRun bool, engine string, estimatedBytesProcessed int32, resultSchema []QueryColumnOut, valid bool) *QueryDryRunOut {
- this := QueryDryRunOut{}
- this.DryRun = dryRun
- this.Engine = engine
- this.EstimatedBytesProcessed = estimatedBytesProcessed
- this.ResultSchema = resultSchema
- this.Valid = valid
- return &this
-}
-
-// NewQueryDryRunOutWithDefaults instantiates a new QueryDryRunOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewQueryDryRunOutWithDefaults() *QueryDryRunOut {
- this := QueryDryRunOut{}
- return &this
-}
-
-// GetDryRun returns the DryRun field value
-func (o *QueryDryRunOut) GetDryRun() bool {
- if o == nil {
- var ret bool
- return ret
- }
-
- return o.DryRun
-}
-
-// GetDryRunOk returns a tuple with the DryRun field value
-// and a boolean to check if the value has been set.
-func (o *QueryDryRunOut) GetDryRunOk() (*bool, bool) {
- if o == nil {
- return nil, false
- }
- return &o.DryRun, true
-}
-
-// SetDryRun sets field value
-func (o *QueryDryRunOut) SetDryRun(v bool) {
- o.DryRun = v
-}
-
-// GetEngine returns the Engine field value
-func (o *QueryDryRunOut) GetEngine() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Engine
-}
-
-// GetEngineOk returns a tuple with the Engine field value
-// and a boolean to check if the value has been set.
-func (o *QueryDryRunOut) GetEngineOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Engine, true
-}
-
-// SetEngine sets field value
-func (o *QueryDryRunOut) SetEngine(v string) {
- o.Engine = v
-}
-
-// GetEstimatedBytesProcessed returns the EstimatedBytesProcessed field value
-func (o *QueryDryRunOut) GetEstimatedBytesProcessed() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.EstimatedBytesProcessed
-}
-
-// GetEstimatedBytesProcessedOk returns a tuple with the EstimatedBytesProcessed field value
-// and a boolean to check if the value has been set.
-func (o *QueryDryRunOut) GetEstimatedBytesProcessedOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.EstimatedBytesProcessed, true
-}
-
-// SetEstimatedBytesProcessed sets field value
-func (o *QueryDryRunOut) SetEstimatedBytesProcessed(v int32) {
- o.EstimatedBytesProcessed = v
-}
-
-// GetResultSchema returns the ResultSchema field value
-func (o *QueryDryRunOut) GetResultSchema() []QueryColumnOut {
- if o == nil {
- var ret []QueryColumnOut
- return ret
- }
-
- return o.ResultSchema
-}
-
-// GetResultSchemaOk returns a tuple with the ResultSchema field value
-// and a boolean to check if the value has been set.
-func (o *QueryDryRunOut) GetResultSchemaOk() ([]QueryColumnOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.ResultSchema, true
-}
-
-// SetResultSchema sets field value
-func (o *QueryDryRunOut) SetResultSchema(v []QueryColumnOut) {
- o.ResultSchema = v
-}
-
-// GetValid returns the Valid field value
-func (o *QueryDryRunOut) GetValid() bool {
- if o == nil {
- var ret bool
- return ret
- }
-
- return o.Valid
-}
-
-// GetValidOk returns a tuple with the Valid field value
-// and a boolean to check if the value has been set.
-func (o *QueryDryRunOut) GetValidOk() (*bool, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Valid, true
-}
-
-// SetValid sets field value
-func (o *QueryDryRunOut) SetValid(v bool) {
- o.Valid = v
-}
-
-func (o QueryDryRunOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o QueryDryRunOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["dry_run"] = o.DryRun
- toSerialize["engine"] = o.Engine
- toSerialize["estimated_bytes_processed"] = o.EstimatedBytesProcessed
- toSerialize["result_schema"] = o.ResultSchema
- toSerialize["valid"] = o.Valid
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
- return toSerialize, nil
-}
-
-func (o *QueryDryRunOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "dry_run",
- "engine",
- "estimated_bytes_processed",
- "result_schema",
- "valid",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varQueryDryRunOut := _QueryDryRunOut{}
-
- err = json.Unmarshal(data, &varQueryDryRunOut)
-
- if err != nil {
- return err
- }
-
- *o = QueryDryRunOut(varQueryDryRunOut)
-
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "dry_run")
- delete(additionalProperties, "engine")
- delete(additionalProperties, "estimated_bytes_processed")
- delete(additionalProperties, "result_schema")
- delete(additionalProperties, "valid")
- o.AdditionalProperties = additionalProperties
- }
-
- return err
-}
-
-type NullableQueryDryRunOut struct {
- value *QueryDryRunOut
- isSet bool
-}
-
-func (v NullableQueryDryRunOut) Get() *QueryDryRunOut {
- return v.value
-}
-
-func (v *NullableQueryDryRunOut) Set(val *QueryDryRunOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableQueryDryRunOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableQueryDryRunOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableQueryDryRunOut(val *QueryDryRunOut) *NullableQueryDryRunOut {
- return &NullableQueryDryRunOut{value: val, isSet: true}
-}
-
-func (v NullableQueryDryRunOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableQueryDryRunOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_query_in.go b/sdk/go/model_query_in.go
deleted file mode 100644
index 1d22cf1..0000000
--- a/sdk/go/model_query_in.go
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the QueryIn type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &QueryIn{}
-
-// QueryIn struct for QueryIn
-type QueryIn struct {
- DryRun *bool `json:"dry_run,omitempty"`
- Inputs map[string]string `json:"inputs,omitempty"`
- Sql string `json:"sql"`
-}
-
-type _QueryIn QueryIn
-
-// NewQueryIn instantiates a new QueryIn object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewQueryIn(sql string) *QueryIn {
- this := QueryIn{}
- var dryRun bool = false
- this.DryRun = &dryRun
- this.Sql = sql
- return &this
-}
-
-// NewQueryInWithDefaults instantiates a new QueryIn object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewQueryInWithDefaults() *QueryIn {
- this := QueryIn{}
- var dryRun bool = false
- this.DryRun = &dryRun
- return &this
-}
-
-// GetDryRun returns the DryRun field value if set, zero value otherwise.
-func (o *QueryIn) GetDryRun() bool {
- if o == nil || IsNil(o.DryRun) {
- var ret bool
- return ret
- }
- return *o.DryRun
-}
-
-// GetDryRunOk returns a tuple with the DryRun field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *QueryIn) GetDryRunOk() (*bool, bool) {
- if o == nil || IsNil(o.DryRun) {
- return nil, false
- }
- return o.DryRun, true
-}
-
-// HasDryRun returns a boolean if a field has been set.
-func (o *QueryIn) HasDryRun() bool {
- if o != nil && !IsNil(o.DryRun) {
- return true
- }
-
- return false
-}
-
-// SetDryRun gets a reference to the given bool and assigns it to the DryRun field.
-func (o *QueryIn) SetDryRun(v bool) {
- o.DryRun = &v
-}
-
-// GetInputs returns the Inputs field value if set, zero value otherwise.
-func (o *QueryIn) GetInputs() map[string]string {
- if o == nil || IsNil(o.Inputs) {
- var ret map[string]string
- return ret
- }
- return o.Inputs
-}
-
-// GetInputsOk returns a tuple with the Inputs field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *QueryIn) GetInputsOk() (map[string]string, bool) {
- if o == nil || IsNil(o.Inputs) {
- return map[string]string{}, false
- }
- return o.Inputs, true
-}
-
-// HasInputs returns a boolean if a field has been set.
-func (o *QueryIn) HasInputs() bool {
- if o != nil && !IsNil(o.Inputs) {
- return true
- }
-
- return false
-}
-
-// SetInputs gets a reference to the given map[string]string and assigns it to the Inputs field.
-func (o *QueryIn) SetInputs(v map[string]string) {
- o.Inputs = v
-}
-
-// GetSql returns the Sql field value
-func (o *QueryIn) GetSql() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Sql
-}
-
-// GetSqlOk returns a tuple with the Sql field value
-// and a boolean to check if the value has been set.
-func (o *QueryIn) GetSqlOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Sql, true
-}
-
-// SetSql sets field value
-func (o *QueryIn) SetSql(v string) {
- o.Sql = v
-}
-
-func (o QueryIn) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o QueryIn) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- if !IsNil(o.DryRun) {
- toSerialize["dry_run"] = o.DryRun
- }
- if !IsNil(o.Inputs) {
- toSerialize["inputs"] = o.Inputs
- }
- toSerialize["sql"] = o.Sql
- return toSerialize, nil
-}
-
-func (o *QueryIn) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "sql",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varQueryIn := _QueryIn{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varQueryIn)
-
- if err != nil {
- return err
- }
-
- *o = QueryIn(varQueryIn)
-
- return err
-}
-
-type NullableQueryIn struct {
- value *QueryIn
- isSet bool
-}
-
-func (v NullableQueryIn) Get() *QueryIn {
- return v.value
-}
-
-func (v *NullableQueryIn) Set(val *QueryIn) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableQueryIn) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableQueryIn) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableQueryIn(val *QueryIn) *NullableQueryIn {
- return &NullableQueryIn{value: val, isSet: true}
-}
-
-func (v NullableQueryIn) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableQueryIn) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_query_result_out.go b/sdk/go/model_query_result_out.go
deleted file mode 100644
index c2403b5..0000000
--- a/sdk/go/model_query_result_out.go
+++ /dev/null
@@ -1,340 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
-)
-
-// checks if the QueryResultOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &QueryResultOut{}
-
-// QueryResultOut struct for QueryResultOut
-type QueryResultOut struct {
- BytesProcessed int32 `json:"bytes_processed"`
- CacheHit bool `json:"cache_hit"`
- Engine string `json:"engine"`
- Preview []*map[string]interface{} `json:"preview"`
- ResultArtId string `json:"result_art_id"`
- ResultSchema []QueryColumnOut `json:"result_schema"`
- RowCount int32 `json:"row_count"`
- AdditionalProperties map[string]interface{}
-}
-
-type _QueryResultOut QueryResultOut
-
-// NewQueryResultOut instantiates a new QueryResultOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewQueryResultOut(bytesProcessed int32, cacheHit bool, engine string, preview []*map[string]interface{}, resultArtId string, resultSchema []QueryColumnOut, rowCount int32) *QueryResultOut {
- this := QueryResultOut{}
- this.BytesProcessed = bytesProcessed
- this.CacheHit = cacheHit
- this.Engine = engine
- this.Preview = preview
- this.ResultArtId = resultArtId
- this.ResultSchema = resultSchema
- this.RowCount = rowCount
- return &this
-}
-
-// NewQueryResultOutWithDefaults instantiates a new QueryResultOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewQueryResultOutWithDefaults() *QueryResultOut {
- this := QueryResultOut{}
- return &this
-}
-
-// GetBytesProcessed returns the BytesProcessed field value
-func (o *QueryResultOut) GetBytesProcessed() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.BytesProcessed
-}
-
-// GetBytesProcessedOk returns a tuple with the BytesProcessed field value
-// and a boolean to check if the value has been set.
-func (o *QueryResultOut) GetBytesProcessedOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.BytesProcessed, true
-}
-
-// SetBytesProcessed sets field value
-func (o *QueryResultOut) SetBytesProcessed(v int32) {
- o.BytesProcessed = v
-}
-
-// GetCacheHit returns the CacheHit field value
-func (o *QueryResultOut) GetCacheHit() bool {
- if o == nil {
- var ret bool
- return ret
- }
-
- return o.CacheHit
-}
-
-// GetCacheHitOk returns a tuple with the CacheHit field value
-// and a boolean to check if the value has been set.
-func (o *QueryResultOut) GetCacheHitOk() (*bool, bool) {
- if o == nil {
- return nil, false
- }
- return &o.CacheHit, true
-}
-
-// SetCacheHit sets field value
-func (o *QueryResultOut) SetCacheHit(v bool) {
- o.CacheHit = v
-}
-
-// GetEngine returns the Engine field value
-func (o *QueryResultOut) GetEngine() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Engine
-}
-
-// GetEngineOk returns a tuple with the Engine field value
-// and a boolean to check if the value has been set.
-func (o *QueryResultOut) GetEngineOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Engine, true
-}
-
-// SetEngine sets field value
-func (o *QueryResultOut) SetEngine(v string) {
- o.Engine = v
-}
-
-// GetPreview returns the Preview field value
-func (o *QueryResultOut) GetPreview() []*map[string]interface{} {
- if o == nil {
- var ret []*map[string]interface{}
- return ret
- }
-
- return o.Preview
-}
-
-// GetPreviewOk returns a tuple with the Preview field value
-// and a boolean to check if the value has been set.
-func (o *QueryResultOut) GetPreviewOk() ([]*map[string]interface{}, bool) {
- if o == nil {
- return nil, false
- }
- return o.Preview, true
-}
-
-// SetPreview sets field value
-func (o *QueryResultOut) SetPreview(v []*map[string]interface{}) {
- o.Preview = v
-}
-
-// GetResultArtId returns the ResultArtId field value
-func (o *QueryResultOut) GetResultArtId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.ResultArtId
-}
-
-// GetResultArtIdOk returns a tuple with the ResultArtId field value
-// and a boolean to check if the value has been set.
-func (o *QueryResultOut) GetResultArtIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ResultArtId, true
-}
-
-// SetResultArtId sets field value
-func (o *QueryResultOut) SetResultArtId(v string) {
- o.ResultArtId = v
-}
-
-// GetResultSchema returns the ResultSchema field value
-func (o *QueryResultOut) GetResultSchema() []QueryColumnOut {
- if o == nil {
- var ret []QueryColumnOut
- return ret
- }
-
- return o.ResultSchema
-}
-
-// GetResultSchemaOk returns a tuple with the ResultSchema field value
-// and a boolean to check if the value has been set.
-func (o *QueryResultOut) GetResultSchemaOk() ([]QueryColumnOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.ResultSchema, true
-}
-
-// SetResultSchema sets field value
-func (o *QueryResultOut) SetResultSchema(v []QueryColumnOut) {
- o.ResultSchema = v
-}
-
-// GetRowCount returns the RowCount field value
-func (o *QueryResultOut) GetRowCount() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.RowCount
-}
-
-// GetRowCountOk returns a tuple with the RowCount field value
-// and a boolean to check if the value has been set.
-func (o *QueryResultOut) GetRowCountOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.RowCount, true
-}
-
-// SetRowCount sets field value
-func (o *QueryResultOut) SetRowCount(v int32) {
- o.RowCount = v
-}
-
-func (o QueryResultOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o QueryResultOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["bytes_processed"] = o.BytesProcessed
- toSerialize["cache_hit"] = o.CacheHit
- toSerialize["engine"] = o.Engine
- toSerialize["preview"] = o.Preview
- toSerialize["result_art_id"] = o.ResultArtId
- toSerialize["result_schema"] = o.ResultSchema
- toSerialize["row_count"] = o.RowCount
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
- return toSerialize, nil
-}
-
-func (o *QueryResultOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "bytes_processed",
- "cache_hit",
- "engine",
- "preview",
- "result_art_id",
- "result_schema",
- "row_count",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varQueryResultOut := _QueryResultOut{}
-
- err = json.Unmarshal(data, &varQueryResultOut)
-
- if err != nil {
- return err
- }
-
- *o = QueryResultOut(varQueryResultOut)
-
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "bytes_processed")
- delete(additionalProperties, "cache_hit")
- delete(additionalProperties, "engine")
- delete(additionalProperties, "preview")
- delete(additionalProperties, "result_art_id")
- delete(additionalProperties, "result_schema")
- delete(additionalProperties, "row_count")
- o.AdditionalProperties = additionalProperties
- }
-
- return err
-}
-
-type NullableQueryResultOut struct {
- value *QueryResultOut
- isSet bool
-}
-
-func (v NullableQueryResultOut) Get() *QueryResultOut {
- return v.value
-}
-
-func (v *NullableQueryResultOut) Set(val *QueryResultOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableQueryResultOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableQueryResultOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableQueryResultOut(val *QueryResultOut) *NullableQueryResultOut {
- return &NullableQueryResultOut{value: val, isSet: true}
-}
-
-func (v NullableQueryResultOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableQueryResultOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_register_agent_identity_agent_identity_post_422_response.go b/sdk/go/model_register_agent_identity_agent_identity_post_422_response.go
deleted file mode 100644
index e9a1755..0000000
--- a/sdk/go/model_register_agent_identity_agent_identity_post_422_response.go
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
- "gopkg.in/validator.v2"
-)
-
-// RegisterAgentIdentityAgentIdentityPost422Response - struct for RegisterAgentIdentityAgentIdentityPost422Response
-type RegisterAgentIdentityAgentIdentityPost422Response struct {
- ErrorResponse *ErrorResponse
- ValidationErrorResponse *ValidationErrorResponse
-}
-
-// ErrorResponseAsRegisterAgentIdentityAgentIdentityPost422Response is a convenience function that returns ErrorResponse wrapped in RegisterAgentIdentityAgentIdentityPost422Response
-func ErrorResponseAsRegisterAgentIdentityAgentIdentityPost422Response(v *ErrorResponse) RegisterAgentIdentityAgentIdentityPost422Response {
- return RegisterAgentIdentityAgentIdentityPost422Response{
- ErrorResponse: v,
- }
-}
-
-// ValidationErrorResponseAsRegisterAgentIdentityAgentIdentityPost422Response is a convenience function that returns ValidationErrorResponse wrapped in RegisterAgentIdentityAgentIdentityPost422Response
-func ValidationErrorResponseAsRegisterAgentIdentityAgentIdentityPost422Response(v *ValidationErrorResponse) RegisterAgentIdentityAgentIdentityPost422Response {
- return RegisterAgentIdentityAgentIdentityPost422Response{
- ValidationErrorResponse: v,
- }
-}
-
-
-// Unmarshal JSON data into one of the pointers in the struct
-func (dst *RegisterAgentIdentityAgentIdentityPost422Response) UnmarshalJSON(data []byte) error {
- var err error
- match := 0
- // try to unmarshal data into ErrorResponse
- err = newStrictDecoder(data).Decode(&dst.ErrorResponse)
- if err == nil {
- jsonErrorResponse, _ := json.Marshal(dst.ErrorResponse)
- if string(jsonErrorResponse) == "{}" { // empty struct
- dst.ErrorResponse = nil
- } else {
- if err = validator.Validate(dst.ErrorResponse); err != nil {
- dst.ErrorResponse = nil
- } else {
- match++
- }
- }
- } else {
- dst.ErrorResponse = nil
- }
-
- // try to unmarshal data into ValidationErrorResponse
- err = newStrictDecoder(data).Decode(&dst.ValidationErrorResponse)
- if err == nil {
- jsonValidationErrorResponse, _ := json.Marshal(dst.ValidationErrorResponse)
- if string(jsonValidationErrorResponse) == "{}" { // empty struct
- dst.ValidationErrorResponse = nil
- } else {
- if err = validator.Validate(dst.ValidationErrorResponse); err != nil {
- dst.ValidationErrorResponse = nil
- } else {
- match++
- }
- }
- } else {
- dst.ValidationErrorResponse = nil
- }
-
- if match > 1 { // more than 1 match
- // reset to nil
- dst.ErrorResponse = nil
- dst.ValidationErrorResponse = nil
-
- return fmt.Errorf("data matches more than one schema in oneOf(RegisterAgentIdentityAgentIdentityPost422Response)")
- } else if match == 1 {
- return nil // exactly one match
- } else { // no match
- if err != nil {
- return fmt.Errorf("data failed to match schemas in oneOf(RegisterAgentIdentityAgentIdentityPost422Response): %v", err)
- } else {
- return fmt.Errorf("data failed to match schemas in oneOf(RegisterAgentIdentityAgentIdentityPost422Response)")
- }
- if err != nil {
- return fmt.Errorf("data failed to match schemas in oneOf(RegisterAgentIdentityAgentIdentityPost422Response): %v", err)
- } else {
- return fmt.Errorf("data failed to match schemas in oneOf(RegisterAgentIdentityAgentIdentityPost422Response)")
- }
- }
-}
-
-// Marshal data from the first non-nil pointers in the struct to JSON
-func (src RegisterAgentIdentityAgentIdentityPost422Response) MarshalJSON() ([]byte, error) {
- if src.ErrorResponse != nil {
- return json.Marshal(&src.ErrorResponse)
- }
-
- if src.ValidationErrorResponse != nil {
- return json.Marshal(&src.ValidationErrorResponse)
- }
-
- return nil, nil // no data in oneOf schemas
-}
-
-// Get the actual instance
-func (obj *RegisterAgentIdentityAgentIdentityPost422Response) GetActualInstance() (interface{}) {
- if obj == nil {
- return nil
- }
- if obj.ErrorResponse != nil {
- return obj.ErrorResponse
- }
-
- if obj.ValidationErrorResponse != nil {
- return obj.ValidationErrorResponse
- }
-
- // all schemas are nil
- return nil
-}
-
-// Get the actual instance value
-func (obj RegisterAgentIdentityAgentIdentityPost422Response) GetActualInstanceValue() (interface{}) {
- if obj.ErrorResponse != nil {
- return *obj.ErrorResponse
- }
-
- if obj.ValidationErrorResponse != nil {
- return *obj.ValidationErrorResponse
- }
-
- // all schemas are nil
- return nil
-}
-
-type NullableRegisterAgentIdentityAgentIdentityPost422Response struct {
- value *RegisterAgentIdentityAgentIdentityPost422Response
- isSet bool
-}
-
-func (v NullableRegisterAgentIdentityAgentIdentityPost422Response) Get() *RegisterAgentIdentityAgentIdentityPost422Response {
- return v.value
-}
-
-func (v *NullableRegisterAgentIdentityAgentIdentityPost422Response) Set(val *RegisterAgentIdentityAgentIdentityPost422Response) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableRegisterAgentIdentityAgentIdentityPost422Response) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableRegisterAgentIdentityAgentIdentityPost422Response) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableRegisterAgentIdentityAgentIdentityPost422Response(val *RegisterAgentIdentityAgentIdentityPost422Response) *NullableRegisterAgentIdentityAgentIdentityPost422Response {
- return &NullableRegisterAgentIdentityAgentIdentityPost422Response{value: val, isSet: true}
-}
-
-func (v NullableRegisterAgentIdentityAgentIdentityPost422Response) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableRegisterAgentIdentityAgentIdentityPost422Response) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_response_post_query_v0_query_post.go b/sdk/go/model_response_post_query_v0_query_post.go
deleted file mode 100644
index 5474f67..0000000
--- a/sdk/go/model_response_post_query_v0_query_post.go
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
-)
-
-
-// ResponsePostQueryV0QueryPost struct for ResponsePostQueryV0QueryPost
-type ResponsePostQueryV0QueryPost struct {
- QueryDryRunOut *QueryDryRunOut
- QueryResultOut *QueryResultOut
-}
-
-// Unmarshal JSON data into any of the pointers in the struct
-func (dst *ResponsePostQueryV0QueryPost) UnmarshalJSON(data []byte) error {
- var err error
- // try to unmarshal JSON data into QueryDryRunOut
- err = json.Unmarshal(data, &dst.QueryDryRunOut);
- if err == nil {
- jsonQueryDryRunOut, _ := json.Marshal(dst.QueryDryRunOut)
- if string(jsonQueryDryRunOut) == "{}" { // empty struct
- dst.QueryDryRunOut = nil
- } else {
- return nil // data stored in dst.QueryDryRunOut, return on the first match
- }
- } else {
- dst.QueryDryRunOut = nil
- }
-
- // try to unmarshal JSON data into QueryResultOut
- err = json.Unmarshal(data, &dst.QueryResultOut);
- if err == nil {
- jsonQueryResultOut, _ := json.Marshal(dst.QueryResultOut)
- if string(jsonQueryResultOut) == "{}" { // empty struct
- dst.QueryResultOut = nil
- } else {
- return nil // data stored in dst.QueryResultOut, return on the first match
- }
- } else {
- dst.QueryResultOut = nil
- }
-
- return fmt.Errorf("data failed to match schemas in anyOf(ResponsePostQueryV0QueryPost)")
-}
-
-// Marshal data from the first non-nil pointers in the struct to JSON
-func (src ResponsePostQueryV0QueryPost) MarshalJSON() ([]byte, error) {
- if src.QueryDryRunOut != nil {
- return json.Marshal(&src.QueryDryRunOut)
- }
-
- if src.QueryResultOut != nil {
- return json.Marshal(&src.QueryResultOut)
- }
-
- return nil, nil // no data in anyOf schemas
-}
-
-
-type NullableResponsePostQueryV0QueryPost struct {
- value *ResponsePostQueryV0QueryPost
- isSet bool
-}
-
-func (v NullableResponsePostQueryV0QueryPost) Get() *ResponsePostQueryV0QueryPost {
- return v.value
-}
-
-func (v *NullableResponsePostQueryV0QueryPost) Set(val *ResponsePostQueryV0QueryPost) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableResponsePostQueryV0QueryPost) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableResponsePostQueryV0QueryPost) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableResponsePostQueryV0QueryPost(val *ResponsePostQueryV0QueryPost) *NullableResponsePostQueryV0QueryPost {
- return &NullableResponsePostQueryV0QueryPost{value: val, isSet: true}
-}
-
-func (v NullableResponsePostQueryV0QueryPost) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableResponsePostQueryV0QueryPost) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_revoke_out.go b/sdk/go/model_revoke_out.go
deleted file mode 100644
index 4b0a6ea..0000000
--- a/sdk/go/model_revoke_out.go
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the RevokeOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &RevokeOut{}
-
-// RevokeOut DELETE /v0/grants/{grn_id}, DELETE /v0/shares/{shr_id}, DELETE /v0/invitations/{invitation_id} response — the unified revoke receipt. `revoked` is a COUNT: 1 when a live row was revoked, 0 when it was already gone (DELETE is idempotent).
-type RevokeOut struct {
- Id string `json:"id"`
- Ok *bool `json:"ok,omitempty"`
- Revoked int32 `json:"revoked"`
-}
-
-type _RevokeOut RevokeOut
-
-// NewRevokeOut instantiates a new RevokeOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewRevokeOut(id string, revoked int32) *RevokeOut {
- this := RevokeOut{}
- this.Id = id
- var ok bool = true
- this.Ok = &ok
- this.Revoked = revoked
- return &this
-}
-
-// NewRevokeOutWithDefaults instantiates a new RevokeOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewRevokeOutWithDefaults() *RevokeOut {
- this := RevokeOut{}
- var ok bool = true
- this.Ok = &ok
- return &this
-}
-
-// GetId returns the Id field value
-func (o *RevokeOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *RevokeOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *RevokeOut) SetId(v string) {
- o.Id = v
-}
-
-// GetOk returns the Ok field value if set, zero value otherwise.
-func (o *RevokeOut) GetOk() bool {
- if o == nil || IsNil(o.Ok) {
- var ret bool
- return ret
- }
- return *o.Ok
-}
-
-// GetOkOk returns a tuple with the Ok field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *RevokeOut) GetOkOk() (*bool, bool) {
- if o == nil || IsNil(o.Ok) {
- return nil, false
- }
- return o.Ok, true
-}
-
-// HasOk returns a boolean if a field has been set.
-func (o *RevokeOut) HasOk() bool {
- if o != nil && !IsNil(o.Ok) {
- return true
- }
-
- return false
-}
-
-// SetOk gets a reference to the given bool and assigns it to the Ok field.
-func (o *RevokeOut) SetOk(v bool) {
- o.Ok = &v
-}
-
-// GetRevoked returns the Revoked field value
-func (o *RevokeOut) GetRevoked() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.Revoked
-}
-
-// GetRevokedOk returns a tuple with the Revoked field value
-// and a boolean to check if the value has been set.
-func (o *RevokeOut) GetRevokedOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Revoked, true
-}
-
-// SetRevoked sets field value
-func (o *RevokeOut) SetRevoked(v int32) {
- o.Revoked = v
-}
-
-func (o RevokeOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o RevokeOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["id"] = o.Id
- if !IsNil(o.Ok) {
- toSerialize["ok"] = o.Ok
- }
- toSerialize["revoked"] = o.Revoked
- return toSerialize, nil
-}
-
-func (o *RevokeOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "id",
- "revoked",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varRevokeOut := _RevokeOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varRevokeOut)
-
- if err != nil {
- return err
- }
-
- *o = RevokeOut(varRevokeOut)
-
- return err
-}
-
-type NullableRevokeOut struct {
- value *RevokeOut
- isSet bool
-}
-
-func (v NullableRevokeOut) Get() *RevokeOut {
- return v.value
-}
-
-func (v *NullableRevokeOut) Set(val *RevokeOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableRevokeOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableRevokeOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableRevokeOut(val *RevokeOut) *NullableRevokeOut {
- return &NullableRevokeOut{value: val, isSet: true}
-}
-
-func (v NullableRevokeOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableRevokeOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_search_hit_out.go b/sdk/go/model_search_hit_out.go
index 8e39d1c..8a18628 100644
--- a/sdk/go/model_search_hit_out.go
+++ b/sdk/go/model_search_hit_out.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
@@ -22,17 +22,16 @@ var _ MappedNullable = &SearchHitOut{}
// SearchHitOut struct for SearchHitOut
type SearchHitOut struct {
- ArtId string `json:"art_id"`
- ContentType string `json:"content_type"`
- DriveId string `json:"drive_id"`
- FileType string `json:"file_type"`
- Labels []string `json:"labels,omitempty"`
- Path string `json:"path"`
- Score float32 `json:"score"`
+ ContentType NullableString `json:"content_type"`
+ DriveId string `json:"drive_id" validate:"regexp=^drv_[a-f0-9]{16}$"`
+ Id string `json:"id" validate:"regexp=^art_[a-f0-9]{16}$"`
+ Name string `json:"name"`
+ ParentId NullableString `json:"parent_id"`
+ Rank float32 `json:"rank"`
+ // HTML-safe highlighted excerpt. The ONLY markup it may contain is the server's own ... highlight pair; artifact content is entity-escaped, so this may be rendered as HTML.
Snippet string `json:"snippet"`
UpdatedAt time.Time `json:"updated_at"`
- Url string `json:"url"`
- VersionNumber int32 `json:"version_number"`
+ VersionId NullableString `json:"version_id"`
}
type _SearchHitOut SearchHitOut
@@ -41,18 +40,17 @@ type _SearchHitOut SearchHitOut
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
-func NewSearchHitOut(artId string, contentType string, driveId string, fileType string, path string, score float32, snippet string, updatedAt time.Time, url string, versionNumber int32) *SearchHitOut {
+func NewSearchHitOut(contentType NullableString, driveId string, id string, name string, parentId NullableString, rank float32, snippet string, updatedAt time.Time, versionId NullableString) *SearchHitOut {
this := SearchHitOut{}
- this.ArtId = artId
this.ContentType = contentType
this.DriveId = driveId
- this.FileType = fileType
- this.Path = path
- this.Score = score
+ this.Id = id
+ this.Name = name
+ this.ParentId = parentId
+ this.Rank = rank
this.Snippet = snippet
this.UpdatedAt = updatedAt
- this.Url = url
- this.VersionNumber = versionNumber
+ this.VersionId = versionId
return &this
}
@@ -64,52 +62,30 @@ func NewSearchHitOutWithDefaults() *SearchHitOut {
return &this
}
-// GetArtId returns the ArtId field value
-func (o *SearchHitOut) GetArtId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.ArtId
-}
-
-// GetArtIdOk returns a tuple with the ArtId field value
-// and a boolean to check if the value has been set.
-func (o *SearchHitOut) GetArtIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ArtId, true
-}
-
-// SetArtId sets field value
-func (o *SearchHitOut) SetArtId(v string) {
- o.ArtId = v
-}
-
// GetContentType returns the ContentType field value
+// If the value is explicit nil, the zero value for string will be returned
func (o *SearchHitOut) GetContentType() string {
- if o == nil {
+ if o == nil || o.ContentType.Get() == nil {
var ret string
return ret
}
- return o.ContentType
+ return *o.ContentType.Get()
}
// GetContentTypeOk returns a tuple with the ContentType field value
// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *SearchHitOut) GetContentTypeOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.ContentType, true
+ return o.ContentType.Get(), o.ContentType.IsSet()
}
// SetContentType sets field value
func (o *SearchHitOut) SetContentType(v string) {
- o.ContentType = v
+ o.ContentType.Set(&v)
}
// GetDriveId returns the DriveId field value
@@ -136,108 +112,102 @@ func (o *SearchHitOut) SetDriveId(v string) {
o.DriveId = v
}
-// GetFileType returns the FileType field value
-func (o *SearchHitOut) GetFileType() string {
+// GetId returns the Id field value
+func (o *SearchHitOut) GetId() string {
if o == nil {
var ret string
return ret
}
- return o.FileType
+ return o.Id
}
-// GetFileTypeOk returns a tuple with the FileType field value
+// GetIdOk returns a tuple with the Id field value
// and a boolean to check if the value has been set.
-func (o *SearchHitOut) GetFileTypeOk() (*string, bool) {
+func (o *SearchHitOut) GetIdOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.FileType, true
+ return &o.Id, true
}
-// SetFileType sets field value
-func (o *SearchHitOut) SetFileType(v string) {
- o.FileType = v
+// SetId sets field value
+func (o *SearchHitOut) SetId(v string) {
+ o.Id = v
}
-// GetLabels returns the Labels field value if set, zero value otherwise.
-func (o *SearchHitOut) GetLabels() []string {
- if o == nil || IsNil(o.Labels) {
- var ret []string
+// GetName returns the Name field value
+func (o *SearchHitOut) GetName() string {
+ if o == nil {
+ var ret string
return ret
}
- return o.Labels
+
+ return o.Name
}
-// GetLabelsOk returns a tuple with the Labels field value if set, nil otherwise
+// GetNameOk returns a tuple with the Name field value
// and a boolean to check if the value has been set.
-func (o *SearchHitOut) GetLabelsOk() ([]string, bool) {
- if o == nil || IsNil(o.Labels) {
+func (o *SearchHitOut) GetNameOk() (*string, bool) {
+ if o == nil {
return nil, false
}
- return o.Labels, true
+ return &o.Name, true
}
-// HasLabels returns a boolean if a field has been set.
-func (o *SearchHitOut) HasLabels() bool {
- if o != nil && !IsNil(o.Labels) {
- return true
- }
-
- return false
-}
-
-// SetLabels gets a reference to the given []string and assigns it to the Labels field.
-func (o *SearchHitOut) SetLabels(v []string) {
- o.Labels = v
+// SetName sets field value
+func (o *SearchHitOut) SetName(v string) {
+ o.Name = v
}
-// GetPath returns the Path field value
-func (o *SearchHitOut) GetPath() string {
- if o == nil {
+// GetParentId returns the ParentId field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *SearchHitOut) GetParentId() string {
+ if o == nil || o.ParentId.Get() == nil {
var ret string
return ret
}
- return o.Path
+ return *o.ParentId.Get()
}
-// GetPathOk returns a tuple with the Path field value
+// GetParentIdOk returns a tuple with the ParentId field value
// and a boolean to check if the value has been set.
-func (o *SearchHitOut) GetPathOk() (*string, bool) {
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *SearchHitOut) GetParentIdOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.Path, true
+ return o.ParentId.Get(), o.ParentId.IsSet()
}
-// SetPath sets field value
-func (o *SearchHitOut) SetPath(v string) {
- o.Path = v
+// SetParentId sets field value
+func (o *SearchHitOut) SetParentId(v string) {
+ o.ParentId.Set(&v)
}
-// GetScore returns the Score field value
-func (o *SearchHitOut) GetScore() float32 {
+// GetRank returns the Rank field value
+func (o *SearchHitOut) GetRank() float32 {
if o == nil {
var ret float32
return ret
}
- return o.Score
+ return o.Rank
}
-// GetScoreOk returns a tuple with the Score field value
+// GetRankOk returns a tuple with the Rank field value
// and a boolean to check if the value has been set.
-func (o *SearchHitOut) GetScoreOk() (*float32, bool) {
+func (o *SearchHitOut) GetRankOk() (*float32, bool) {
if o == nil {
return nil, false
}
- return &o.Score, true
+ return &o.Rank, true
}
-// SetScore sets field value
-func (o *SearchHitOut) SetScore(v float32) {
- o.Score = v
+// SetRank sets field value
+func (o *SearchHitOut) SetRank(v float32) {
+ o.Rank = v
}
// GetSnippet returns the Snippet field value
@@ -288,52 +258,30 @@ func (o *SearchHitOut) SetUpdatedAt(v time.Time) {
o.UpdatedAt = v
}
-// GetUrl returns the Url field value
-func (o *SearchHitOut) GetUrl() string {
- if o == nil {
+// GetVersionId returns the VersionId field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *SearchHitOut) GetVersionId() string {
+ if o == nil || o.VersionId.Get() == nil {
var ret string
return ret
}
- return o.Url
-}
-
-// GetUrlOk returns a tuple with the Url field value
-// and a boolean to check if the value has been set.
-func (o *SearchHitOut) GetUrlOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Url, true
-}
-
-// SetUrl sets field value
-func (o *SearchHitOut) SetUrl(v string) {
- o.Url = v
-}
-
-// GetVersionNumber returns the VersionNumber field value
-func (o *SearchHitOut) GetVersionNumber() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.VersionNumber
+ return *o.VersionId.Get()
}
-// GetVersionNumberOk returns a tuple with the VersionNumber field value
+// GetVersionIdOk returns a tuple with the VersionId field value
// and a boolean to check if the value has been set.
-func (o *SearchHitOut) GetVersionNumberOk() (*int32, bool) {
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *SearchHitOut) GetVersionIdOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.VersionNumber, true
+ return o.VersionId.Get(), o.VersionId.IsSet()
}
-// SetVersionNumber sets field value
-func (o *SearchHitOut) SetVersionNumber(v int32) {
- o.VersionNumber = v
+// SetVersionId sets field value
+func (o *SearchHitOut) SetVersionId(v string) {
+ o.VersionId.Set(&v)
}
func (o SearchHitOut) MarshalJSON() ([]byte, error) {
@@ -346,19 +294,15 @@ func (o SearchHitOut) MarshalJSON() ([]byte, error) {
func (o SearchHitOut) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
- toSerialize["art_id"] = o.ArtId
- toSerialize["content_type"] = o.ContentType
+ toSerialize["content_type"] = o.ContentType.Get()
toSerialize["drive_id"] = o.DriveId
- toSerialize["file_type"] = o.FileType
- if !IsNil(o.Labels) {
- toSerialize["labels"] = o.Labels
- }
- toSerialize["path"] = o.Path
- toSerialize["score"] = o.Score
+ toSerialize["id"] = o.Id
+ toSerialize["name"] = o.Name
+ toSerialize["parent_id"] = o.ParentId.Get()
+ toSerialize["rank"] = o.Rank
toSerialize["snippet"] = o.Snippet
toSerialize["updated_at"] = o.UpdatedAt
- toSerialize["url"] = o.Url
- toSerialize["version_number"] = o.VersionNumber
+ toSerialize["version_id"] = o.VersionId.Get()
return toSerialize, nil
}
@@ -367,16 +311,15 @@ func (o *SearchHitOut) UnmarshalJSON(data []byte) (err error) {
// by unmarshalling the object into a generic map with string keys and checking
// that every required field exists as a key in the generic map.
requiredProperties := []string{
- "art_id",
"content_type",
"drive_id",
- "file_type",
- "path",
- "score",
+ "id",
+ "name",
+ "parent_id",
+ "rank",
"snippet",
"updated_at",
- "url",
- "version_number",
+ "version_id",
}
allProperties := make(map[string]interface{})
diff --git a/sdk/go/model_search_page.go b/sdk/go/model_search_page.go
deleted file mode 100644
index 1c87434..0000000
--- a/sdk/go/model_search_page.go
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the SearchPage type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &SearchPage{}
-
-// SearchPage `/v0/search` response — single-shot top-N, deliberately unpaginated. Ranked retrieval doesn't paginate meaningfully (the industry norm: vector/RAG APIs are pure top-K; Algolia/GitHub cap ranked results outright) — the correct \"next page\" of a relevance-ranked list is a narrower query. Raise `limit` (≤100) for more hits. A `next_cursor` field advertised here in the past was structurally always null and was dropped; if deep retrieval is ever needed, an ES-`search_after` style `(score, id)` keyset can be re-added additively.
-type SearchPage struct {
- Items []SearchHitOut `json:"items"`
-}
-
-type _SearchPage SearchPage
-
-// NewSearchPage instantiates a new SearchPage object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewSearchPage(items []SearchHitOut) *SearchPage {
- this := SearchPage{}
- this.Items = items
- return &this
-}
-
-// NewSearchPageWithDefaults instantiates a new SearchPage object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewSearchPageWithDefaults() *SearchPage {
- this := SearchPage{}
- return &this
-}
-
-// GetItems returns the Items field value
-func (o *SearchPage) GetItems() []SearchHitOut {
- if o == nil {
- var ret []SearchHitOut
- return ret
- }
-
- return o.Items
-}
-
-// GetItemsOk returns a tuple with the Items field value
-// and a boolean to check if the value has been set.
-func (o *SearchPage) GetItemsOk() ([]SearchHitOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Items, true
-}
-
-// SetItems sets field value
-func (o *SearchPage) SetItems(v []SearchHitOut) {
- o.Items = v
-}
-
-func (o SearchPage) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o SearchPage) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["items"] = o.Items
- return toSerialize, nil
-}
-
-func (o *SearchPage) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "items",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varSearchPage := _SearchPage{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varSearchPage)
-
- if err != nil {
- return err
- }
-
- *o = SearchPage(varSearchPage)
-
- return err
-}
-
-type NullableSearchPage struct {
- value *SearchPage
- isSet bool
-}
-
-func (v NullableSearchPage) Get() *SearchPage {
- return v.value
-}
-
-func (v *NullableSearchPage) Set(val *SearchPage) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableSearchPage) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableSearchPage) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableSearchPage(val *SearchPage) *NullableSearchPage {
- return &NullableSearchPage{value: val, isSet: true}
-}
-
-func (v NullableSearchPage) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableSearchPage) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_search_page_out.go b/sdk/go/model_search_page_out.go
new file mode 100644
index 0000000..61437f5
--- /dev/null
+++ b/sdk/go/model_search_page_out.go
@@ -0,0 +1,186 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "bytes"
+ "fmt"
+)
+
+// checks if the SearchPageOut type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &SearchPageOut{}
+
+// SearchPageOut struct for SearchPageOut
+type SearchPageOut struct {
+ Items []SearchHitOut `json:"items"`
+ NextCursor NullableString `json:"next_cursor"`
+}
+
+type _SearchPageOut SearchPageOut
+
+// NewSearchPageOut instantiates a new SearchPageOut object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewSearchPageOut(items []SearchHitOut, nextCursor NullableString) *SearchPageOut {
+ this := SearchPageOut{}
+ this.Items = items
+ this.NextCursor = nextCursor
+ return &this
+}
+
+// NewSearchPageOutWithDefaults instantiates a new SearchPageOut object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewSearchPageOutWithDefaults() *SearchPageOut {
+ this := SearchPageOut{}
+ return &this
+}
+
+// GetItems returns the Items field value
+func (o *SearchPageOut) GetItems() []SearchHitOut {
+ if o == nil {
+ var ret []SearchHitOut
+ return ret
+ }
+
+ return o.Items
+}
+
+// GetItemsOk returns a tuple with the Items field value
+// and a boolean to check if the value has been set.
+func (o *SearchPageOut) GetItemsOk() ([]SearchHitOut, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.Items, true
+}
+
+// SetItems sets field value
+func (o *SearchPageOut) SetItems(v []SearchHitOut) {
+ o.Items = v
+}
+
+// GetNextCursor returns the NextCursor field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *SearchPageOut) GetNextCursor() string {
+ if o == nil || o.NextCursor.Get() == nil {
+ var ret string
+ return ret
+ }
+
+ return *o.NextCursor.Get()
+}
+
+// GetNextCursorOk returns a tuple with the NextCursor field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *SearchPageOut) GetNextCursorOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.NextCursor.Get(), o.NextCursor.IsSet()
+}
+
+// SetNextCursor sets field value
+func (o *SearchPageOut) SetNextCursor(v string) {
+ o.NextCursor.Set(&v)
+}
+
+func (o SearchPageOut) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o SearchPageOut) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["items"] = o.Items
+ toSerialize["next_cursor"] = o.NextCursor.Get()
+ return toSerialize, nil
+}
+
+func (o *SearchPageOut) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "items",
+ "next_cursor",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varSearchPageOut := _SearchPageOut{}
+
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varSearchPageOut)
+
+ if err != nil {
+ return err
+ }
+
+ *o = SearchPageOut(varSearchPageOut)
+
+ return err
+}
+
+type NullableSearchPageOut struct {
+ value *SearchPageOut
+ isSet bool
+}
+
+func (v NullableSearchPageOut) Get() *SearchPageOut {
+ return v.value
+}
+
+func (v *NullableSearchPageOut) Set(val *SearchPageOut) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableSearchPageOut) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableSearchPageOut) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableSearchPageOut(val *SearchPageOut) *NullableSearchPageOut {
+ return &NullableSearchPageOut{value: val, isSet: true}
+}
+
+func (v NullableSearchPageOut) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableSearchPageOut) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_share_create_in.go b/sdk/go/model_share_create_in.go
index 15db98e..b3c4f92 100644
--- a/sdk/go/model_share_create_in.go
+++ b/sdk/go/model_share_create_in.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
@@ -12,6 +12,7 @@ package agentdrive
import (
"encoding/json"
+ "time"
"bytes"
"fmt"
)
@@ -19,12 +20,11 @@ import (
// checks if the ShareCreateIn type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &ShareCreateIn{}
-// ShareCreateIn POST /v0/shares body. `resource` is an `art_*`/`fld_*` id or a path. `expires_in` is seconds from now (omit for the default: none for a human creator, a short TTL for an agent). `password` (optional) gates redemption.
+// ShareCreateIn POST /v0/drives/{id}/shares body.
type ShareCreateIn struct {
- ExpiresIn NullableInt32 `json:"expires_in,omitempty"`
- Password NullableString `json:"password,omitempty"`
- Resource string `json:"resource"`
- Role *string `json:"role,omitempty"`
+ ExpiresAt NullableTime `json:"expires_at,omitempty"`
+ ResourceId string `json:"resource_id"`
+ ResourceType string `json:"resource_type"`
}
type _ShareCreateIn ShareCreateIn
@@ -33,11 +33,10 @@ type _ShareCreateIn ShareCreateIn
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
-func NewShareCreateIn(resource string) *ShareCreateIn {
+func NewShareCreateIn(resourceId string, resourceType string) *ShareCreateIn {
this := ShareCreateIn{}
- this.Resource = resource
- var role string = "viewer"
- this.Role = &role
+ this.ResourceId = resourceId
+ this.ResourceType = resourceType
return &this
}
@@ -46,149 +45,97 @@ func NewShareCreateIn(resource string) *ShareCreateIn {
// but it doesn't guarantee that properties required by API are set
func NewShareCreateInWithDefaults() *ShareCreateIn {
this := ShareCreateIn{}
- var role string = "viewer"
- this.Role = &role
return &this
}
-// GetExpiresIn returns the ExpiresIn field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *ShareCreateIn) GetExpiresIn() int32 {
- if o == nil || IsNil(o.ExpiresIn.Get()) {
- var ret int32
+// GetExpiresAt returns the ExpiresAt field value if set, zero value otherwise (both if not set or set to explicit null).
+func (o *ShareCreateIn) GetExpiresAt() time.Time {
+ if o == nil || IsNil(o.ExpiresAt.Get()) {
+ var ret time.Time
return ret
}
- return *o.ExpiresIn.Get()
+ return *o.ExpiresAt.Get()
}
-// GetExpiresInOk returns a tuple with the ExpiresIn field value if set, nil otherwise
+// GetExpiresAtOk returns a tuple with the ExpiresAt field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *ShareCreateIn) GetExpiresInOk() (*int32, bool) {
+func (o *ShareCreateIn) GetExpiresAtOk() (*time.Time, bool) {
if o == nil {
return nil, false
}
- return o.ExpiresIn.Get(), o.ExpiresIn.IsSet()
+ return o.ExpiresAt.Get(), o.ExpiresAt.IsSet()
}
-// HasExpiresIn returns a boolean if a field has been set.
-func (o *ShareCreateIn) HasExpiresIn() bool {
- if o != nil && o.ExpiresIn.IsSet() {
+// HasExpiresAt returns a boolean if a field has been set.
+func (o *ShareCreateIn) HasExpiresAt() bool {
+ if o != nil && o.ExpiresAt.IsSet() {
return true
}
return false
}
-// SetExpiresIn gets a reference to the given NullableInt32 and assigns it to the ExpiresIn field.
-func (o *ShareCreateIn) SetExpiresIn(v int32) {
- o.ExpiresIn.Set(&v)
+// SetExpiresAt gets a reference to the given NullableTime and assigns it to the ExpiresAt field.
+func (o *ShareCreateIn) SetExpiresAt(v time.Time) {
+ o.ExpiresAt.Set(&v)
}
-// SetExpiresInNil sets the value for ExpiresIn to be an explicit nil
-func (o *ShareCreateIn) SetExpiresInNil() {
- o.ExpiresIn.Set(nil)
+// SetExpiresAtNil sets the value for ExpiresAt to be an explicit nil
+func (o *ShareCreateIn) SetExpiresAtNil() {
+ o.ExpiresAt.Set(nil)
}
-// UnsetExpiresIn ensures that no value is present for ExpiresIn, not even an explicit nil
-func (o *ShareCreateIn) UnsetExpiresIn() {
- o.ExpiresIn.Unset()
+// UnsetExpiresAt ensures that no value is present for ExpiresAt, not even an explicit nil
+func (o *ShareCreateIn) UnsetExpiresAt() {
+ o.ExpiresAt.Unset()
}
-// GetPassword returns the Password field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *ShareCreateIn) GetPassword() string {
- if o == nil || IsNil(o.Password.Get()) {
+// GetResourceId returns the ResourceId field value
+func (o *ShareCreateIn) GetResourceId() string {
+ if o == nil {
var ret string
return ret
}
- return *o.Password.Get()
+
+ return o.ResourceId
}
-// GetPasswordOk returns a tuple with the Password field value if set, nil otherwise
+// GetResourceIdOk returns a tuple with the ResourceId field value
// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *ShareCreateIn) GetPasswordOk() (*string, bool) {
+func (o *ShareCreateIn) GetResourceIdOk() (*string, bool) {
if o == nil {
return nil, false
}
- return o.Password.Get(), o.Password.IsSet()
-}
-
-// HasPassword returns a boolean if a field has been set.
-func (o *ShareCreateIn) HasPassword() bool {
- if o != nil && o.Password.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetPassword gets a reference to the given NullableString and assigns it to the Password field.
-func (o *ShareCreateIn) SetPassword(v string) {
- o.Password.Set(&v)
-}
-// SetPasswordNil sets the value for Password to be an explicit nil
-func (o *ShareCreateIn) SetPasswordNil() {
- o.Password.Set(nil)
+ return &o.ResourceId, true
}
-// UnsetPassword ensures that no value is present for Password, not even an explicit nil
-func (o *ShareCreateIn) UnsetPassword() {
- o.Password.Unset()
+// SetResourceId sets field value
+func (o *ShareCreateIn) SetResourceId(v string) {
+ o.ResourceId = v
}
-// GetResource returns the Resource field value
-func (o *ShareCreateIn) GetResource() string {
+// GetResourceType returns the ResourceType field value
+func (o *ShareCreateIn) GetResourceType() string {
if o == nil {
var ret string
return ret
}
- return o.Resource
+ return o.ResourceType
}
-// GetResourceOk returns a tuple with the Resource field value
+// GetResourceTypeOk returns a tuple with the ResourceType field value
// and a boolean to check if the value has been set.
-func (o *ShareCreateIn) GetResourceOk() (*string, bool) {
+func (o *ShareCreateIn) GetResourceTypeOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.Resource, true
-}
-
-// SetResource sets field value
-func (o *ShareCreateIn) SetResource(v string) {
- o.Resource = v
-}
-
-// GetRole returns the Role field value if set, zero value otherwise.
-func (o *ShareCreateIn) GetRole() string {
- if o == nil || IsNil(o.Role) {
- var ret string
- return ret
- }
- return *o.Role
-}
-
-// GetRoleOk returns a tuple with the Role field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *ShareCreateIn) GetRoleOk() (*string, bool) {
- if o == nil || IsNil(o.Role) {
- return nil, false
- }
- return o.Role, true
+ return &o.ResourceType, true
}
-// HasRole returns a boolean if a field has been set.
-func (o *ShareCreateIn) HasRole() bool {
- if o != nil && !IsNil(o.Role) {
- return true
- }
-
- return false
-}
-
-// SetRole gets a reference to the given string and assigns it to the Role field.
-func (o *ShareCreateIn) SetRole(v string) {
- o.Role = &v
+// SetResourceType sets field value
+func (o *ShareCreateIn) SetResourceType(v string) {
+ o.ResourceType = v
}
func (o ShareCreateIn) MarshalJSON() ([]byte, error) {
@@ -201,16 +148,11 @@ func (o ShareCreateIn) MarshalJSON() ([]byte, error) {
func (o ShareCreateIn) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
- if o.ExpiresIn.IsSet() {
- toSerialize["expires_in"] = o.ExpiresIn.Get()
- }
- if o.Password.IsSet() {
- toSerialize["password"] = o.Password.Get()
- }
- toSerialize["resource"] = o.Resource
- if !IsNil(o.Role) {
- toSerialize["role"] = o.Role
+ if o.ExpiresAt.IsSet() {
+ toSerialize["expires_at"] = o.ExpiresAt.Get()
}
+ toSerialize["resource_id"] = o.ResourceId
+ toSerialize["resource_type"] = o.ResourceType
return toSerialize, nil
}
@@ -219,7 +161,8 @@ func (o *ShareCreateIn) UnmarshalJSON(data []byte) (err error) {
// by unmarshalling the object into a generic map with string keys and checking
// that every required field exists as a key in the generic map.
requiredProperties := []string{
- "resource",
+ "resource_id",
+ "resource_type",
}
allProperties := make(map[string]interface{})
diff --git a/sdk/go/model_share_create_out.go b/sdk/go/model_share_create_out.go
new file mode 100644
index 0000000..d10bd90
--- /dev/null
+++ b/sdk/go/model_share_create_out.go
@@ -0,0 +1,492 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "time"
+ "bytes"
+ "fmt"
+)
+
+// checks if the ShareCreateOut type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &ShareCreateOut{}
+
+// ShareCreateOut The create/rotate response — the ONLY response carrying the plaintext secret.
+type ShareCreateOut struct {
+ CreatedAt time.Time `json:"created_at"`
+ CreatedBy NullableString `json:"created_by"`
+ DriveId string `json:"drive_id" validate:"regexp=^drv_[a-f0-9]{16}$"`
+ ExpiresAt NullableTime `json:"expires_at"`
+ Id string `json:"id" validate:"regexp=^shr_[a-f0-9]{16}$"`
+ ResourceId string `json:"resource_id"`
+ ResourceType string `json:"resource_type"`
+ Revision string `json:"revision" validate:"regexp=^rev_[a-f0-9]{16}$"`
+ RevokedAt NullableTime `json:"revoked_at"`
+ RotatedAt NullableTime `json:"rotated_at"`
+ // Plaintext share secret. Present only on first execution of a create or rotate; null on idempotent replay — rotate to obtain a new secret.
+ Secret NullableString `json:"secret,omitempty"`
+ State string `json:"state"`
+}
+
+type _ShareCreateOut ShareCreateOut
+
+// NewShareCreateOut instantiates a new ShareCreateOut object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewShareCreateOut(createdAt time.Time, createdBy NullableString, driveId string, expiresAt NullableTime, id string, resourceId string, resourceType string, revision string, revokedAt NullableTime, rotatedAt NullableTime, state string) *ShareCreateOut {
+ this := ShareCreateOut{}
+ this.CreatedAt = createdAt
+ this.CreatedBy = createdBy
+ this.DriveId = driveId
+ this.ExpiresAt = expiresAt
+ this.Id = id
+ this.ResourceId = resourceId
+ this.ResourceType = resourceType
+ this.Revision = revision
+ this.RevokedAt = revokedAt
+ this.RotatedAt = rotatedAt
+ this.State = state
+ return &this
+}
+
+// NewShareCreateOutWithDefaults instantiates a new ShareCreateOut object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewShareCreateOutWithDefaults() *ShareCreateOut {
+ this := ShareCreateOut{}
+ return &this
+}
+
+// GetCreatedAt returns the CreatedAt field value
+func (o *ShareCreateOut) GetCreatedAt() time.Time {
+ if o == nil {
+ var ret time.Time
+ return ret
+ }
+
+ return o.CreatedAt
+}
+
+// GetCreatedAtOk returns a tuple with the CreatedAt field value
+// and a boolean to check if the value has been set.
+func (o *ShareCreateOut) GetCreatedAtOk() (*time.Time, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.CreatedAt, true
+}
+
+// SetCreatedAt sets field value
+func (o *ShareCreateOut) SetCreatedAt(v time.Time) {
+ o.CreatedAt = v
+}
+
+// GetCreatedBy returns the CreatedBy field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *ShareCreateOut) GetCreatedBy() string {
+ if o == nil || o.CreatedBy.Get() == nil {
+ var ret string
+ return ret
+ }
+
+ return *o.CreatedBy.Get()
+}
+
+// GetCreatedByOk returns a tuple with the CreatedBy field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ShareCreateOut) GetCreatedByOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.CreatedBy.Get(), o.CreatedBy.IsSet()
+}
+
+// SetCreatedBy sets field value
+func (o *ShareCreateOut) SetCreatedBy(v string) {
+ o.CreatedBy.Set(&v)
+}
+
+// GetDriveId returns the DriveId field value
+func (o *ShareCreateOut) GetDriveId() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.DriveId
+}
+
+// GetDriveIdOk returns a tuple with the DriveId field value
+// and a boolean to check if the value has been set.
+func (o *ShareCreateOut) GetDriveIdOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.DriveId, true
+}
+
+// SetDriveId sets field value
+func (o *ShareCreateOut) SetDriveId(v string) {
+ o.DriveId = v
+}
+
+// GetExpiresAt returns the ExpiresAt field value
+// If the value is explicit nil, the zero value for time.Time will be returned
+func (o *ShareCreateOut) GetExpiresAt() time.Time {
+ if o == nil || o.ExpiresAt.Get() == nil {
+ var ret time.Time
+ return ret
+ }
+
+ return *o.ExpiresAt.Get()
+}
+
+// GetExpiresAtOk returns a tuple with the ExpiresAt field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ShareCreateOut) GetExpiresAtOk() (*time.Time, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.ExpiresAt.Get(), o.ExpiresAt.IsSet()
+}
+
+// SetExpiresAt sets field value
+func (o *ShareCreateOut) SetExpiresAt(v time.Time) {
+ o.ExpiresAt.Set(&v)
+}
+
+// GetId returns the Id field value
+func (o *ShareCreateOut) GetId() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.Id
+}
+
+// GetIdOk returns a tuple with the Id field value
+// and a boolean to check if the value has been set.
+func (o *ShareCreateOut) GetIdOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Id, true
+}
+
+// SetId sets field value
+func (o *ShareCreateOut) SetId(v string) {
+ o.Id = v
+}
+
+// GetResourceId returns the ResourceId field value
+func (o *ShareCreateOut) GetResourceId() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.ResourceId
+}
+
+// GetResourceIdOk returns a tuple with the ResourceId field value
+// and a boolean to check if the value has been set.
+func (o *ShareCreateOut) GetResourceIdOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.ResourceId, true
+}
+
+// SetResourceId sets field value
+func (o *ShareCreateOut) SetResourceId(v string) {
+ o.ResourceId = v
+}
+
+// GetResourceType returns the ResourceType field value
+func (o *ShareCreateOut) GetResourceType() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.ResourceType
+}
+
+// GetResourceTypeOk returns a tuple with the ResourceType field value
+// and a boolean to check if the value has been set.
+func (o *ShareCreateOut) GetResourceTypeOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.ResourceType, true
+}
+
+// SetResourceType sets field value
+func (o *ShareCreateOut) SetResourceType(v string) {
+ o.ResourceType = v
+}
+
+// GetRevision returns the Revision field value
+func (o *ShareCreateOut) GetRevision() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.Revision
+}
+
+// GetRevisionOk returns a tuple with the Revision field value
+// and a boolean to check if the value has been set.
+func (o *ShareCreateOut) GetRevisionOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Revision, true
+}
+
+// SetRevision sets field value
+func (o *ShareCreateOut) SetRevision(v string) {
+ o.Revision = v
+}
+
+// GetRevokedAt returns the RevokedAt field value
+// If the value is explicit nil, the zero value for time.Time will be returned
+func (o *ShareCreateOut) GetRevokedAt() time.Time {
+ if o == nil || o.RevokedAt.Get() == nil {
+ var ret time.Time
+ return ret
+ }
+
+ return *o.RevokedAt.Get()
+}
+
+// GetRevokedAtOk returns a tuple with the RevokedAt field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ShareCreateOut) GetRevokedAtOk() (*time.Time, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.RevokedAt.Get(), o.RevokedAt.IsSet()
+}
+
+// SetRevokedAt sets field value
+func (o *ShareCreateOut) SetRevokedAt(v time.Time) {
+ o.RevokedAt.Set(&v)
+}
+
+// GetRotatedAt returns the RotatedAt field value
+// If the value is explicit nil, the zero value for time.Time will be returned
+func (o *ShareCreateOut) GetRotatedAt() time.Time {
+ if o == nil || o.RotatedAt.Get() == nil {
+ var ret time.Time
+ return ret
+ }
+
+ return *o.RotatedAt.Get()
+}
+
+// GetRotatedAtOk returns a tuple with the RotatedAt field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ShareCreateOut) GetRotatedAtOk() (*time.Time, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.RotatedAt.Get(), o.RotatedAt.IsSet()
+}
+
+// SetRotatedAt sets field value
+func (o *ShareCreateOut) SetRotatedAt(v time.Time) {
+ o.RotatedAt.Set(&v)
+}
+
+// GetSecret returns the Secret field value if set, zero value otherwise (both if not set or set to explicit null).
+func (o *ShareCreateOut) GetSecret() string {
+ if o == nil || IsNil(o.Secret.Get()) {
+ var ret string
+ return ret
+ }
+ return *o.Secret.Get()
+}
+
+// GetSecretOk returns a tuple with the Secret field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ShareCreateOut) GetSecretOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.Secret.Get(), o.Secret.IsSet()
+}
+
+// HasSecret returns a boolean if a field has been set.
+func (o *ShareCreateOut) HasSecret() bool {
+ if o != nil && o.Secret.IsSet() {
+ return true
+ }
+
+ return false
+}
+
+// SetSecret gets a reference to the given NullableString and assigns it to the Secret field.
+func (o *ShareCreateOut) SetSecret(v string) {
+ o.Secret.Set(&v)
+}
+// SetSecretNil sets the value for Secret to be an explicit nil
+func (o *ShareCreateOut) SetSecretNil() {
+ o.Secret.Set(nil)
+}
+
+// UnsetSecret ensures that no value is present for Secret, not even an explicit nil
+func (o *ShareCreateOut) UnsetSecret() {
+ o.Secret.Unset()
+}
+
+// GetState returns the State field value
+func (o *ShareCreateOut) GetState() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.State
+}
+
+// GetStateOk returns a tuple with the State field value
+// and a boolean to check if the value has been set.
+func (o *ShareCreateOut) GetStateOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.State, true
+}
+
+// SetState sets field value
+func (o *ShareCreateOut) SetState(v string) {
+ o.State = v
+}
+
+func (o ShareCreateOut) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o ShareCreateOut) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["created_at"] = o.CreatedAt
+ toSerialize["created_by"] = o.CreatedBy.Get()
+ toSerialize["drive_id"] = o.DriveId
+ toSerialize["expires_at"] = o.ExpiresAt.Get()
+ toSerialize["id"] = o.Id
+ toSerialize["resource_id"] = o.ResourceId
+ toSerialize["resource_type"] = o.ResourceType
+ toSerialize["revision"] = o.Revision
+ toSerialize["revoked_at"] = o.RevokedAt.Get()
+ toSerialize["rotated_at"] = o.RotatedAt.Get()
+ if o.Secret.IsSet() {
+ toSerialize["secret"] = o.Secret.Get()
+ }
+ toSerialize["state"] = o.State
+ return toSerialize, nil
+}
+
+func (o *ShareCreateOut) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "created_at",
+ "created_by",
+ "drive_id",
+ "expires_at",
+ "id",
+ "resource_id",
+ "resource_type",
+ "revision",
+ "revoked_at",
+ "rotated_at",
+ "state",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varShareCreateOut := _ShareCreateOut{}
+
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varShareCreateOut)
+
+ if err != nil {
+ return err
+ }
+
+ *o = ShareCreateOut(varShareCreateOut)
+
+ return err
+}
+
+type NullableShareCreateOut struct {
+ value *ShareCreateOut
+ isSet bool
+}
+
+func (v NullableShareCreateOut) Get() *ShareCreateOut {
+ return v.value
+}
+
+func (v *NullableShareCreateOut) Set(val *ShareCreateOut) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableShareCreateOut) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableShareCreateOut) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableShareCreateOut(val *ShareCreateOut) *NullableShareCreateOut {
+ return &NullableShareCreateOut{value: val, isSet: true}
+}
+
+func (v NullableShareCreateOut) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableShareCreateOut) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_share_error_out.go b/sdk/go/model_share_error_out.go
deleted file mode 100644
index aa77c97..0000000
--- a/sdk/go/model_share_error_out.go
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the ShareErrorOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ShareErrorOut{}
-
-// ShareErrorOut Negotiated JSON error shape for the public share protocol.
-type ShareErrorOut struct {
- Error ErrorBody `json:"error"`
-}
-
-type _ShareErrorOut ShareErrorOut
-
-// NewShareErrorOut instantiates a new ShareErrorOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewShareErrorOut(error_ ErrorBody) *ShareErrorOut {
- this := ShareErrorOut{}
- this.Error = error_
- return &this
-}
-
-// NewShareErrorOutWithDefaults instantiates a new ShareErrorOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewShareErrorOutWithDefaults() *ShareErrorOut {
- this := ShareErrorOut{}
- return &this
-}
-
-// GetError returns the Error field value
-func (o *ShareErrorOut) GetError() ErrorBody {
- if o == nil {
- var ret ErrorBody
- return ret
- }
-
- return o.Error
-}
-
-// GetErrorOk returns a tuple with the Error field value
-// and a boolean to check if the value has been set.
-func (o *ShareErrorOut) GetErrorOk() (*ErrorBody, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Error, true
-}
-
-// SetError sets field value
-func (o *ShareErrorOut) SetError(v ErrorBody) {
- o.Error = v
-}
-
-func (o ShareErrorOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ShareErrorOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["error"] = o.Error
- return toSerialize, nil
-}
-
-func (o *ShareErrorOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "error",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varShareErrorOut := _ShareErrorOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varShareErrorOut)
-
- if err != nil {
- return err
- }
-
- *o = ShareErrorOut(varShareErrorOut)
-
- return err
-}
-
-type NullableShareErrorOut struct {
- value *ShareErrorOut
- isSet bool
-}
-
-func (v NullableShareErrorOut) Get() *ShareErrorOut {
- return v.value
-}
-
-func (v *NullableShareErrorOut) Set(val *ShareErrorOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableShareErrorOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableShareErrorOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableShareErrorOut(val *ShareErrorOut) *NullableShareErrorOut {
- return &NullableShareErrorOut{value: val, isSet: true}
-}
-
-func (v NullableShareErrorOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableShareErrorOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_share_list.go b/sdk/go/model_share_list.go
deleted file mode 100644
index c43a061..0000000
--- a/sdk/go/model_share_list.go
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the ShareList type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ShareList{}
-
-// ShareList struct for ShareList
-type ShareList struct {
- Items []ShareOut `json:"items"`
- NextCursor NullableString `json:"next_cursor,omitempty"`
-}
-
-type _ShareList ShareList
-
-// NewShareList instantiates a new ShareList object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewShareList(items []ShareOut) *ShareList {
- this := ShareList{}
- this.Items = items
- return &this
-}
-
-// NewShareListWithDefaults instantiates a new ShareList object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewShareListWithDefaults() *ShareList {
- this := ShareList{}
- return &this
-}
-
-// GetItems returns the Items field value
-func (o *ShareList) GetItems() []ShareOut {
- if o == nil {
- var ret []ShareOut
- return ret
- }
-
- return o.Items
-}
-
-// GetItemsOk returns a tuple with the Items field value
-// and a boolean to check if the value has been set.
-func (o *ShareList) GetItemsOk() ([]ShareOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Items, true
-}
-
-// SetItems sets field value
-func (o *ShareList) SetItems(v []ShareOut) {
- o.Items = v
-}
-
-// GetNextCursor returns the NextCursor field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *ShareList) GetNextCursor() string {
- if o == nil || IsNil(o.NextCursor.Get()) {
- var ret string
- return ret
- }
- return *o.NextCursor.Get()
-}
-
-// GetNextCursorOk returns a tuple with the NextCursor field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *ShareList) GetNextCursorOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.NextCursor.Get(), o.NextCursor.IsSet()
-}
-
-// HasNextCursor returns a boolean if a field has been set.
-func (o *ShareList) HasNextCursor() bool {
- if o != nil && o.NextCursor.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetNextCursor gets a reference to the given NullableString and assigns it to the NextCursor field.
-func (o *ShareList) SetNextCursor(v string) {
- o.NextCursor.Set(&v)
-}
-// SetNextCursorNil sets the value for NextCursor to be an explicit nil
-func (o *ShareList) SetNextCursorNil() {
- o.NextCursor.Set(nil)
-}
-
-// UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-func (o *ShareList) UnsetNextCursor() {
- o.NextCursor.Unset()
-}
-
-func (o ShareList) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ShareList) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["items"] = o.Items
- if o.NextCursor.IsSet() {
- toSerialize["next_cursor"] = o.NextCursor.Get()
- }
- return toSerialize, nil
-}
-
-func (o *ShareList) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "items",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varShareList := _ShareList{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varShareList)
-
- if err != nil {
- return err
- }
-
- *o = ShareList(varShareList)
-
- return err
-}
-
-type NullableShareList struct {
- value *ShareList
- isSet bool
-}
-
-func (v NullableShareList) Get() *ShareList {
- return v.value
-}
-
-func (v *NullableShareList) Set(val *ShareList) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableShareList) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableShareList) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableShareList(val *ShareList) *NullableShareList {
- return &NullableShareList{value: val, isSet: true}
-}
-
-func (v NullableShareList) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableShareList) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_share_list_out.go b/sdk/go/model_share_list_out.go
new file mode 100644
index 0000000..2f3db3b
--- /dev/null
+++ b/sdk/go/model_share_list_out.go
@@ -0,0 +1,186 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "bytes"
+ "fmt"
+)
+
+// checks if the ShareListOut type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &ShareListOut{}
+
+// ShareListOut struct for ShareListOut
+type ShareListOut struct {
+ Items []ShareOut `json:"items"`
+ NextCursor NullableString `json:"next_cursor"`
+}
+
+type _ShareListOut ShareListOut
+
+// NewShareListOut instantiates a new ShareListOut object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewShareListOut(items []ShareOut, nextCursor NullableString) *ShareListOut {
+ this := ShareListOut{}
+ this.Items = items
+ this.NextCursor = nextCursor
+ return &this
+}
+
+// NewShareListOutWithDefaults instantiates a new ShareListOut object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewShareListOutWithDefaults() *ShareListOut {
+ this := ShareListOut{}
+ return &this
+}
+
+// GetItems returns the Items field value
+func (o *ShareListOut) GetItems() []ShareOut {
+ if o == nil {
+ var ret []ShareOut
+ return ret
+ }
+
+ return o.Items
+}
+
+// GetItemsOk returns a tuple with the Items field value
+// and a boolean to check if the value has been set.
+func (o *ShareListOut) GetItemsOk() ([]ShareOut, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.Items, true
+}
+
+// SetItems sets field value
+func (o *ShareListOut) SetItems(v []ShareOut) {
+ o.Items = v
+}
+
+// GetNextCursor returns the NextCursor field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *ShareListOut) GetNextCursor() string {
+ if o == nil || o.NextCursor.Get() == nil {
+ var ret string
+ return ret
+ }
+
+ return *o.NextCursor.Get()
+}
+
+// GetNextCursorOk returns a tuple with the NextCursor field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ShareListOut) GetNextCursorOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.NextCursor.Get(), o.NextCursor.IsSet()
+}
+
+// SetNextCursor sets field value
+func (o *ShareListOut) SetNextCursor(v string) {
+ o.NextCursor.Set(&v)
+}
+
+func (o ShareListOut) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o ShareListOut) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["items"] = o.Items
+ toSerialize["next_cursor"] = o.NextCursor.Get()
+ return toSerialize, nil
+}
+
+func (o *ShareListOut) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "items",
+ "next_cursor",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varShareListOut := _ShareListOut{}
+
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varShareListOut)
+
+ if err != nil {
+ return err
+ }
+
+ *o = ShareListOut(varShareListOut)
+
+ return err
+}
+
+type NullableShareListOut struct {
+ value *ShareListOut
+ isSet bool
+}
+
+func (v NullableShareListOut) Get() *ShareListOut {
+ return v.value
+}
+
+func (v *NullableShareListOut) Set(val *ShareListOut) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableShareListOut) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableShareListOut) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableShareListOut(val *ShareListOut) *NullableShareListOut {
+ return &NullableShareListOut{value: val, isSet: true}
+}
+
+func (v NullableShareListOut) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableShareListOut) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_share_mint_out.go b/sdk/go/model_share_mint_out.go
deleted file mode 100644
index e662551..0000000
--- a/sdk/go/model_share_mint_out.go
+++ /dev/null
@@ -1,513 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the ShareMintOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ShareMintOut{}
-
-// ShareMintOut The create/rotate response — the ONLY place the `share_key` and its redemption `url` are exposed.
-type ShareMintOut struct {
- AccessCount *int32 `json:"access_count,omitempty"`
- Audience string `json:"audience"`
- CreatedAt time.Time `json:"created_at"`
- ExpiresAt NullableTime `json:"expires_at,omitempty"`
- HasPassword bool `json:"has_password"`
- Id string `json:"id"`
- LastAccessedAt NullableTime `json:"last_accessed_at,omitempty"`
- ResourceId string `json:"resource_id"`
- ResourceType string `json:"resource_type"`
- Role string `json:"role"`
- ShareKey string `json:"share_key"`
- Url string `json:"url"`
-}
-
-type _ShareMintOut ShareMintOut
-
-// NewShareMintOut instantiates a new ShareMintOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewShareMintOut(audience string, createdAt time.Time, hasPassword bool, id string, resourceId string, resourceType string, role string, shareKey string, url string) *ShareMintOut {
- this := ShareMintOut{}
- var accessCount int32 = 0
- this.AccessCount = &accessCount
- this.Audience = audience
- this.CreatedAt = createdAt
- this.HasPassword = hasPassword
- this.Id = id
- this.ResourceId = resourceId
- this.ResourceType = resourceType
- this.Role = role
- this.ShareKey = shareKey
- this.Url = url
- return &this
-}
-
-// NewShareMintOutWithDefaults instantiates a new ShareMintOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewShareMintOutWithDefaults() *ShareMintOut {
- this := ShareMintOut{}
- var accessCount int32 = 0
- this.AccessCount = &accessCount
- return &this
-}
-
-// GetAccessCount returns the AccessCount field value if set, zero value otherwise.
-func (o *ShareMintOut) GetAccessCount() int32 {
- if o == nil || IsNil(o.AccessCount) {
- var ret int32
- return ret
- }
- return *o.AccessCount
-}
-
-// GetAccessCountOk returns a tuple with the AccessCount field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *ShareMintOut) GetAccessCountOk() (*int32, bool) {
- if o == nil || IsNil(o.AccessCount) {
- return nil, false
- }
- return o.AccessCount, true
-}
-
-// HasAccessCount returns a boolean if a field has been set.
-func (o *ShareMintOut) HasAccessCount() bool {
- if o != nil && !IsNil(o.AccessCount) {
- return true
- }
-
- return false
-}
-
-// SetAccessCount gets a reference to the given int32 and assigns it to the AccessCount field.
-func (o *ShareMintOut) SetAccessCount(v int32) {
- o.AccessCount = &v
-}
-
-// GetAudience returns the Audience field value
-func (o *ShareMintOut) GetAudience() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Audience
-}
-
-// GetAudienceOk returns a tuple with the Audience field value
-// and a boolean to check if the value has been set.
-func (o *ShareMintOut) GetAudienceOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Audience, true
-}
-
-// SetAudience sets field value
-func (o *ShareMintOut) SetAudience(v string) {
- o.Audience = v
-}
-
-// GetCreatedAt returns the CreatedAt field value
-func (o *ShareMintOut) GetCreatedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.CreatedAt
-}
-
-// GetCreatedAtOk returns a tuple with the CreatedAt field value
-// and a boolean to check if the value has been set.
-func (o *ShareMintOut) GetCreatedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.CreatedAt, true
-}
-
-// SetCreatedAt sets field value
-func (o *ShareMintOut) SetCreatedAt(v time.Time) {
- o.CreatedAt = v
-}
-
-// GetExpiresAt returns the ExpiresAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *ShareMintOut) GetExpiresAt() time.Time {
- if o == nil || IsNil(o.ExpiresAt.Get()) {
- var ret time.Time
- return ret
- }
- return *o.ExpiresAt.Get()
-}
-
-// GetExpiresAtOk returns a tuple with the ExpiresAt field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *ShareMintOut) GetExpiresAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return o.ExpiresAt.Get(), o.ExpiresAt.IsSet()
-}
-
-// HasExpiresAt returns a boolean if a field has been set.
-func (o *ShareMintOut) HasExpiresAt() bool {
- if o != nil && o.ExpiresAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetExpiresAt gets a reference to the given NullableTime and assigns it to the ExpiresAt field.
-func (o *ShareMintOut) SetExpiresAt(v time.Time) {
- o.ExpiresAt.Set(&v)
-}
-// SetExpiresAtNil sets the value for ExpiresAt to be an explicit nil
-func (o *ShareMintOut) SetExpiresAtNil() {
- o.ExpiresAt.Set(nil)
-}
-
-// UnsetExpiresAt ensures that no value is present for ExpiresAt, not even an explicit nil
-func (o *ShareMintOut) UnsetExpiresAt() {
- o.ExpiresAt.Unset()
-}
-
-// GetHasPassword returns the HasPassword field value
-func (o *ShareMintOut) GetHasPassword() bool {
- if o == nil {
- var ret bool
- return ret
- }
-
- return o.HasPassword
-}
-
-// GetHasPasswordOk returns a tuple with the HasPassword field value
-// and a boolean to check if the value has been set.
-func (o *ShareMintOut) GetHasPasswordOk() (*bool, bool) {
- if o == nil {
- return nil, false
- }
- return &o.HasPassword, true
-}
-
-// SetHasPassword sets field value
-func (o *ShareMintOut) SetHasPassword(v bool) {
- o.HasPassword = v
-}
-
-// GetId returns the Id field value
-func (o *ShareMintOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *ShareMintOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *ShareMintOut) SetId(v string) {
- o.Id = v
-}
-
-// GetLastAccessedAt returns the LastAccessedAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *ShareMintOut) GetLastAccessedAt() time.Time {
- if o == nil || IsNil(o.LastAccessedAt.Get()) {
- var ret time.Time
- return ret
- }
- return *o.LastAccessedAt.Get()
-}
-
-// GetLastAccessedAtOk returns a tuple with the LastAccessedAt field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *ShareMintOut) GetLastAccessedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return o.LastAccessedAt.Get(), o.LastAccessedAt.IsSet()
-}
-
-// HasLastAccessedAt returns a boolean if a field has been set.
-func (o *ShareMintOut) HasLastAccessedAt() bool {
- if o != nil && o.LastAccessedAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetLastAccessedAt gets a reference to the given NullableTime and assigns it to the LastAccessedAt field.
-func (o *ShareMintOut) SetLastAccessedAt(v time.Time) {
- o.LastAccessedAt.Set(&v)
-}
-// SetLastAccessedAtNil sets the value for LastAccessedAt to be an explicit nil
-func (o *ShareMintOut) SetLastAccessedAtNil() {
- o.LastAccessedAt.Set(nil)
-}
-
-// UnsetLastAccessedAt ensures that no value is present for LastAccessedAt, not even an explicit nil
-func (o *ShareMintOut) UnsetLastAccessedAt() {
- o.LastAccessedAt.Unset()
-}
-
-// GetResourceId returns the ResourceId field value
-func (o *ShareMintOut) GetResourceId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.ResourceId
-}
-
-// GetResourceIdOk returns a tuple with the ResourceId field value
-// and a boolean to check if the value has been set.
-func (o *ShareMintOut) GetResourceIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ResourceId, true
-}
-
-// SetResourceId sets field value
-func (o *ShareMintOut) SetResourceId(v string) {
- o.ResourceId = v
-}
-
-// GetResourceType returns the ResourceType field value
-func (o *ShareMintOut) GetResourceType() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.ResourceType
-}
-
-// GetResourceTypeOk returns a tuple with the ResourceType field value
-// and a boolean to check if the value has been set.
-func (o *ShareMintOut) GetResourceTypeOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ResourceType, true
-}
-
-// SetResourceType sets field value
-func (o *ShareMintOut) SetResourceType(v string) {
- o.ResourceType = v
-}
-
-// GetRole returns the Role field value
-func (o *ShareMintOut) GetRole() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Role
-}
-
-// GetRoleOk returns a tuple with the Role field value
-// and a boolean to check if the value has been set.
-func (o *ShareMintOut) GetRoleOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Role, true
-}
-
-// SetRole sets field value
-func (o *ShareMintOut) SetRole(v string) {
- o.Role = v
-}
-
-// GetShareKey returns the ShareKey field value
-func (o *ShareMintOut) GetShareKey() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.ShareKey
-}
-
-// GetShareKeyOk returns a tuple with the ShareKey field value
-// and a boolean to check if the value has been set.
-func (o *ShareMintOut) GetShareKeyOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ShareKey, true
-}
-
-// SetShareKey sets field value
-func (o *ShareMintOut) SetShareKey(v string) {
- o.ShareKey = v
-}
-
-// GetUrl returns the Url field value
-func (o *ShareMintOut) GetUrl() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Url
-}
-
-// GetUrlOk returns a tuple with the Url field value
-// and a boolean to check if the value has been set.
-func (o *ShareMintOut) GetUrlOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Url, true
-}
-
-// SetUrl sets field value
-func (o *ShareMintOut) SetUrl(v string) {
- o.Url = v
-}
-
-func (o ShareMintOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ShareMintOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- if !IsNil(o.AccessCount) {
- toSerialize["access_count"] = o.AccessCount
- }
- toSerialize["audience"] = o.Audience
- toSerialize["created_at"] = o.CreatedAt
- if o.ExpiresAt.IsSet() {
- toSerialize["expires_at"] = o.ExpiresAt.Get()
- }
- toSerialize["has_password"] = o.HasPassword
- toSerialize["id"] = o.Id
- if o.LastAccessedAt.IsSet() {
- toSerialize["last_accessed_at"] = o.LastAccessedAt.Get()
- }
- toSerialize["resource_id"] = o.ResourceId
- toSerialize["resource_type"] = o.ResourceType
- toSerialize["role"] = o.Role
- toSerialize["share_key"] = o.ShareKey
- toSerialize["url"] = o.Url
- return toSerialize, nil
-}
-
-func (o *ShareMintOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "audience",
- "created_at",
- "has_password",
- "id",
- "resource_id",
- "resource_type",
- "role",
- "share_key",
- "url",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varShareMintOut := _ShareMintOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varShareMintOut)
-
- if err != nil {
- return err
- }
-
- *o = ShareMintOut(varShareMintOut)
-
- return err
-}
-
-type NullableShareMintOut struct {
- value *ShareMintOut
- isSet bool
-}
-
-func (v NullableShareMintOut) Get() *ShareMintOut {
- return v.value
-}
-
-func (v *NullableShareMintOut) Set(val *ShareMintOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableShareMintOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableShareMintOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableShareMintOut(val *ShareMintOut) *NullableShareMintOut {
- return &NullableShareMintOut{value: val, isSet: true}
-}
-
-func (v NullableShareMintOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableShareMintOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_share_out.go b/sdk/go/model_share_out.go
index c00f637..081455d 100644
--- a/sdk/go/model_share_out.go
+++ b/sdk/go/model_share_out.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
@@ -20,18 +20,19 @@ import (
// checks if the ShareOut type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &ShareOut{}
-// ShareOut A live share link as seen on list/management — NEVER carries the `share_key` (that is the credential, returned only at mint/rotate).
+// ShareOut struct for ShareOut
type ShareOut struct {
- AccessCount *int32 `json:"access_count,omitempty"`
- Audience string `json:"audience"`
CreatedAt time.Time `json:"created_at"`
- ExpiresAt NullableTime `json:"expires_at,omitempty"`
- HasPassword bool `json:"has_password"`
- Id string `json:"id"`
- LastAccessedAt NullableTime `json:"last_accessed_at,omitempty"`
+ CreatedBy NullableString `json:"created_by"`
+ DriveId string `json:"drive_id" validate:"regexp=^drv_[a-f0-9]{16}$"`
+ ExpiresAt NullableTime `json:"expires_at"`
+ Id string `json:"id" validate:"regexp=^shr_[a-f0-9]{16}$"`
ResourceId string `json:"resource_id"`
ResourceType string `json:"resource_type"`
- Role string `json:"role"`
+ Revision string `json:"revision" validate:"regexp=^rev_[a-f0-9]{16}$"`
+ RevokedAt NullableTime `json:"revoked_at"`
+ RotatedAt NullableTime `json:"rotated_at"`
+ State string `json:"state"`
}
type _ShareOut ShareOut
@@ -40,17 +41,19 @@ type _ShareOut ShareOut
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
-func NewShareOut(audience string, createdAt time.Time, hasPassword bool, id string, resourceId string, resourceType string, role string) *ShareOut {
+func NewShareOut(createdAt time.Time, createdBy NullableString, driveId string, expiresAt NullableTime, id string, resourceId string, resourceType string, revision string, revokedAt NullableTime, rotatedAt NullableTime, state string) *ShareOut {
this := ShareOut{}
- var accessCount int32 = 0
- this.AccessCount = &accessCount
- this.Audience = audience
this.CreatedAt = createdAt
- this.HasPassword = hasPassword
+ this.CreatedBy = createdBy
+ this.DriveId = driveId
+ this.ExpiresAt = expiresAt
this.Id = id
this.ResourceId = resourceId
this.ResourceType = resourceType
- this.Role = role
+ this.Revision = revision
+ this.RevokedAt = revokedAt
+ this.RotatedAt = rotatedAt
+ this.State = state
return &this
}
@@ -59,101 +62,95 @@ func NewShareOut(audience string, createdAt time.Time, hasPassword bool, id stri
// but it doesn't guarantee that properties required by API are set
func NewShareOutWithDefaults() *ShareOut {
this := ShareOut{}
- var accessCount int32 = 0
- this.AccessCount = &accessCount
return &this
}
-// GetAccessCount returns the AccessCount field value if set, zero value otherwise.
-func (o *ShareOut) GetAccessCount() int32 {
- if o == nil || IsNil(o.AccessCount) {
- var ret int32
+// GetCreatedAt returns the CreatedAt field value
+func (o *ShareOut) GetCreatedAt() time.Time {
+ if o == nil {
+ var ret time.Time
return ret
}
- return *o.AccessCount
+
+ return o.CreatedAt
}
-// GetAccessCountOk returns a tuple with the AccessCount field value if set, nil otherwise
+// GetCreatedAtOk returns a tuple with the CreatedAt field value
// and a boolean to check if the value has been set.
-func (o *ShareOut) GetAccessCountOk() (*int32, bool) {
- if o == nil || IsNil(o.AccessCount) {
+func (o *ShareOut) GetCreatedAtOk() (*time.Time, bool) {
+ if o == nil {
return nil, false
}
- return o.AccessCount, true
-}
-
-// HasAccessCount returns a boolean if a field has been set.
-func (o *ShareOut) HasAccessCount() bool {
- if o != nil && !IsNil(o.AccessCount) {
- return true
- }
-
- return false
+ return &o.CreatedAt, true
}
-// SetAccessCount gets a reference to the given int32 and assigns it to the AccessCount field.
-func (o *ShareOut) SetAccessCount(v int32) {
- o.AccessCount = &v
+// SetCreatedAt sets field value
+func (o *ShareOut) SetCreatedAt(v time.Time) {
+ o.CreatedAt = v
}
-// GetAudience returns the Audience field value
-func (o *ShareOut) GetAudience() string {
- if o == nil {
+// GetCreatedBy returns the CreatedBy field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *ShareOut) GetCreatedBy() string {
+ if o == nil || o.CreatedBy.Get() == nil {
var ret string
return ret
}
- return o.Audience
+ return *o.CreatedBy.Get()
}
-// GetAudienceOk returns a tuple with the Audience field value
+// GetCreatedByOk returns a tuple with the CreatedBy field value
// and a boolean to check if the value has been set.
-func (o *ShareOut) GetAudienceOk() (*string, bool) {
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ShareOut) GetCreatedByOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.Audience, true
+ return o.CreatedBy.Get(), o.CreatedBy.IsSet()
}
-// SetAudience sets field value
-func (o *ShareOut) SetAudience(v string) {
- o.Audience = v
+// SetCreatedBy sets field value
+func (o *ShareOut) SetCreatedBy(v string) {
+ o.CreatedBy.Set(&v)
}
-// GetCreatedAt returns the CreatedAt field value
-func (o *ShareOut) GetCreatedAt() time.Time {
+// GetDriveId returns the DriveId field value
+func (o *ShareOut) GetDriveId() string {
if o == nil {
- var ret time.Time
+ var ret string
return ret
}
- return o.CreatedAt
+ return o.DriveId
}
-// GetCreatedAtOk returns a tuple with the CreatedAt field value
+// GetDriveIdOk returns a tuple with the DriveId field value
// and a boolean to check if the value has been set.
-func (o *ShareOut) GetCreatedAtOk() (*time.Time, bool) {
+func (o *ShareOut) GetDriveIdOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.CreatedAt, true
+ return &o.DriveId, true
}
-// SetCreatedAt sets field value
-func (o *ShareOut) SetCreatedAt(v time.Time) {
- o.CreatedAt = v
+// SetDriveId sets field value
+func (o *ShareOut) SetDriveId(v string) {
+ o.DriveId = v
}
-// GetExpiresAt returns the ExpiresAt field value if set, zero value otherwise (both if not set or set to explicit null).
+// GetExpiresAt returns the ExpiresAt field value
+// If the value is explicit nil, the zero value for time.Time will be returned
func (o *ShareOut) GetExpiresAt() time.Time {
- if o == nil || IsNil(o.ExpiresAt.Get()) {
+ if o == nil || o.ExpiresAt.Get() == nil {
var ret time.Time
return ret
}
+
return *o.ExpiresAt.Get()
}
-// GetExpiresAtOk returns a tuple with the ExpiresAt field value if set, nil otherwise
+// GetExpiresAtOk returns a tuple with the ExpiresAt field value
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *ShareOut) GetExpiresAtOk() (*time.Time, bool) {
@@ -163,189 +160,181 @@ func (o *ShareOut) GetExpiresAtOk() (*time.Time, bool) {
return o.ExpiresAt.Get(), o.ExpiresAt.IsSet()
}
-// HasExpiresAt returns a boolean if a field has been set.
-func (o *ShareOut) HasExpiresAt() bool {
- if o != nil && o.ExpiresAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetExpiresAt gets a reference to the given NullableTime and assigns it to the ExpiresAt field.
+// SetExpiresAt sets field value
func (o *ShareOut) SetExpiresAt(v time.Time) {
o.ExpiresAt.Set(&v)
}
-// SetExpiresAtNil sets the value for ExpiresAt to be an explicit nil
-func (o *ShareOut) SetExpiresAtNil() {
- o.ExpiresAt.Set(nil)
-}
-
-// UnsetExpiresAt ensures that no value is present for ExpiresAt, not even an explicit nil
-func (o *ShareOut) UnsetExpiresAt() {
- o.ExpiresAt.Unset()
-}
-// GetHasPassword returns the HasPassword field value
-func (o *ShareOut) GetHasPassword() bool {
+// GetId returns the Id field value
+func (o *ShareOut) GetId() string {
if o == nil {
- var ret bool
+ var ret string
return ret
}
- return o.HasPassword
+ return o.Id
}
-// GetHasPasswordOk returns a tuple with the HasPassword field value
+// GetIdOk returns a tuple with the Id field value
// and a boolean to check if the value has been set.
-func (o *ShareOut) GetHasPasswordOk() (*bool, bool) {
+func (o *ShareOut) GetIdOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.HasPassword, true
+ return &o.Id, true
}
-// SetHasPassword sets field value
-func (o *ShareOut) SetHasPassword(v bool) {
- o.HasPassword = v
+// SetId sets field value
+func (o *ShareOut) SetId(v string) {
+ o.Id = v
}
-// GetId returns the Id field value
-func (o *ShareOut) GetId() string {
+// GetResourceId returns the ResourceId field value
+func (o *ShareOut) GetResourceId() string {
if o == nil {
var ret string
return ret
}
- return o.Id
+ return o.ResourceId
}
-// GetIdOk returns a tuple with the Id field value
+// GetResourceIdOk returns a tuple with the ResourceId field value
// and a boolean to check if the value has been set.
-func (o *ShareOut) GetIdOk() (*string, bool) {
+func (o *ShareOut) GetResourceIdOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.Id, true
+ return &o.ResourceId, true
}
-// SetId sets field value
-func (o *ShareOut) SetId(v string) {
- o.Id = v
+// SetResourceId sets field value
+func (o *ShareOut) SetResourceId(v string) {
+ o.ResourceId = v
}
-// GetLastAccessedAt returns the LastAccessedAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *ShareOut) GetLastAccessedAt() time.Time {
- if o == nil || IsNil(o.LastAccessedAt.Get()) {
- var ret time.Time
+// GetResourceType returns the ResourceType field value
+func (o *ShareOut) GetResourceType() string {
+ if o == nil {
+ var ret string
return ret
}
- return *o.LastAccessedAt.Get()
+
+ return o.ResourceType
}
-// GetLastAccessedAtOk returns a tuple with the LastAccessedAt field value if set, nil otherwise
+// GetResourceTypeOk returns a tuple with the ResourceType field value
// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *ShareOut) GetLastAccessedAtOk() (*time.Time, bool) {
+func (o *ShareOut) GetResourceTypeOk() (*string, bool) {
if o == nil {
return nil, false
}
- return o.LastAccessedAt.Get(), o.LastAccessedAt.IsSet()
+ return &o.ResourceType, true
+}
+
+// SetResourceType sets field value
+func (o *ShareOut) SetResourceType(v string) {
+ o.ResourceType = v
}
-// HasLastAccessedAt returns a boolean if a field has been set.
-func (o *ShareOut) HasLastAccessedAt() bool {
- if o != nil && o.LastAccessedAt.IsSet() {
- return true
+// GetRevision returns the Revision field value
+func (o *ShareOut) GetRevision() string {
+ if o == nil {
+ var ret string
+ return ret
}
- return false
+ return o.Revision
}
-// SetLastAccessedAt gets a reference to the given NullableTime and assigns it to the LastAccessedAt field.
-func (o *ShareOut) SetLastAccessedAt(v time.Time) {
- o.LastAccessedAt.Set(&v)
-}
-// SetLastAccessedAtNil sets the value for LastAccessedAt to be an explicit nil
-func (o *ShareOut) SetLastAccessedAtNil() {
- o.LastAccessedAt.Set(nil)
+// GetRevisionOk returns a tuple with the Revision field value
+// and a boolean to check if the value has been set.
+func (o *ShareOut) GetRevisionOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Revision, true
}
-// UnsetLastAccessedAt ensures that no value is present for LastAccessedAt, not even an explicit nil
-func (o *ShareOut) UnsetLastAccessedAt() {
- o.LastAccessedAt.Unset()
+// SetRevision sets field value
+func (o *ShareOut) SetRevision(v string) {
+ o.Revision = v
}
-// GetResourceId returns the ResourceId field value
-func (o *ShareOut) GetResourceId() string {
- if o == nil {
- var ret string
+// GetRevokedAt returns the RevokedAt field value
+// If the value is explicit nil, the zero value for time.Time will be returned
+func (o *ShareOut) GetRevokedAt() time.Time {
+ if o == nil || o.RevokedAt.Get() == nil {
+ var ret time.Time
return ret
}
- return o.ResourceId
+ return *o.RevokedAt.Get()
}
-// GetResourceIdOk returns a tuple with the ResourceId field value
+// GetRevokedAtOk returns a tuple with the RevokedAt field value
// and a boolean to check if the value has been set.
-func (o *ShareOut) GetResourceIdOk() (*string, bool) {
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ShareOut) GetRevokedAtOk() (*time.Time, bool) {
if o == nil {
return nil, false
}
- return &o.ResourceId, true
+ return o.RevokedAt.Get(), o.RevokedAt.IsSet()
}
-// SetResourceId sets field value
-func (o *ShareOut) SetResourceId(v string) {
- o.ResourceId = v
+// SetRevokedAt sets field value
+func (o *ShareOut) SetRevokedAt(v time.Time) {
+ o.RevokedAt.Set(&v)
}
-// GetResourceType returns the ResourceType field value
-func (o *ShareOut) GetResourceType() string {
- if o == nil {
- var ret string
+// GetRotatedAt returns the RotatedAt field value
+// If the value is explicit nil, the zero value for time.Time will be returned
+func (o *ShareOut) GetRotatedAt() time.Time {
+ if o == nil || o.RotatedAt.Get() == nil {
+ var ret time.Time
return ret
}
- return o.ResourceType
+ return *o.RotatedAt.Get()
}
-// GetResourceTypeOk returns a tuple with the ResourceType field value
+// GetRotatedAtOk returns a tuple with the RotatedAt field value
// and a boolean to check if the value has been set.
-func (o *ShareOut) GetResourceTypeOk() (*string, bool) {
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ShareOut) GetRotatedAtOk() (*time.Time, bool) {
if o == nil {
return nil, false
}
- return &o.ResourceType, true
+ return o.RotatedAt.Get(), o.RotatedAt.IsSet()
}
-// SetResourceType sets field value
-func (o *ShareOut) SetResourceType(v string) {
- o.ResourceType = v
+// SetRotatedAt sets field value
+func (o *ShareOut) SetRotatedAt(v time.Time) {
+ o.RotatedAt.Set(&v)
}
-// GetRole returns the Role field value
-func (o *ShareOut) GetRole() string {
+// GetState returns the State field value
+func (o *ShareOut) GetState() string {
if o == nil {
var ret string
return ret
}
- return o.Role
+ return o.State
}
-// GetRoleOk returns a tuple with the Role field value
+// GetStateOk returns a tuple with the State field value
// and a boolean to check if the value has been set.
-func (o *ShareOut) GetRoleOk() (*string, bool) {
+func (o *ShareOut) GetStateOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.Role, true
+ return &o.State, true
}
-// SetRole sets field value
-func (o *ShareOut) SetRole(v string) {
- o.Role = v
+// SetState sets field value
+func (o *ShareOut) SetState(v string) {
+ o.State = v
}
func (o ShareOut) MarshalJSON() ([]byte, error) {
@@ -358,22 +347,17 @@ func (o ShareOut) MarshalJSON() ([]byte, error) {
func (o ShareOut) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
- if !IsNil(o.AccessCount) {
- toSerialize["access_count"] = o.AccessCount
- }
- toSerialize["audience"] = o.Audience
toSerialize["created_at"] = o.CreatedAt
- if o.ExpiresAt.IsSet() {
- toSerialize["expires_at"] = o.ExpiresAt.Get()
- }
- toSerialize["has_password"] = o.HasPassword
+ toSerialize["created_by"] = o.CreatedBy.Get()
+ toSerialize["drive_id"] = o.DriveId
+ toSerialize["expires_at"] = o.ExpiresAt.Get()
toSerialize["id"] = o.Id
- if o.LastAccessedAt.IsSet() {
- toSerialize["last_accessed_at"] = o.LastAccessedAt.Get()
- }
toSerialize["resource_id"] = o.ResourceId
toSerialize["resource_type"] = o.ResourceType
- toSerialize["role"] = o.Role
+ toSerialize["revision"] = o.Revision
+ toSerialize["revoked_at"] = o.RevokedAt.Get()
+ toSerialize["rotated_at"] = o.RotatedAt.Get()
+ toSerialize["state"] = o.State
return toSerialize, nil
}
@@ -382,13 +366,17 @@ func (o *ShareOut) UnmarshalJSON(data []byte) (err error) {
// by unmarshalling the object into a generic map with string keys and checking
// that every required field exists as a key in the generic map.
requiredProperties := []string{
- "audience",
"created_at",
- "has_password",
+ "created_by",
+ "drive_id",
+ "expires_at",
"id",
"resource_id",
"resource_type",
- "role",
+ "revision",
+ "revoked_at",
+ "rotated_at",
+ "state",
}
allProperties := make(map[string]interface{})
diff --git a/sdk/go/model_share_redeem_out.go b/sdk/go/model_share_redeem_out.go
deleted file mode 100644
index 8f6e0d7..0000000
--- a/sdk/go/model_share_redeem_out.go
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the ShareRedeemOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ShareRedeemOut{}
-
-// ShareRedeemOut struct for ShareRedeemOut
-type ShareRedeemOut struct {
- ExpiresAt time.Time `json:"expires_at"`
- Role string `json:"role"`
- Token string `json:"token"`
- Url string `json:"url"`
-}
-
-type _ShareRedeemOut ShareRedeemOut
-
-// NewShareRedeemOut instantiates a new ShareRedeemOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewShareRedeemOut(expiresAt time.Time, role string, token string, url string) *ShareRedeemOut {
- this := ShareRedeemOut{}
- this.ExpiresAt = expiresAt
- this.Role = role
- this.Token = token
- this.Url = url
- return &this
-}
-
-// NewShareRedeemOutWithDefaults instantiates a new ShareRedeemOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewShareRedeemOutWithDefaults() *ShareRedeemOut {
- this := ShareRedeemOut{}
- return &this
-}
-
-// GetExpiresAt returns the ExpiresAt field value
-func (o *ShareRedeemOut) GetExpiresAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.ExpiresAt
-}
-
-// GetExpiresAtOk returns a tuple with the ExpiresAt field value
-// and a boolean to check if the value has been set.
-func (o *ShareRedeemOut) GetExpiresAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ExpiresAt, true
-}
-
-// SetExpiresAt sets field value
-func (o *ShareRedeemOut) SetExpiresAt(v time.Time) {
- o.ExpiresAt = v
-}
-
-// GetRole returns the Role field value
-func (o *ShareRedeemOut) GetRole() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Role
-}
-
-// GetRoleOk returns a tuple with the Role field value
-// and a boolean to check if the value has been set.
-func (o *ShareRedeemOut) GetRoleOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Role, true
-}
-
-// SetRole sets field value
-func (o *ShareRedeemOut) SetRole(v string) {
- o.Role = v
-}
-
-// GetToken returns the Token field value
-func (o *ShareRedeemOut) GetToken() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Token
-}
-
-// GetTokenOk returns a tuple with the Token field value
-// and a boolean to check if the value has been set.
-func (o *ShareRedeemOut) GetTokenOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Token, true
-}
-
-// SetToken sets field value
-func (o *ShareRedeemOut) SetToken(v string) {
- o.Token = v
-}
-
-// GetUrl returns the Url field value
-func (o *ShareRedeemOut) GetUrl() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Url
-}
-
-// GetUrlOk returns a tuple with the Url field value
-// and a boolean to check if the value has been set.
-func (o *ShareRedeemOut) GetUrlOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Url, true
-}
-
-// SetUrl sets field value
-func (o *ShareRedeemOut) SetUrl(v string) {
- o.Url = v
-}
-
-func (o ShareRedeemOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ShareRedeemOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["expires_at"] = o.ExpiresAt
- toSerialize["role"] = o.Role
- toSerialize["token"] = o.Token
- toSerialize["url"] = o.Url
- return toSerialize, nil
-}
-
-func (o *ShareRedeemOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "expires_at",
- "role",
- "token",
- "url",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varShareRedeemOut := _ShareRedeemOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varShareRedeemOut)
-
- if err != nil {
- return err
- }
-
- *o = ShareRedeemOut(varShareRedeemOut)
-
- return err
-}
-
-type NullableShareRedeemOut struct {
- value *ShareRedeemOut
- isSet bool
-}
-
-func (v NullableShareRedeemOut) Get() *ShareRedeemOut {
- return v.value
-}
-
-func (v *NullableShareRedeemOut) Set(val *ShareRedeemOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableShareRedeemOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableShareRedeemOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableShareRedeemOut(val *ShareRedeemOut) *NullableShareRedeemOut {
- return &NullableShareRedeemOut{value: val, isSet: true}
-}
-
-func (v NullableShareRedeemOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableShareRedeemOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_source_ref.go b/sdk/go/model_source_ref.go
deleted file mode 100644
index 25fca9c..0000000
--- a/sdk/go/model_source_ref.go
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the SourceRef type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &SourceRef{}
-
-// SourceRef One typed provenance ref. `type` is open-vocabulary (server validates only length, not the value), so callers can declare new types as their integrations evolve. `id` is the type-specific identifier — for `type='artifact'` this is an `art_…` ID.
-type SourceRef struct {
- Id string `json:"id"`
- Metadata map[string]interface{} `json:"metadata,omitempty"`
- Type string `json:"type"`
-}
-
-type _SourceRef SourceRef
-
-// NewSourceRef instantiates a new SourceRef object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewSourceRef(id string, type_ string) *SourceRef {
- this := SourceRef{}
- this.Id = id
- this.Type = type_
- return &this
-}
-
-// NewSourceRefWithDefaults instantiates a new SourceRef object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewSourceRefWithDefaults() *SourceRef {
- this := SourceRef{}
- return &this
-}
-
-// GetId returns the Id field value
-func (o *SourceRef) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *SourceRef) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *SourceRef) SetId(v string) {
- o.Id = v
-}
-
-// GetMetadata returns the Metadata field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *SourceRef) GetMetadata() map[string]interface{} {
- if o == nil {
- var ret map[string]interface{}
- return ret
- }
- return o.Metadata
-}
-
-// GetMetadataOk returns a tuple with the Metadata field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *SourceRef) GetMetadataOk() (map[string]interface{}, bool) {
- if o == nil || IsNil(o.Metadata) {
- return map[string]interface{}{}, false
- }
- return o.Metadata, true
-}
-
-// HasMetadata returns a boolean if a field has been set.
-func (o *SourceRef) HasMetadata() bool {
- if o != nil && !IsNil(o.Metadata) {
- return true
- }
-
- return false
-}
-
-// SetMetadata gets a reference to the given map[string]interface{} and assigns it to the Metadata field.
-func (o *SourceRef) SetMetadata(v map[string]interface{}) {
- o.Metadata = v
-}
-
-// GetType returns the Type field value
-func (o *SourceRef) GetType() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Type
-}
-
-// GetTypeOk returns a tuple with the Type field value
-// and a boolean to check if the value has been set.
-func (o *SourceRef) GetTypeOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Type, true
-}
-
-// SetType sets field value
-func (o *SourceRef) SetType(v string) {
- o.Type = v
-}
-
-func (o SourceRef) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o SourceRef) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["id"] = o.Id
- if o.Metadata != nil {
- toSerialize["metadata"] = o.Metadata
- }
- toSerialize["type"] = o.Type
- return toSerialize, nil
-}
-
-func (o *SourceRef) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "id",
- "type",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varSourceRef := _SourceRef{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varSourceRef)
-
- if err != nil {
- return err
- }
-
- *o = SourceRef(varSourceRef)
-
- return err
-}
-
-type NullableSourceRef struct {
- value *SourceRef
- isSet bool
-}
-
-func (v NullableSourceRef) Get() *SourceRef {
- return v.value
-}
-
-func (v *NullableSourceRef) Set(val *SourceRef) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableSourceRef) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableSourceRef) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableSourceRef(val *SourceRef) *NullableSourceRef {
- return &NullableSourceRef{value: val, isSet: true}
-}
-
-func (v NullableSourceRef) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableSourceRef) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_storage_breakdown_out.go b/sdk/go/model_storage_breakdown_out.go
deleted file mode 100644
index ad67a28..0000000
--- a/sdk/go/model_storage_breakdown_out.go
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the StorageBreakdownOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &StorageBreakdownOut{}
-
-// StorageBreakdownOut struct for StorageBreakdownOut
-type StorageBreakdownOut struct {
- AsOf string `json:"as_of"`
- LiveBytes int32 `json:"live_bytes"`
- TrashBytes int32 `json:"trash_bytes"`
- VersionBytes int32 `json:"version_bytes"`
-}
-
-type _StorageBreakdownOut StorageBreakdownOut
-
-// NewStorageBreakdownOut instantiates a new StorageBreakdownOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewStorageBreakdownOut(asOf string, liveBytes int32, trashBytes int32, versionBytes int32) *StorageBreakdownOut {
- this := StorageBreakdownOut{}
- this.AsOf = asOf
- this.LiveBytes = liveBytes
- this.TrashBytes = trashBytes
- this.VersionBytes = versionBytes
- return &this
-}
-
-// NewStorageBreakdownOutWithDefaults instantiates a new StorageBreakdownOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewStorageBreakdownOutWithDefaults() *StorageBreakdownOut {
- this := StorageBreakdownOut{}
- return &this
-}
-
-// GetAsOf returns the AsOf field value
-func (o *StorageBreakdownOut) GetAsOf() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.AsOf
-}
-
-// GetAsOfOk returns a tuple with the AsOf field value
-// and a boolean to check if the value has been set.
-func (o *StorageBreakdownOut) GetAsOfOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.AsOf, true
-}
-
-// SetAsOf sets field value
-func (o *StorageBreakdownOut) SetAsOf(v string) {
- o.AsOf = v
-}
-
-// GetLiveBytes returns the LiveBytes field value
-func (o *StorageBreakdownOut) GetLiveBytes() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.LiveBytes
-}
-
-// GetLiveBytesOk returns a tuple with the LiveBytes field value
-// and a boolean to check if the value has been set.
-func (o *StorageBreakdownOut) GetLiveBytesOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.LiveBytes, true
-}
-
-// SetLiveBytes sets field value
-func (o *StorageBreakdownOut) SetLiveBytes(v int32) {
- o.LiveBytes = v
-}
-
-// GetTrashBytes returns the TrashBytes field value
-func (o *StorageBreakdownOut) GetTrashBytes() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.TrashBytes
-}
-
-// GetTrashBytesOk returns a tuple with the TrashBytes field value
-// and a boolean to check if the value has been set.
-func (o *StorageBreakdownOut) GetTrashBytesOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.TrashBytes, true
-}
-
-// SetTrashBytes sets field value
-func (o *StorageBreakdownOut) SetTrashBytes(v int32) {
- o.TrashBytes = v
-}
-
-// GetVersionBytes returns the VersionBytes field value
-func (o *StorageBreakdownOut) GetVersionBytes() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.VersionBytes
-}
-
-// GetVersionBytesOk returns a tuple with the VersionBytes field value
-// and a boolean to check if the value has been set.
-func (o *StorageBreakdownOut) GetVersionBytesOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.VersionBytes, true
-}
-
-// SetVersionBytes sets field value
-func (o *StorageBreakdownOut) SetVersionBytes(v int32) {
- o.VersionBytes = v
-}
-
-func (o StorageBreakdownOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o StorageBreakdownOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["as_of"] = o.AsOf
- toSerialize["live_bytes"] = o.LiveBytes
- toSerialize["trash_bytes"] = o.TrashBytes
- toSerialize["version_bytes"] = o.VersionBytes
- return toSerialize, nil
-}
-
-func (o *StorageBreakdownOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "as_of",
- "live_bytes",
- "trash_bytes",
- "version_bytes",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varStorageBreakdownOut := _StorageBreakdownOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varStorageBreakdownOut)
-
- if err != nil {
- return err
- }
-
- *o = StorageBreakdownOut(varStorageBreakdownOut)
-
- return err
-}
-
-type NullableStorageBreakdownOut struct {
- value *StorageBreakdownOut
- isSet bool
-}
-
-func (v NullableStorageBreakdownOut) Get() *StorageBreakdownOut {
- return v.value
-}
-
-func (v *NullableStorageBreakdownOut) Set(val *StorageBreakdownOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableStorageBreakdownOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableStorageBreakdownOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableStorageBreakdownOut(val *StorageBreakdownOut) *NullableStorageBreakdownOut {
- return &NullableStorageBreakdownOut{value: val, isSet: true}
-}
-
-func (v NullableStorageBreakdownOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableStorageBreakdownOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_storage_footprint_out.go b/sdk/go/model_storage_footprint_out.go
deleted file mode 100644
index c31fdde..0000000
--- a/sdk/go/model_storage_footprint_out.go
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the StorageFootprintOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &StorageFootprintOut{}
-
-// StorageFootprintOut struct for StorageFootprintOut
-type StorageFootprintOut struct {
- AsOf NullableString `json:"as_of,omitempty"`
- LiveBytes int32 `json:"live_bytes"`
- TotalBytes int32 `json:"total_bytes"`
- TrashBytes int32 `json:"trash_bytes"`
- VersionBytes int32 `json:"version_bytes"`
-}
-
-type _StorageFootprintOut StorageFootprintOut
-
-// NewStorageFootprintOut instantiates a new StorageFootprintOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewStorageFootprintOut(liveBytes int32, totalBytes int32, trashBytes int32, versionBytes int32) *StorageFootprintOut {
- this := StorageFootprintOut{}
- this.LiveBytes = liveBytes
- this.TotalBytes = totalBytes
- this.TrashBytes = trashBytes
- this.VersionBytes = versionBytes
- return &this
-}
-
-// NewStorageFootprintOutWithDefaults instantiates a new StorageFootprintOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewStorageFootprintOutWithDefaults() *StorageFootprintOut {
- this := StorageFootprintOut{}
- return &this
-}
-
-// GetAsOf returns the AsOf field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *StorageFootprintOut) GetAsOf() string {
- if o == nil || IsNil(o.AsOf.Get()) {
- var ret string
- return ret
- }
- return *o.AsOf.Get()
-}
-
-// GetAsOfOk returns a tuple with the AsOf field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *StorageFootprintOut) GetAsOfOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.AsOf.Get(), o.AsOf.IsSet()
-}
-
-// HasAsOf returns a boolean if a field has been set.
-func (o *StorageFootprintOut) HasAsOf() bool {
- if o != nil && o.AsOf.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetAsOf gets a reference to the given NullableString and assigns it to the AsOf field.
-func (o *StorageFootprintOut) SetAsOf(v string) {
- o.AsOf.Set(&v)
-}
-// SetAsOfNil sets the value for AsOf to be an explicit nil
-func (o *StorageFootprintOut) SetAsOfNil() {
- o.AsOf.Set(nil)
-}
-
-// UnsetAsOf ensures that no value is present for AsOf, not even an explicit nil
-func (o *StorageFootprintOut) UnsetAsOf() {
- o.AsOf.Unset()
-}
-
-// GetLiveBytes returns the LiveBytes field value
-func (o *StorageFootprintOut) GetLiveBytes() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.LiveBytes
-}
-
-// GetLiveBytesOk returns a tuple with the LiveBytes field value
-// and a boolean to check if the value has been set.
-func (o *StorageFootprintOut) GetLiveBytesOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.LiveBytes, true
-}
-
-// SetLiveBytes sets field value
-func (o *StorageFootprintOut) SetLiveBytes(v int32) {
- o.LiveBytes = v
-}
-
-// GetTotalBytes returns the TotalBytes field value
-func (o *StorageFootprintOut) GetTotalBytes() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.TotalBytes
-}
-
-// GetTotalBytesOk returns a tuple with the TotalBytes field value
-// and a boolean to check if the value has been set.
-func (o *StorageFootprintOut) GetTotalBytesOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.TotalBytes, true
-}
-
-// SetTotalBytes sets field value
-func (o *StorageFootprintOut) SetTotalBytes(v int32) {
- o.TotalBytes = v
-}
-
-// GetTrashBytes returns the TrashBytes field value
-func (o *StorageFootprintOut) GetTrashBytes() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.TrashBytes
-}
-
-// GetTrashBytesOk returns a tuple with the TrashBytes field value
-// and a boolean to check if the value has been set.
-func (o *StorageFootprintOut) GetTrashBytesOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.TrashBytes, true
-}
-
-// SetTrashBytes sets field value
-func (o *StorageFootprintOut) SetTrashBytes(v int32) {
- o.TrashBytes = v
-}
-
-// GetVersionBytes returns the VersionBytes field value
-func (o *StorageFootprintOut) GetVersionBytes() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.VersionBytes
-}
-
-// GetVersionBytesOk returns a tuple with the VersionBytes field value
-// and a boolean to check if the value has been set.
-func (o *StorageFootprintOut) GetVersionBytesOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.VersionBytes, true
-}
-
-// SetVersionBytes sets field value
-func (o *StorageFootprintOut) SetVersionBytes(v int32) {
- o.VersionBytes = v
-}
-
-func (o StorageFootprintOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o StorageFootprintOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- if o.AsOf.IsSet() {
- toSerialize["as_of"] = o.AsOf.Get()
- }
- toSerialize["live_bytes"] = o.LiveBytes
- toSerialize["total_bytes"] = o.TotalBytes
- toSerialize["trash_bytes"] = o.TrashBytes
- toSerialize["version_bytes"] = o.VersionBytes
- return toSerialize, nil
-}
-
-func (o *StorageFootprintOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "live_bytes",
- "total_bytes",
- "trash_bytes",
- "version_bytes",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varStorageFootprintOut := _StorageFootprintOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varStorageFootprintOut)
-
- if err != nil {
- return err
- }
-
- *o = StorageFootprintOut(varStorageFootprintOut)
-
- return err
-}
-
-type NullableStorageFootprintOut struct {
- value *StorageFootprintOut
- isSet bool
-}
-
-func (v NullableStorageFootprintOut) Get() *StorageFootprintOut {
- return v.value
-}
-
-func (v *NullableStorageFootprintOut) Set(val *StorageFootprintOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableStorageFootprintOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableStorageFootprintOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableStorageFootprintOut(val *StorageFootprintOut) *NullableStorageFootprintOut {
- return &NullableStorageFootprintOut{value: val, isSet: true}
-}
-
-func (v NullableStorageFootprintOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableStorageFootprintOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_token_response.go b/sdk/go/model_token_response.go
deleted file mode 100644
index 2cf9fea..0000000
--- a/sdk/go/model_token_response.go
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the TokenResponse type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &TokenResponse{}
-
-// TokenResponse `POST /oauth2/token` success response. Mirrors RFC 6749 with an optional `identity_assertion` field for the claim grant path (where a fresh post-claim assertion supersedes the pre-claim one).
-type TokenResponse struct {
- AccessToken string `json:"access_token"`
- // Seconds until access_token expiry.
- ExpiresIn int32 `json:"expires_in"`
- IdentityAssertion NullableString `json:"identity_assertion,omitempty"`
- Scope string `json:"scope"`
- TokenType *string `json:"token_type,omitempty"`
-}
-
-type _TokenResponse TokenResponse
-
-// NewTokenResponse instantiates a new TokenResponse object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewTokenResponse(accessToken string, expiresIn int32, scope string) *TokenResponse {
- this := TokenResponse{}
- this.AccessToken = accessToken
- this.ExpiresIn = expiresIn
- this.Scope = scope
- var tokenType string = "Bearer"
- this.TokenType = &tokenType
- return &this
-}
-
-// NewTokenResponseWithDefaults instantiates a new TokenResponse object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewTokenResponseWithDefaults() *TokenResponse {
- this := TokenResponse{}
- var tokenType string = "Bearer"
- this.TokenType = &tokenType
- return &this
-}
-
-// GetAccessToken returns the AccessToken field value
-func (o *TokenResponse) GetAccessToken() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.AccessToken
-}
-
-// GetAccessTokenOk returns a tuple with the AccessToken field value
-// and a boolean to check if the value has been set.
-func (o *TokenResponse) GetAccessTokenOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.AccessToken, true
-}
-
-// SetAccessToken sets field value
-func (o *TokenResponse) SetAccessToken(v string) {
- o.AccessToken = v
-}
-
-// GetExpiresIn returns the ExpiresIn field value
-func (o *TokenResponse) GetExpiresIn() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.ExpiresIn
-}
-
-// GetExpiresInOk returns a tuple with the ExpiresIn field value
-// and a boolean to check if the value has been set.
-func (o *TokenResponse) GetExpiresInOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ExpiresIn, true
-}
-
-// SetExpiresIn sets field value
-func (o *TokenResponse) SetExpiresIn(v int32) {
- o.ExpiresIn = v
-}
-
-// GetIdentityAssertion returns the IdentityAssertion field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *TokenResponse) GetIdentityAssertion() string {
- if o == nil || IsNil(o.IdentityAssertion.Get()) {
- var ret string
- return ret
- }
- return *o.IdentityAssertion.Get()
-}
-
-// GetIdentityAssertionOk returns a tuple with the IdentityAssertion field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *TokenResponse) GetIdentityAssertionOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.IdentityAssertion.Get(), o.IdentityAssertion.IsSet()
-}
-
-// HasIdentityAssertion returns a boolean if a field has been set.
-func (o *TokenResponse) HasIdentityAssertion() bool {
- if o != nil && o.IdentityAssertion.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetIdentityAssertion gets a reference to the given NullableString and assigns it to the IdentityAssertion field.
-func (o *TokenResponse) SetIdentityAssertion(v string) {
- o.IdentityAssertion.Set(&v)
-}
-// SetIdentityAssertionNil sets the value for IdentityAssertion to be an explicit nil
-func (o *TokenResponse) SetIdentityAssertionNil() {
- o.IdentityAssertion.Set(nil)
-}
-
-// UnsetIdentityAssertion ensures that no value is present for IdentityAssertion, not even an explicit nil
-func (o *TokenResponse) UnsetIdentityAssertion() {
- o.IdentityAssertion.Unset()
-}
-
-// GetScope returns the Scope field value
-func (o *TokenResponse) GetScope() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Scope
-}
-
-// GetScopeOk returns a tuple with the Scope field value
-// and a boolean to check if the value has been set.
-func (o *TokenResponse) GetScopeOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Scope, true
-}
-
-// SetScope sets field value
-func (o *TokenResponse) SetScope(v string) {
- o.Scope = v
-}
-
-// GetTokenType returns the TokenType field value if set, zero value otherwise.
-func (o *TokenResponse) GetTokenType() string {
- if o == nil || IsNil(o.TokenType) {
- var ret string
- return ret
- }
- return *o.TokenType
-}
-
-// GetTokenTypeOk returns a tuple with the TokenType field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *TokenResponse) GetTokenTypeOk() (*string, bool) {
- if o == nil || IsNil(o.TokenType) {
- return nil, false
- }
- return o.TokenType, true
-}
-
-// HasTokenType returns a boolean if a field has been set.
-func (o *TokenResponse) HasTokenType() bool {
- if o != nil && !IsNil(o.TokenType) {
- return true
- }
-
- return false
-}
-
-// SetTokenType gets a reference to the given string and assigns it to the TokenType field.
-func (o *TokenResponse) SetTokenType(v string) {
- o.TokenType = &v
-}
-
-func (o TokenResponse) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o TokenResponse) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["access_token"] = o.AccessToken
- toSerialize["expires_in"] = o.ExpiresIn
- if o.IdentityAssertion.IsSet() {
- toSerialize["identity_assertion"] = o.IdentityAssertion.Get()
- }
- toSerialize["scope"] = o.Scope
- if !IsNil(o.TokenType) {
- toSerialize["token_type"] = o.TokenType
- }
- return toSerialize, nil
-}
-
-func (o *TokenResponse) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "access_token",
- "expires_in",
- "scope",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varTokenResponse := _TokenResponse{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varTokenResponse)
-
- if err != nil {
- return err
- }
-
- *o = TokenResponse(varTokenResponse)
-
- return err
-}
-
-type NullableTokenResponse struct {
- value *TokenResponse
- isSet bool
-}
-
-func (v NullableTokenResponse) Get() *TokenResponse {
- return v.value
-}
-
-func (v *NullableTokenResponse) Set(val *TokenResponse) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableTokenResponse) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableTokenResponse) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableTokenResponse(val *TokenResponse) *NullableTokenResponse {
- return &NullableTokenResponse{value: val, isSet: true}
-}
-
-func (v NullableTokenResponse) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableTokenResponse) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_token_usage_out.go b/sdk/go/model_token_usage_out.go
deleted file mode 100644
index 1f77211..0000000
--- a/sdk/go/model_token_usage_out.go
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the TokenUsageOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &TokenUsageOut{}
-
-// TokenUsageOut struct for TokenUsageOut
-type TokenUsageOut struct {
- Embed int32 `json:"embed"`
- LlmCached int32 `json:"llm_cached"`
- LlmInput int32 `json:"llm_input"`
- LlmOutput int32 `json:"llm_output"`
-}
-
-type _TokenUsageOut TokenUsageOut
-
-// NewTokenUsageOut instantiates a new TokenUsageOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewTokenUsageOut(embed int32, llmCached int32, llmInput int32, llmOutput int32) *TokenUsageOut {
- this := TokenUsageOut{}
- this.Embed = embed
- this.LlmCached = llmCached
- this.LlmInput = llmInput
- this.LlmOutput = llmOutput
- return &this
-}
-
-// NewTokenUsageOutWithDefaults instantiates a new TokenUsageOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewTokenUsageOutWithDefaults() *TokenUsageOut {
- this := TokenUsageOut{}
- return &this
-}
-
-// GetEmbed returns the Embed field value
-func (o *TokenUsageOut) GetEmbed() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.Embed
-}
-
-// GetEmbedOk returns a tuple with the Embed field value
-// and a boolean to check if the value has been set.
-func (o *TokenUsageOut) GetEmbedOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Embed, true
-}
-
-// SetEmbed sets field value
-func (o *TokenUsageOut) SetEmbed(v int32) {
- o.Embed = v
-}
-
-// GetLlmCached returns the LlmCached field value
-func (o *TokenUsageOut) GetLlmCached() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.LlmCached
-}
-
-// GetLlmCachedOk returns a tuple with the LlmCached field value
-// and a boolean to check if the value has been set.
-func (o *TokenUsageOut) GetLlmCachedOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.LlmCached, true
-}
-
-// SetLlmCached sets field value
-func (o *TokenUsageOut) SetLlmCached(v int32) {
- o.LlmCached = v
-}
-
-// GetLlmInput returns the LlmInput field value
-func (o *TokenUsageOut) GetLlmInput() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.LlmInput
-}
-
-// GetLlmInputOk returns a tuple with the LlmInput field value
-// and a boolean to check if the value has been set.
-func (o *TokenUsageOut) GetLlmInputOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.LlmInput, true
-}
-
-// SetLlmInput sets field value
-func (o *TokenUsageOut) SetLlmInput(v int32) {
- o.LlmInput = v
-}
-
-// GetLlmOutput returns the LlmOutput field value
-func (o *TokenUsageOut) GetLlmOutput() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.LlmOutput
-}
-
-// GetLlmOutputOk returns a tuple with the LlmOutput field value
-// and a boolean to check if the value has been set.
-func (o *TokenUsageOut) GetLlmOutputOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.LlmOutput, true
-}
-
-// SetLlmOutput sets field value
-func (o *TokenUsageOut) SetLlmOutput(v int32) {
- o.LlmOutput = v
-}
-
-func (o TokenUsageOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o TokenUsageOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["embed"] = o.Embed
- toSerialize["llm_cached"] = o.LlmCached
- toSerialize["llm_input"] = o.LlmInput
- toSerialize["llm_output"] = o.LlmOutput
- return toSerialize, nil
-}
-
-func (o *TokenUsageOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "embed",
- "llm_cached",
- "llm_input",
- "llm_output",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varTokenUsageOut := _TokenUsageOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varTokenUsageOut)
-
- if err != nil {
- return err
- }
-
- *o = TokenUsageOut(varTokenUsageOut)
-
- return err
-}
-
-type NullableTokenUsageOut struct {
- value *TokenUsageOut
- isSet bool
-}
-
-func (v NullableTokenUsageOut) Get() *TokenUsageOut {
- return v.value
-}
-
-func (v *NullableTokenUsageOut) Set(val *TokenUsageOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableTokenUsageOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableTokenUsageOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableTokenUsageOut(val *TokenUsageOut) *NullableTokenUsageOut {
- return &NullableTokenUsageOut{value: val, isSet: true}
-}
-
-func (v NullableTokenUsageOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableTokenUsageOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_trash_artifact_out.go b/sdk/go/model_trash_artifact_out.go
deleted file mode 100644
index b099880..0000000
--- a/sdk/go/model_trash_artifact_out.go
+++ /dev/null
@@ -1,333 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the TrashArtifactOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &TrashArtifactOut{}
-
-// TrashArtifactOut struct for TrashArtifactOut
-type TrashArtifactOut struct {
- DeletedAt NullableTime `json:"deleted_at,omitempty"`
- Id string `json:"id"`
- Path string `json:"path"`
- PurgeAt NullableTime `json:"purge_at,omitempty"`
- RestoreUrl string `json:"restore_url"`
- SizeBytes int32 `json:"size_bytes"`
-}
-
-type _TrashArtifactOut TrashArtifactOut
-
-// NewTrashArtifactOut instantiates a new TrashArtifactOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewTrashArtifactOut(id string, path string, restoreUrl string, sizeBytes int32) *TrashArtifactOut {
- this := TrashArtifactOut{}
- this.Id = id
- this.Path = path
- this.RestoreUrl = restoreUrl
- this.SizeBytes = sizeBytes
- return &this
-}
-
-// NewTrashArtifactOutWithDefaults instantiates a new TrashArtifactOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewTrashArtifactOutWithDefaults() *TrashArtifactOut {
- this := TrashArtifactOut{}
- return &this
-}
-
-// GetDeletedAt returns the DeletedAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *TrashArtifactOut) GetDeletedAt() time.Time {
- if o == nil || IsNil(o.DeletedAt.Get()) {
- var ret time.Time
- return ret
- }
- return *o.DeletedAt.Get()
-}
-
-// GetDeletedAtOk returns a tuple with the DeletedAt field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *TrashArtifactOut) GetDeletedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return o.DeletedAt.Get(), o.DeletedAt.IsSet()
-}
-
-// HasDeletedAt returns a boolean if a field has been set.
-func (o *TrashArtifactOut) HasDeletedAt() bool {
- if o != nil && o.DeletedAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetDeletedAt gets a reference to the given NullableTime and assigns it to the DeletedAt field.
-func (o *TrashArtifactOut) SetDeletedAt(v time.Time) {
- o.DeletedAt.Set(&v)
-}
-// SetDeletedAtNil sets the value for DeletedAt to be an explicit nil
-func (o *TrashArtifactOut) SetDeletedAtNil() {
- o.DeletedAt.Set(nil)
-}
-
-// UnsetDeletedAt ensures that no value is present for DeletedAt, not even an explicit nil
-func (o *TrashArtifactOut) UnsetDeletedAt() {
- o.DeletedAt.Unset()
-}
-
-// GetId returns the Id field value
-func (o *TrashArtifactOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *TrashArtifactOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *TrashArtifactOut) SetId(v string) {
- o.Id = v
-}
-
-// GetPath returns the Path field value
-func (o *TrashArtifactOut) GetPath() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Path
-}
-
-// GetPathOk returns a tuple with the Path field value
-// and a boolean to check if the value has been set.
-func (o *TrashArtifactOut) GetPathOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Path, true
-}
-
-// SetPath sets field value
-func (o *TrashArtifactOut) SetPath(v string) {
- o.Path = v
-}
-
-// GetPurgeAt returns the PurgeAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *TrashArtifactOut) GetPurgeAt() time.Time {
- if o == nil || IsNil(o.PurgeAt.Get()) {
- var ret time.Time
- return ret
- }
- return *o.PurgeAt.Get()
-}
-
-// GetPurgeAtOk returns a tuple with the PurgeAt field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *TrashArtifactOut) GetPurgeAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return o.PurgeAt.Get(), o.PurgeAt.IsSet()
-}
-
-// HasPurgeAt returns a boolean if a field has been set.
-func (o *TrashArtifactOut) HasPurgeAt() bool {
- if o != nil && o.PurgeAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetPurgeAt gets a reference to the given NullableTime and assigns it to the PurgeAt field.
-func (o *TrashArtifactOut) SetPurgeAt(v time.Time) {
- o.PurgeAt.Set(&v)
-}
-// SetPurgeAtNil sets the value for PurgeAt to be an explicit nil
-func (o *TrashArtifactOut) SetPurgeAtNil() {
- o.PurgeAt.Set(nil)
-}
-
-// UnsetPurgeAt ensures that no value is present for PurgeAt, not even an explicit nil
-func (o *TrashArtifactOut) UnsetPurgeAt() {
- o.PurgeAt.Unset()
-}
-
-// GetRestoreUrl returns the RestoreUrl field value
-func (o *TrashArtifactOut) GetRestoreUrl() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.RestoreUrl
-}
-
-// GetRestoreUrlOk returns a tuple with the RestoreUrl field value
-// and a boolean to check if the value has been set.
-func (o *TrashArtifactOut) GetRestoreUrlOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.RestoreUrl, true
-}
-
-// SetRestoreUrl sets field value
-func (o *TrashArtifactOut) SetRestoreUrl(v string) {
- o.RestoreUrl = v
-}
-
-// GetSizeBytes returns the SizeBytes field value
-func (o *TrashArtifactOut) GetSizeBytes() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.SizeBytes
-}
-
-// GetSizeBytesOk returns a tuple with the SizeBytes field value
-// and a boolean to check if the value has been set.
-func (o *TrashArtifactOut) GetSizeBytesOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.SizeBytes, true
-}
-
-// SetSizeBytes sets field value
-func (o *TrashArtifactOut) SetSizeBytes(v int32) {
- o.SizeBytes = v
-}
-
-func (o TrashArtifactOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o TrashArtifactOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- if o.DeletedAt.IsSet() {
- toSerialize["deleted_at"] = o.DeletedAt.Get()
- }
- toSerialize["id"] = o.Id
- toSerialize["path"] = o.Path
- if o.PurgeAt.IsSet() {
- toSerialize["purge_at"] = o.PurgeAt.Get()
- }
- toSerialize["restore_url"] = o.RestoreUrl
- toSerialize["size_bytes"] = o.SizeBytes
- return toSerialize, nil
-}
-
-func (o *TrashArtifactOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "id",
- "path",
- "restore_url",
- "size_bytes",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varTrashArtifactOut := _TrashArtifactOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varTrashArtifactOut)
-
- if err != nil {
- return err
- }
-
- *o = TrashArtifactOut(varTrashArtifactOut)
-
- return err
-}
-
-type NullableTrashArtifactOut struct {
- value *TrashArtifactOut
- isSet bool
-}
-
-func (v NullableTrashArtifactOut) Get() *TrashArtifactOut {
- return v.value
-}
-
-func (v *NullableTrashArtifactOut) Set(val *TrashArtifactOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableTrashArtifactOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableTrashArtifactOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableTrashArtifactOut(val *TrashArtifactOut) *NullableTrashArtifactOut {
- return &NullableTrashArtifactOut{value: val, isSet: true}
-}
-
-func (v NullableTrashArtifactOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableTrashArtifactOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_trash_drive_out.go b/sdk/go/model_trash_drive_out.go
deleted file mode 100644
index fecd9cc..0000000
--- a/sdk/go/model_trash_drive_out.go
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the TrashDriveOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &TrashDriveOut{}
-
-// TrashDriveOut struct for TrashDriveOut
-type TrashDriveOut struct {
- DeletedAt NullableTime `json:"deleted_at,omitempty"`
- Id string `json:"id"`
-}
-
-type _TrashDriveOut TrashDriveOut
-
-// NewTrashDriveOut instantiates a new TrashDriveOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewTrashDriveOut(id string) *TrashDriveOut {
- this := TrashDriveOut{}
- this.Id = id
- return &this
-}
-
-// NewTrashDriveOutWithDefaults instantiates a new TrashDriveOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewTrashDriveOutWithDefaults() *TrashDriveOut {
- this := TrashDriveOut{}
- return &this
-}
-
-// GetDeletedAt returns the DeletedAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *TrashDriveOut) GetDeletedAt() time.Time {
- if o == nil || IsNil(o.DeletedAt.Get()) {
- var ret time.Time
- return ret
- }
- return *o.DeletedAt.Get()
-}
-
-// GetDeletedAtOk returns a tuple with the DeletedAt field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *TrashDriveOut) GetDeletedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return o.DeletedAt.Get(), o.DeletedAt.IsSet()
-}
-
-// HasDeletedAt returns a boolean if a field has been set.
-func (o *TrashDriveOut) HasDeletedAt() bool {
- if o != nil && o.DeletedAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetDeletedAt gets a reference to the given NullableTime and assigns it to the DeletedAt field.
-func (o *TrashDriveOut) SetDeletedAt(v time.Time) {
- o.DeletedAt.Set(&v)
-}
-// SetDeletedAtNil sets the value for DeletedAt to be an explicit nil
-func (o *TrashDriveOut) SetDeletedAtNil() {
- o.DeletedAt.Set(nil)
-}
-
-// UnsetDeletedAt ensures that no value is present for DeletedAt, not even an explicit nil
-func (o *TrashDriveOut) UnsetDeletedAt() {
- o.DeletedAt.Unset()
-}
-
-// GetId returns the Id field value
-func (o *TrashDriveOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *TrashDriveOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *TrashDriveOut) SetId(v string) {
- o.Id = v
-}
-
-func (o TrashDriveOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o TrashDriveOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- if o.DeletedAt.IsSet() {
- toSerialize["deleted_at"] = o.DeletedAt.Get()
- }
- toSerialize["id"] = o.Id
- return toSerialize, nil
-}
-
-func (o *TrashDriveOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "id",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varTrashDriveOut := _TrashDriveOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varTrashDriveOut)
-
- if err != nil {
- return err
- }
-
- *o = TrashDriveOut(varTrashDriveOut)
-
- return err
-}
-
-type NullableTrashDriveOut struct {
- value *TrashDriveOut
- isSet bool
-}
-
-func (v NullableTrashDriveOut) Get() *TrashDriveOut {
- return v.value
-}
-
-func (v *NullableTrashDriveOut) Set(val *TrashDriveOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableTrashDriveOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableTrashDriveOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableTrashDriveOut(val *TrashDriveOut) *NullableTrashDriveOut {
- return &NullableTrashDriveOut{value: val, isSet: true}
-}
-
-func (v NullableTrashDriveOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableTrashDriveOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_trash_out.go b/sdk/go/model_trash_out.go
deleted file mode 100644
index b040a28..0000000
--- a/sdk/go/model_trash_out.go
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the TrashOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &TrashOut{}
-
-// TrashOut Trash collection with a compatibility-preserving pagination opt-in.
-type TrashOut struct {
- // Deprecated alias of items.
- // Deprecated
- Artifacts []TrashArtifactOut `json:"artifacts"`
- Drive TrashDriveOut `json:"drive"`
- Items []TrashArtifactOut `json:"items"`
- NextCursor NullableString `json:"next_cursor,omitempty"`
-}
-
-type _TrashOut TrashOut
-
-// NewTrashOut instantiates a new TrashOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewTrashOut(artifacts []TrashArtifactOut, drive TrashDriveOut, items []TrashArtifactOut) *TrashOut {
- this := TrashOut{}
- this.Artifacts = artifacts
- this.Drive = drive
- this.Items = items
- return &this
-}
-
-// NewTrashOutWithDefaults instantiates a new TrashOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewTrashOutWithDefaults() *TrashOut {
- this := TrashOut{}
- return &this
-}
-
-// GetArtifacts returns the Artifacts field value
-// Deprecated
-func (o *TrashOut) GetArtifacts() []TrashArtifactOut {
- if o == nil {
- var ret []TrashArtifactOut
- return ret
- }
-
- return o.Artifacts
-}
-
-// GetArtifactsOk returns a tuple with the Artifacts field value
-// and a boolean to check if the value has been set.
-// Deprecated
-func (o *TrashOut) GetArtifactsOk() ([]TrashArtifactOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Artifacts, true
-}
-
-// SetArtifacts sets field value
-// Deprecated
-func (o *TrashOut) SetArtifacts(v []TrashArtifactOut) {
- o.Artifacts = v
-}
-
-// GetDrive returns the Drive field value
-func (o *TrashOut) GetDrive() TrashDriveOut {
- if o == nil {
- var ret TrashDriveOut
- return ret
- }
-
- return o.Drive
-}
-
-// GetDriveOk returns a tuple with the Drive field value
-// and a boolean to check if the value has been set.
-func (o *TrashOut) GetDriveOk() (*TrashDriveOut, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Drive, true
-}
-
-// SetDrive sets field value
-func (o *TrashOut) SetDrive(v TrashDriveOut) {
- o.Drive = v
-}
-
-// GetItems returns the Items field value
-func (o *TrashOut) GetItems() []TrashArtifactOut {
- if o == nil {
- var ret []TrashArtifactOut
- return ret
- }
-
- return o.Items
-}
-
-// GetItemsOk returns a tuple with the Items field value
-// and a boolean to check if the value has been set.
-func (o *TrashOut) GetItemsOk() ([]TrashArtifactOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Items, true
-}
-
-// SetItems sets field value
-func (o *TrashOut) SetItems(v []TrashArtifactOut) {
- o.Items = v
-}
-
-// GetNextCursor returns the NextCursor field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *TrashOut) GetNextCursor() string {
- if o == nil || IsNil(o.NextCursor.Get()) {
- var ret string
- return ret
- }
- return *o.NextCursor.Get()
-}
-
-// GetNextCursorOk returns a tuple with the NextCursor field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *TrashOut) GetNextCursorOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.NextCursor.Get(), o.NextCursor.IsSet()
-}
-
-// HasNextCursor returns a boolean if a field has been set.
-func (o *TrashOut) HasNextCursor() bool {
- if o != nil && o.NextCursor.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetNextCursor gets a reference to the given NullableString and assigns it to the NextCursor field.
-func (o *TrashOut) SetNextCursor(v string) {
- o.NextCursor.Set(&v)
-}
-// SetNextCursorNil sets the value for NextCursor to be an explicit nil
-func (o *TrashOut) SetNextCursorNil() {
- o.NextCursor.Set(nil)
-}
-
-// UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-func (o *TrashOut) UnsetNextCursor() {
- o.NextCursor.Unset()
-}
-
-func (o TrashOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o TrashOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["artifacts"] = o.Artifacts
- toSerialize["drive"] = o.Drive
- toSerialize["items"] = o.Items
- if o.NextCursor.IsSet() {
- toSerialize["next_cursor"] = o.NextCursor.Get()
- }
- return toSerialize, nil
-}
-
-func (o *TrashOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "artifacts",
- "drive",
- "items",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varTrashOut := _TrashOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varTrashOut)
-
- if err != nil {
- return err
- }
-
- *o = TrashOut(varTrashOut)
-
- return err
-}
-
-type NullableTrashOut struct {
- value *TrashOut
- isSet bool
-}
-
-func (v NullableTrashOut) Get() *TrashOut {
- return v.value
-}
-
-func (v *NullableTrashOut) Set(val *TrashOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableTrashOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableTrashOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableTrashOut(val *TrashOut) *NullableTrashOut {
- return &NullableTrashOut{value: val, isSet: true}
-}
-
-func (v NullableTrashOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableTrashOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_upload_abort_out.go b/sdk/go/model_upload_abort_out.go
deleted file mode 100644
index 564c845..0000000
--- a/sdk/go/model_upload_abort_out.go
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the UploadAbortOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &UploadAbortOut{}
-
-// UploadAbortOut Response of `DELETE /v0/uploads/{upload_id}` — the session is released. `released_bytes` is the reservation returned to the drive's quota (the session's `size_bytes` for a live `initiated` session; `0` when the session was already aborted or already expired — the GC sweep owns an expired session's release).
-type UploadAbortOut struct {
- ReleasedBytes int32 `json:"released_bytes"`
- State *string `json:"state,omitempty"`
- UploadId string `json:"upload_id"`
-}
-
-type _UploadAbortOut UploadAbortOut
-
-// NewUploadAbortOut instantiates a new UploadAbortOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewUploadAbortOut(releasedBytes int32, uploadId string) *UploadAbortOut {
- this := UploadAbortOut{}
- this.ReleasedBytes = releasedBytes
- var state string = "aborted"
- this.State = &state
- this.UploadId = uploadId
- return &this
-}
-
-// NewUploadAbortOutWithDefaults instantiates a new UploadAbortOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewUploadAbortOutWithDefaults() *UploadAbortOut {
- this := UploadAbortOut{}
- var state string = "aborted"
- this.State = &state
- return &this
-}
-
-// GetReleasedBytes returns the ReleasedBytes field value
-func (o *UploadAbortOut) GetReleasedBytes() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.ReleasedBytes
-}
-
-// GetReleasedBytesOk returns a tuple with the ReleasedBytes field value
-// and a boolean to check if the value has been set.
-func (o *UploadAbortOut) GetReleasedBytesOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ReleasedBytes, true
-}
-
-// SetReleasedBytes sets field value
-func (o *UploadAbortOut) SetReleasedBytes(v int32) {
- o.ReleasedBytes = v
-}
-
-// GetState returns the State field value if set, zero value otherwise.
-func (o *UploadAbortOut) GetState() string {
- if o == nil || IsNil(o.State) {
- var ret string
- return ret
- }
- return *o.State
-}
-
-// GetStateOk returns a tuple with the State field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *UploadAbortOut) GetStateOk() (*string, bool) {
- if o == nil || IsNil(o.State) {
- return nil, false
- }
- return o.State, true
-}
-
-// HasState returns a boolean if a field has been set.
-func (o *UploadAbortOut) HasState() bool {
- if o != nil && !IsNil(o.State) {
- return true
- }
-
- return false
-}
-
-// SetState gets a reference to the given string and assigns it to the State field.
-func (o *UploadAbortOut) SetState(v string) {
- o.State = &v
-}
-
-// GetUploadId returns the UploadId field value
-func (o *UploadAbortOut) GetUploadId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.UploadId
-}
-
-// GetUploadIdOk returns a tuple with the UploadId field value
-// and a boolean to check if the value has been set.
-func (o *UploadAbortOut) GetUploadIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.UploadId, true
-}
-
-// SetUploadId sets field value
-func (o *UploadAbortOut) SetUploadId(v string) {
- o.UploadId = v
-}
-
-func (o UploadAbortOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o UploadAbortOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["released_bytes"] = o.ReleasedBytes
- if !IsNil(o.State) {
- toSerialize["state"] = o.State
- }
- toSerialize["upload_id"] = o.UploadId
- return toSerialize, nil
-}
-
-func (o *UploadAbortOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "released_bytes",
- "upload_id",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varUploadAbortOut := _UploadAbortOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varUploadAbortOut)
-
- if err != nil {
- return err
- }
-
- *o = UploadAbortOut(varUploadAbortOut)
-
- return err
-}
-
-type NullableUploadAbortOut struct {
- value *UploadAbortOut
- isSet bool
-}
-
-func (v NullableUploadAbortOut) Get() *UploadAbortOut {
- return v.value
-}
-
-func (v *NullableUploadAbortOut) Set(val *UploadAbortOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableUploadAbortOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableUploadAbortOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableUploadAbortOut(val *UploadAbortOut) *NullableUploadAbortOut {
- return &NullableUploadAbortOut{value: val, isSet: true}
-}
-
-func (v NullableUploadAbortOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableUploadAbortOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_upload_begin_in.go b/sdk/go/model_upload_begin_in.go
deleted file mode 100644
index 42295a0..0000000
--- a/sdk/go/model_upload_begin_in.go
+++ /dev/null
@@ -1,615 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the UploadBeginIn type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &UploadBeginIn{}
-
-// UploadBeginIn Body of `POST /v0/uploads` — the large-upload begin call (large-upload- design.md §5.1). All artifact decisions are frozen here; the subsequent GCS PUT carries only bytes, and `commit` carries only the `upload_id`. `labels`/`metadata`/`source` omitted (null) ⇒ preserve the existing artifact's value at commit; present (incl. empty) ⇒ replace.
-type UploadBeginIn struct {
- ActorName NullableString `json:"actor_name,omitempty"`
- ChangeSummary NullableString `json:"change_summary,omitempty"`
- ContentType *string `json:"content_type,omitempty"`
- // Web origin (scheme://host[:port]) of the browser that will PUT the bytes, e.g. `https://app.example.com`. Set this when the `upload_url` is handed to browser code: GCS binds CORS at session initiate, so the returned session only echoes `Access-Control-Allow-Origin` (and is thus PUT-able from a browser) when opened with the caller's origin. A trusted backend relaying a browser upload forwards the browser's `Origin` here. Omit for server/desktop uploads (no CORS enforcement).
- CorsOrigin NullableString `json:"cors_origin,omitempty"`
- Crc32c NullableString `json:"crc32c,omitempty"`
- IfMatch NullableInt32 `json:"if_match,omitempty"`
- IfNoneMatch *bool `json:"if_none_match,omitempty"`
- Labels []string `json:"labels,omitempty"`
- Metadata map[string]interface{} `json:"metadata,omitempty"`
- Path string `json:"path"`
- SizeBytes int32 `json:"size_bytes"`
- Source NullableArtifactSource `json:"source,omitempty"`
-}
-
-type _UploadBeginIn UploadBeginIn
-
-// NewUploadBeginIn instantiates a new UploadBeginIn object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewUploadBeginIn(path string, sizeBytes int32) *UploadBeginIn {
- this := UploadBeginIn{}
- var contentType string = "application/octet-stream"
- this.ContentType = &contentType
- var ifNoneMatch bool = false
- this.IfNoneMatch = &ifNoneMatch
- this.Path = path
- this.SizeBytes = sizeBytes
- return &this
-}
-
-// NewUploadBeginInWithDefaults instantiates a new UploadBeginIn object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewUploadBeginInWithDefaults() *UploadBeginIn {
- this := UploadBeginIn{}
- var contentType string = "application/octet-stream"
- this.ContentType = &contentType
- var ifNoneMatch bool = false
- this.IfNoneMatch = &ifNoneMatch
- return &this
-}
-
-// GetActorName returns the ActorName field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *UploadBeginIn) GetActorName() string {
- if o == nil || IsNil(o.ActorName.Get()) {
- var ret string
- return ret
- }
- return *o.ActorName.Get()
-}
-
-// GetActorNameOk returns a tuple with the ActorName field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *UploadBeginIn) GetActorNameOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.ActorName.Get(), o.ActorName.IsSet()
-}
-
-// HasActorName returns a boolean if a field has been set.
-func (o *UploadBeginIn) HasActorName() bool {
- if o != nil && o.ActorName.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetActorName gets a reference to the given NullableString and assigns it to the ActorName field.
-func (o *UploadBeginIn) SetActorName(v string) {
- o.ActorName.Set(&v)
-}
-// SetActorNameNil sets the value for ActorName to be an explicit nil
-func (o *UploadBeginIn) SetActorNameNil() {
- o.ActorName.Set(nil)
-}
-
-// UnsetActorName ensures that no value is present for ActorName, not even an explicit nil
-func (o *UploadBeginIn) UnsetActorName() {
- o.ActorName.Unset()
-}
-
-// GetChangeSummary returns the ChangeSummary field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *UploadBeginIn) GetChangeSummary() string {
- if o == nil || IsNil(o.ChangeSummary.Get()) {
- var ret string
- return ret
- }
- return *o.ChangeSummary.Get()
-}
-
-// GetChangeSummaryOk returns a tuple with the ChangeSummary field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *UploadBeginIn) GetChangeSummaryOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.ChangeSummary.Get(), o.ChangeSummary.IsSet()
-}
-
-// HasChangeSummary returns a boolean if a field has been set.
-func (o *UploadBeginIn) HasChangeSummary() bool {
- if o != nil && o.ChangeSummary.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetChangeSummary gets a reference to the given NullableString and assigns it to the ChangeSummary field.
-func (o *UploadBeginIn) SetChangeSummary(v string) {
- o.ChangeSummary.Set(&v)
-}
-// SetChangeSummaryNil sets the value for ChangeSummary to be an explicit nil
-func (o *UploadBeginIn) SetChangeSummaryNil() {
- o.ChangeSummary.Set(nil)
-}
-
-// UnsetChangeSummary ensures that no value is present for ChangeSummary, not even an explicit nil
-func (o *UploadBeginIn) UnsetChangeSummary() {
- o.ChangeSummary.Unset()
-}
-
-// GetContentType returns the ContentType field value if set, zero value otherwise.
-func (o *UploadBeginIn) GetContentType() string {
- if o == nil || IsNil(o.ContentType) {
- var ret string
- return ret
- }
- return *o.ContentType
-}
-
-// GetContentTypeOk returns a tuple with the ContentType field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *UploadBeginIn) GetContentTypeOk() (*string, bool) {
- if o == nil || IsNil(o.ContentType) {
- return nil, false
- }
- return o.ContentType, true
-}
-
-// HasContentType returns a boolean if a field has been set.
-func (o *UploadBeginIn) HasContentType() bool {
- if o != nil && !IsNil(o.ContentType) {
- return true
- }
-
- return false
-}
-
-// SetContentType gets a reference to the given string and assigns it to the ContentType field.
-func (o *UploadBeginIn) SetContentType(v string) {
- o.ContentType = &v
-}
-
-// GetCorsOrigin returns the CorsOrigin field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *UploadBeginIn) GetCorsOrigin() string {
- if o == nil || IsNil(o.CorsOrigin.Get()) {
- var ret string
- return ret
- }
- return *o.CorsOrigin.Get()
-}
-
-// GetCorsOriginOk returns a tuple with the CorsOrigin field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *UploadBeginIn) GetCorsOriginOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.CorsOrigin.Get(), o.CorsOrigin.IsSet()
-}
-
-// HasCorsOrigin returns a boolean if a field has been set.
-func (o *UploadBeginIn) HasCorsOrigin() bool {
- if o != nil && o.CorsOrigin.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetCorsOrigin gets a reference to the given NullableString and assigns it to the CorsOrigin field.
-func (o *UploadBeginIn) SetCorsOrigin(v string) {
- o.CorsOrigin.Set(&v)
-}
-// SetCorsOriginNil sets the value for CorsOrigin to be an explicit nil
-func (o *UploadBeginIn) SetCorsOriginNil() {
- o.CorsOrigin.Set(nil)
-}
-
-// UnsetCorsOrigin ensures that no value is present for CorsOrigin, not even an explicit nil
-func (o *UploadBeginIn) UnsetCorsOrigin() {
- o.CorsOrigin.Unset()
-}
-
-// GetCrc32c returns the Crc32c field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *UploadBeginIn) GetCrc32c() string {
- if o == nil || IsNil(o.Crc32c.Get()) {
- var ret string
- return ret
- }
- return *o.Crc32c.Get()
-}
-
-// GetCrc32cOk returns a tuple with the Crc32c field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *UploadBeginIn) GetCrc32cOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Crc32c.Get(), o.Crc32c.IsSet()
-}
-
-// HasCrc32c returns a boolean if a field has been set.
-func (o *UploadBeginIn) HasCrc32c() bool {
- if o != nil && o.Crc32c.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetCrc32c gets a reference to the given NullableString and assigns it to the Crc32c field.
-func (o *UploadBeginIn) SetCrc32c(v string) {
- o.Crc32c.Set(&v)
-}
-// SetCrc32cNil sets the value for Crc32c to be an explicit nil
-func (o *UploadBeginIn) SetCrc32cNil() {
- o.Crc32c.Set(nil)
-}
-
-// UnsetCrc32c ensures that no value is present for Crc32c, not even an explicit nil
-func (o *UploadBeginIn) UnsetCrc32c() {
- o.Crc32c.Unset()
-}
-
-// GetIfMatch returns the IfMatch field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *UploadBeginIn) GetIfMatch() int32 {
- if o == nil || IsNil(o.IfMatch.Get()) {
- var ret int32
- return ret
- }
- return *o.IfMatch.Get()
-}
-
-// GetIfMatchOk returns a tuple with the IfMatch field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *UploadBeginIn) GetIfMatchOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return o.IfMatch.Get(), o.IfMatch.IsSet()
-}
-
-// HasIfMatch returns a boolean if a field has been set.
-func (o *UploadBeginIn) HasIfMatch() bool {
- if o != nil && o.IfMatch.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetIfMatch gets a reference to the given NullableInt32 and assigns it to the IfMatch field.
-func (o *UploadBeginIn) SetIfMatch(v int32) {
- o.IfMatch.Set(&v)
-}
-// SetIfMatchNil sets the value for IfMatch to be an explicit nil
-func (o *UploadBeginIn) SetIfMatchNil() {
- o.IfMatch.Set(nil)
-}
-
-// UnsetIfMatch ensures that no value is present for IfMatch, not even an explicit nil
-func (o *UploadBeginIn) UnsetIfMatch() {
- o.IfMatch.Unset()
-}
-
-// GetIfNoneMatch returns the IfNoneMatch field value if set, zero value otherwise.
-func (o *UploadBeginIn) GetIfNoneMatch() bool {
- if o == nil || IsNil(o.IfNoneMatch) {
- var ret bool
- return ret
- }
- return *o.IfNoneMatch
-}
-
-// GetIfNoneMatchOk returns a tuple with the IfNoneMatch field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *UploadBeginIn) GetIfNoneMatchOk() (*bool, bool) {
- if o == nil || IsNil(o.IfNoneMatch) {
- return nil, false
- }
- return o.IfNoneMatch, true
-}
-
-// HasIfNoneMatch returns a boolean if a field has been set.
-func (o *UploadBeginIn) HasIfNoneMatch() bool {
- if o != nil && !IsNil(o.IfNoneMatch) {
- return true
- }
-
- return false
-}
-
-// SetIfNoneMatch gets a reference to the given bool and assigns it to the IfNoneMatch field.
-func (o *UploadBeginIn) SetIfNoneMatch(v bool) {
- o.IfNoneMatch = &v
-}
-
-// GetLabels returns the Labels field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *UploadBeginIn) GetLabels() []string {
- if o == nil {
- var ret []string
- return ret
- }
- return o.Labels
-}
-
-// GetLabelsOk returns a tuple with the Labels field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *UploadBeginIn) GetLabelsOk() ([]string, bool) {
- if o == nil || IsNil(o.Labels) {
- return nil, false
- }
- return o.Labels, true
-}
-
-// HasLabels returns a boolean if a field has been set.
-func (o *UploadBeginIn) HasLabels() bool {
- if o != nil && !IsNil(o.Labels) {
- return true
- }
-
- return false
-}
-
-// SetLabels gets a reference to the given []string and assigns it to the Labels field.
-func (o *UploadBeginIn) SetLabels(v []string) {
- o.Labels = v
-}
-
-// GetMetadata returns the Metadata field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *UploadBeginIn) GetMetadata() map[string]interface{} {
- if o == nil {
- var ret map[string]interface{}
- return ret
- }
- return o.Metadata
-}
-
-// GetMetadataOk returns a tuple with the Metadata field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *UploadBeginIn) GetMetadataOk() (map[string]interface{}, bool) {
- if o == nil || IsNil(o.Metadata) {
- return map[string]interface{}{}, false
- }
- return o.Metadata, true
-}
-
-// HasMetadata returns a boolean if a field has been set.
-func (o *UploadBeginIn) HasMetadata() bool {
- if o != nil && !IsNil(o.Metadata) {
- return true
- }
-
- return false
-}
-
-// SetMetadata gets a reference to the given map[string]interface{} and assigns it to the Metadata field.
-func (o *UploadBeginIn) SetMetadata(v map[string]interface{}) {
- o.Metadata = v
-}
-
-// GetPath returns the Path field value
-func (o *UploadBeginIn) GetPath() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Path
-}
-
-// GetPathOk returns a tuple with the Path field value
-// and a boolean to check if the value has been set.
-func (o *UploadBeginIn) GetPathOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Path, true
-}
-
-// SetPath sets field value
-func (o *UploadBeginIn) SetPath(v string) {
- o.Path = v
-}
-
-// GetSizeBytes returns the SizeBytes field value
-func (o *UploadBeginIn) GetSizeBytes() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.SizeBytes
-}
-
-// GetSizeBytesOk returns a tuple with the SizeBytes field value
-// and a boolean to check if the value has been set.
-func (o *UploadBeginIn) GetSizeBytesOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.SizeBytes, true
-}
-
-// SetSizeBytes sets field value
-func (o *UploadBeginIn) SetSizeBytes(v int32) {
- o.SizeBytes = v
-}
-
-// GetSource returns the Source field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *UploadBeginIn) GetSource() ArtifactSource {
- if o == nil || IsNil(o.Source.Get()) {
- var ret ArtifactSource
- return ret
- }
- return *o.Source.Get()
-}
-
-// GetSourceOk returns a tuple with the Source field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *UploadBeginIn) GetSourceOk() (*ArtifactSource, bool) {
- if o == nil {
- return nil, false
- }
- return o.Source.Get(), o.Source.IsSet()
-}
-
-// HasSource returns a boolean if a field has been set.
-func (o *UploadBeginIn) HasSource() bool {
- if o != nil && o.Source.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetSource gets a reference to the given NullableArtifactSource and assigns it to the Source field.
-func (o *UploadBeginIn) SetSource(v ArtifactSource) {
- o.Source.Set(&v)
-}
-// SetSourceNil sets the value for Source to be an explicit nil
-func (o *UploadBeginIn) SetSourceNil() {
- o.Source.Set(nil)
-}
-
-// UnsetSource ensures that no value is present for Source, not even an explicit nil
-func (o *UploadBeginIn) UnsetSource() {
- o.Source.Unset()
-}
-
-func (o UploadBeginIn) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o UploadBeginIn) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- if o.ActorName.IsSet() {
- toSerialize["actor_name"] = o.ActorName.Get()
- }
- if o.ChangeSummary.IsSet() {
- toSerialize["change_summary"] = o.ChangeSummary.Get()
- }
- if !IsNil(o.ContentType) {
- toSerialize["content_type"] = o.ContentType
- }
- if o.CorsOrigin.IsSet() {
- toSerialize["cors_origin"] = o.CorsOrigin.Get()
- }
- if o.Crc32c.IsSet() {
- toSerialize["crc32c"] = o.Crc32c.Get()
- }
- if o.IfMatch.IsSet() {
- toSerialize["if_match"] = o.IfMatch.Get()
- }
- if !IsNil(o.IfNoneMatch) {
- toSerialize["if_none_match"] = o.IfNoneMatch
- }
- if o.Labels != nil {
- toSerialize["labels"] = o.Labels
- }
- if o.Metadata != nil {
- toSerialize["metadata"] = o.Metadata
- }
- toSerialize["path"] = o.Path
- toSerialize["size_bytes"] = o.SizeBytes
- if o.Source.IsSet() {
- toSerialize["source"] = o.Source.Get()
- }
- return toSerialize, nil
-}
-
-func (o *UploadBeginIn) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "path",
- "size_bytes",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varUploadBeginIn := _UploadBeginIn{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varUploadBeginIn)
-
- if err != nil {
- return err
- }
-
- *o = UploadBeginIn(varUploadBeginIn)
-
- return err
-}
-
-type NullableUploadBeginIn struct {
- value *UploadBeginIn
- isSet bool
-}
-
-func (v NullableUploadBeginIn) Get() *UploadBeginIn {
- return v.value
-}
-
-func (v *NullableUploadBeginIn) Set(val *UploadBeginIn) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableUploadBeginIn) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableUploadBeginIn) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableUploadBeginIn(val *UploadBeginIn) *NullableUploadBeginIn {
- return &NullableUploadBeginIn{value: val, isSet: true}
-}
-
-func (v NullableUploadBeginIn) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableUploadBeginIn) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_upload_begin_out.go b/sdk/go/model_upload_begin_out.go
deleted file mode 100644
index 769a5b2..0000000
--- a/sdk/go/model_upload_begin_out.go
+++ /dev/null
@@ -1,309 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the UploadBeginOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &UploadBeginOut{}
-
-// UploadBeginOut Response of `POST /v0/uploads`. PUT the bytes to `upload_url` (no auth header — the URL is the credential), then `POST .../commit`.
-type UploadBeginOut struct {
- ExpiresAt time.Time `json:"expires_at"`
- Headers map[string]string `json:"headers"`
- MaxBytes int32 `json:"max_bytes"`
- Method *string `json:"method,omitempty"`
- UploadId string `json:"upload_id"`
- UploadUrl string `json:"upload_url"`
-}
-
-type _UploadBeginOut UploadBeginOut
-
-// NewUploadBeginOut instantiates a new UploadBeginOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewUploadBeginOut(expiresAt time.Time, headers map[string]string, maxBytes int32, uploadId string, uploadUrl string) *UploadBeginOut {
- this := UploadBeginOut{}
- this.ExpiresAt = expiresAt
- this.Headers = headers
- this.MaxBytes = maxBytes
- var method string = "PUT"
- this.Method = &method
- this.UploadId = uploadId
- this.UploadUrl = uploadUrl
- return &this
-}
-
-// NewUploadBeginOutWithDefaults instantiates a new UploadBeginOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewUploadBeginOutWithDefaults() *UploadBeginOut {
- this := UploadBeginOut{}
- var method string = "PUT"
- this.Method = &method
- return &this
-}
-
-// GetExpiresAt returns the ExpiresAt field value
-func (o *UploadBeginOut) GetExpiresAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.ExpiresAt
-}
-
-// GetExpiresAtOk returns a tuple with the ExpiresAt field value
-// and a boolean to check if the value has been set.
-func (o *UploadBeginOut) GetExpiresAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ExpiresAt, true
-}
-
-// SetExpiresAt sets field value
-func (o *UploadBeginOut) SetExpiresAt(v time.Time) {
- o.ExpiresAt = v
-}
-
-// GetHeaders returns the Headers field value
-func (o *UploadBeginOut) GetHeaders() map[string]string {
- if o == nil {
- var ret map[string]string
- return ret
- }
-
- return o.Headers
-}
-
-// GetHeadersOk returns a tuple with the Headers field value
-// and a boolean to check if the value has been set.
-func (o *UploadBeginOut) GetHeadersOk() (map[string]string, bool) {
- if o == nil {
- return map[string]string{}, false
- }
- return o.Headers, true
-}
-
-// SetHeaders sets field value
-func (o *UploadBeginOut) SetHeaders(v map[string]string) {
- o.Headers = v
-}
-
-// GetMaxBytes returns the MaxBytes field value
-func (o *UploadBeginOut) GetMaxBytes() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.MaxBytes
-}
-
-// GetMaxBytesOk returns a tuple with the MaxBytes field value
-// and a boolean to check if the value has been set.
-func (o *UploadBeginOut) GetMaxBytesOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.MaxBytes, true
-}
-
-// SetMaxBytes sets field value
-func (o *UploadBeginOut) SetMaxBytes(v int32) {
- o.MaxBytes = v
-}
-
-// GetMethod returns the Method field value if set, zero value otherwise.
-func (o *UploadBeginOut) GetMethod() string {
- if o == nil || IsNil(o.Method) {
- var ret string
- return ret
- }
- return *o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *UploadBeginOut) GetMethodOk() (*string, bool) {
- if o == nil || IsNil(o.Method) {
- return nil, false
- }
- return o.Method, true
-}
-
-// HasMethod returns a boolean if a field has been set.
-func (o *UploadBeginOut) HasMethod() bool {
- if o != nil && !IsNil(o.Method) {
- return true
- }
-
- return false
-}
-
-// SetMethod gets a reference to the given string and assigns it to the Method field.
-func (o *UploadBeginOut) SetMethod(v string) {
- o.Method = &v
-}
-
-// GetUploadId returns the UploadId field value
-func (o *UploadBeginOut) GetUploadId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.UploadId
-}
-
-// GetUploadIdOk returns a tuple with the UploadId field value
-// and a boolean to check if the value has been set.
-func (o *UploadBeginOut) GetUploadIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.UploadId, true
-}
-
-// SetUploadId sets field value
-func (o *UploadBeginOut) SetUploadId(v string) {
- o.UploadId = v
-}
-
-// GetUploadUrl returns the UploadUrl field value
-func (o *UploadBeginOut) GetUploadUrl() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.UploadUrl
-}
-
-// GetUploadUrlOk returns a tuple with the UploadUrl field value
-// and a boolean to check if the value has been set.
-func (o *UploadBeginOut) GetUploadUrlOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.UploadUrl, true
-}
-
-// SetUploadUrl sets field value
-func (o *UploadBeginOut) SetUploadUrl(v string) {
- o.UploadUrl = v
-}
-
-func (o UploadBeginOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o UploadBeginOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["expires_at"] = o.ExpiresAt
- toSerialize["headers"] = o.Headers
- toSerialize["max_bytes"] = o.MaxBytes
- if !IsNil(o.Method) {
- toSerialize["method"] = o.Method
- }
- toSerialize["upload_id"] = o.UploadId
- toSerialize["upload_url"] = o.UploadUrl
- return toSerialize, nil
-}
-
-func (o *UploadBeginOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "expires_at",
- "headers",
- "max_bytes",
- "upload_id",
- "upload_url",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varUploadBeginOut := _UploadBeginOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varUploadBeginOut)
-
- if err != nil {
- return err
- }
-
- *o = UploadBeginOut(varUploadBeginOut)
-
- return err
-}
-
-type NullableUploadBeginOut struct {
- value *UploadBeginOut
- isSet bool
-}
-
-func (v NullableUploadBeginOut) Get() *UploadBeginOut {
- return v.value
-}
-
-func (v *NullableUploadBeginOut) Set(val *UploadBeginOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableUploadBeginOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableUploadBeginOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableUploadBeginOut(val *UploadBeginOut) *NullableUploadBeginOut {
- return &NullableUploadBeginOut{value: val, isSet: true}
-}
-
-func (v NullableUploadBeginOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableUploadBeginOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_upload_status_out.go b/sdk/go/model_upload_status_out.go
deleted file mode 100644
index 46abf6a..0000000
--- a/sdk/go/model_upload_status_out.go
+++ /dev/null
@@ -1,399 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the UploadStatusOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &UploadStatusOut{}
-
-// UploadStatusOut Response of `GET /v0/uploads/{upload_id}` — the live state of a direct-to-GCS upload session (large-upload-design.md §5). `state` is derived, not a stored column: * `initiated` — session open; PUT the bytes to the `upload_url`, then `POST /v0/uploads/{upload_id}/commit`. * `committed` — the bytes landed and the artifact was created (`committed_at` is set). * `aborted` — released via `DELETE /v0/uploads/{upload_id}`. * `expired` — past `expires_at` without a commit; the reservation is reclaimed by the GC sweep.
-type UploadStatusOut struct {
- CommittedAt NullableTime `json:"committed_at,omitempty"`
- ContentType string `json:"content_type"`
- CreatedAt time.Time `json:"created_at"`
- ExpiresAt time.Time `json:"expires_at"`
- MaxBytes int32 `json:"max_bytes"`
- Path string `json:"path"`
- SizeBytes int32 `json:"size_bytes"`
- State string `json:"state"`
- UploadId string `json:"upload_id"`
-}
-
-type _UploadStatusOut UploadStatusOut
-
-// NewUploadStatusOut instantiates a new UploadStatusOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewUploadStatusOut(contentType string, createdAt time.Time, expiresAt time.Time, maxBytes int32, path string, sizeBytes int32, state string, uploadId string) *UploadStatusOut {
- this := UploadStatusOut{}
- this.ContentType = contentType
- this.CreatedAt = createdAt
- this.ExpiresAt = expiresAt
- this.MaxBytes = maxBytes
- this.Path = path
- this.SizeBytes = sizeBytes
- this.State = state
- this.UploadId = uploadId
- return &this
-}
-
-// NewUploadStatusOutWithDefaults instantiates a new UploadStatusOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewUploadStatusOutWithDefaults() *UploadStatusOut {
- this := UploadStatusOut{}
- return &this
-}
-
-// GetCommittedAt returns the CommittedAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *UploadStatusOut) GetCommittedAt() time.Time {
- if o == nil || IsNil(o.CommittedAt.Get()) {
- var ret time.Time
- return ret
- }
- return *o.CommittedAt.Get()
-}
-
-// GetCommittedAtOk returns a tuple with the CommittedAt field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *UploadStatusOut) GetCommittedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return o.CommittedAt.Get(), o.CommittedAt.IsSet()
-}
-
-// HasCommittedAt returns a boolean if a field has been set.
-func (o *UploadStatusOut) HasCommittedAt() bool {
- if o != nil && o.CommittedAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetCommittedAt gets a reference to the given NullableTime and assigns it to the CommittedAt field.
-func (o *UploadStatusOut) SetCommittedAt(v time.Time) {
- o.CommittedAt.Set(&v)
-}
-// SetCommittedAtNil sets the value for CommittedAt to be an explicit nil
-func (o *UploadStatusOut) SetCommittedAtNil() {
- o.CommittedAt.Set(nil)
-}
-
-// UnsetCommittedAt ensures that no value is present for CommittedAt, not even an explicit nil
-func (o *UploadStatusOut) UnsetCommittedAt() {
- o.CommittedAt.Unset()
-}
-
-// GetContentType returns the ContentType field value
-func (o *UploadStatusOut) GetContentType() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.ContentType
-}
-
-// GetContentTypeOk returns a tuple with the ContentType field value
-// and a boolean to check if the value has been set.
-func (o *UploadStatusOut) GetContentTypeOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ContentType, true
-}
-
-// SetContentType sets field value
-func (o *UploadStatusOut) SetContentType(v string) {
- o.ContentType = v
-}
-
-// GetCreatedAt returns the CreatedAt field value
-func (o *UploadStatusOut) GetCreatedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.CreatedAt
-}
-
-// GetCreatedAtOk returns a tuple with the CreatedAt field value
-// and a boolean to check if the value has been set.
-func (o *UploadStatusOut) GetCreatedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.CreatedAt, true
-}
-
-// SetCreatedAt sets field value
-func (o *UploadStatusOut) SetCreatedAt(v time.Time) {
- o.CreatedAt = v
-}
-
-// GetExpiresAt returns the ExpiresAt field value
-func (o *UploadStatusOut) GetExpiresAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.ExpiresAt
-}
-
-// GetExpiresAtOk returns a tuple with the ExpiresAt field value
-// and a boolean to check if the value has been set.
-func (o *UploadStatusOut) GetExpiresAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.ExpiresAt, true
-}
-
-// SetExpiresAt sets field value
-func (o *UploadStatusOut) SetExpiresAt(v time.Time) {
- o.ExpiresAt = v
-}
-
-// GetMaxBytes returns the MaxBytes field value
-func (o *UploadStatusOut) GetMaxBytes() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.MaxBytes
-}
-
-// GetMaxBytesOk returns a tuple with the MaxBytes field value
-// and a boolean to check if the value has been set.
-func (o *UploadStatusOut) GetMaxBytesOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.MaxBytes, true
-}
-
-// SetMaxBytes sets field value
-func (o *UploadStatusOut) SetMaxBytes(v int32) {
- o.MaxBytes = v
-}
-
-// GetPath returns the Path field value
-func (o *UploadStatusOut) GetPath() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Path
-}
-
-// GetPathOk returns a tuple with the Path field value
-// and a boolean to check if the value has been set.
-func (o *UploadStatusOut) GetPathOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Path, true
-}
-
-// SetPath sets field value
-func (o *UploadStatusOut) SetPath(v string) {
- o.Path = v
-}
-
-// GetSizeBytes returns the SizeBytes field value
-func (o *UploadStatusOut) GetSizeBytes() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.SizeBytes
-}
-
-// GetSizeBytesOk returns a tuple with the SizeBytes field value
-// and a boolean to check if the value has been set.
-func (o *UploadStatusOut) GetSizeBytesOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.SizeBytes, true
-}
-
-// SetSizeBytes sets field value
-func (o *UploadStatusOut) SetSizeBytes(v int32) {
- o.SizeBytes = v
-}
-
-// GetState returns the State field value
-func (o *UploadStatusOut) GetState() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.State
-}
-
-// GetStateOk returns a tuple with the State field value
-// and a boolean to check if the value has been set.
-func (o *UploadStatusOut) GetStateOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.State, true
-}
-
-// SetState sets field value
-func (o *UploadStatusOut) SetState(v string) {
- o.State = v
-}
-
-// GetUploadId returns the UploadId field value
-func (o *UploadStatusOut) GetUploadId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.UploadId
-}
-
-// GetUploadIdOk returns a tuple with the UploadId field value
-// and a boolean to check if the value has been set.
-func (o *UploadStatusOut) GetUploadIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.UploadId, true
-}
-
-// SetUploadId sets field value
-func (o *UploadStatusOut) SetUploadId(v string) {
- o.UploadId = v
-}
-
-func (o UploadStatusOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o UploadStatusOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- if o.CommittedAt.IsSet() {
- toSerialize["committed_at"] = o.CommittedAt.Get()
- }
- toSerialize["content_type"] = o.ContentType
- toSerialize["created_at"] = o.CreatedAt
- toSerialize["expires_at"] = o.ExpiresAt
- toSerialize["max_bytes"] = o.MaxBytes
- toSerialize["path"] = o.Path
- toSerialize["size_bytes"] = o.SizeBytes
- toSerialize["state"] = o.State
- toSerialize["upload_id"] = o.UploadId
- return toSerialize, nil
-}
-
-func (o *UploadStatusOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "content_type",
- "created_at",
- "expires_at",
- "max_bytes",
- "path",
- "size_bytes",
- "state",
- "upload_id",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varUploadStatusOut := _UploadStatusOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varUploadStatusOut)
-
- if err != nil {
- return err
- }
-
- *o = UploadStatusOut(varUploadStatusOut)
-
- return err
-}
-
-type NullableUploadStatusOut struct {
- value *UploadStatusOut
- isSet bool
-}
-
-func (v NullableUploadStatusOut) Get() *UploadStatusOut {
- return v.value
-}
-
-func (v *NullableUploadStatusOut) Set(val *UploadStatusOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableUploadStatusOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableUploadStatusOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableUploadStatusOut(val *UploadStatusOut) *NullableUploadStatusOut {
- return &NullableUploadStatusOut{value: val, isSet: true}
-}
-
-func (v NullableUploadStatusOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableUploadStatusOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_usage_counter_out.go b/sdk/go/model_usage_counter_out.go
deleted file mode 100644
index fe8fe02..0000000
--- a/sdk/go/model_usage_counter_out.go
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the UsageCounterOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &UsageCounterOut{}
-
-// UsageCounterOut struct for UsageCounterOut
-type UsageCounterOut struct {
- Limit int32 `json:"limit"`
- Used int32 `json:"used"`
-}
-
-type _UsageCounterOut UsageCounterOut
-
-// NewUsageCounterOut instantiates a new UsageCounterOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewUsageCounterOut(limit int32, used int32) *UsageCounterOut {
- this := UsageCounterOut{}
- this.Limit = limit
- this.Used = used
- return &this
-}
-
-// NewUsageCounterOutWithDefaults instantiates a new UsageCounterOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewUsageCounterOutWithDefaults() *UsageCounterOut {
- this := UsageCounterOut{}
- return &this
-}
-
-// GetLimit returns the Limit field value
-func (o *UsageCounterOut) GetLimit() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.Limit
-}
-
-// GetLimitOk returns a tuple with the Limit field value
-// and a boolean to check if the value has been set.
-func (o *UsageCounterOut) GetLimitOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Limit, true
-}
-
-// SetLimit sets field value
-func (o *UsageCounterOut) SetLimit(v int32) {
- o.Limit = v
-}
-
-// GetUsed returns the Used field value
-func (o *UsageCounterOut) GetUsed() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.Used
-}
-
-// GetUsedOk returns a tuple with the Used field value
-// and a boolean to check if the value has been set.
-func (o *UsageCounterOut) GetUsedOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Used, true
-}
-
-// SetUsed sets field value
-func (o *UsageCounterOut) SetUsed(v int32) {
- o.Used = v
-}
-
-func (o UsageCounterOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o UsageCounterOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["limit"] = o.Limit
- toSerialize["used"] = o.Used
- return toSerialize, nil
-}
-
-func (o *UsageCounterOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "limit",
- "used",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varUsageCounterOut := _UsageCounterOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varUsageCounterOut)
-
- if err != nil {
- return err
- }
-
- *o = UsageCounterOut(varUsageCounterOut)
-
- return err
-}
-
-type NullableUsageCounterOut struct {
- value *UsageCounterOut
- isSet bool
-}
-
-func (v NullableUsageCounterOut) Get() *UsageCounterOut {
- return v.value
-}
-
-func (v *NullableUsageCounterOut) Set(val *UsageCounterOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableUsageCounterOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableUsageCounterOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableUsageCounterOut(val *UsageCounterOut) *NullableUsageCounterOut {
- return &NullableUsageCounterOut{value: val, isSet: true}
-}
-
-func (v NullableUsageCounterOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableUsageCounterOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_usage_period_out.go b/sdk/go/model_usage_period_out.go
deleted file mode 100644
index 09f9f5a..0000000
--- a/sdk/go/model_usage_period_out.go
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the UsagePeriodOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &UsagePeriodOut{}
-
-// UsagePeriodOut struct for UsagePeriodOut
-type UsagePeriodOut struct {
- Ends time.Time `json:"ends"`
- Starts time.Time `json:"starts"`
- YearMonth string `json:"year_month"`
-}
-
-type _UsagePeriodOut UsagePeriodOut
-
-// NewUsagePeriodOut instantiates a new UsagePeriodOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewUsagePeriodOut(ends time.Time, starts time.Time, yearMonth string) *UsagePeriodOut {
- this := UsagePeriodOut{}
- this.Ends = ends
- this.Starts = starts
- this.YearMonth = yearMonth
- return &this
-}
-
-// NewUsagePeriodOutWithDefaults instantiates a new UsagePeriodOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewUsagePeriodOutWithDefaults() *UsagePeriodOut {
- this := UsagePeriodOut{}
- return &this
-}
-
-// GetEnds returns the Ends field value
-func (o *UsagePeriodOut) GetEnds() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.Ends
-}
-
-// GetEndsOk returns a tuple with the Ends field value
-// and a boolean to check if the value has been set.
-func (o *UsagePeriodOut) GetEndsOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Ends, true
-}
-
-// SetEnds sets field value
-func (o *UsagePeriodOut) SetEnds(v time.Time) {
- o.Ends = v
-}
-
-// GetStarts returns the Starts field value
-func (o *UsagePeriodOut) GetStarts() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.Starts
-}
-
-// GetStartsOk returns a tuple with the Starts field value
-// and a boolean to check if the value has been set.
-func (o *UsagePeriodOut) GetStartsOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Starts, true
-}
-
-// SetStarts sets field value
-func (o *UsagePeriodOut) SetStarts(v time.Time) {
- o.Starts = v
-}
-
-// GetYearMonth returns the YearMonth field value
-func (o *UsagePeriodOut) GetYearMonth() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.YearMonth
-}
-
-// GetYearMonthOk returns a tuple with the YearMonth field value
-// and a boolean to check if the value has been set.
-func (o *UsagePeriodOut) GetYearMonthOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.YearMonth, true
-}
-
-// SetYearMonth sets field value
-func (o *UsagePeriodOut) SetYearMonth(v string) {
- o.YearMonth = v
-}
-
-func (o UsagePeriodOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o UsagePeriodOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["ends"] = o.Ends
- toSerialize["starts"] = o.Starts
- toSerialize["year_month"] = o.YearMonth
- return toSerialize, nil
-}
-
-func (o *UsagePeriodOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "ends",
- "starts",
- "year_month",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varUsagePeriodOut := _UsagePeriodOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varUsagePeriodOut)
-
- if err != nil {
- return err
- }
-
- *o = UsagePeriodOut(varUsagePeriodOut)
-
- return err
-}
-
-type NullableUsagePeriodOut struct {
- value *UsagePeriodOut
- isSet bool
-}
-
-func (v NullableUsagePeriodOut) Get() *UsagePeriodOut {
- return v.value
-}
-
-func (v *NullableUsagePeriodOut) Set(val *UsagePeriodOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableUsagePeriodOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableUsagePeriodOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableUsagePeriodOut(val *UsagePeriodOut) *NullableUsagePeriodOut {
- return &NullableUsagePeriodOut{value: val, isSet: true}
-}
-
-func (v NullableUsagePeriodOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableUsagePeriodOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_user_token_list.go b/sdk/go/model_user_token_list.go
deleted file mode 100644
index 78e906b..0000000
--- a/sdk/go/model_user_token_list.go
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the UserTokenList type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &UserTokenList{}
-
-// UserTokenList struct for UserTokenList
-type UserTokenList struct {
- Items []UserTokenOut `json:"items"`
- NextCursor NullableString `json:"next_cursor,omitempty"`
-}
-
-type _UserTokenList UserTokenList
-
-// NewUserTokenList instantiates a new UserTokenList object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewUserTokenList(items []UserTokenOut) *UserTokenList {
- this := UserTokenList{}
- this.Items = items
- return &this
-}
-
-// NewUserTokenListWithDefaults instantiates a new UserTokenList object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewUserTokenListWithDefaults() *UserTokenList {
- this := UserTokenList{}
- return &this
-}
-
-// GetItems returns the Items field value
-func (o *UserTokenList) GetItems() []UserTokenOut {
- if o == nil {
- var ret []UserTokenOut
- return ret
- }
-
- return o.Items
-}
-
-// GetItemsOk returns a tuple with the Items field value
-// and a boolean to check if the value has been set.
-func (o *UserTokenList) GetItemsOk() ([]UserTokenOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Items, true
-}
-
-// SetItems sets field value
-func (o *UserTokenList) SetItems(v []UserTokenOut) {
- o.Items = v
-}
-
-// GetNextCursor returns the NextCursor field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *UserTokenList) GetNextCursor() string {
- if o == nil || IsNil(o.NextCursor.Get()) {
- var ret string
- return ret
- }
- return *o.NextCursor.Get()
-}
-
-// GetNextCursorOk returns a tuple with the NextCursor field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *UserTokenList) GetNextCursorOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.NextCursor.Get(), o.NextCursor.IsSet()
-}
-
-// HasNextCursor returns a boolean if a field has been set.
-func (o *UserTokenList) HasNextCursor() bool {
- if o != nil && o.NextCursor.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetNextCursor gets a reference to the given NullableString and assigns it to the NextCursor field.
-func (o *UserTokenList) SetNextCursor(v string) {
- o.NextCursor.Set(&v)
-}
-// SetNextCursorNil sets the value for NextCursor to be an explicit nil
-func (o *UserTokenList) SetNextCursorNil() {
- o.NextCursor.Set(nil)
-}
-
-// UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-func (o *UserTokenList) UnsetNextCursor() {
- o.NextCursor.Unset()
-}
-
-func (o UserTokenList) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o UserTokenList) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["items"] = o.Items
- if o.NextCursor.IsSet() {
- toSerialize["next_cursor"] = o.NextCursor.Get()
- }
- return toSerialize, nil
-}
-
-func (o *UserTokenList) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "items",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varUserTokenList := _UserTokenList{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varUserTokenList)
-
- if err != nil {
- return err
- }
-
- *o = UserTokenList(varUserTokenList)
-
- return err
-}
-
-type NullableUserTokenList struct {
- value *UserTokenList
- isSet bool
-}
-
-func (v NullableUserTokenList) Get() *UserTokenList {
- return v.value
-}
-
-func (v *NullableUserTokenList) Set(val *UserTokenList) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableUserTokenList) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableUserTokenList) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableUserTokenList(val *UserTokenList) *NullableUserTokenList {
- return &NullableUserTokenList{value: val, isSet: true}
-}
-
-func (v NullableUserTokenList) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableUserTokenList) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_user_token_out.go b/sdk/go/model_user_token_out.go
deleted file mode 100644
index 911db93..0000000
--- a/sdk/go/model_user_token_out.go
+++ /dev/null
@@ -1,471 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the UserTokenOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &UserTokenOut{}
-
-// UserTokenOut One `ad_user_` token — metadata only. The raw token is NEVER exposed over the API (minting is web-only, reveal-once); this shape omits both the raw value and the stored hash by construction.
-type UserTokenOut struct {
- CreatedAt time.Time `json:"created_at"`
- DefaultDriveId NullableString `json:"default_drive_id,omitempty"`
- ExpiresAt NullableTime `json:"expires_at,omitempty"`
- Id string `json:"id"`
- Label NullableString `json:"label,omitempty"`
- LastUsedAt NullableTime `json:"last_used_at,omitempty"`
- Prefix string `json:"prefix"`
- RevokedAt NullableTime `json:"revoked_at,omitempty"`
- Scope string `json:"scope"`
-}
-
-type _UserTokenOut UserTokenOut
-
-// NewUserTokenOut instantiates a new UserTokenOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewUserTokenOut(createdAt time.Time, id string, prefix string, scope string) *UserTokenOut {
- this := UserTokenOut{}
- this.CreatedAt = createdAt
- this.Id = id
- this.Prefix = prefix
- this.Scope = scope
- return &this
-}
-
-// NewUserTokenOutWithDefaults instantiates a new UserTokenOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewUserTokenOutWithDefaults() *UserTokenOut {
- this := UserTokenOut{}
- return &this
-}
-
-// GetCreatedAt returns the CreatedAt field value
-func (o *UserTokenOut) GetCreatedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.CreatedAt
-}
-
-// GetCreatedAtOk returns a tuple with the CreatedAt field value
-// and a boolean to check if the value has been set.
-func (o *UserTokenOut) GetCreatedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.CreatedAt, true
-}
-
-// SetCreatedAt sets field value
-func (o *UserTokenOut) SetCreatedAt(v time.Time) {
- o.CreatedAt = v
-}
-
-// GetDefaultDriveId returns the DefaultDriveId field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *UserTokenOut) GetDefaultDriveId() string {
- if o == nil || IsNil(o.DefaultDriveId.Get()) {
- var ret string
- return ret
- }
- return *o.DefaultDriveId.Get()
-}
-
-// GetDefaultDriveIdOk returns a tuple with the DefaultDriveId field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *UserTokenOut) GetDefaultDriveIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.DefaultDriveId.Get(), o.DefaultDriveId.IsSet()
-}
-
-// HasDefaultDriveId returns a boolean if a field has been set.
-func (o *UserTokenOut) HasDefaultDriveId() bool {
- if o != nil && o.DefaultDriveId.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetDefaultDriveId gets a reference to the given NullableString and assigns it to the DefaultDriveId field.
-func (o *UserTokenOut) SetDefaultDriveId(v string) {
- o.DefaultDriveId.Set(&v)
-}
-// SetDefaultDriveIdNil sets the value for DefaultDriveId to be an explicit nil
-func (o *UserTokenOut) SetDefaultDriveIdNil() {
- o.DefaultDriveId.Set(nil)
-}
-
-// UnsetDefaultDriveId ensures that no value is present for DefaultDriveId, not even an explicit nil
-func (o *UserTokenOut) UnsetDefaultDriveId() {
- o.DefaultDriveId.Unset()
-}
-
-// GetExpiresAt returns the ExpiresAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *UserTokenOut) GetExpiresAt() time.Time {
- if o == nil || IsNil(o.ExpiresAt.Get()) {
- var ret time.Time
- return ret
- }
- return *o.ExpiresAt.Get()
-}
-
-// GetExpiresAtOk returns a tuple with the ExpiresAt field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *UserTokenOut) GetExpiresAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return o.ExpiresAt.Get(), o.ExpiresAt.IsSet()
-}
-
-// HasExpiresAt returns a boolean if a field has been set.
-func (o *UserTokenOut) HasExpiresAt() bool {
- if o != nil && o.ExpiresAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetExpiresAt gets a reference to the given NullableTime and assigns it to the ExpiresAt field.
-func (o *UserTokenOut) SetExpiresAt(v time.Time) {
- o.ExpiresAt.Set(&v)
-}
-// SetExpiresAtNil sets the value for ExpiresAt to be an explicit nil
-func (o *UserTokenOut) SetExpiresAtNil() {
- o.ExpiresAt.Set(nil)
-}
-
-// UnsetExpiresAt ensures that no value is present for ExpiresAt, not even an explicit nil
-func (o *UserTokenOut) UnsetExpiresAt() {
- o.ExpiresAt.Unset()
-}
-
-// GetId returns the Id field value
-func (o *UserTokenOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *UserTokenOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *UserTokenOut) SetId(v string) {
- o.Id = v
-}
-
-// GetLabel returns the Label field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *UserTokenOut) GetLabel() string {
- if o == nil || IsNil(o.Label.Get()) {
- var ret string
- return ret
- }
- return *o.Label.Get()
-}
-
-// GetLabelOk returns a tuple with the Label field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *UserTokenOut) GetLabelOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.Label.Get(), o.Label.IsSet()
-}
-
-// HasLabel returns a boolean if a field has been set.
-func (o *UserTokenOut) HasLabel() bool {
- if o != nil && o.Label.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetLabel gets a reference to the given NullableString and assigns it to the Label field.
-func (o *UserTokenOut) SetLabel(v string) {
- o.Label.Set(&v)
-}
-// SetLabelNil sets the value for Label to be an explicit nil
-func (o *UserTokenOut) SetLabelNil() {
- o.Label.Set(nil)
-}
-
-// UnsetLabel ensures that no value is present for Label, not even an explicit nil
-func (o *UserTokenOut) UnsetLabel() {
- o.Label.Unset()
-}
-
-// GetLastUsedAt returns the LastUsedAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *UserTokenOut) GetLastUsedAt() time.Time {
- if o == nil || IsNil(o.LastUsedAt.Get()) {
- var ret time.Time
- return ret
- }
- return *o.LastUsedAt.Get()
-}
-
-// GetLastUsedAtOk returns a tuple with the LastUsedAt field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *UserTokenOut) GetLastUsedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return o.LastUsedAt.Get(), o.LastUsedAt.IsSet()
-}
-
-// HasLastUsedAt returns a boolean if a field has been set.
-func (o *UserTokenOut) HasLastUsedAt() bool {
- if o != nil && o.LastUsedAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetLastUsedAt gets a reference to the given NullableTime and assigns it to the LastUsedAt field.
-func (o *UserTokenOut) SetLastUsedAt(v time.Time) {
- o.LastUsedAt.Set(&v)
-}
-// SetLastUsedAtNil sets the value for LastUsedAt to be an explicit nil
-func (o *UserTokenOut) SetLastUsedAtNil() {
- o.LastUsedAt.Set(nil)
-}
-
-// UnsetLastUsedAt ensures that no value is present for LastUsedAt, not even an explicit nil
-func (o *UserTokenOut) UnsetLastUsedAt() {
- o.LastUsedAt.Unset()
-}
-
-// GetPrefix returns the Prefix field value
-func (o *UserTokenOut) GetPrefix() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Prefix
-}
-
-// GetPrefixOk returns a tuple with the Prefix field value
-// and a boolean to check if the value has been set.
-func (o *UserTokenOut) GetPrefixOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Prefix, true
-}
-
-// SetPrefix sets field value
-func (o *UserTokenOut) SetPrefix(v string) {
- o.Prefix = v
-}
-
-// GetRevokedAt returns the RevokedAt field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *UserTokenOut) GetRevokedAt() time.Time {
- if o == nil || IsNil(o.RevokedAt.Get()) {
- var ret time.Time
- return ret
- }
- return *o.RevokedAt.Get()
-}
-
-// GetRevokedAtOk returns a tuple with the RevokedAt field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *UserTokenOut) GetRevokedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return o.RevokedAt.Get(), o.RevokedAt.IsSet()
-}
-
-// HasRevokedAt returns a boolean if a field has been set.
-func (o *UserTokenOut) HasRevokedAt() bool {
- if o != nil && o.RevokedAt.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetRevokedAt gets a reference to the given NullableTime and assigns it to the RevokedAt field.
-func (o *UserTokenOut) SetRevokedAt(v time.Time) {
- o.RevokedAt.Set(&v)
-}
-// SetRevokedAtNil sets the value for RevokedAt to be an explicit nil
-func (o *UserTokenOut) SetRevokedAtNil() {
- o.RevokedAt.Set(nil)
-}
-
-// UnsetRevokedAt ensures that no value is present for RevokedAt, not even an explicit nil
-func (o *UserTokenOut) UnsetRevokedAt() {
- o.RevokedAt.Unset()
-}
-
-// GetScope returns the Scope field value
-func (o *UserTokenOut) GetScope() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Scope
-}
-
-// GetScopeOk returns a tuple with the Scope field value
-// and a boolean to check if the value has been set.
-func (o *UserTokenOut) GetScopeOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Scope, true
-}
-
-// SetScope sets field value
-func (o *UserTokenOut) SetScope(v string) {
- o.Scope = v
-}
-
-func (o UserTokenOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o UserTokenOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["created_at"] = o.CreatedAt
- if o.DefaultDriveId.IsSet() {
- toSerialize["default_drive_id"] = o.DefaultDriveId.Get()
- }
- if o.ExpiresAt.IsSet() {
- toSerialize["expires_at"] = o.ExpiresAt.Get()
- }
- toSerialize["id"] = o.Id
- if o.Label.IsSet() {
- toSerialize["label"] = o.Label.Get()
- }
- if o.LastUsedAt.IsSet() {
- toSerialize["last_used_at"] = o.LastUsedAt.Get()
- }
- toSerialize["prefix"] = o.Prefix
- if o.RevokedAt.IsSet() {
- toSerialize["revoked_at"] = o.RevokedAt.Get()
- }
- toSerialize["scope"] = o.Scope
- return toSerialize, nil
-}
-
-func (o *UserTokenOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "created_at",
- "id",
- "prefix",
- "scope",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varUserTokenOut := _UserTokenOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varUserTokenOut)
-
- if err != nil {
- return err
- }
-
- *o = UserTokenOut(varUserTokenOut)
-
- return err
-}
-
-type NullableUserTokenOut struct {
- value *UserTokenOut
- isSet bool
-}
-
-func (v NullableUserTokenOut) Get() *UserTokenOut {
- return v.value
-}
-
-func (v *NullableUserTokenOut) Set(val *UserTokenOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableUserTokenOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableUserTokenOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableUserTokenOut(val *UserTokenOut) *NullableUserTokenOut {
- return &NullableUserTokenOut{value: val, isSet: true}
-}
-
-func (v NullableUserTokenOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableUserTokenOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_v0_error_envelope.go b/sdk/go/model_v0_error_envelope.go
new file mode 100644
index 0000000..edeab44
--- /dev/null
+++ b/sdk/go/model_v0_error_envelope.go
@@ -0,0 +1,156 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "bytes"
+ "fmt"
+)
+
+// checks if the V0ErrorEnvelope type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &V0ErrorEnvelope{}
+
+// V0ErrorEnvelope struct for V0ErrorEnvelope
+type V0ErrorEnvelope struct {
+ Error DrivesCreate400ResponseError `json:"error"`
+}
+
+type _V0ErrorEnvelope V0ErrorEnvelope
+
+// NewV0ErrorEnvelope instantiates a new V0ErrorEnvelope object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewV0ErrorEnvelope(error_ DrivesCreate400ResponseError) *V0ErrorEnvelope {
+ this := V0ErrorEnvelope{}
+ this.Error = error_
+ return &this
+}
+
+// NewV0ErrorEnvelopeWithDefaults instantiates a new V0ErrorEnvelope object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewV0ErrorEnvelopeWithDefaults() *V0ErrorEnvelope {
+ this := V0ErrorEnvelope{}
+ return &this
+}
+
+// GetError returns the Error field value
+func (o *V0ErrorEnvelope) GetError() DrivesCreate400ResponseError {
+ if o == nil {
+ var ret DrivesCreate400ResponseError
+ return ret
+ }
+
+ return o.Error
+}
+
+// GetErrorOk returns a tuple with the Error field value
+// and a boolean to check if the value has been set.
+func (o *V0ErrorEnvelope) GetErrorOk() (*DrivesCreate400ResponseError, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Error, true
+}
+
+// SetError sets field value
+func (o *V0ErrorEnvelope) SetError(v DrivesCreate400ResponseError) {
+ o.Error = v
+}
+
+func (o V0ErrorEnvelope) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o V0ErrorEnvelope) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["error"] = o.Error
+ return toSerialize, nil
+}
+
+func (o *V0ErrorEnvelope) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "error",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varV0ErrorEnvelope := _V0ErrorEnvelope{}
+
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varV0ErrorEnvelope)
+
+ if err != nil {
+ return err
+ }
+
+ *o = V0ErrorEnvelope(varV0ErrorEnvelope)
+
+ return err
+}
+
+type NullableV0ErrorEnvelope struct {
+ value *V0ErrorEnvelope
+ isSet bool
+}
+
+func (v NullableV0ErrorEnvelope) Get() *V0ErrorEnvelope {
+ return v.value
+}
+
+func (v *NullableV0ErrorEnvelope) Set(val *V0ErrorEnvelope) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableV0ErrorEnvelope) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableV0ErrorEnvelope) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableV0ErrorEnvelope(val *V0ErrorEnvelope) *NullableV0ErrorEnvelope {
+ return &NullableV0ErrorEnvelope{value: val, isSet: true}
+}
+
+func (v NullableV0ErrorEnvelope) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableV0ErrorEnvelope) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_validation_error_body.go b/sdk/go/model_validation_error_body.go
deleted file mode 100644
index f7d89d0..0000000
--- a/sdk/go/model_validation_error_body.go
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
-)
-
-// checks if the ValidationErrorBody type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ValidationErrorBody{}
-
-// ValidationErrorBody struct for ValidationErrorBody
-type ValidationErrorBody struct {
- Code string `json:"code"`
- Fields []ValidationIssue `json:"fields"`
- Message string `json:"message"`
- AdditionalProperties map[string]interface{}
-}
-
-type _ValidationErrorBody ValidationErrorBody
-
-// NewValidationErrorBody instantiates a new ValidationErrorBody object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewValidationErrorBody(code string, fields []ValidationIssue, message string) *ValidationErrorBody {
- this := ValidationErrorBody{}
- this.Code = code
- this.Fields = fields
- this.Message = message
- return &this
-}
-
-// NewValidationErrorBodyWithDefaults instantiates a new ValidationErrorBody object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewValidationErrorBodyWithDefaults() *ValidationErrorBody {
- this := ValidationErrorBody{}
- return &this
-}
-
-// GetCode returns the Code field value
-func (o *ValidationErrorBody) GetCode() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Code
-}
-
-// GetCodeOk returns a tuple with the Code field value
-// and a boolean to check if the value has been set.
-func (o *ValidationErrorBody) GetCodeOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Code, true
-}
-
-// SetCode sets field value
-func (o *ValidationErrorBody) SetCode(v string) {
- o.Code = v
-}
-
-// GetFields returns the Fields field value
-func (o *ValidationErrorBody) GetFields() []ValidationIssue {
- if o == nil {
- var ret []ValidationIssue
- return ret
- }
-
- return o.Fields
-}
-
-// GetFieldsOk returns a tuple with the Fields field value
-// and a boolean to check if the value has been set.
-func (o *ValidationErrorBody) GetFieldsOk() ([]ValidationIssue, bool) {
- if o == nil {
- return nil, false
- }
- return o.Fields, true
-}
-
-// SetFields sets field value
-func (o *ValidationErrorBody) SetFields(v []ValidationIssue) {
- o.Fields = v
-}
-
-// GetMessage returns the Message field value
-func (o *ValidationErrorBody) GetMessage() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Message
-}
-
-// GetMessageOk returns a tuple with the Message field value
-// and a boolean to check if the value has been set.
-func (o *ValidationErrorBody) GetMessageOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Message, true
-}
-
-// SetMessage sets field value
-func (o *ValidationErrorBody) SetMessage(v string) {
- o.Message = v
-}
-
-func (o ValidationErrorBody) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ValidationErrorBody) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["code"] = o.Code
- toSerialize["fields"] = o.Fields
- toSerialize["message"] = o.Message
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
- return toSerialize, nil
-}
-
-func (o *ValidationErrorBody) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "code",
- "fields",
- "message",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varValidationErrorBody := _ValidationErrorBody{}
-
- err = json.Unmarshal(data, &varValidationErrorBody)
-
- if err != nil {
- return err
- }
-
- *o = ValidationErrorBody(varValidationErrorBody)
-
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "code")
- delete(additionalProperties, "fields")
- delete(additionalProperties, "message")
- o.AdditionalProperties = additionalProperties
- }
-
- return err
-}
-
-type NullableValidationErrorBody struct {
- value *ValidationErrorBody
- isSet bool
-}
-
-func (v NullableValidationErrorBody) Get() *ValidationErrorBody {
- return v.value
-}
-
-func (v *NullableValidationErrorBody) Set(val *ValidationErrorBody) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableValidationErrorBody) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableValidationErrorBody) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableValidationErrorBody(val *ValidationErrorBody) *NullableValidationErrorBody {
- return &NullableValidationErrorBody{value: val, isSet: true}
-}
-
-func (v NullableValidationErrorBody) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableValidationErrorBody) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_validation_error_detail.go b/sdk/go/model_validation_error_detail.go
deleted file mode 100644
index c51016d..0000000
--- a/sdk/go/model_validation_error_detail.go
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
-)
-
-// checks if the ValidationErrorDetail type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ValidationErrorDetail{}
-
-// ValidationErrorDetail struct for ValidationErrorDetail
-type ValidationErrorDetail struct {
- Error ValidationErrorBody `json:"error"`
- AdditionalProperties map[string]interface{}
-}
-
-type _ValidationErrorDetail ValidationErrorDetail
-
-// NewValidationErrorDetail instantiates a new ValidationErrorDetail object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewValidationErrorDetail(error_ ValidationErrorBody) *ValidationErrorDetail {
- this := ValidationErrorDetail{}
- this.Error = error_
- return &this
-}
-
-// NewValidationErrorDetailWithDefaults instantiates a new ValidationErrorDetail object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewValidationErrorDetailWithDefaults() *ValidationErrorDetail {
- this := ValidationErrorDetail{}
- return &this
-}
-
-// GetError returns the Error field value
-func (o *ValidationErrorDetail) GetError() ValidationErrorBody {
- if o == nil {
- var ret ValidationErrorBody
- return ret
- }
-
- return o.Error
-}
-
-// GetErrorOk returns a tuple with the Error field value
-// and a boolean to check if the value has been set.
-func (o *ValidationErrorDetail) GetErrorOk() (*ValidationErrorBody, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Error, true
-}
-
-// SetError sets field value
-func (o *ValidationErrorDetail) SetError(v ValidationErrorBody) {
- o.Error = v
-}
-
-func (o ValidationErrorDetail) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ValidationErrorDetail) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["error"] = o.Error
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
- return toSerialize, nil
-}
-
-func (o *ValidationErrorDetail) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "error",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varValidationErrorDetail := _ValidationErrorDetail{}
-
- err = json.Unmarshal(data, &varValidationErrorDetail)
-
- if err != nil {
- return err
- }
-
- *o = ValidationErrorDetail(varValidationErrorDetail)
-
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "error")
- o.AdditionalProperties = additionalProperties
- }
-
- return err
-}
-
-type NullableValidationErrorDetail struct {
- value *ValidationErrorDetail
- isSet bool
-}
-
-func (v NullableValidationErrorDetail) Get() *ValidationErrorDetail {
- return v.value
-}
-
-func (v *NullableValidationErrorDetail) Set(val *ValidationErrorDetail) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableValidationErrorDetail) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableValidationErrorDetail) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableValidationErrorDetail(val *ValidationErrorDetail) *NullableValidationErrorDetail {
- return &NullableValidationErrorDetail{value: val, isSet: true}
-}
-
-func (v NullableValidationErrorDetail) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableValidationErrorDetail) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_validation_error_response.go b/sdk/go/model_validation_error_response.go
index 8b466b5..cb50447 100644
--- a/sdk/go/model_validation_error_response.go
+++ b/sdk/go/model_validation_error_response.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
@@ -12,16 +12,16 @@ package agentdrive
import (
"encoding/json"
+ "bytes"
"fmt"
)
// checks if the ValidationErrorResponse type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &ValidationErrorResponse{}
-// ValidationErrorResponse The runtime `VALIDATION_ERROR` response for request parsing failures.
+// ValidationErrorResponse struct for ValidationErrorResponse
type ValidationErrorResponse struct {
- Detail ValidationErrorDetail `json:"detail"`
- AdditionalProperties map[string]interface{}
+ Error ValidationErrorResponseError `json:"error"`
}
type _ValidationErrorResponse ValidationErrorResponse
@@ -30,9 +30,9 @@ type _ValidationErrorResponse ValidationErrorResponse
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
-func NewValidationErrorResponse(detail ValidationErrorDetail) *ValidationErrorResponse {
+func NewValidationErrorResponse(error_ ValidationErrorResponseError) *ValidationErrorResponse {
this := ValidationErrorResponse{}
- this.Detail = detail
+ this.Error = error_
return &this
}
@@ -44,28 +44,28 @@ func NewValidationErrorResponseWithDefaults() *ValidationErrorResponse {
return &this
}
-// GetDetail returns the Detail field value
-func (o *ValidationErrorResponse) GetDetail() ValidationErrorDetail {
+// GetError returns the Error field value
+func (o *ValidationErrorResponse) GetError() ValidationErrorResponseError {
if o == nil {
- var ret ValidationErrorDetail
+ var ret ValidationErrorResponseError
return ret
}
- return o.Detail
+ return o.Error
}
-// GetDetailOk returns a tuple with the Detail field value
+// GetErrorOk returns a tuple with the Error field value
// and a boolean to check if the value has been set.
-func (o *ValidationErrorResponse) GetDetailOk() (*ValidationErrorDetail, bool) {
+func (o *ValidationErrorResponse) GetErrorOk() (*ValidationErrorResponseError, bool) {
if o == nil {
return nil, false
}
- return &o.Detail, true
+ return &o.Error, true
}
-// SetDetail sets field value
-func (o *ValidationErrorResponse) SetDetail(v ValidationErrorDetail) {
- o.Detail = v
+// SetError sets field value
+func (o *ValidationErrorResponse) SetError(v ValidationErrorResponseError) {
+ o.Error = v
}
func (o ValidationErrorResponse) MarshalJSON() ([]byte, error) {
@@ -78,12 +78,7 @@ func (o ValidationErrorResponse) MarshalJSON() ([]byte, error) {
func (o ValidationErrorResponse) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
- toSerialize["detail"] = o.Detail
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
+ toSerialize["error"] = o.Error
return toSerialize, nil
}
@@ -92,7 +87,7 @@ func (o *ValidationErrorResponse) UnmarshalJSON(data []byte) (err error) {
// by unmarshalling the object into a generic map with string keys and checking
// that every required field exists as a key in the generic map.
requiredProperties := []string{
- "detail",
+ "error",
}
allProperties := make(map[string]interface{})
@@ -111,7 +106,9 @@ func (o *ValidationErrorResponse) UnmarshalJSON(data []byte) (err error) {
varValidationErrorResponse := _ValidationErrorResponse{}
- err = json.Unmarshal(data, &varValidationErrorResponse)
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varValidationErrorResponse)
if err != nil {
return err
@@ -119,13 +116,6 @@ func (o *ValidationErrorResponse) UnmarshalJSON(data []byte) (err error) {
*o = ValidationErrorResponse(varValidationErrorResponse)
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "detail")
- o.AdditionalProperties = additionalProperties
- }
-
return err
}
diff --git a/sdk/go/model_validation_error_response_error.go b/sdk/go/model_validation_error_response_error.go
new file mode 100644
index 0000000..ab05513
--- /dev/null
+++ b/sdk/go/model_validation_error_response_error.go
@@ -0,0 +1,236 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "fmt"
+)
+
+// checks if the ValidationErrorResponseError type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &ValidationErrorResponseError{}
+
+// ValidationErrorResponseError struct for ValidationErrorResponseError
+type ValidationErrorResponseError struct {
+ Code NullableString `json:"code"`
+ Details *ValidationErrorResponseErrorDetails `json:"details,omitempty"`
+ Message NullableString `json:"message"`
+ AdditionalProperties map[string]interface{}
+}
+
+type _ValidationErrorResponseError ValidationErrorResponseError
+
+// NewValidationErrorResponseError instantiates a new ValidationErrorResponseError object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewValidationErrorResponseError(code NullableString, message NullableString) *ValidationErrorResponseError {
+ this := ValidationErrorResponseError{}
+ this.Code = code
+ this.Message = message
+ return &this
+}
+
+// NewValidationErrorResponseErrorWithDefaults instantiates a new ValidationErrorResponseError object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewValidationErrorResponseErrorWithDefaults() *ValidationErrorResponseError {
+ this := ValidationErrorResponseError{}
+ return &this
+}
+
+// GetCode returns the Code field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *ValidationErrorResponseError) GetCode() string {
+ if o == nil || o.Code.Get() == nil {
+ var ret string
+ return ret
+ }
+
+ return *o.Code.Get()
+}
+
+// GetCodeOk returns a tuple with the Code field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ValidationErrorResponseError) GetCodeOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.Code.Get(), o.Code.IsSet()
+}
+
+// SetCode sets field value
+func (o *ValidationErrorResponseError) SetCode(v string) {
+ o.Code.Set(&v)
+}
+
+// GetDetails returns the Details field value if set, zero value otherwise.
+func (o *ValidationErrorResponseError) GetDetails() ValidationErrorResponseErrorDetails {
+ if o == nil || IsNil(o.Details) {
+ var ret ValidationErrorResponseErrorDetails
+ return ret
+ }
+ return *o.Details
+}
+
+// GetDetailsOk returns a tuple with the Details field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+func (o *ValidationErrorResponseError) GetDetailsOk() (*ValidationErrorResponseErrorDetails, bool) {
+ if o == nil || IsNil(o.Details) {
+ return nil, false
+ }
+ return o.Details, true
+}
+
+// HasDetails returns a boolean if a field has been set.
+func (o *ValidationErrorResponseError) HasDetails() bool {
+ if o != nil && !IsNil(o.Details) {
+ return true
+ }
+
+ return false
+}
+
+// SetDetails gets a reference to the given ValidationErrorResponseErrorDetails and assigns it to the Details field.
+func (o *ValidationErrorResponseError) SetDetails(v ValidationErrorResponseErrorDetails) {
+ o.Details = &v
+}
+
+// GetMessage returns the Message field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *ValidationErrorResponseError) GetMessage() string {
+ if o == nil || o.Message.Get() == nil {
+ var ret string
+ return ret
+ }
+
+ return *o.Message.Get()
+}
+
+// GetMessageOk returns a tuple with the Message field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *ValidationErrorResponseError) GetMessageOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.Message.Get(), o.Message.IsSet()
+}
+
+// SetMessage sets field value
+func (o *ValidationErrorResponseError) SetMessage(v string) {
+ o.Message.Set(&v)
+}
+
+func (o ValidationErrorResponseError) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o ValidationErrorResponseError) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["code"] = o.Code.Get()
+ if !IsNil(o.Details) {
+ toSerialize["details"] = o.Details
+ }
+ toSerialize["message"] = o.Message.Get()
+
+ for key, value := range o.AdditionalProperties {
+ toSerialize[key] = value
+ }
+
+ return toSerialize, nil
+}
+
+func (o *ValidationErrorResponseError) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "code",
+ "message",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varValidationErrorResponseError := _ValidationErrorResponseError{}
+
+ err = json.Unmarshal(data, &varValidationErrorResponseError)
+
+ if err != nil {
+ return err
+ }
+
+ *o = ValidationErrorResponseError(varValidationErrorResponseError)
+
+ additionalProperties := make(map[string]interface{})
+
+ if err = json.Unmarshal(data, &additionalProperties); err == nil {
+ delete(additionalProperties, "code")
+ delete(additionalProperties, "details")
+ delete(additionalProperties, "message")
+ o.AdditionalProperties = additionalProperties
+ }
+
+ return err
+}
+
+type NullableValidationErrorResponseError struct {
+ value *ValidationErrorResponseError
+ isSet bool
+}
+
+func (v NullableValidationErrorResponseError) Get() *ValidationErrorResponseError {
+ return v.value
+}
+
+func (v *NullableValidationErrorResponseError) Set(val *ValidationErrorResponseError) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableValidationErrorResponseError) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableValidationErrorResponseError) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableValidationErrorResponseError(val *ValidationErrorResponseError) *NullableValidationErrorResponseError {
+ return &NullableValidationErrorResponseError{value: val, isSet: true}
+}
+
+func (v NullableValidationErrorResponseError) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableValidationErrorResponseError) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_validation_error_response_error_details.go b/sdk/go/model_validation_error_response_error_details.go
new file mode 100644
index 0000000..070e38f
--- /dev/null
+++ b/sdk/go/model_validation_error_response_error_details.go
@@ -0,0 +1,124 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+)
+
+// checks if the ValidationErrorResponseErrorDetails type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &ValidationErrorResponseErrorDetails{}
+
+// ValidationErrorResponseErrorDetails struct for ValidationErrorResponseErrorDetails
+type ValidationErrorResponseErrorDetails struct {
+ Fields []ValidationErrorResponseErrorDetailsFieldsInner `json:"fields,omitempty"`
+}
+
+// NewValidationErrorResponseErrorDetails instantiates a new ValidationErrorResponseErrorDetails object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewValidationErrorResponseErrorDetails() *ValidationErrorResponseErrorDetails {
+ this := ValidationErrorResponseErrorDetails{}
+ return &this
+}
+
+// NewValidationErrorResponseErrorDetailsWithDefaults instantiates a new ValidationErrorResponseErrorDetails object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewValidationErrorResponseErrorDetailsWithDefaults() *ValidationErrorResponseErrorDetails {
+ this := ValidationErrorResponseErrorDetails{}
+ return &this
+}
+
+// GetFields returns the Fields field value if set, zero value otherwise.
+func (o *ValidationErrorResponseErrorDetails) GetFields() []ValidationErrorResponseErrorDetailsFieldsInner {
+ if o == nil || IsNil(o.Fields) {
+ var ret []ValidationErrorResponseErrorDetailsFieldsInner
+ return ret
+ }
+ return o.Fields
+}
+
+// GetFieldsOk returns a tuple with the Fields field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+func (o *ValidationErrorResponseErrorDetails) GetFieldsOk() ([]ValidationErrorResponseErrorDetailsFieldsInner, bool) {
+ if o == nil || IsNil(o.Fields) {
+ return nil, false
+ }
+ return o.Fields, true
+}
+
+// HasFields returns a boolean if a field has been set.
+func (o *ValidationErrorResponseErrorDetails) HasFields() bool {
+ if o != nil && !IsNil(o.Fields) {
+ return true
+ }
+
+ return false
+}
+
+// SetFields gets a reference to the given []ValidationErrorResponseErrorDetailsFieldsInner and assigns it to the Fields field.
+func (o *ValidationErrorResponseErrorDetails) SetFields(v []ValidationErrorResponseErrorDetailsFieldsInner) {
+ o.Fields = v
+}
+
+func (o ValidationErrorResponseErrorDetails) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o ValidationErrorResponseErrorDetails) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ if !IsNil(o.Fields) {
+ toSerialize["fields"] = o.Fields
+ }
+ return toSerialize, nil
+}
+
+type NullableValidationErrorResponseErrorDetails struct {
+ value *ValidationErrorResponseErrorDetails
+ isSet bool
+}
+
+func (v NullableValidationErrorResponseErrorDetails) Get() *ValidationErrorResponseErrorDetails {
+ return v.value
+}
+
+func (v *NullableValidationErrorResponseErrorDetails) Set(val *ValidationErrorResponseErrorDetails) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableValidationErrorResponseErrorDetails) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableValidationErrorResponseErrorDetails) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableValidationErrorResponseErrorDetails(val *ValidationErrorResponseErrorDetails) *NullableValidationErrorResponseErrorDetails {
+ return &NullableValidationErrorResponseErrorDetails{value: val, isSet: true}
+}
+
+func (v NullableValidationErrorResponseErrorDetails) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableValidationErrorResponseErrorDetails) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_validation_error_response_error_details_fields_inner.go b/sdk/go/model_validation_error_response_error_details_fields_inner.go
new file mode 100644
index 0000000..e97e8c8
--- /dev/null
+++ b/sdk/go/model_validation_error_response_error_details_fields_inner.go
@@ -0,0 +1,160 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+)
+
+// checks if the ValidationErrorResponseErrorDetailsFieldsInner type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &ValidationErrorResponseErrorDetailsFieldsInner{}
+
+// ValidationErrorResponseErrorDetailsFieldsInner struct for ValidationErrorResponseErrorDetailsFieldsInner
+type ValidationErrorResponseErrorDetailsFieldsInner struct {
+ Location *string `json:"location,omitempty"`
+ Reason *string `json:"reason,omitempty"`
+}
+
+// NewValidationErrorResponseErrorDetailsFieldsInner instantiates a new ValidationErrorResponseErrorDetailsFieldsInner object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewValidationErrorResponseErrorDetailsFieldsInner() *ValidationErrorResponseErrorDetailsFieldsInner {
+ this := ValidationErrorResponseErrorDetailsFieldsInner{}
+ return &this
+}
+
+// NewValidationErrorResponseErrorDetailsFieldsInnerWithDefaults instantiates a new ValidationErrorResponseErrorDetailsFieldsInner object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewValidationErrorResponseErrorDetailsFieldsInnerWithDefaults() *ValidationErrorResponseErrorDetailsFieldsInner {
+ this := ValidationErrorResponseErrorDetailsFieldsInner{}
+ return &this
+}
+
+// GetLocation returns the Location field value if set, zero value otherwise.
+func (o *ValidationErrorResponseErrorDetailsFieldsInner) GetLocation() string {
+ if o == nil || IsNil(o.Location) {
+ var ret string
+ return ret
+ }
+ return *o.Location
+}
+
+// GetLocationOk returns a tuple with the Location field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+func (o *ValidationErrorResponseErrorDetailsFieldsInner) GetLocationOk() (*string, bool) {
+ if o == nil || IsNil(o.Location) {
+ return nil, false
+ }
+ return o.Location, true
+}
+
+// HasLocation returns a boolean if a field has been set.
+func (o *ValidationErrorResponseErrorDetailsFieldsInner) HasLocation() bool {
+ if o != nil && !IsNil(o.Location) {
+ return true
+ }
+
+ return false
+}
+
+// SetLocation gets a reference to the given string and assigns it to the Location field.
+func (o *ValidationErrorResponseErrorDetailsFieldsInner) SetLocation(v string) {
+ o.Location = &v
+}
+
+// GetReason returns the Reason field value if set, zero value otherwise.
+func (o *ValidationErrorResponseErrorDetailsFieldsInner) GetReason() string {
+ if o == nil || IsNil(o.Reason) {
+ var ret string
+ return ret
+ }
+ return *o.Reason
+}
+
+// GetReasonOk returns a tuple with the Reason field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+func (o *ValidationErrorResponseErrorDetailsFieldsInner) GetReasonOk() (*string, bool) {
+ if o == nil || IsNil(o.Reason) {
+ return nil, false
+ }
+ return o.Reason, true
+}
+
+// HasReason returns a boolean if a field has been set.
+func (o *ValidationErrorResponseErrorDetailsFieldsInner) HasReason() bool {
+ if o != nil && !IsNil(o.Reason) {
+ return true
+ }
+
+ return false
+}
+
+// SetReason gets a reference to the given string and assigns it to the Reason field.
+func (o *ValidationErrorResponseErrorDetailsFieldsInner) SetReason(v string) {
+ o.Reason = &v
+}
+
+func (o ValidationErrorResponseErrorDetailsFieldsInner) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o ValidationErrorResponseErrorDetailsFieldsInner) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ if !IsNil(o.Location) {
+ toSerialize["location"] = o.Location
+ }
+ if !IsNil(o.Reason) {
+ toSerialize["reason"] = o.Reason
+ }
+ return toSerialize, nil
+}
+
+type NullableValidationErrorResponseErrorDetailsFieldsInner struct {
+ value *ValidationErrorResponseErrorDetailsFieldsInner
+ isSet bool
+}
+
+func (v NullableValidationErrorResponseErrorDetailsFieldsInner) Get() *ValidationErrorResponseErrorDetailsFieldsInner {
+ return v.value
+}
+
+func (v *NullableValidationErrorResponseErrorDetailsFieldsInner) Set(val *ValidationErrorResponseErrorDetailsFieldsInner) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableValidationErrorResponseErrorDetailsFieldsInner) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableValidationErrorResponseErrorDetailsFieldsInner) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableValidationErrorResponseErrorDetailsFieldsInner(val *ValidationErrorResponseErrorDetailsFieldsInner) *NullableValidationErrorResponseErrorDetailsFieldsInner {
+ return &NullableValidationErrorResponseErrorDetailsFieldsInner{value: val, isSet: true}
+}
+
+func (v NullableValidationErrorResponseErrorDetailsFieldsInner) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableValidationErrorResponseErrorDetailsFieldsInner) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_validation_issue.go b/sdk/go/model_validation_issue.go
deleted file mode 100644
index 9a978c9..0000000
--- a/sdk/go/model_validation_issue.go
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "fmt"
-)
-
-// checks if the ValidationIssue type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &ValidationIssue{}
-
-// ValidationIssue One Pydantic/FastAPI validation issue.
-type ValidationIssue struct {
- Ctx map[string]interface{} `json:"ctx,omitempty"`
- Input interface{} `json:"input,omitempty"`
- Loc []interface{} `json:"loc"`
- Msg string `json:"msg"`
- Type string `json:"type"`
- AdditionalProperties map[string]interface{}
-}
-
-type _ValidationIssue ValidationIssue
-
-// NewValidationIssue instantiates a new ValidationIssue object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewValidationIssue(loc []interface{}, msg string, type_ string) *ValidationIssue {
- this := ValidationIssue{}
- this.Loc = loc
- this.Msg = msg
- this.Type = type_
- return &this
-}
-
-// NewValidationIssueWithDefaults instantiates a new ValidationIssue object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewValidationIssueWithDefaults() *ValidationIssue {
- this := ValidationIssue{}
- return &this
-}
-
-// GetCtx returns the Ctx field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *ValidationIssue) GetCtx() map[string]interface{} {
- if o == nil {
- var ret map[string]interface{}
- return ret
- }
- return o.Ctx
-}
-
-// GetCtxOk returns a tuple with the Ctx field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *ValidationIssue) GetCtxOk() (map[string]interface{}, bool) {
- if o == nil || IsNil(o.Ctx) {
- return map[string]interface{}{}, false
- }
- return o.Ctx, true
-}
-
-// HasCtx returns a boolean if a field has been set.
-func (o *ValidationIssue) HasCtx() bool {
- if o != nil && !IsNil(o.Ctx) {
- return true
- }
-
- return false
-}
-
-// SetCtx gets a reference to the given map[string]interface{} and assigns it to the Ctx field.
-func (o *ValidationIssue) SetCtx(v map[string]interface{}) {
- o.Ctx = v
-}
-
-// GetInput returns the Input field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *ValidationIssue) GetInput() interface{} {
- if o == nil {
- var ret interface{}
- return ret
- }
- return o.Input
-}
-
-// GetInputOk returns a tuple with the Input field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *ValidationIssue) GetInputOk() (*interface{}, bool) {
- if o == nil || IsNil(o.Input) {
- return nil, false
- }
- return &o.Input, true
-}
-
-// HasInput returns a boolean if a field has been set.
-func (o *ValidationIssue) HasInput() bool {
- if o != nil && !IsNil(o.Input) {
- return true
- }
-
- return false
-}
-
-// SetInput gets a reference to the given interface{} and assigns it to the Input field.
-func (o *ValidationIssue) SetInput(v interface{}) {
- o.Input = v
-}
-
-// GetLoc returns the Loc field value
-func (o *ValidationIssue) GetLoc() []interface{} {
- if o == nil {
- var ret []interface{}
- return ret
- }
-
- return o.Loc
-}
-
-// GetLocOk returns a tuple with the Loc field value
-// and a boolean to check if the value has been set.
-func (o *ValidationIssue) GetLocOk() ([]interface{}, bool) {
- if o == nil {
- return nil, false
- }
- return o.Loc, true
-}
-
-// SetLoc sets field value
-func (o *ValidationIssue) SetLoc(v []interface{}) {
- o.Loc = v
-}
-
-// GetMsg returns the Msg field value
-func (o *ValidationIssue) GetMsg() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Msg
-}
-
-// GetMsgOk returns a tuple with the Msg field value
-// and a boolean to check if the value has been set.
-func (o *ValidationIssue) GetMsgOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Msg, true
-}
-
-// SetMsg sets field value
-func (o *ValidationIssue) SetMsg(v string) {
- o.Msg = v
-}
-
-// GetType returns the Type field value
-func (o *ValidationIssue) GetType() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Type
-}
-
-// GetTypeOk returns a tuple with the Type field value
-// and a boolean to check if the value has been set.
-func (o *ValidationIssue) GetTypeOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Type, true
-}
-
-// SetType sets field value
-func (o *ValidationIssue) SetType(v string) {
- o.Type = v
-}
-
-func (o ValidationIssue) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o ValidationIssue) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- if o.Ctx != nil {
- toSerialize["ctx"] = o.Ctx
- }
- if o.Input != nil {
- toSerialize["input"] = o.Input
- }
- toSerialize["loc"] = o.Loc
- toSerialize["msg"] = o.Msg
- toSerialize["type"] = o.Type
-
- for key, value := range o.AdditionalProperties {
- toSerialize[key] = value
- }
-
- return toSerialize, nil
-}
-
-func (o *ValidationIssue) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "loc",
- "msg",
- "type",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varValidationIssue := _ValidationIssue{}
-
- err = json.Unmarshal(data, &varValidationIssue)
-
- if err != nil {
- return err
- }
-
- *o = ValidationIssue(varValidationIssue)
-
- additionalProperties := make(map[string]interface{})
-
- if err = json.Unmarshal(data, &additionalProperties); err == nil {
- delete(additionalProperties, "ctx")
- delete(additionalProperties, "input")
- delete(additionalProperties, "loc")
- delete(additionalProperties, "msg")
- delete(additionalProperties, "type")
- o.AdditionalProperties = additionalProperties
- }
-
- return err
-}
-
-type NullableValidationIssue struct {
- value *ValidationIssue
- isSet bool
-}
-
-func (v NullableValidationIssue) Get() *ValidationIssue {
- return v.value
-}
-
-func (v *NullableValidationIssue) Set(val *ValidationIssue) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableValidationIssue) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableValidationIssue) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableValidationIssue(val *ValidationIssue) *NullableValidationIssue {
- return &NullableValidationIssue{value: val, isSet: true}
-}
-
-func (v NullableValidationIssue) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableValidationIssue) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_version_created_out.go b/sdk/go/model_version_created_out.go
new file mode 100644
index 0000000..5c5bffc
--- /dev/null
+++ b/sdk/go/model_version_created_out.go
@@ -0,0 +1,414 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "time"
+ "bytes"
+ "fmt"
+)
+
+// checks if the VersionCreatedOut type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &VersionCreatedOut{}
+
+// VersionCreatedOut The append/restore response — a version plus the artifact's new revision, which the version-creating 201 rotates.
+type VersionCreatedOut struct {
+ ArtifactId string `json:"artifact_id" validate:"regexp=^art_[a-f0-9]{16}$"`
+ // The artifact's revision after this version became head — the If-Match value for the next mutation.
+ ArtifactRevision string `json:"artifact_revision" validate:"regexp=^rev_[a-f0-9]{16}$"`
+ ContentType string `json:"content_type"`
+ CreatedAt time.Time `json:"created_at"`
+ CreatedBy NullableString `json:"created_by"`
+ Hash string `json:"hash"`
+ Id string `json:"id" validate:"regexp=^ver_[a-f0-9]{16}$"`
+ ParentVersionId NullableString `json:"parent_version_id"`
+ SizeBytes int32 `json:"size_bytes"`
+ VersionNumber int32 `json:"version_number"`
+}
+
+type _VersionCreatedOut VersionCreatedOut
+
+// NewVersionCreatedOut instantiates a new VersionCreatedOut object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewVersionCreatedOut(artifactId string, artifactRevision string, contentType string, createdAt time.Time, createdBy NullableString, hash string, id string, parentVersionId NullableString, sizeBytes int32, versionNumber int32) *VersionCreatedOut {
+ this := VersionCreatedOut{}
+ this.ArtifactId = artifactId
+ this.ArtifactRevision = artifactRevision
+ this.ContentType = contentType
+ this.CreatedAt = createdAt
+ this.CreatedBy = createdBy
+ this.Hash = hash
+ this.Id = id
+ this.ParentVersionId = parentVersionId
+ this.SizeBytes = sizeBytes
+ this.VersionNumber = versionNumber
+ return &this
+}
+
+// NewVersionCreatedOutWithDefaults instantiates a new VersionCreatedOut object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewVersionCreatedOutWithDefaults() *VersionCreatedOut {
+ this := VersionCreatedOut{}
+ return &this
+}
+
+// GetArtifactId returns the ArtifactId field value
+func (o *VersionCreatedOut) GetArtifactId() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.ArtifactId
+}
+
+// GetArtifactIdOk returns a tuple with the ArtifactId field value
+// and a boolean to check if the value has been set.
+func (o *VersionCreatedOut) GetArtifactIdOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.ArtifactId, true
+}
+
+// SetArtifactId sets field value
+func (o *VersionCreatedOut) SetArtifactId(v string) {
+ o.ArtifactId = v
+}
+
+// GetArtifactRevision returns the ArtifactRevision field value
+func (o *VersionCreatedOut) GetArtifactRevision() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.ArtifactRevision
+}
+
+// GetArtifactRevisionOk returns a tuple with the ArtifactRevision field value
+// and a boolean to check if the value has been set.
+func (o *VersionCreatedOut) GetArtifactRevisionOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.ArtifactRevision, true
+}
+
+// SetArtifactRevision sets field value
+func (o *VersionCreatedOut) SetArtifactRevision(v string) {
+ o.ArtifactRevision = v
+}
+
+// GetContentType returns the ContentType field value
+func (o *VersionCreatedOut) GetContentType() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.ContentType
+}
+
+// GetContentTypeOk returns a tuple with the ContentType field value
+// and a boolean to check if the value has been set.
+func (o *VersionCreatedOut) GetContentTypeOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.ContentType, true
+}
+
+// SetContentType sets field value
+func (o *VersionCreatedOut) SetContentType(v string) {
+ o.ContentType = v
+}
+
+// GetCreatedAt returns the CreatedAt field value
+func (o *VersionCreatedOut) GetCreatedAt() time.Time {
+ if o == nil {
+ var ret time.Time
+ return ret
+ }
+
+ return o.CreatedAt
+}
+
+// GetCreatedAtOk returns a tuple with the CreatedAt field value
+// and a boolean to check if the value has been set.
+func (o *VersionCreatedOut) GetCreatedAtOk() (*time.Time, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.CreatedAt, true
+}
+
+// SetCreatedAt sets field value
+func (o *VersionCreatedOut) SetCreatedAt(v time.Time) {
+ o.CreatedAt = v
+}
+
+// GetCreatedBy returns the CreatedBy field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *VersionCreatedOut) GetCreatedBy() string {
+ if o == nil || o.CreatedBy.Get() == nil {
+ var ret string
+ return ret
+ }
+
+ return *o.CreatedBy.Get()
+}
+
+// GetCreatedByOk returns a tuple with the CreatedBy field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *VersionCreatedOut) GetCreatedByOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.CreatedBy.Get(), o.CreatedBy.IsSet()
+}
+
+// SetCreatedBy sets field value
+func (o *VersionCreatedOut) SetCreatedBy(v string) {
+ o.CreatedBy.Set(&v)
+}
+
+// GetHash returns the Hash field value
+func (o *VersionCreatedOut) GetHash() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.Hash
+}
+
+// GetHashOk returns a tuple with the Hash field value
+// and a boolean to check if the value has been set.
+func (o *VersionCreatedOut) GetHashOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Hash, true
+}
+
+// SetHash sets field value
+func (o *VersionCreatedOut) SetHash(v string) {
+ o.Hash = v
+}
+
+// GetId returns the Id field value
+func (o *VersionCreatedOut) GetId() string {
+ if o == nil {
+ var ret string
+ return ret
+ }
+
+ return o.Id
+}
+
+// GetIdOk returns a tuple with the Id field value
+// and a boolean to check if the value has been set.
+func (o *VersionCreatedOut) GetIdOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.Id, true
+}
+
+// SetId sets field value
+func (o *VersionCreatedOut) SetId(v string) {
+ o.Id = v
+}
+
+// GetParentVersionId returns the ParentVersionId field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *VersionCreatedOut) GetParentVersionId() string {
+ if o == nil || o.ParentVersionId.Get() == nil {
+ var ret string
+ return ret
+ }
+
+ return *o.ParentVersionId.Get()
+}
+
+// GetParentVersionIdOk returns a tuple with the ParentVersionId field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *VersionCreatedOut) GetParentVersionIdOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.ParentVersionId.Get(), o.ParentVersionId.IsSet()
+}
+
+// SetParentVersionId sets field value
+func (o *VersionCreatedOut) SetParentVersionId(v string) {
+ o.ParentVersionId.Set(&v)
+}
+
+// GetSizeBytes returns the SizeBytes field value
+func (o *VersionCreatedOut) GetSizeBytes() int32 {
+ if o == nil {
+ var ret int32
+ return ret
+ }
+
+ return o.SizeBytes
+}
+
+// GetSizeBytesOk returns a tuple with the SizeBytes field value
+// and a boolean to check if the value has been set.
+func (o *VersionCreatedOut) GetSizeBytesOk() (*int32, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.SizeBytes, true
+}
+
+// SetSizeBytes sets field value
+func (o *VersionCreatedOut) SetSizeBytes(v int32) {
+ o.SizeBytes = v
+}
+
+// GetVersionNumber returns the VersionNumber field value
+func (o *VersionCreatedOut) GetVersionNumber() int32 {
+ if o == nil {
+ var ret int32
+ return ret
+ }
+
+ return o.VersionNumber
+}
+
+// GetVersionNumberOk returns a tuple with the VersionNumber field value
+// and a boolean to check if the value has been set.
+func (o *VersionCreatedOut) GetVersionNumberOk() (*int32, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.VersionNumber, true
+}
+
+// SetVersionNumber sets field value
+func (o *VersionCreatedOut) SetVersionNumber(v int32) {
+ o.VersionNumber = v
+}
+
+func (o VersionCreatedOut) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o VersionCreatedOut) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["artifact_id"] = o.ArtifactId
+ toSerialize["artifact_revision"] = o.ArtifactRevision
+ toSerialize["content_type"] = o.ContentType
+ toSerialize["created_at"] = o.CreatedAt
+ toSerialize["created_by"] = o.CreatedBy.Get()
+ toSerialize["hash"] = o.Hash
+ toSerialize["id"] = o.Id
+ toSerialize["parent_version_id"] = o.ParentVersionId.Get()
+ toSerialize["size_bytes"] = o.SizeBytes
+ toSerialize["version_number"] = o.VersionNumber
+ return toSerialize, nil
+}
+
+func (o *VersionCreatedOut) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "artifact_id",
+ "artifact_revision",
+ "content_type",
+ "created_at",
+ "created_by",
+ "hash",
+ "id",
+ "parent_version_id",
+ "size_bytes",
+ "version_number",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varVersionCreatedOut := _VersionCreatedOut{}
+
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varVersionCreatedOut)
+
+ if err != nil {
+ return err
+ }
+
+ *o = VersionCreatedOut(varVersionCreatedOut)
+
+ return err
+}
+
+type NullableVersionCreatedOut struct {
+ value *VersionCreatedOut
+ isSet bool
+}
+
+func (v NullableVersionCreatedOut) Get() *VersionCreatedOut {
+ return v.value
+}
+
+func (v *NullableVersionCreatedOut) Set(val *VersionCreatedOut) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableVersionCreatedOut) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableVersionCreatedOut) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableVersionCreatedOut(val *VersionCreatedOut) *NullableVersionCreatedOut {
+ return &NullableVersionCreatedOut{value: val, isSet: true}
+}
+
+func (v NullableVersionCreatedOut) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableVersionCreatedOut) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_version_list_out.go b/sdk/go/model_version_list_out.go
new file mode 100644
index 0000000..d0b1cf8
--- /dev/null
+++ b/sdk/go/model_version_list_out.go
@@ -0,0 +1,186 @@
+/*
+AgentDrive
+
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
+
+API version:
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package agentdrive
+
+import (
+ "encoding/json"
+ "bytes"
+ "fmt"
+)
+
+// checks if the VersionListOut type satisfies the MappedNullable interface at compile time
+var _ MappedNullable = &VersionListOut{}
+
+// VersionListOut struct for VersionListOut
+type VersionListOut struct {
+ Items []VersionOut `json:"items"`
+ NextCursor NullableString `json:"next_cursor"`
+}
+
+type _VersionListOut VersionListOut
+
+// NewVersionListOut instantiates a new VersionListOut object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewVersionListOut(items []VersionOut, nextCursor NullableString) *VersionListOut {
+ this := VersionListOut{}
+ this.Items = items
+ this.NextCursor = nextCursor
+ return &this
+}
+
+// NewVersionListOutWithDefaults instantiates a new VersionListOut object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewVersionListOutWithDefaults() *VersionListOut {
+ this := VersionListOut{}
+ return &this
+}
+
+// GetItems returns the Items field value
+func (o *VersionListOut) GetItems() []VersionOut {
+ if o == nil {
+ var ret []VersionOut
+ return ret
+ }
+
+ return o.Items
+}
+
+// GetItemsOk returns a tuple with the Items field value
+// and a boolean to check if the value has been set.
+func (o *VersionListOut) GetItemsOk() ([]VersionOut, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.Items, true
+}
+
+// SetItems sets field value
+func (o *VersionListOut) SetItems(v []VersionOut) {
+ o.Items = v
+}
+
+// GetNextCursor returns the NextCursor field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *VersionListOut) GetNextCursor() string {
+ if o == nil || o.NextCursor.Get() == nil {
+ var ret string
+ return ret
+ }
+
+ return *o.NextCursor.Get()
+}
+
+// GetNextCursorOk returns a tuple with the NextCursor field value
+// and a boolean to check if the value has been set.
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *VersionListOut) GetNextCursorOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return o.NextCursor.Get(), o.NextCursor.IsSet()
+}
+
+// SetNextCursor sets field value
+func (o *VersionListOut) SetNextCursor(v string) {
+ o.NextCursor.Set(&v)
+}
+
+func (o VersionListOut) MarshalJSON() ([]byte, error) {
+ toSerialize,err := o.ToMap()
+ if err != nil {
+ return []byte{}, err
+ }
+ return json.Marshal(toSerialize)
+}
+
+func (o VersionListOut) ToMap() (map[string]interface{}, error) {
+ toSerialize := map[string]interface{}{}
+ toSerialize["items"] = o.Items
+ toSerialize["next_cursor"] = o.NextCursor.Get()
+ return toSerialize, nil
+}
+
+func (o *VersionListOut) UnmarshalJSON(data []byte) (err error) {
+ // This validates that all required properties are included in the JSON object
+ // by unmarshalling the object into a generic map with string keys and checking
+ // that every required field exists as a key in the generic map.
+ requiredProperties := []string{
+ "items",
+ "next_cursor",
+ }
+
+ allProperties := make(map[string]interface{})
+
+ err = json.Unmarshal(data, &allProperties)
+
+ if err != nil {
+ return err;
+ }
+
+ for _, requiredProperty := range(requiredProperties) {
+ if _, exists := allProperties[requiredProperty]; !exists {
+ return fmt.Errorf("no value given for required property %v", requiredProperty)
+ }
+ }
+
+ varVersionListOut := _VersionListOut{}
+
+ decoder := json.NewDecoder(bytes.NewReader(data))
+ decoder.DisallowUnknownFields()
+ err = decoder.Decode(&varVersionListOut)
+
+ if err != nil {
+ return err
+ }
+
+ *o = VersionListOut(varVersionListOut)
+
+ return err
+}
+
+type NullableVersionListOut struct {
+ value *VersionListOut
+ isSet bool
+}
+
+func (v NullableVersionListOut) Get() *VersionListOut {
+ return v.value
+}
+
+func (v *NullableVersionListOut) Set(val *VersionListOut) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableVersionListOut) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableVersionListOut) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableVersionListOut(val *VersionListOut) *NullableVersionListOut {
+ return &NullableVersionListOut{value: val, isSet: true}
+}
+
+func (v NullableVersionListOut) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableVersionListOut) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}
diff --git a/sdk/go/model_version_out.go b/sdk/go/model_version_out.go
index e0e82c3..f06ac3d 100644
--- a/sdk/go/model_version_out.go
+++ b/sdk/go/model_version_out.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
@@ -22,12 +22,13 @@ var _ MappedNullable = &VersionOut{}
// VersionOut struct for VersionOut
type VersionOut struct {
- ActorName NullableString `json:"actor_name,omitempty"`
- ArtId string `json:"art_id"`
- ChangeSummary NullableString `json:"change_summary,omitempty"`
+ ArtifactId string `json:"artifact_id" validate:"regexp=^art_[a-f0-9]{16}$"`
ContentType string `json:"content_type"`
CreatedAt time.Time `json:"created_at"`
+ CreatedBy NullableString `json:"created_by"`
Hash string `json:"hash"`
+ Id string `json:"id" validate:"regexp=^ver_[a-f0-9]{16}$"`
+ ParentVersionId NullableString `json:"parent_version_id"`
SizeBytes int32 `json:"size_bytes"`
VersionNumber int32 `json:"version_number"`
}
@@ -38,12 +39,15 @@ type _VersionOut VersionOut
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
-func NewVersionOut(artId string, contentType string, createdAt time.Time, hash string, sizeBytes int32, versionNumber int32) *VersionOut {
+func NewVersionOut(artifactId string, contentType string, createdAt time.Time, createdBy NullableString, hash string, id string, parentVersionId NullableString, sizeBytes int32, versionNumber int32) *VersionOut {
this := VersionOut{}
- this.ArtId = artId
+ this.ArtifactId = artifactId
this.ContentType = contentType
this.CreatedAt = createdAt
+ this.CreatedBy = createdBy
this.Hash = hash
+ this.Id = id
+ this.ParentVersionId = parentVersionId
this.SizeBytes = sizeBytes
this.VersionNumber = versionNumber
return &this
@@ -57,184 +61,176 @@ func NewVersionOutWithDefaults() *VersionOut {
return &this
}
-// GetActorName returns the ActorName field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *VersionOut) GetActorName() string {
- if o == nil || IsNil(o.ActorName.Get()) {
+// GetArtifactId returns the ArtifactId field value
+func (o *VersionOut) GetArtifactId() string {
+ if o == nil {
var ret string
return ret
}
- return *o.ActorName.Get()
+
+ return o.ArtifactId
}
-// GetActorNameOk returns a tuple with the ActorName field value if set, nil otherwise
+// GetArtifactIdOk returns a tuple with the ArtifactId field value
// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *VersionOut) GetActorNameOk() (*string, bool) {
+func (o *VersionOut) GetArtifactIdOk() (*string, bool) {
if o == nil {
return nil, false
}
- return o.ActorName.Get(), o.ActorName.IsSet()
+ return &o.ArtifactId, true
}
-// HasActorName returns a boolean if a field has been set.
-func (o *VersionOut) HasActorName() bool {
- if o != nil && o.ActorName.IsSet() {
- return true
+// SetArtifactId sets field value
+func (o *VersionOut) SetArtifactId(v string) {
+ o.ArtifactId = v
+}
+
+// GetContentType returns the ContentType field value
+func (o *VersionOut) GetContentType() string {
+ if o == nil {
+ var ret string
+ return ret
}
- return false
+ return o.ContentType
}
-// SetActorName gets a reference to the given NullableString and assigns it to the ActorName field.
-func (o *VersionOut) SetActorName(v string) {
- o.ActorName.Set(&v)
-}
-// SetActorNameNil sets the value for ActorName to be an explicit nil
-func (o *VersionOut) SetActorNameNil() {
- o.ActorName.Set(nil)
+// GetContentTypeOk returns a tuple with the ContentType field value
+// and a boolean to check if the value has been set.
+func (o *VersionOut) GetContentTypeOk() (*string, bool) {
+ if o == nil {
+ return nil, false
+ }
+ return &o.ContentType, true
}
-// UnsetActorName ensures that no value is present for ActorName, not even an explicit nil
-func (o *VersionOut) UnsetActorName() {
- o.ActorName.Unset()
+// SetContentType sets field value
+func (o *VersionOut) SetContentType(v string) {
+ o.ContentType = v
}
-// GetArtId returns the ArtId field value
-func (o *VersionOut) GetArtId() string {
+// GetCreatedAt returns the CreatedAt field value
+func (o *VersionOut) GetCreatedAt() time.Time {
if o == nil {
- var ret string
+ var ret time.Time
return ret
}
- return o.ArtId
+ return o.CreatedAt
}
-// GetArtIdOk returns a tuple with the ArtId field value
+// GetCreatedAtOk returns a tuple with the CreatedAt field value
// and a boolean to check if the value has been set.
-func (o *VersionOut) GetArtIdOk() (*string, bool) {
+func (o *VersionOut) GetCreatedAtOk() (*time.Time, bool) {
if o == nil {
return nil, false
}
- return &o.ArtId, true
+ return &o.CreatedAt, true
}
-// SetArtId sets field value
-func (o *VersionOut) SetArtId(v string) {
- o.ArtId = v
+// SetCreatedAt sets field value
+func (o *VersionOut) SetCreatedAt(v time.Time) {
+ o.CreatedAt = v
}
-// GetChangeSummary returns the ChangeSummary field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *VersionOut) GetChangeSummary() string {
- if o == nil || IsNil(o.ChangeSummary.Get()) {
+// GetCreatedBy returns the CreatedBy field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *VersionOut) GetCreatedBy() string {
+ if o == nil || o.CreatedBy.Get() == nil {
var ret string
return ret
}
- return *o.ChangeSummary.Get()
+
+ return *o.CreatedBy.Get()
}
-// GetChangeSummaryOk returns a tuple with the ChangeSummary field value if set, nil otherwise
+// GetCreatedByOk returns a tuple with the CreatedBy field value
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *VersionOut) GetChangeSummaryOk() (*string, bool) {
+func (o *VersionOut) GetCreatedByOk() (*string, bool) {
if o == nil {
return nil, false
}
- return o.ChangeSummary.Get(), o.ChangeSummary.IsSet()
-}
-
-// HasChangeSummary returns a boolean if a field has been set.
-func (o *VersionOut) HasChangeSummary() bool {
- if o != nil && o.ChangeSummary.IsSet() {
- return true
- }
-
- return false
+ return o.CreatedBy.Get(), o.CreatedBy.IsSet()
}
-// SetChangeSummary gets a reference to the given NullableString and assigns it to the ChangeSummary field.
-func (o *VersionOut) SetChangeSummary(v string) {
- o.ChangeSummary.Set(&v)
-}
-// SetChangeSummaryNil sets the value for ChangeSummary to be an explicit nil
-func (o *VersionOut) SetChangeSummaryNil() {
- o.ChangeSummary.Set(nil)
+// SetCreatedBy sets field value
+func (o *VersionOut) SetCreatedBy(v string) {
+ o.CreatedBy.Set(&v)
}
-// UnsetChangeSummary ensures that no value is present for ChangeSummary, not even an explicit nil
-func (o *VersionOut) UnsetChangeSummary() {
- o.ChangeSummary.Unset()
-}
-
-// GetContentType returns the ContentType field value
-func (o *VersionOut) GetContentType() string {
+// GetHash returns the Hash field value
+func (o *VersionOut) GetHash() string {
if o == nil {
var ret string
return ret
}
- return o.ContentType
+ return o.Hash
}
-// GetContentTypeOk returns a tuple with the ContentType field value
+// GetHashOk returns a tuple with the Hash field value
// and a boolean to check if the value has been set.
-func (o *VersionOut) GetContentTypeOk() (*string, bool) {
+func (o *VersionOut) GetHashOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.ContentType, true
+ return &o.Hash, true
}
-// SetContentType sets field value
-func (o *VersionOut) SetContentType(v string) {
- o.ContentType = v
+// SetHash sets field value
+func (o *VersionOut) SetHash(v string) {
+ o.Hash = v
}
-// GetCreatedAt returns the CreatedAt field value
-func (o *VersionOut) GetCreatedAt() time.Time {
+// GetId returns the Id field value
+func (o *VersionOut) GetId() string {
if o == nil {
- var ret time.Time
+ var ret string
return ret
}
- return o.CreatedAt
+ return o.Id
}
-// GetCreatedAtOk returns a tuple with the CreatedAt field value
+// GetIdOk returns a tuple with the Id field value
// and a boolean to check if the value has been set.
-func (o *VersionOut) GetCreatedAtOk() (*time.Time, bool) {
+func (o *VersionOut) GetIdOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.CreatedAt, true
+ return &o.Id, true
}
-// SetCreatedAt sets field value
-func (o *VersionOut) SetCreatedAt(v time.Time) {
- o.CreatedAt = v
+// SetId sets field value
+func (o *VersionOut) SetId(v string) {
+ o.Id = v
}
-// GetHash returns the Hash field value
-func (o *VersionOut) GetHash() string {
- if o == nil {
+// GetParentVersionId returns the ParentVersionId field value
+// If the value is explicit nil, the zero value for string will be returned
+func (o *VersionOut) GetParentVersionId() string {
+ if o == nil || o.ParentVersionId.Get() == nil {
var ret string
return ret
}
- return o.Hash
+ return *o.ParentVersionId.Get()
}
-// GetHashOk returns a tuple with the Hash field value
+// GetParentVersionIdOk returns a tuple with the ParentVersionId field value
// and a boolean to check if the value has been set.
-func (o *VersionOut) GetHashOk() (*string, bool) {
+// NOTE: If the value is an explicit nil, `nil, true` will be returned
+func (o *VersionOut) GetParentVersionIdOk() (*string, bool) {
if o == nil {
return nil, false
}
- return &o.Hash, true
+ return o.ParentVersionId.Get(), o.ParentVersionId.IsSet()
}
-// SetHash sets field value
-func (o *VersionOut) SetHash(v string) {
- o.Hash = v
+// SetParentVersionId sets field value
+func (o *VersionOut) SetParentVersionId(v string) {
+ o.ParentVersionId.Set(&v)
}
// GetSizeBytes returns the SizeBytes field value
@@ -295,16 +291,13 @@ func (o VersionOut) MarshalJSON() ([]byte, error) {
func (o VersionOut) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
- if o.ActorName.IsSet() {
- toSerialize["actor_name"] = o.ActorName.Get()
- }
- toSerialize["art_id"] = o.ArtId
- if o.ChangeSummary.IsSet() {
- toSerialize["change_summary"] = o.ChangeSummary.Get()
- }
+ toSerialize["artifact_id"] = o.ArtifactId
toSerialize["content_type"] = o.ContentType
toSerialize["created_at"] = o.CreatedAt
+ toSerialize["created_by"] = o.CreatedBy.Get()
toSerialize["hash"] = o.Hash
+ toSerialize["id"] = o.Id
+ toSerialize["parent_version_id"] = o.ParentVersionId.Get()
toSerialize["size_bytes"] = o.SizeBytes
toSerialize["version_number"] = o.VersionNumber
return toSerialize, nil
@@ -315,10 +308,13 @@ func (o *VersionOut) UnmarshalJSON(data []byte) (err error) {
// by unmarshalling the object into a generic map with string keys and checking
// that every required field exists as a key in the generic map.
requiredProperties := []string{
- "art_id",
+ "artifact_id",
"content_type",
"created_at",
+ "created_by",
"hash",
+ "id",
+ "parent_version_id",
"size_bytes",
"version_number",
}
diff --git a/sdk/go/model_version_page.go b/sdk/go/model_version_page.go
deleted file mode 100644
index 7817650..0000000
--- a/sdk/go/model_version_page.go
+++ /dev/null
@@ -1,248 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the VersionPage type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &VersionPage{}
-
-// VersionPage struct for VersionPage
-type VersionPage struct {
- Items []VersionOut `json:"items"`
- NextCursor NullableString `json:"next_cursor,omitempty"`
- PrunedBefore NullableInt32 `json:"pruned_before,omitempty"`
-}
-
-type _VersionPage VersionPage
-
-// NewVersionPage instantiates a new VersionPage object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewVersionPage(items []VersionOut) *VersionPage {
- this := VersionPage{}
- this.Items = items
- return &this
-}
-
-// NewVersionPageWithDefaults instantiates a new VersionPage object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewVersionPageWithDefaults() *VersionPage {
- this := VersionPage{}
- return &this
-}
-
-// GetItems returns the Items field value
-func (o *VersionPage) GetItems() []VersionOut {
- if o == nil {
- var ret []VersionOut
- return ret
- }
-
- return o.Items
-}
-
-// GetItemsOk returns a tuple with the Items field value
-// and a boolean to check if the value has been set.
-func (o *VersionPage) GetItemsOk() ([]VersionOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Items, true
-}
-
-// SetItems sets field value
-func (o *VersionPage) SetItems(v []VersionOut) {
- o.Items = v
-}
-
-// GetNextCursor returns the NextCursor field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *VersionPage) GetNextCursor() string {
- if o == nil || IsNil(o.NextCursor.Get()) {
- var ret string
- return ret
- }
- return *o.NextCursor.Get()
-}
-
-// GetNextCursorOk returns a tuple with the NextCursor field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *VersionPage) GetNextCursorOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.NextCursor.Get(), o.NextCursor.IsSet()
-}
-
-// HasNextCursor returns a boolean if a field has been set.
-func (o *VersionPage) HasNextCursor() bool {
- if o != nil && o.NextCursor.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetNextCursor gets a reference to the given NullableString and assigns it to the NextCursor field.
-func (o *VersionPage) SetNextCursor(v string) {
- o.NextCursor.Set(&v)
-}
-// SetNextCursorNil sets the value for NextCursor to be an explicit nil
-func (o *VersionPage) SetNextCursorNil() {
- o.NextCursor.Set(nil)
-}
-
-// UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-func (o *VersionPage) UnsetNextCursor() {
- o.NextCursor.Unset()
-}
-
-// GetPrunedBefore returns the PrunedBefore field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *VersionPage) GetPrunedBefore() int32 {
- if o == nil || IsNil(o.PrunedBefore.Get()) {
- var ret int32
- return ret
- }
- return *o.PrunedBefore.Get()
-}
-
-// GetPrunedBeforeOk returns a tuple with the PrunedBefore field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *VersionPage) GetPrunedBeforeOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return o.PrunedBefore.Get(), o.PrunedBefore.IsSet()
-}
-
-// HasPrunedBefore returns a boolean if a field has been set.
-func (o *VersionPage) HasPrunedBefore() bool {
- if o != nil && o.PrunedBefore.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetPrunedBefore gets a reference to the given NullableInt32 and assigns it to the PrunedBefore field.
-func (o *VersionPage) SetPrunedBefore(v int32) {
- o.PrunedBefore.Set(&v)
-}
-// SetPrunedBeforeNil sets the value for PrunedBefore to be an explicit nil
-func (o *VersionPage) SetPrunedBeforeNil() {
- o.PrunedBefore.Set(nil)
-}
-
-// UnsetPrunedBefore ensures that no value is present for PrunedBefore, not even an explicit nil
-func (o *VersionPage) UnsetPrunedBefore() {
- o.PrunedBefore.Unset()
-}
-
-func (o VersionPage) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o VersionPage) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["items"] = o.Items
- if o.NextCursor.IsSet() {
- toSerialize["next_cursor"] = o.NextCursor.Get()
- }
- if o.PrunedBefore.IsSet() {
- toSerialize["pruned_before"] = o.PrunedBefore.Get()
- }
- return toSerialize, nil
-}
-
-func (o *VersionPage) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "items",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varVersionPage := _VersionPage{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varVersionPage)
-
- if err != nil {
- return err
- }
-
- *o = VersionPage(varVersionPage)
-
- return err
-}
-
-type NullableVersionPage struct {
- value *VersionPage
- isSet bool
-}
-
-func (v NullableVersionPage) Get() *VersionPage {
- return v.value
-}
-
-func (v *NullableVersionPage) Set(val *VersionPage) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableVersionPage) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableVersionPage) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableVersionPage(val *VersionPage) *NullableVersionPage {
- return &NullableVersionPage{value: val, isSet: true}
-}
-
-func (v NullableVersionPage) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableVersionPage) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_version_retention_out.go b/sdk/go/model_version_retention_out.go
deleted file mode 100644
index 75b061a..0000000
--- a/sdk/go/model_version_retention_out.go
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the VersionRetentionOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &VersionRetentionOut{}
-
-// VersionRetentionOut struct for VersionRetentionOut
-type VersionRetentionOut struct {
- VersionsMax int32 `json:"versions_max"`
-}
-
-type _VersionRetentionOut VersionRetentionOut
-
-// NewVersionRetentionOut instantiates a new VersionRetentionOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewVersionRetentionOut(versionsMax int32) *VersionRetentionOut {
- this := VersionRetentionOut{}
- this.VersionsMax = versionsMax
- return &this
-}
-
-// NewVersionRetentionOutWithDefaults instantiates a new VersionRetentionOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewVersionRetentionOutWithDefaults() *VersionRetentionOut {
- this := VersionRetentionOut{}
- return &this
-}
-
-// GetVersionsMax returns the VersionsMax field value
-func (o *VersionRetentionOut) GetVersionsMax() int32 {
- if o == nil {
- var ret int32
- return ret
- }
-
- return o.VersionsMax
-}
-
-// GetVersionsMaxOk returns a tuple with the VersionsMax field value
-// and a boolean to check if the value has been set.
-func (o *VersionRetentionOut) GetVersionsMaxOk() (*int32, bool) {
- if o == nil {
- return nil, false
- }
- return &o.VersionsMax, true
-}
-
-// SetVersionsMax sets field value
-func (o *VersionRetentionOut) SetVersionsMax(v int32) {
- o.VersionsMax = v
-}
-
-func (o VersionRetentionOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o VersionRetentionOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["versions_max"] = o.VersionsMax
- return toSerialize, nil
-}
-
-func (o *VersionRetentionOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "versions_max",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varVersionRetentionOut := _VersionRetentionOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varVersionRetentionOut)
-
- if err != nil {
- return err
- }
-
- *o = VersionRetentionOut(varVersionRetentionOut)
-
- return err
-}
-
-type NullableVersionRetentionOut struct {
- value *VersionRetentionOut
- isSet bool
-}
-
-func (v NullableVersionRetentionOut) Get() *VersionRetentionOut {
- return v.value
-}
-
-func (v *NullableVersionRetentionOut) Set(val *VersionRetentionOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableVersionRetentionOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableVersionRetentionOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableVersionRetentionOut(val *VersionRetentionOut) *NullableVersionRetentionOut {
- return &NullableVersionRetentionOut{value: val, isSet: true}
-}
-
-func (v NullableVersionRetentionOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableVersionRetentionOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_workspace_create_in.go b/sdk/go/model_workspace_create_in.go
deleted file mode 100644
index b97b6d0..0000000
--- a/sdk/go/model_workspace_create_in.go
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the WorkspaceCreateIn type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &WorkspaceCreateIn{}
-
-// WorkspaceCreateIn POST /v0/workspaces body. `name` is the user-facing workspace label; the creator becomes its admin and gets a starter drive.
-type WorkspaceCreateIn struct {
- Name string `json:"name"`
-}
-
-type _WorkspaceCreateIn WorkspaceCreateIn
-
-// NewWorkspaceCreateIn instantiates a new WorkspaceCreateIn object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewWorkspaceCreateIn(name string) *WorkspaceCreateIn {
- this := WorkspaceCreateIn{}
- this.Name = name
- return &this
-}
-
-// NewWorkspaceCreateInWithDefaults instantiates a new WorkspaceCreateIn object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewWorkspaceCreateInWithDefaults() *WorkspaceCreateIn {
- this := WorkspaceCreateIn{}
- return &this
-}
-
-// GetName returns the Name field value
-func (o *WorkspaceCreateIn) GetName() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Name
-}
-
-// GetNameOk returns a tuple with the Name field value
-// and a boolean to check if the value has been set.
-func (o *WorkspaceCreateIn) GetNameOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Name, true
-}
-
-// SetName sets field value
-func (o *WorkspaceCreateIn) SetName(v string) {
- o.Name = v
-}
-
-func (o WorkspaceCreateIn) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o WorkspaceCreateIn) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["name"] = o.Name
- return toSerialize, nil
-}
-
-func (o *WorkspaceCreateIn) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "name",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varWorkspaceCreateIn := _WorkspaceCreateIn{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varWorkspaceCreateIn)
-
- if err != nil {
- return err
- }
-
- *o = WorkspaceCreateIn(varWorkspaceCreateIn)
-
- return err
-}
-
-type NullableWorkspaceCreateIn struct {
- value *WorkspaceCreateIn
- isSet bool
-}
-
-func (v NullableWorkspaceCreateIn) Get() *WorkspaceCreateIn {
- return v.value
-}
-
-func (v *NullableWorkspaceCreateIn) Set(val *WorkspaceCreateIn) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableWorkspaceCreateIn) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableWorkspaceCreateIn) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableWorkspaceCreateIn(val *WorkspaceCreateIn) *NullableWorkspaceCreateIn {
- return &NullableWorkspaceCreateIn{value: val, isSet: true}
-}
-
-func (v NullableWorkspaceCreateIn) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableWorkspaceCreateIn) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_workspace_create_out.go b/sdk/go/model_workspace_create_out.go
deleted file mode 100644
index 75777cb..0000000
--- a/sdk/go/model_workspace_create_out.go
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the WorkspaceCreateOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &WorkspaceCreateOut{}
-
-// WorkspaceCreateOut POST /v0/workspaces response. Carries the new workspace + its starter drive's `ad_live_` key **once** (`starter_drive_api_key`) — reveal-once, store it now (mint more keys via `POST /v0/drives/{id}/keys`).
-type WorkspaceCreateOut struct {
- StarterDriveApiKey string `json:"starter_drive_api_key"`
- StarterDriveId string `json:"starter_drive_id"`
- Workspace WorkspaceOut `json:"workspace"`
-}
-
-type _WorkspaceCreateOut WorkspaceCreateOut
-
-// NewWorkspaceCreateOut instantiates a new WorkspaceCreateOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewWorkspaceCreateOut(starterDriveApiKey string, starterDriveId string, workspace WorkspaceOut) *WorkspaceCreateOut {
- this := WorkspaceCreateOut{}
- this.StarterDriveApiKey = starterDriveApiKey
- this.StarterDriveId = starterDriveId
- this.Workspace = workspace
- return &this
-}
-
-// NewWorkspaceCreateOutWithDefaults instantiates a new WorkspaceCreateOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewWorkspaceCreateOutWithDefaults() *WorkspaceCreateOut {
- this := WorkspaceCreateOut{}
- return &this
-}
-
-// GetStarterDriveApiKey returns the StarterDriveApiKey field value
-func (o *WorkspaceCreateOut) GetStarterDriveApiKey() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.StarterDriveApiKey
-}
-
-// GetStarterDriveApiKeyOk returns a tuple with the StarterDriveApiKey field value
-// and a boolean to check if the value has been set.
-func (o *WorkspaceCreateOut) GetStarterDriveApiKeyOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.StarterDriveApiKey, true
-}
-
-// SetStarterDriveApiKey sets field value
-func (o *WorkspaceCreateOut) SetStarterDriveApiKey(v string) {
- o.StarterDriveApiKey = v
-}
-
-// GetStarterDriveId returns the StarterDriveId field value
-func (o *WorkspaceCreateOut) GetStarterDriveId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.StarterDriveId
-}
-
-// GetStarterDriveIdOk returns a tuple with the StarterDriveId field value
-// and a boolean to check if the value has been set.
-func (o *WorkspaceCreateOut) GetStarterDriveIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.StarterDriveId, true
-}
-
-// SetStarterDriveId sets field value
-func (o *WorkspaceCreateOut) SetStarterDriveId(v string) {
- o.StarterDriveId = v
-}
-
-// GetWorkspace returns the Workspace field value
-func (o *WorkspaceCreateOut) GetWorkspace() WorkspaceOut {
- if o == nil {
- var ret WorkspaceOut
- return ret
- }
-
- return o.Workspace
-}
-
-// GetWorkspaceOk returns a tuple with the Workspace field value
-// and a boolean to check if the value has been set.
-func (o *WorkspaceCreateOut) GetWorkspaceOk() (*WorkspaceOut, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Workspace, true
-}
-
-// SetWorkspace sets field value
-func (o *WorkspaceCreateOut) SetWorkspace(v WorkspaceOut) {
- o.Workspace = v
-}
-
-func (o WorkspaceCreateOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o WorkspaceCreateOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["starter_drive_api_key"] = o.StarterDriveApiKey
- toSerialize["starter_drive_id"] = o.StarterDriveId
- toSerialize["workspace"] = o.Workspace
- return toSerialize, nil
-}
-
-func (o *WorkspaceCreateOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "starter_drive_api_key",
- "starter_drive_id",
- "workspace",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varWorkspaceCreateOut := _WorkspaceCreateOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varWorkspaceCreateOut)
-
- if err != nil {
- return err
- }
-
- *o = WorkspaceCreateOut(varWorkspaceCreateOut)
-
- return err
-}
-
-type NullableWorkspaceCreateOut struct {
- value *WorkspaceCreateOut
- isSet bool
-}
-
-func (v NullableWorkspaceCreateOut) Get() *WorkspaceCreateOut {
- return v.value
-}
-
-func (v *NullableWorkspaceCreateOut) Set(val *WorkspaceCreateOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableWorkspaceCreateOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableWorkspaceCreateOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableWorkspaceCreateOut(val *WorkspaceCreateOut) *NullableWorkspaceCreateOut {
- return &NullableWorkspaceCreateOut{value: val, isSet: true}
-}
-
-func (v NullableWorkspaceCreateOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableWorkspaceCreateOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_workspace_list.go b/sdk/go/model_workspace_list.go
deleted file mode 100644
index 01a7a01..0000000
--- a/sdk/go/model_workspace_list.go
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the WorkspaceList type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &WorkspaceList{}
-
-// WorkspaceList struct for WorkspaceList
-type WorkspaceList struct {
- Items []WorkspaceOut `json:"items"`
- NextCursor NullableString `json:"next_cursor,omitempty"`
-}
-
-type _WorkspaceList WorkspaceList
-
-// NewWorkspaceList instantiates a new WorkspaceList object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewWorkspaceList(items []WorkspaceOut) *WorkspaceList {
- this := WorkspaceList{}
- this.Items = items
- return &this
-}
-
-// NewWorkspaceListWithDefaults instantiates a new WorkspaceList object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewWorkspaceListWithDefaults() *WorkspaceList {
- this := WorkspaceList{}
- return &this
-}
-
-// GetItems returns the Items field value
-func (o *WorkspaceList) GetItems() []WorkspaceOut {
- if o == nil {
- var ret []WorkspaceOut
- return ret
- }
-
- return o.Items
-}
-
-// GetItemsOk returns a tuple with the Items field value
-// and a boolean to check if the value has been set.
-func (o *WorkspaceList) GetItemsOk() ([]WorkspaceOut, bool) {
- if o == nil {
- return nil, false
- }
- return o.Items, true
-}
-
-// SetItems sets field value
-func (o *WorkspaceList) SetItems(v []WorkspaceOut) {
- o.Items = v
-}
-
-// GetNextCursor returns the NextCursor field value if set, zero value otherwise (both if not set or set to explicit null).
-func (o *WorkspaceList) GetNextCursor() string {
- if o == nil || IsNil(o.NextCursor.Get()) {
- var ret string
- return ret
- }
- return *o.NextCursor.Get()
-}
-
-// GetNextCursorOk returns a tuple with the NextCursor field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-// NOTE: If the value is an explicit nil, `nil, true` will be returned
-func (o *WorkspaceList) GetNextCursorOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return o.NextCursor.Get(), o.NextCursor.IsSet()
-}
-
-// HasNextCursor returns a boolean if a field has been set.
-func (o *WorkspaceList) HasNextCursor() bool {
- if o != nil && o.NextCursor.IsSet() {
- return true
- }
-
- return false
-}
-
-// SetNextCursor gets a reference to the given NullableString and assigns it to the NextCursor field.
-func (o *WorkspaceList) SetNextCursor(v string) {
- o.NextCursor.Set(&v)
-}
-// SetNextCursorNil sets the value for NextCursor to be an explicit nil
-func (o *WorkspaceList) SetNextCursorNil() {
- o.NextCursor.Set(nil)
-}
-
-// UnsetNextCursor ensures that no value is present for NextCursor, not even an explicit nil
-func (o *WorkspaceList) UnsetNextCursor() {
- o.NextCursor.Unset()
-}
-
-func (o WorkspaceList) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o WorkspaceList) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["items"] = o.Items
- if o.NextCursor.IsSet() {
- toSerialize["next_cursor"] = o.NextCursor.Get()
- }
- return toSerialize, nil
-}
-
-func (o *WorkspaceList) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "items",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varWorkspaceList := _WorkspaceList{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varWorkspaceList)
-
- if err != nil {
- return err
- }
-
- *o = WorkspaceList(varWorkspaceList)
-
- return err
-}
-
-type NullableWorkspaceList struct {
- value *WorkspaceList
- isSet bool
-}
-
-func (v NullableWorkspaceList) Get() *WorkspaceList {
- return v.value
-}
-
-func (v *NullableWorkspaceList) Set(val *WorkspaceList) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableWorkspaceList) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableWorkspaceList) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableWorkspaceList(val *WorkspaceList) *NullableWorkspaceList {
- return &NullableWorkspaceList{value: val, isSet: true}
-}
-
-func (v NullableWorkspaceList) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableWorkspaceList) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_workspace_out.go b/sdk/go/model_workspace_out.go
deleted file mode 100644
index 1b826af..0000000
--- a/sdk/go/model_workspace_out.go
+++ /dev/null
@@ -1,269 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "time"
- "bytes"
- "fmt"
-)
-
-// checks if the WorkspaceOut type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &WorkspaceOut{}
-
-// WorkspaceOut One workspace in a listing — metadata only. `role` is the CALLER's role in it (admin/member), so a client can render management affordances without a second round-trip.
-type WorkspaceOut struct {
- CreatedAt time.Time `json:"created_at"`
- Id string `json:"id"`
- Name string `json:"name"`
- Role string `json:"role"`
- TierId string `json:"tier_id"`
-}
-
-type _WorkspaceOut WorkspaceOut
-
-// NewWorkspaceOut instantiates a new WorkspaceOut object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewWorkspaceOut(createdAt time.Time, id string, name string, role string, tierId string) *WorkspaceOut {
- this := WorkspaceOut{}
- this.CreatedAt = createdAt
- this.Id = id
- this.Name = name
- this.Role = role
- this.TierId = tierId
- return &this
-}
-
-// NewWorkspaceOutWithDefaults instantiates a new WorkspaceOut object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewWorkspaceOutWithDefaults() *WorkspaceOut {
- this := WorkspaceOut{}
- return &this
-}
-
-// GetCreatedAt returns the CreatedAt field value
-func (o *WorkspaceOut) GetCreatedAt() time.Time {
- if o == nil {
- var ret time.Time
- return ret
- }
-
- return o.CreatedAt
-}
-
-// GetCreatedAtOk returns a tuple with the CreatedAt field value
-// and a boolean to check if the value has been set.
-func (o *WorkspaceOut) GetCreatedAtOk() (*time.Time, bool) {
- if o == nil {
- return nil, false
- }
- return &o.CreatedAt, true
-}
-
-// SetCreatedAt sets field value
-func (o *WorkspaceOut) SetCreatedAt(v time.Time) {
- o.CreatedAt = v
-}
-
-// GetId returns the Id field value
-func (o *WorkspaceOut) GetId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *WorkspaceOut) GetIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Id, true
-}
-
-// SetId sets field value
-func (o *WorkspaceOut) SetId(v string) {
- o.Id = v
-}
-
-// GetName returns the Name field value
-func (o *WorkspaceOut) GetName() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Name
-}
-
-// GetNameOk returns a tuple with the Name field value
-// and a boolean to check if the value has been set.
-func (o *WorkspaceOut) GetNameOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Name, true
-}
-
-// SetName sets field value
-func (o *WorkspaceOut) SetName(v string) {
- o.Name = v
-}
-
-// GetRole returns the Role field value
-func (o *WorkspaceOut) GetRole() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Role
-}
-
-// GetRoleOk returns a tuple with the Role field value
-// and a boolean to check if the value has been set.
-func (o *WorkspaceOut) GetRoleOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Role, true
-}
-
-// SetRole sets field value
-func (o *WorkspaceOut) SetRole(v string) {
- o.Role = v
-}
-
-// GetTierId returns the TierId field value
-func (o *WorkspaceOut) GetTierId() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.TierId
-}
-
-// GetTierIdOk returns a tuple with the TierId field value
-// and a boolean to check if the value has been set.
-func (o *WorkspaceOut) GetTierIdOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.TierId, true
-}
-
-// SetTierId sets field value
-func (o *WorkspaceOut) SetTierId(v string) {
- o.TierId = v
-}
-
-func (o WorkspaceOut) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o WorkspaceOut) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["created_at"] = o.CreatedAt
- toSerialize["id"] = o.Id
- toSerialize["name"] = o.Name
- toSerialize["role"] = o.Role
- toSerialize["tier_id"] = o.TierId
- return toSerialize, nil
-}
-
-func (o *WorkspaceOut) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "created_at",
- "id",
- "name",
- "role",
- "tier_id",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varWorkspaceOut := _WorkspaceOut{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varWorkspaceOut)
-
- if err != nil {
- return err
- }
-
- *o = WorkspaceOut(varWorkspaceOut)
-
- return err
-}
-
-type NullableWorkspaceOut struct {
- value *WorkspaceOut
- isSet bool
-}
-
-func (v NullableWorkspaceOut) Get() *WorkspaceOut {
- return v.value
-}
-
-func (v *NullableWorkspaceOut) Set(val *WorkspaceOut) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableWorkspaceOut) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableWorkspaceOut) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableWorkspaceOut(val *WorkspaceOut) *NullableWorkspaceOut {
- return &NullableWorkspaceOut{value: val, isSet: true}
-}
-
-func (v NullableWorkspaceOut) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableWorkspaceOut) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/model_workspace_rename_in.go b/sdk/go/model_workspace_rename_in.go
deleted file mode 100644
index 661b079..0000000
--- a/sdk/go/model_workspace_rename_in.go
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
-AgentDrive
-
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
-
-API version:
-*/
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package agentdrive
-
-import (
- "encoding/json"
- "bytes"
- "fmt"
-)
-
-// checks if the WorkspaceRenameIn type satisfies the MappedNullable interface at compile time
-var _ MappedNullable = &WorkspaceRenameIn{}
-
-// WorkspaceRenameIn PATCH /v0/workspaces/{org} body — rename a workspace the caller administers.
-type WorkspaceRenameIn struct {
- Name string `json:"name"`
-}
-
-type _WorkspaceRenameIn WorkspaceRenameIn
-
-// NewWorkspaceRenameIn instantiates a new WorkspaceRenameIn object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewWorkspaceRenameIn(name string) *WorkspaceRenameIn {
- this := WorkspaceRenameIn{}
- this.Name = name
- return &this
-}
-
-// NewWorkspaceRenameInWithDefaults instantiates a new WorkspaceRenameIn object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewWorkspaceRenameInWithDefaults() *WorkspaceRenameIn {
- this := WorkspaceRenameIn{}
- return &this
-}
-
-// GetName returns the Name field value
-func (o *WorkspaceRenameIn) GetName() string {
- if o == nil {
- var ret string
- return ret
- }
-
- return o.Name
-}
-
-// GetNameOk returns a tuple with the Name field value
-// and a boolean to check if the value has been set.
-func (o *WorkspaceRenameIn) GetNameOk() (*string, bool) {
- if o == nil {
- return nil, false
- }
- return &o.Name, true
-}
-
-// SetName sets field value
-func (o *WorkspaceRenameIn) SetName(v string) {
- o.Name = v
-}
-
-func (o WorkspaceRenameIn) MarshalJSON() ([]byte, error) {
- toSerialize,err := o.ToMap()
- if err != nil {
- return []byte{}, err
- }
- return json.Marshal(toSerialize)
-}
-
-func (o WorkspaceRenameIn) ToMap() (map[string]interface{}, error) {
- toSerialize := map[string]interface{}{}
- toSerialize["name"] = o.Name
- return toSerialize, nil
-}
-
-func (o *WorkspaceRenameIn) UnmarshalJSON(data []byte) (err error) {
- // This validates that all required properties are included in the JSON object
- // by unmarshalling the object into a generic map with string keys and checking
- // that every required field exists as a key in the generic map.
- requiredProperties := []string{
- "name",
- }
-
- allProperties := make(map[string]interface{})
-
- err = json.Unmarshal(data, &allProperties)
-
- if err != nil {
- return err;
- }
-
- for _, requiredProperty := range(requiredProperties) {
- if _, exists := allProperties[requiredProperty]; !exists {
- return fmt.Errorf("no value given for required property %v", requiredProperty)
- }
- }
-
- varWorkspaceRenameIn := _WorkspaceRenameIn{}
-
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
- err = decoder.Decode(&varWorkspaceRenameIn)
-
- if err != nil {
- return err
- }
-
- *o = WorkspaceRenameIn(varWorkspaceRenameIn)
-
- return err
-}
-
-type NullableWorkspaceRenameIn struct {
- value *WorkspaceRenameIn
- isSet bool
-}
-
-func (v NullableWorkspaceRenameIn) Get() *WorkspaceRenameIn {
- return v.value
-}
-
-func (v *NullableWorkspaceRenameIn) Set(val *WorkspaceRenameIn) {
- v.value = val
- v.isSet = true
-}
-
-func (v NullableWorkspaceRenameIn) IsSet() bool {
- return v.isSet
-}
-
-func (v *NullableWorkspaceRenameIn) Unset() {
- v.value = nil
- v.isSet = false
-}
-
-func NewNullableWorkspaceRenameIn(val *WorkspaceRenameIn) *NullableWorkspaceRenameIn {
- return &NullableWorkspaceRenameIn{value: val, isSet: true}
-}
-
-func (v NullableWorkspaceRenameIn) MarshalJSON() ([]byte, error) {
- return json.Marshal(v.value)
-}
-
-func (v *NullableWorkspaceRenameIn) UnmarshalJSON(src []byte) error {
- v.isSet = true
- return json.Unmarshal(src, &v.value)
-}
diff --git a/sdk/go/response.go b/sdk/go/response.go
index 59ea053..9364924 100644
--- a/sdk/go/response.go
+++ b/sdk/go/response.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
diff --git a/sdk/go/utils.go b/sdk/go/utils.go
index 3c6bbd3..4e6ac09 100644
--- a/sdk/go/utils.go
+++ b/sdk/go/utils.go
@@ -1,7 +1,7 @@
/*
AgentDrive
-AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.
+AgentDrive is an agent-focused artifact store: drive-scoped folders, artifacts, and immutable versions, with local grants, possession-based share links, drive-scoped search, and a cursor-resumable change feed. Bearer-authenticated with Hub-issued product tokens (see /.well-known/oauth-protected-resource); every mutation takes an Idempotency-Key, and existing-state mutations take If-Match.
API version:
*/
diff --git a/sdk/openapi-generator-image.txt b/sdk/openapi-generator-image.txt
index db685f7..643a5d6 100644
--- a/sdk/openapi-generator-image.txt
+++ b/sdk/openapi-generator-image.txt
@@ -1 +1 @@
-openapitools/openapi-generator-cli:v7.24.0
+openapitools/openapi-generator-cli:v7.24.0@sha256:5bf3dc75f764c584da8e3344c51b2f3f1e74703461d46a035b5ac1d31515cc88
diff --git a/sdk/openapi.compatibility-reset.json b/sdk/openapi.compatibility-reset.json
new file mode 100644
index 0000000..ca5911c
--- /dev/null
+++ b/sdk/openapi.compatibility-reset.json
@@ -0,0 +1,7 @@
+{
+ "format": 1,
+ "from_sha256": "bf63bad6da953d072d38054ddec628b4ad48238394cb505862b1ef2d4bbc69ee",
+ "reason": "Reviewed Phase 1 reset: supersede the pre-Phase 1 0.0.1 client contract and remove browser/internal routes from the supported SDK surface.",
+ "source_commit": "31cd35c8e12aef1cbee228e965289107cb51092c",
+ "to_sha256": "dd8145c12035f5827e9056d40c0ae9e56f1892c98580f81d5f005007ef7a0f6a"
+}
diff --git a/sdk/openapi.json b/sdk/openapi.json
index d59f2db..7da5b57 100644
--- a/sdk/openapi.json
+++ b/sdk/openapi.json
@@ -1,127 +1,63 @@
{
"components": {
"schemas": {
- "AgentAuthMetadataOut": {
- "additionalProperties": true,
+ "ArtifactCopyIn": {
+ "additionalProperties": false,
+ "description": "POST /v0/drives/{id}/artifacts/{artifact_id}/copy body.\n\n``destination_drive_id`` must equal the source drive (or be absent) \u2014\ncross-drive copy is out of v0 scope and rejected.",
"properties": {
- "claim_endpoint": {
- "title": "Claim Endpoint",
- "type": "string"
- },
- "events_endpoint": {
+ "destination_drive_id": {
"anyOf": [
{
+ "pattern": "^drv_[a-f0-9]{16}$",
"type": "string"
},
{
"type": "null"
}
],
- "title": "Events Endpoint"
- },
- "identity_assertion": {
- "$ref": "#/components/schemas/IdentityAssertionMetadataOut"
- },
- "identity_endpoint": {
- "title": "Identity Endpoint",
- "type": "string"
- },
- "identity_types_supported": {
- "items": {
- "type": "string"
- },
- "title": "Identity Types Supported",
- "type": "array"
- },
- "skill": {
- "title": "Skill",
- "type": "string"
- },
- "spec_version": {
- "title": "Spec Version",
- "type": "string"
- }
- },
- "required": [
- "spec_version",
- "skill",
- "identity_endpoint",
- "claim_endpoint",
- "events_endpoint",
- "identity_types_supported",
- "identity_assertion"
- ],
- "title": "AgentAuthMetadataOut",
- "type": "object"
- },
- "AnonymousIdentityResponse": {
- "description": "`POST /agent/identity` response on the anonymous path.\n\nThe agent stores `identity_assertion` as its long-lived credential\nand uses `claim_token` to initiate the claim ceremony when the\nhuman is ready.",
- "properties": {
- "agent_identity_id": {
- "title": "Agent Identity Id",
- "type": "string"
- },
- "claim_metadata": {
- "$ref": "#/components/schemas/ClaimMetadata"
+ "title": "Destination Drive Id"
},
- "claim_token": {
- "description": "Opaque server-issued secret. Present at POST /agent/identity/claim and at POST /oauth2/token (grant_type=claim).",
- "title": "Claim Token",
- "type": "string"
- },
- "drive_id": {
- "title": "Drive Id",
+ "destination_name": {
+ "maxLength": 255,
+ "minLength": 1,
+ "title": "Destination Name",
"type": "string"
},
- "expires_at": {
- "format": "date-time",
- "title": "Expires At",
+ "destination_parent_id": {
+ "pattern": "^fld_[a-f0-9]{16}$",
+ "title": "Destination Parent Id",
"type": "string"
},
- "identity_assertion": {
- "description": "JWT signed by AgentDrive, scope=pre_claim. 30-day TTL.",
- "title": "Identity Assertion",
- "type": "string"
+ "version_id": {
+ "anyOf": [
+ {
+ "pattern": "^ver_[a-f0-9]{16}$",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "title": "Version Id"
}
},
"required": [
- "identity_assertion",
- "claim_token",
- "claim_metadata",
- "drive_id",
- "agent_identity_id",
- "expires_at"
+ "destination_parent_id",
+ "destination_name"
],
- "title": "AnonymousIdentityResponse",
+ "title": "ArtifactCopyIn",
"type": "object"
},
- "ArtifactDeleteOut": {
- "description": "DELETE /v0/artifacts/{art_id} response \u2014 the soft-delete receipt.\nReversible until the GC cron hard-deletes at `purge_at`; `restore_url`\npoints at the by-id restore endpoint (deletion-design.md \u00a75.3).",
+ "ArtifactListOut": {
"properties": {
- "deleted_at": {
- "format": "date-time",
- "title": "Deleted At",
- "type": "string"
- },
- "id": {
- "title": "Id",
- "type": "string"
- },
- "ok": {
- "default": true,
- "title": "Ok",
- "type": "boolean"
- },
- "path": {
- "title": "Path",
- "type": "string"
- },
- "purge_at": {
- "format": "date-time",
- "title": "Purge At",
- "type": "string"
+ "items": {
+ "items": {
+ "$ref": "#/components/schemas/ArtifactOut"
+ },
+ "title": "Items",
+ "type": "array"
},
- "restore_url": {
+ "next_cursor": {
"anyOf": [
{
"type": "string"
@@ -130,61 +66,46 @@
"type": "null"
}
],
- "title": "Restore Url"
- }
- },
- "required": [
- "id",
- "path",
- "deleted_at",
- "purge_at"
- ],
- "title": "ArtifactDeleteOut",
- "type": "object"
- },
- "ArtifactHeadOut": {
- "properties": {
- "version": {
- "title": "Version",
- "type": "integer"
- }
- },
- "required": [
- "version"
- ],
- "title": "ArtifactHeadOut",
- "type": "object"
- },
- "ArtifactMoveIn": {
- "description": "POST /v0/artifacts/{art_id}/move body \u2014 rename / move to a new\npath on the same drive. Mirrors `FolderMoveIn`; its own schema (vs.\nreusing another body) keeps the move surface self-documenting in the\nOpenAPI spec.",
- "properties": {
- "path": {
- "title": "Path",
- "type": "string"
+ "title": "Next Cursor"
}
},
"required": [
- "path"
+ "items",
+ "next_cursor"
],
- "title": "ArtifactMoveIn",
+ "title": "ArtifactListOut",
"type": "object"
},
"ArtifactOut": {
"properties": {
+ "content_preview": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "title": "Content Preview"
+ },
"content_type": {
- "title": "Content Type",
- "type": "string"
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "title": "Content Type"
},
"created_at": {
"format": "date-time",
"title": "Created At",
"type": "string"
},
- "drive_id": {
- "title": "Drive Id",
- "type": "string"
- },
- "embedded_at": {
+ "deleted_at": {
"anyOf": [
{
"format": "date-time",
@@ -194,35 +115,38 @@
"type": "null"
}
],
- "title": "Embedded At"
- },
- "etag": {
- "title": "Etag",
- "type": "string"
- },
- "file_type": {
- "title": "File Type",
- "type": "string"
+ "title": "Deleted At"
},
- "hash": {
- "title": "Hash",
+ "drive_id": {
+ "pattern": "^drv_[a-f0-9]{16}$",
+ "title": "Drive Id",
"type": "string"
},
- "id": {
- "title": "Id",
+ "effective_visibility": {
+ "description": "Server-computed exposure summary, resolved over the artifact's live grants, its folder ancestry (bounded by the nearest sealed folder), and the drive. 'public' when any live grant has principal_type 'public'; otherwise 'shared' when a live grant names a principal other than the drive's creator; otherwise 'private'. Describes exposure, NOT the caller's own access.",
+ "enum": [
+ "public",
+ "shared",
+ "private"
+ ],
+ "title": "Effective Visibility",
"type": "string"
},
- "indexed_at": {
+ "head_version_id": {
"anyOf": [
{
- "format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
- "title": "Indexed At"
+ "title": "Head Version Id"
+ },
+ "id": {
+ "pattern": "^art_[a-f0-9]{16}$",
+ "title": "Id",
+ "type": "string"
},
"labels": {
"items": {
@@ -231,85 +155,62 @@
"title": "Labels",
"type": "array"
},
- "llm_index": {
- "anyOf": [
- {
- "additionalProperties": true,
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "title": "Llm Index"
- },
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
},
- "metageneration": {
- "default": 1,
- "title": "Metageneration",
- "type": "integer"
- },
- "path": {
- "title": "Path",
+ "name": {
+ "title": "Name",
"type": "string"
},
- "permalink": {
- "title": "Permalink",
+ "parent_id": {
+ "pattern": "^fld_[a-f0-9]{16}$",
+ "title": "Parent Id",
"type": "string"
},
- "size_bytes": {
- "title": "Size Bytes",
- "type": "integer"
+ "revision": {
+ "pattern": "^rev_[a-f0-9]{16}$",
+ "title": "Revision",
+ "type": "string"
},
- "source": {
- "anyOf": [
- {
- "$ref": "#/components/schemas/ArtifactSource"
- },
- {
- "type": "null"
- }
- ]
+ "state": {
+ "enum": [
+ "active",
+ "deleted"
+ ],
+ "title": "State",
+ "type": "string"
},
"updated_at": {
"format": "date-time",
"title": "Updated At",
"type": "string"
- },
- "url": {
- "title": "Url",
- "type": "string"
- },
- "version_number": {
- "default": 1,
- "title": "Version Number",
- "type": "integer"
}
},
"required": [
"id",
"drive_id",
- "path",
- "url",
- "permalink",
+ "parent_id",
+ "name",
"content_type",
- "file_type",
- "size_bytes",
- "hash",
- "etag",
+ "content_preview",
+ "labels",
+ "metadata",
+ "head_version_id",
+ "revision",
+ "state",
"created_at",
- "updated_at"
+ "updated_at",
+ "deleted_at",
+ "effective_visibility"
],
"title": "ArtifactOut",
"type": "object"
},
- "ArtifactPatchIn": {
+ "ArtifactUpdateIn": {
"additionalProperties": false,
- "description": "PATCH /v0/artifacts/{art_id} body \u2014 metadata-only partial\n(JSON-merge-patch) update.\n\nEvery field is optional. Presence is what matters, not the value:\na field left out of the body (per Pydantic `model_fields_set`) is\nleft unchanged; a field that IS present is applied \u2014 with an explicit\n`null` / `[]` / `{}` meaning \"clear it\". This mirrors the MCP\n`set_metadata` tool and the core `patch_artifact_metadata` sentinel\nsemantics (omitted = preserve, present = replace/clear).\n\n * `labels` \u2014 replace the label set; `[]` or `null` clears it.\n * `metadata` \u2014 replace the free-form metadata object; `{}` or `null`\n clears it.\n * `source` \u2014 replace provenance refs; `null` (or `{\"refs\": []}`)\n clears them.\n\nPATCH is metadata-only: to move/rename an artifact, use\n`POST /v0/artifacts/{art_id}/move`. `extra=\"forbid\"` makes a stray\nfield (notably a legacy `path`) a hard 422 rather than a silent\nno-op \u2014 a clean-break signal to migrate to the move verb.",
+ "description": "PATCH /v0/drives/{id}/artifacts/{artifact_id} body \u2014 at least one\nfield is required.",
"properties": {
"labels": {
"anyOf": [
@@ -337,178 +238,219 @@
],
"title": "Metadata"
},
- "source": {
+ "name": {
+ "anyOf": [
+ {
+ "maxLength": 255,
+ "minLength": 1,
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "title": "Name"
+ },
+ "parent_id": {
"anyOf": [
{
- "$ref": "#/components/schemas/ArtifactSource"
+ "pattern": "^fld_[a-f0-9]{16}$",
+ "type": "string"
},
{
"type": "null"
}
- ]
+ ],
+ "title": "Parent Id"
}
},
- "title": "ArtifactPatchIn",
+ "title": "ArtifactUpdateIn",
"type": "object"
},
- "ArtifactSource": {
- "description": "Caller-supplied provenance metadata, attached to an artifact.\n\nv0.6 model: a list of typed refs. The legacy v0.5 fields\n(`agent_id`, `run_id`, `prompt_hash`) were never validated and are\nsuperseded by the `refs` shape (an agent-id ref would be\n`{\"type\": \"agent\", \"id\": \"...\"}` in v0.6 vocabulary).",
+ "ChangeActorOut": {
"properties": {
- "refs": {
- "items": {
- "$ref": "#/components/schemas/SourceRef"
- },
- "title": "Refs",
- "type": "array"
+ "id": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "title": "Id"
+ },
+ "type": {
+ "enum": [
+ "agent",
+ "user",
+ "system"
+ ],
+ "title": "Type",
+ "type": "string"
}
},
- "title": "ArtifactSource",
+ "required": [
+ "type",
+ "id"
+ ],
+ "title": "ChangeActorOut",
"type": "object"
},
- "AuthorizationServerMetadataOut": {
- "additionalProperties": true,
+ "ChangeOut": {
"properties": {
- "agent_auth": {
- "$ref": "#/components/schemas/AgentAuthMetadataOut"
+ "actor": {
+ "$ref": "#/components/schemas/ChangeActorOut"
},
- "authorization_endpoint": {
- "title": "Authorization Endpoint",
+ "change_set_id": {
+ "title": "Change Set Id",
"type": "string"
},
- "authorization_response_iss_parameter_supported": {
- "title": "Authorization Response Iss Parameter Supported",
- "type": "boolean"
- },
- "code_challenge_methods_supported": {
- "items": {
- "type": "string"
- },
- "title": "Code Challenge Methods Supported",
- "type": "array"
- },
- "grant_types_supported": {
- "items": {
- "type": "string"
- },
- "title": "Grant Types Supported",
- "type": "array"
+ "data": {
+ "additionalProperties": true,
+ "title": "Data",
+ "type": "object"
},
- "issuer": {
- "title": "Issuer",
+ "drive_id": {
+ "pattern": "^drv_[a-f0-9]{16}$",
+ "title": "Drive Id",
"type": "string"
},
- "jwks_uri": {
- "title": "Jwks Uri",
+ "id": {
+ "pattern": "^chg_[a-f0-9]{16}$",
+ "title": "Id",
"type": "string"
},
- "registration_endpoint": {
- "title": "Registration Endpoint",
+ "occurred_at": {
+ "format": "date-time",
+ "title": "Occurred At",
"type": "string"
},
- "response_modes_supported": {
- "items": {
- "type": "string"
- },
- "title": "Response Modes Supported",
- "type": "array"
- },
- "response_types_supported": {
- "items": {
- "type": "string"
- },
- "title": "Response Types Supported",
- "type": "array"
+ "previous_revision": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "title": "Previous Revision"
},
- "revocation_endpoint": {
- "title": "Revocation Endpoint",
- "type": "string"
+ "resource": {
+ "$ref": "#/components/schemas/ChangeResourceOut"
},
- "revocation_endpoint_auth_methods_supported": {
- "items": {
- "type": "string"
- },
- "title": "Revocation Endpoint Auth Methods Supported",
- "type": "array"
+ "revision": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "title": "Revision"
},
- "scopes_supported": {
- "items": {
- "type": "string"
- },
- "title": "Scopes Supported",
- "type": "array"
- },
- "token_endpoint": {
- "title": "Token Endpoint",
+ "type": {
+ "title": "Type",
"type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "change_set_id",
+ "type",
+ "drive_id",
+ "actor",
+ "resource",
+ "previous_revision",
+ "revision",
+ "occurred_at",
+ "data"
+ ],
+ "title": "ChangeOut",
+ "type": "object"
+ },
+ "ChangePageOut": {
+ "properties": {
+ "has_more": {
+ "title": "Has More",
+ "type": "boolean"
},
- "token_endpoint_auth_methods_supported": {
+ "items": {
"items": {
- "type": "string"
+ "$ref": "#/components/schemas/ChangeOut"
},
- "title": "Token Endpoint Auth Methods Supported",
+ "title": "Items",
"type": "array"
+ },
+ "next_cursor": {
+ "title": "Next Cursor",
+ "type": "string"
}
},
"required": [
- "issuer",
- "jwks_uri",
- "token_endpoint",
- "authorization_endpoint",
- "registration_endpoint",
- "revocation_endpoint",
- "grant_types_supported",
- "response_types_supported",
- "response_modes_supported",
- "code_challenge_methods_supported",
- "scopes_supported",
- "authorization_response_iss_parameter_supported",
- "token_endpoint_auth_methods_supported",
- "revocation_endpoint_auth_methods_supported",
- "agent_auth"
+ "items",
+ "next_cursor",
+ "has_more"
],
- "title": "AuthorizationServerMetadataOut",
+ "title": "ChangePageOut",
"type": "object"
},
- "Body_authorize_decision_oauth2_authorize_post": {
+ "ChangeResourceOut": {
"properties": {
- "csrf": {
- "title": "Csrf",
+ "id": {
+ "title": "Id",
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "drive",
+ "folder",
+ "artifact"
+ ],
+ "title": "Type",
"type": "string"
}
},
"required": [
- "csrf"
+ "type",
+ "id"
],
- "title": "Body_authorize_decision_oauth2_authorize_post",
+ "title": "ChangeResourceOut",
"type": "object"
},
- "Body_logout_auth_logout_post": {
+ "DriveCreateIn": {
+ "additionalProperties": false,
+ "description": "POST /v0/drives body.",
"properties": {
- "csrf": {
- "title": "Csrf",
+ "metadata": {
+ "additionalProperties": true,
+ "title": "Metadata",
+ "type": "object"
+ },
+ "name": {
+ "minLength": 1,
+ "title": "Name",
"type": "string"
}
},
"required": [
- "csrf"
+ "name"
],
- "title": "Body_logout_auth_logout_post",
+ "title": "DriveCreateIn",
"type": "object"
},
- "Body_oauth2_token_oauth2_token_post": {
+ "DriveListOut": {
"properties": {
- "assertion": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Assertion"
+ "items": {
+ "items": {
+ "$ref": "#/components/schemas/DriveOut"
+ },
+ "title": "Items",
+ "type": "array"
},
- "claim_token": {
+ "next_cursor": {
"anyOf": [
{
"type": "string"
@@ -517,39 +459,24 @@
"type": "null"
}
],
- "title": "Claim Token"
- },
- "grant_type": {
- "title": "Grant Type",
- "type": "string"
+ "title": "Next Cursor"
}
},
"required": [
- "grant_type"
+ "items",
+ "next_cursor"
],
- "title": "Body_oauth2_token_oauth2_token_post",
- "type": "object"
- },
- "Body_redeem_share_with_password_s__share_key__post": {
- "properties": {
- "password": {
- "default": "",
- "title": "Password",
- "type": "string"
- }
- },
- "title": "Body_redeem_share_with_password_s__share_key__post",
+ "title": "DriveListOut",
"type": "object"
},
- "ClaimInitRequest": {
- "description": "`POST /agent/identity/claim` body.",
+ "DriveOut": {
"properties": {
- "claim_token": {
- "description": "The per-identity claim_token returned by POST /agent/identity.",
- "title": "Claim Token",
+ "created_at": {
+ "format": "date-time",
+ "title": "Created At",
"type": "string"
},
- "email": {
+ "created_by": {
"anyOf": [
{
"type": "string"
@@ -558,229 +485,267 @@
"type": "null"
}
],
- "description": "Optional hint to display on the /claim page so the human knows which account the agent expected. Not enforced (design \u00a714 question #3).",
- "title": "Email"
- }
- },
- "required": [
- "claim_token"
- ],
- "title": "ClaimInitRequest",
- "type": "object"
- },
- "ClaimInitResponse": {
- "properties": {
- "claim_attempt_token": {
- "description": "Per-attempt opaque token; the agent does not need to present it.",
- "title": "Claim Attempt Token",
- "type": "string"
- },
- "expires_at": {
- "format": "date-time",
- "title": "Expires At",
- "type": "string"
+ "title": "Created By"
},
- "user_code": {
- "description": "Human-readable code the user types/sees on /claim.",
- "title": "User Code",
- "type": "string"
+ "deleted_at": {
+ "anyOf": [
+ {
+ "format": "date-time",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "title": "Deleted At"
},
- "verification_uri": {
- "description": "URL to direct the human to.",
- "title": "Verification Uri",
+ "id": {
+ "pattern": "^drv_[a-f0-9]{16}$",
+ "title": "Id",
"type": "string"
},
- "verification_uri_complete": {
- "description": "Convenience: same as `verification_uri` but with the user_code pre-baked so the human doesn't have to type it. RFC 8628 idiom.",
- "title": "Verification Uri Complete",
- "type": "string"
- }
- },
- "required": [
- "claim_attempt_token",
- "user_code",
- "verification_uri",
- "verification_uri_complete",
- "expires_at"
- ],
- "title": "ClaimInitResponse",
- "type": "object"
- },
- "ClaimMetadata": {
- "description": "Hints the agent's UI/CLI can use when initiating the claim\nceremony. Decoupled from the `claim_token` itself so future\nadditions don't change the token's shape.",
- "properties": {
- "claim_endpoint": {
- "title": "Claim Endpoint",
- "type": "string"
+ "metadata": {
+ "additionalProperties": true,
+ "title": "Metadata",
+ "type": "object"
},
- "supported_email_hints": {
- "default": true,
- "title": "Supported Email Hints",
- "type": "boolean"
- }
- },
- "required": [
- "claim_endpoint"
- ],
- "title": "ClaimMetadata",
- "type": "object"
- },
- "ClientRegistrationOut": {
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "title": "Client Id",
+ "name": {
+ "title": "Name",
"type": "string"
},
- "client_id_issued_at": {
- "title": "Client Id Issued At",
+ "retrieval_bytes": {
+ "title": "Retrieval Bytes",
"type": "integer"
},
- "client_name": {
- "title": "Client Name",
+ "revision": {
+ "pattern": "^rev_[a-f0-9]{16}$",
+ "title": "Revision",
"type": "string"
},
- "grant_types": {
- "items": {
- "type": "string"
- },
- "title": "Grant Types",
- "type": "array"
+ "root_folder_id": {
+ "title": "Root Folder Id",
+ "type": "string"
},
- "redirect_uris": {
- "items": {
- "type": "string"
- },
- "title": "Redirect Uris",
- "type": "array"
+ "state": {
+ "enum": [
+ "active",
+ "deleted"
+ ],
+ "title": "State",
+ "type": "string"
},
- "response_types": {
- "items": {
- "type": "string"
- },
- "title": "Response Types",
- "type": "array"
+ "storage_bytes": {
+ "title": "Storage Bytes",
+ "type": "integer"
},
- "scope": {
- "title": "Scope",
+ "updated_at": {
+ "format": "date-time",
+ "title": "Updated At",
"type": "string"
},
- "token_endpoint_auth_method": {
- "title": "Token Endpoint Auth Method",
+ "workspace_id": {
+ "title": "Workspace Id",
"type": "string"
}
},
"required": [
- "client_id",
- "client_id_issued_at",
- "client_name",
- "redirect_uris",
- "grant_types",
- "response_types",
- "token_endpoint_auth_method",
- "scope"
+ "id",
+ "workspace_id",
+ "created_by",
+ "name",
+ "metadata",
+ "revision",
+ "root_folder_id",
+ "storage_bytes",
+ "retrieval_bytes",
+ "created_at",
+ "updated_at",
+ "deleted_at",
+ "state"
],
- "title": "ClientRegistrationOut",
+ "title": "DriveOut",
"type": "object"
},
- "CompileDiagnosticOut": {
- "additionalProperties": true,
+ "DriveUpdateIn": {
+ "additionalProperties": false,
+ "description": "PATCH /v0/drives/{id} body \u2014 at least one field is required.",
"properties": {
- "category": {
+ "metadata": {
"anyOf": [
{
- "type": "string"
+ "additionalProperties": true,
+ "type": "object"
},
{
"type": "null"
}
],
- "title": "Category"
+ "title": "Metadata"
},
- "file": {
+ "name": {
"anyOf": [
{
+ "minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
- "title": "File"
+ "title": "Name"
+ }
+ },
+ "title": "DriveUpdateIn",
+ "type": "object"
+ },
+ "DriveUsageOut": {
+ "properties": {
+ "retrieval_bytes": {
+ "title": "Retrieval Bytes",
+ "type": "integer"
},
- "line": {
- "anyOf": [
- {
- "type": "integer"
+ "storage_bytes": {
+ "title": "Storage Bytes",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "storage_bytes",
+ "retrieval_bytes"
+ ],
+ "title": "DriveUsageOut",
+ "type": "object"
+ },
+ "ErrorResponse": {
+ "properties": {
+ "error": {
+ "additionalProperties": true,
+ "properties": {
+ "code": {
+ "description": "Stable machine-readable error code (see the error-catalog).",
+ "type": "string"
},
- {
- "type": "null"
+ "details": {
+ "description": "Error-code-specific context (optional).",
+ "type": "object"
+ },
+ "message": {
+ "type": "string"
}
+ },
+ "required": [
+ "code",
+ "message"
],
- "title": "Line"
- },
- "message": {
- "title": "Message",
- "type": "string"
- },
- "severity": {
- "title": "Severity",
- "type": "string"
+ "type": "object"
+ }
+ },
+ "required": [
+ "error"
+ ],
+ "type": "object"
+ },
+ "FolderCascadeOut": {
+ "properties": {
+ "cascade": {
+ "additionalProperties": {
+ "type": "integer"
+ },
+ "title": "Cascade",
+ "type": "object"
},
- "suggestion": {
+ "folder": {
+ "$ref": "#/components/schemas/FolderOut"
+ }
+ },
+ "required": [
+ "folder",
+ "cascade"
+ ],
+ "title": "FolderCascadeOut",
+ "type": "object"
+ },
+ "FolderCopyIn": {
+ "additionalProperties": false,
+ "description": "POST /v0/drives/{id}/folders/{folder_id}/copy body.\n\n``destination_drive_id`` must equal the source drive (or be absent) \u2014\ncross-drive copy is out of v0 scope and rejected.",
+ "properties": {
+ "destination_drive_id": {
"anyOf": [
{
+ "pattern": "^drv_[a-f0-9]{16}$",
"type": "string"
},
{
"type": "null"
}
],
- "title": "Suggestion"
+ "title": "Destination Drive Id"
+ },
+ "destination_name": {
+ "maxLength": 255,
+ "minLength": 1,
+ "title": "Destination Name",
+ "type": "string"
+ },
+ "destination_parent_id": {
+ "pattern": "^fld_[a-f0-9]{16}$",
+ "title": "Destination Parent Id",
+ "type": "string"
}
},
"required": [
- "severity",
- "message"
+ "destination_parent_id",
+ "destination_name"
],
- "title": "CompileDiagnosticOut",
+ "title": "FolderCopyIn",
"type": "object"
},
- "CompileJobIn": {
+ "FolderCreateIn": {
+ "additionalProperties": false,
+ "description": "POST /v0/drives/{id}/folders body.",
"properties": {
- "options": {
- "$ref": "#/components/schemas/CompileOptions",
- "default": {
- "wait": false
- }
+ "grant_inheritance": {
+ "default": "inherit",
+ "enum": [
+ "inherit",
+ "sealed"
+ ],
+ "title": "Grant Inheritance",
+ "type": "string"
+ },
+ "metadata": {
+ "additionalProperties": true,
+ "title": "Metadata",
+ "type": "object"
+ },
+ "name": {
+ "maxLength": 255,
+ "minLength": 1,
+ "title": "Name",
+ "type": "string"
},
- "task": {
- "default": "latex.compile",
- "title": "Task",
+ "parent_id": {
+ "pattern": "^fld_[a-f0-9]{16}$",
+ "title": "Parent Id",
"type": "string"
}
},
- "title": "CompileJobIn",
+ "required": [
+ "parent_id",
+ "name"
+ ],
+ "title": "FolderCreateIn",
"type": "object"
},
- "CompileJobListOut": {
+ "FolderListOut": {
"properties": {
"items": {
"items": {
- "$ref": "#/components/schemas/CompileJobOut"
+ "$ref": "#/components/schemas/FolderOut"
},
"title": "Items",
"type": "array"
},
- "jobs": {
- "deprecated": true,
- "description": "Deprecated same-value alias for `items`; retained for compatibility.",
- "items": {
- "$ref": "#/components/schemas/CompileJobOut"
- },
- "title": "Jobs",
- "type": "array"
- },
"next_cursor": {
"anyOf": [
{
@@ -790,51 +755,59 @@
"type": "null"
}
],
- "description": "Opaque continuation token, or null when the listing is complete.",
"title": "Next Cursor"
}
},
"required": [
"items",
- "jobs"
+ "next_cursor"
],
- "title": "CompileJobListOut",
+ "title": "FolderListOut",
"type": "object"
},
- "CompileJobOut": {
- "additionalProperties": true,
+ "FolderOut": {
"properties": {
- "cache_hit": {
- "title": "Cache Hit",
- "type": "boolean"
+ "created_at": {
+ "format": "date-time",
+ "title": "Created At",
+ "type": "string"
},
- "diagnostics": {
- "items": {
- "$ref": "#/components/schemas/CompileDiagnosticOut"
- },
- "title": "Diagnostics",
- "type": "array"
- },
- "duration_ms": {
+ "deleted_at": {
"anyOf": [
{
- "type": "integer"
+ "format": "date-time",
+ "type": "string"
},
{
"type": "null"
}
],
- "title": "Duration Ms"
+ "title": "Deleted At"
+ },
+ "drive_id": {
+ "pattern": "^drv_[a-f0-9]{16}$",
+ "title": "Drive Id",
+ "type": "string"
},
- "engine": {
- "title": "Engine",
+ "grant_inheritance": {
+ "enum": [
+ "inherit",
+ "sealed"
+ ],
+ "title": "Grant Inheritance",
"type": "string"
},
- "job_id": {
- "title": "Job Id",
+ "id": {
+ "pattern": "^fld_[a-f0-9]{16}$",
+ "title": "Id",
"type": "string"
},
- "logs_url": {
+ "metadata": {
+ "additionalProperties": true,
+ "title": "Metadata",
+ "type": "object"
+ },
+ "name": {
"anyOf": [
{
"type": "string"
@@ -843,184 +816,118 @@
"type": "null"
}
],
- "title": "Logs Url"
+ "title": "Name"
},
- "output": {
+ "parent_id": {
"anyOf": [
{
- "additionalProperties": true,
- "type": "object"
+ "type": "string"
},
{
"type": "null"
}
],
- "title": "Output"
+ "title": "Parent Id"
},
- "status": {
- "title": "Status",
+ "revision": {
+ "pattern": "^rev_[a-f0-9]{16}$",
+ "title": "Revision",
+ "type": "string"
+ },
+ "state": {
+ "enum": [
+ "active",
+ "deleted"
+ ],
+ "title": "State",
"type": "string"
},
- "task": {
- "title": "Task",
+ "updated_at": {
+ "format": "date-time",
+ "title": "Updated At",
"type": "string"
}
},
"required": [
- "job_id",
- "task",
- "status",
- "engine",
- "cache_hit"
+ "id",
+ "drive_id",
+ "parent_id",
+ "name",
+ "metadata",
+ "grant_inheritance",
+ "revision",
+ "state",
+ "created_at",
+ "updated_at",
+ "deleted_at"
],
- "title": "CompileJobOut",
+ "title": "FolderOut",
"type": "object"
},
- "CompileOptions": {
+ "FolderUpdateIn": {
+ "additionalProperties": false,
+ "description": "PATCH /v0/drives/{id}/folders/{folder_id} body \u2014 at least one field is\nrequired.",
"properties": {
- "engine": {
+ "grant_inheritance": {
"anyOf": [
{
+ "enum": [
+ "inherit",
+ "sealed"
+ ],
"type": "string"
},
{
"type": "null"
}
],
- "title": "Engine"
+ "title": "Grant Inheritance"
},
- "entrypoint": {
+ "metadata": {
"anyOf": [
{
- "type": "string"
+ "additionalProperties": true,
+ "type": "object"
},
{
"type": "null"
}
],
- "title": "Entrypoint"
- },
- "wait": {
- "default": false,
- "title": "Wait",
- "type": "boolean"
- }
- },
- "title": "CompileOptions",
- "type": "object"
- },
- "CompileProjectOut": {
- "properties": {
- "auto_compile": {
- "title": "Auto Compile",
- "type": "boolean"
- },
- "engine": {
- "title": "Engine",
- "type": "string"
- },
- "entrypoint": {
- "title": "Entrypoint",
- "type": "string"
+ "title": "Metadata"
},
- "fld_id": {
- "title": "Fld Id",
- "type": "string"
- }
- },
- "required": [
- "fld_id",
- "entrypoint",
- "engine",
- "auto_compile"
- ],
- "title": "CompileProjectOut",
- "type": "object"
- },
- "CopyIn": {
- "description": "POST /v0/artifacts/{art_id}/copy body \u2014 duplicate to new path.",
- "properties": {
- "from_generation": {
+ "name": {
"anyOf": [
{
- "type": "integer"
+ "maxLength": 255,
+ "minLength": 1,
+ "type": "string"
},
{
"type": "null"
}
],
- "title": "From Generation"
+ "title": "Name"
},
- "path": {
- "title": "Path",
- "type": "string"
- },
- "source": {
+ "parent_id": {
"anyOf": [
{
- "$ref": "#/components/schemas/ArtifactSource"
+ "pattern": "^fld_[a-f0-9]{16}$",
+ "type": "string"
},
{
"type": "null"
}
- ]
- }
- },
- "required": [
- "path"
- ],
- "title": "CopyIn",
- "type": "object"
- },
- "DatasetDescriptionOut": {
- "properties": {
- "columns": {
- "items": {
- "$ref": "#/components/schemas/QueryColumnOut"
- },
- "title": "Columns",
- "type": "array"
- },
- "dataset": {
- "title": "Dataset",
- "type": "string"
- }
- },
- "required": [
- "dataset",
- "columns"
- ],
- "title": "DatasetDescriptionOut",
- "type": "object"
- },
- "DescribeIn": {
- "properties": {
- "dataset": {
- "title": "Dataset",
- "type": "string"
+ ],
+ "title": "Parent Id"
}
},
- "required": [
- "dataset"
- ],
- "title": "DescribeIn",
+ "title": "FolderUpdateIn",
"type": "object"
},
- "DownloadUrlOut": {
- "description": "A URL the caller can GET to fetch the artifact's bytes.\n\n`direct=True` \u21d2 a short-lived signed GCS URL on `storage.googleapis.com`\n(client downloads straight from GCS; `expires_at` is set). `direct=False`\n\u21d2 the proxy `/download` endpoint on the API host (no expiry) \u2014 returned for\nsub-threshold artifacts or when signing is unavailable. The URL is opaque:\ncallers should not parse it. See large-download-design.md \u00a75.1.",
+ "GrantCreateIn": {
+ "additionalProperties": false,
+ "description": "POST /v0/drives/{id}/grants body.",
"properties": {
- "content_type": {
- "title": "Content Type",
- "type": "string"
- },
- "direct": {
- "title": "Direct",
- "type": "boolean"
- },
- "download_url": {
- "title": "Download Url",
- "type": "string"
- },
"expires_at": {
"anyOf": [
{
@@ -1033,58 +940,7 @@
],
"title": "Expires At"
},
- "filename": {
- "title": "Filename",
- "type": "string"
- },
- "size_bytes": {
- "title": "Size Bytes",
- "type": "integer"
- }
- },
- "required": [
- "download_url",
- "direct",
- "size_bytes",
- "content_type",
- "filename"
- ],
- "title": "DownloadUrlOut",
- "type": "object"
- },
- "DriveApiKeyCreateIn": {
- "description": "`POST /v0/drives/{id}/keys` body \u2014 a required human label (a name for\nthe key, e.g. the agent/integration it's for).",
- "properties": {
- "label": {
- "maxLength": 80,
- "minLength": 1,
- "title": "Label",
- "type": "string"
- }
- },
- "required": [
- "label"
- ],
- "title": "DriveApiKeyCreateIn",
- "type": "object"
- },
- "DriveApiKeyCreateOut": {
- "description": "`POST /v0/drives/{id}/keys` response \u2014 the new key's metadata PLUS the\nraw `ad_live_` value, returned **once**. Store `api_key` now; only its hash\nis persisted.",
- "properties": {
- "api_key": {
- "title": "Api Key",
- "type": "string"
- },
- "created_at": {
- "format": "date-time",
- "title": "Created At",
- "type": "string"
- },
- "id": {
- "title": "Id",
- "type": "string"
- },
- "label": {
+ "principal_id": {
"anyOf": [
{
"type": "string"
@@ -1093,39 +949,60 @@
"type": "null"
}
],
- "title": "Label"
+ "title": "Principal Id"
+ },
+ "principal_type": {
+ "enum": [
+ "agent",
+ "user",
+ "workspace",
+ "public"
+ ],
+ "title": "Principal Type",
+ "type": "string"
+ },
+ "resource_id": {
+ "minLength": 1,
+ "title": "Resource Id",
+ "type": "string"
+ },
+ "resource_type": {
+ "enum": [
+ "drive",
+ "folder",
+ "artifact"
+ ],
+ "title": "Resource Type",
+ "type": "string"
},
- "prefix": {
- "title": "Prefix",
+ "role": {
+ "enum": [
+ "viewer",
+ "editor",
+ "manager"
+ ],
+ "title": "Role",
"type": "string"
}
},
"required": [
- "id",
- "api_key",
- "prefix",
- "created_at"
+ "principal_type",
+ "resource_type",
+ "resource_id",
+ "role"
],
- "title": "DriveApiKeyCreateOut",
+ "title": "GrantCreateIn",
"type": "object"
},
- "DriveApiKeyListOut": {
- "description": "`GET /v0/drives/{id}/keys` response \u2014 the drive's keys, oldest first\n(keyset order, design \u00a73), including recently-revoked rows (filter on\n`revoked_at` for live only).\n\n`items` is the canonical list field (B-3: one envelope key everywhere);\n`keys` is a deprecated same-value alias kept for one release \u2014 the REST\ntwin of the grep `matches` / compile `jobs` aliases.",
+ "GrantListOut": {
"properties": {
"items": {
"items": {
- "$ref": "#/components/schemas/DriveApiKeyOut"
+ "$ref": "#/components/schemas/GrantOut"
},
"title": "Items",
"type": "array"
},
- "keys": {
- "items": {
- "$ref": "#/components/schemas/DriveApiKeyOut"
- },
- "title": "Keys",
- "type": "array"
- },
"next_cursor": {
"anyOf": [
{
@@ -1140,48 +1017,77 @@
},
"required": [
"items",
- "keys"
+ "next_cursor"
],
- "title": "DriveApiKeyListOut",
+ "title": "GrantListOut",
"type": "object"
},
- "DriveApiKeyOut": {
- "description": "One per-drive `ad_live_` key \u2014 metadata only (never the raw key or hash).\nItem shape for `GET /v0/drives/{id}/keys`.",
+ "GrantOut": {
"properties": {
"created_at": {
"format": "date-time",
"title": "Created At",
"type": "string"
},
- "id": {
- "title": "Id",
+ "drive_id": {
+ "pattern": "^drv_[a-f0-9]{16}$",
+ "title": "Drive Id",
"type": "string"
},
- "label": {
+ "expires_at": {
"anyOf": [
{
+ "format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
- "title": "Label"
+ "title": "Expires At"
+ },
+ "id": {
+ "pattern": "^grn_[a-f0-9]{16}$",
+ "title": "Id",
+ "type": "string"
},
- "last_used_at": {
+ "principal_id": {
"anyOf": [
{
- "format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
- "title": "Last Used At"
+ "title": "Principal Id"
+ },
+ "principal_type": {
+ "enum": [
+ "agent",
+ "user",
+ "workspace",
+ "public"
+ ],
+ "title": "Principal Type",
+ "type": "string"
+ },
+ "resource_id": {
+ "title": "Resource Id",
+ "type": "string"
+ },
+ "resource_type": {
+ "enum": [
+ "drive",
+ "folder",
+ "artifact"
+ ],
+ "title": "Resource Type",
+ "type": "string"
},
- "prefix": {
- "title": "Prefix",
+ "revision": {
+ "pattern": "^rev_[a-f0-9]{16}$",
+ "title": "Revision",
"type": "string"
},
"revoked_at": {
@@ -1195,117 +1101,178 @@
}
],
"title": "Revoked At"
+ },
+ "role": {
+ "enum": [
+ "viewer",
+ "editor",
+ "manager"
+ ],
+ "title": "Role",
+ "type": "string"
+ },
+ "state": {
+ "enum": [
+ "active",
+ "revoked",
+ "expired"
+ ],
+ "title": "State",
+ "type": "string"
}
},
"required": [
"id",
- "prefix",
+ "drive_id",
+ "resource_type",
+ "resource_id",
+ "principal_type",
+ "principal_id",
+ "role",
+ "revision",
+ "state",
+ "expires_at",
+ "revoked_at",
"created_at"
],
- "title": "DriveApiKeyOut",
- "type": "object"
- },
- "DriveCreateIn": {
- "description": "POST /v0/drives body. `name` is the user-facing drive label; the\ncreator becomes the owner.",
- "properties": {
- "name": {
- "maxLength": 120,
- "minLength": 1,
- "title": "Name",
- "type": "string"
- }
- },
- "required": [
- "name"
- ],
- "title": "DriveCreateIn",
+ "title": "GrantOut",
"type": "object"
},
- "DriveCreateOut": {
- "description": "The create response \u2014 the ONLY place (besides key-rotate) a raw\n`ad_live_` key is returned, reveal-once.",
+ "GrantUpdateIn": {
+ "additionalProperties": false,
+ "description": "PATCH /v0/drives/{id}/grants/{grant_id} body \u2014 at least one field is\nrequired. An explicit ``expires_at: null`` clears the expiry; omitting it\nleaves it unchanged.",
"properties": {
- "api_key": {
- "title": "Api Key",
- "type": "string"
- },
- "created_at": {
- "format": "date-time",
- "title": "Created At",
- "type": "string"
- },
- "id": {
- "title": "Id",
- "type": "string"
- },
- "name": {
- "title": "Name",
- "type": "string"
- },
- "organization_id": {
- "title": "Organization Id",
- "type": "string"
- },
- "owner_email": {
+ "expires_at": {
"anyOf": [
{
+ "format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
- "title": "Owner Email"
+ "title": "Expires At"
},
- "owner_user_id": {
+ "role": {
"anyOf": [
{
+ "enum": [
+ "viewer",
+ "editor",
+ "manager"
+ ],
"type": "string"
},
{
"type": "null"
}
],
- "title": "Owner User Id"
+ "title": "Role"
+ }
+ },
+ "title": "GrantUpdateIn",
+ "type": "object"
+ },
+ "HealthDegradedDetail": {
+ "properties": {
+ "error": {
+ "title": "Error",
+ "type": "string"
},
- "storage_bytes": {
- "title": "Storage Bytes",
- "type": "integer"
+ "status": {
+ "const": "degraded",
+ "title": "Status",
+ "type": "string"
}
},
"required": [
- "id",
- "name",
- "organization_id",
- "storage_bytes",
- "created_at",
- "api_key"
+ "status",
+ "error"
],
- "title": "DriveCreateOut",
+ "title": "HealthDegradedDetail",
"type": "object"
},
- "DriveDeleteOut": {
- "description": "DELETE /v0/drives/{drive_id} response \u2014 the drive soft-delete receipt.\nReversible until the GC cron hard-deletes at `purge_at`; `restore_url`\npoints at the drive restore endpoint (deletion-design.md \u00a75.2).",
+ "HealthDegradedResponse": {
+ "description": "Legacy health-probe failure shape.\n\nHealth predates the `/v0` error envelope and is consumed by load\nbalancers. PR 1 documents the wire shape without changing it; convergence\non the canonical API envelope is a separately reviewed compatibility\ndecision.",
"properties": {
- "deleted_at": {
- "format": "date-time",
- "title": "Deleted At",
+ "detail": {
+ "$ref": "#/components/schemas/HealthDegradedDetail"
+ }
+ },
+ "required": [
+ "detail"
+ ],
+ "title": "HealthDegradedResponse",
+ "type": "object"
+ },
+ "HealthOut": {
+ "properties": {
+ "status": {
+ "const": "ok",
+ "title": "Status",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "title": "HealthOut",
+ "type": "object"
+ },
+ "SearchHitOut": {
+ "properties": {
+ "content_type": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "title": "Content Type"
+ },
+ "drive_id": {
+ "pattern": "^drv_[a-f0-9]{16}$",
+ "title": "Drive Id",
"type": "string"
},
"id": {
+ "pattern": "^art_[a-f0-9]{16}$",
"title": "Id",
"type": "string"
},
- "ok": {
- "default": true,
- "title": "Ok",
- "type": "boolean"
+ "name": {
+ "title": "Name",
+ "type": "string"
+ },
+ "parent_id": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "title": "Parent Id"
},
- "purge_at": {
+ "rank": {
+ "title": "Rank",
+ "type": "number"
+ },
+ "snippet": {
+ "description": "HTML-safe highlighted excerpt. The ONLY markup it may contain is the server's own ... highlight pair; artifact content is entity-escaped, so this may be rendered as HTML.",
+ "title": "Snippet",
+ "type": "string"
+ },
+ "updated_at": {
"format": "date-time",
- "title": "Purge At",
+ "title": "Updated At",
"type": "string"
},
- "restore_url": {
+ "version_id": {
"anyOf": [
{
"type": "string"
@@ -1314,22 +1281,28 @@
"type": "null"
}
],
- "title": "Restore Url"
+ "title": "Version Id"
}
},
"required": [
"id",
- "deleted_at",
- "purge_at"
+ "drive_id",
+ "parent_id",
+ "name",
+ "version_id",
+ "rank",
+ "snippet",
+ "content_type",
+ "updated_at"
],
- "title": "DriveDeleteOut",
+ "title": "SearchHitOut",
"type": "object"
},
- "DriveList": {
+ "SearchPageOut": {
"properties": {
"items": {
"items": {
- "$ref": "#/components/schemas/DriveOut"
+ "$ref": "#/components/schemas/SearchHitOut"
},
"title": "Items",
"type": "array"
@@ -1347,77 +1320,206 @@
}
},
"required": [
- "items"
+ "items",
+ "next_cursor"
],
- "title": "DriveList",
+ "title": "SearchPageOut",
"type": "object"
},
- "DriveOut": {
- "description": "One drive in a listing \u2014 metadata only (workspaces-design \u00a74.2).\nCarries NO capability and NEVER a raw key. An admin's inventory and a\nmember's owned list both serialize to this shape; `owner_email` is the\nonly owner-identifying field surfaced.",
+ "ShareCreateIn": {
+ "additionalProperties": false,
+ "description": "POST /v0/drives/{id}/shares body.",
+ "properties": {
+ "expires_at": {
+ "anyOf": [
+ {
+ "format": "date-time",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "title": "Expires At"
+ },
+ "resource_id": {
+ "minLength": 1,
+ "title": "Resource Id",
+ "type": "string"
+ },
+ "resource_type": {
+ "enum": [
+ "artifact",
+ "artifact_version",
+ "folder"
+ ],
+ "title": "Resource Type",
+ "type": "string"
+ }
+ },
+ "required": [
+ "resource_type",
+ "resource_id"
+ ],
+ "title": "ShareCreateIn",
+ "type": "object"
+ },
+ "ShareCreateOut": {
+ "description": "The create/rotate response \u2014 the ONLY response carrying the plaintext\nsecret.",
"properties": {
"created_at": {
"format": "date-time",
"title": "Created At",
"type": "string"
},
+ "created_by": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "title": "Created By"
+ },
+ "drive_id": {
+ "pattern": "^drv_[a-f0-9]{16}$",
+ "title": "Drive Id",
+ "type": "string"
+ },
+ "expires_at": {
+ "anyOf": [
+ {
+ "format": "date-time",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "title": "Expires At"
+ },
"id": {
+ "pattern": "^shr_[a-f0-9]{16}$",
"title": "Id",
"type": "string"
},
- "name": {
- "title": "Name",
+ "resource_id": {
+ "title": "Resource Id",
+ "type": "string"
+ },
+ "resource_type": {
+ "enum": [
+ "artifact",
+ "artifact_version",
+ "folder"
+ ],
+ "title": "Resource Type",
"type": "string"
},
- "organization_id": {
- "title": "Organization Id",
+ "revision": {
+ "pattern": "^rev_[a-f0-9]{16}$",
+ "title": "Revision",
"type": "string"
},
- "owner_email": {
+ "revoked_at": {
"anyOf": [
{
+ "format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
- "title": "Owner Email"
+ "title": "Revoked At"
},
- "owner_user_id": {
+ "rotated_at": {
"anyOf": [
{
+ "format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
- "title": "Owner User Id"
+ "title": "Rotated At"
},
- "storage_bytes": {
- "title": "Storage Bytes",
- "type": "integer"
+ "secret": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Plaintext share secret. Present only on first execution of a create or rotate; null on idempotent replay \u2014 rotate to obtain a new secret.",
+ "title": "Secret"
+ },
+ "state": {
+ "enum": [
+ "active",
+ "revoked"
+ ],
+ "title": "State",
+ "type": "string"
}
},
"required": [
"id",
- "name",
- "organization_id",
- "storage_bytes",
- "created_at"
+ "drive_id",
+ "resource_type",
+ "resource_id",
+ "created_by",
+ "revision",
+ "state",
+ "expires_at",
+ "revoked_at",
+ "created_at",
+ "rotated_at"
],
- "title": "DriveOut",
+ "title": "ShareCreateOut",
+ "type": "object"
+ },
+ "ShareListOut": {
+ "properties": {
+ "items": {
+ "items": {
+ "$ref": "#/components/schemas/ShareOut"
+ },
+ "title": "Items",
+ "type": "array"
+ },
+ "next_cursor": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "title": "Next Cursor"
+ }
+ },
+ "required": [
+ "items",
+ "next_cursor"
+ ],
+ "title": "ShareListOut",
"type": "object"
},
- "DriveReadOut": {
- "description": "Drive singleton shape returned by both data-plane read routes.",
+ "ShareOut": {
"properties": {
"created_at": {
"format": "date-time",
"title": "Created At",
"type": "string"
},
- "email": {
+ "created_by": {
"anyOf": [
{
"type": "string"
@@ -1426,217 +1528,213 @@
"type": "null"
}
],
- "title": "Email"
+ "title": "Created By"
},
- "etag": {
- "title": "Etag",
+ "drive_id": {
+ "pattern": "^drv_[a-f0-9]{16}$",
+ "title": "Drive Id",
"type": "string"
},
- "id": {
- "title": "Id",
- "type": "string"
- },
- "metageneration": {
- "title": "Metageneration",
- "type": "integer"
- },
- "organization_id": {
- "title": "Organization Id",
- "type": "string"
- },
- "storage_bytes": {
- "title": "Storage Bytes",
- "type": "integer"
+ "expires_at": {
+ "anyOf": [
+ {
+ "format": "date-time",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "title": "Expires At"
},
- "storage_limit": {
- "title": "Storage Limit",
- "type": "integer"
- }
- },
- "required": [
- "id",
- "organization_id",
- "storage_bytes",
- "storage_limit",
- "created_at",
- "metageneration",
- "etag"
- ],
- "title": "DriveReadOut",
- "type": "object"
- },
- "DriveRenameIn": {
- "description": "PATCH /v0/drives/{id} body \u2014 rename a drive the caller owns.",
- "properties": {
- "name": {
- "maxLength": 120,
- "minLength": 1,
- "title": "Name",
- "type": "string"
- }
- },
- "required": [
- "name"
- ],
- "title": "DriveRenameIn",
- "type": "object"
- },
- "DriveRestoreOut": {
- "properties": {
"id": {
+ "pattern": "^shr_[a-f0-9]{16}$",
"title": "Id",
"type": "string"
},
- "rebased_artifact_count": {
- "title": "Rebased Artifact Count",
- "type": "integer"
- },
- "restored_at": {
- "format": "date-time",
- "title": "Restored At",
+ "resource_id": {
+ "title": "Resource Id",
"type": "string"
- }
- },
- "required": [
- "id",
- "restored_at",
- "rebased_artifact_count"
- ],
- "title": "DriveRestoreOut",
- "type": "object"
- },
- "DriveUsageOut": {
- "properties": {
- "account_footprint": {
- "$ref": "#/components/schemas/StorageFootprintOut"
- },
- "egress_bytes": {
- "$ref": "#/components/schemas/UsageCounterOut"
- },
- "footprint": {
- "$ref": "#/components/schemas/StorageFootprintOut"
- },
- "indexed_bytes": {
- "$ref": "#/components/schemas/UsageCounterOut"
},
- "indexing_ops": {
- "$ref": "#/components/schemas/UsageCounterOut"
- },
- "ops_this_month": {
- "$ref": "#/components/schemas/OperationUsageOut"
- },
- "period": {
- "$ref": "#/components/schemas/UsagePeriodOut"
- },
- "retrieval_queries": {
- "$ref": "#/components/schemas/UsageCounterOut"
+ "resource_type": {
+ "enum": [
+ "artifact",
+ "artifact_version",
+ "folder"
+ ],
+ "title": "Resource Type",
+ "type": "string"
},
- "storage": {
- "$ref": "#/components/schemas/UsageCounterOut"
+ "revision": {
+ "pattern": "^rev_[a-f0-9]{16}$",
+ "title": "Revision",
+ "type": "string"
},
- "storage_breakdown": {
+ "revoked_at": {
"anyOf": [
{
- "$ref": "#/components/schemas/StorageBreakdownOut"
+ "format": "date-time",
+ "type": "string"
},
{
"type": "null"
}
- ]
- },
- "tokens_this_month": {
- "$ref": "#/components/schemas/TokenUsageOut"
- },
- "version_retention": {
- "$ref": "#/components/schemas/VersionRetentionOut"
+ ],
+ "title": "Revoked At"
},
- "writes_this_hour": {
- "$ref": "#/components/schemas/HourlyUsageCounterOut"
- }
- },
- "required": [
- "period",
- "storage",
- "writes_this_hour",
- "indexing_ops",
- "retrieval_queries",
- "indexed_bytes",
- "egress_bytes",
- "tokens_this_month",
- "ops_this_month",
- "footprint",
- "account_footprint",
- "version_retention"
- ],
- "title": "DriveUsageOut",
- "type": "object"
- },
- "ErrorBody": {
- "additionalProperties": true,
- "description": "Machine-readable API error.\n\nError-code-specific context (for example `limit`, `current_etag`, or\n`retry_after_s`) is intentionally additive.",
- "properties": {
- "code": {
- "title": "Code",
- "type": "string"
+ "rotated_at": {
+ "anyOf": [
+ {
+ "format": "date-time",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "title": "Rotated At"
},
- "message": {
- "title": "Message",
+ "state": {
+ "enum": [
+ "active",
+ "revoked"
+ ],
+ "title": "State",
"type": "string"
}
},
"required": [
- "code",
- "message"
+ "id",
+ "drive_id",
+ "resource_type",
+ "resource_id",
+ "created_by",
+ "revision",
+ "state",
+ "expires_at",
+ "revoked_at",
+ "created_at",
+ "rotated_at"
],
- "title": "ErrorBody",
+ "title": "ShareOut",
"type": "object"
},
- "ErrorDetail": {
- "additionalProperties": true,
+ "V0ErrorEnvelope": {
"properties": {
"error": {
- "$ref": "#/components/schemas/ErrorBody"
+ "additionalProperties": true,
+ "properties": {
+ "code": {
+ "description": "Stable machine-readable error code (see the error-catalog).",
+ "type": "string"
+ },
+ "details": {
+ "description": "Error-code-specific context (optional).",
+ "type": "object"
+ },
+ "message": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "message"
+ ],
+ "type": "object"
}
},
"required": [
"error"
],
- "title": "ErrorDetail",
"type": "object"
},
- "ErrorResponse": {
- "additionalProperties": true,
- "description": "Canonical non-validation error envelope emitted by AgentDrive.",
+ "ValidationErrorResponse": {
"properties": {
- "detail": {
- "$ref": "#/components/schemas/ErrorDetail"
+ "error": {
+ "additionalProperties": true,
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "details": {
+ "properties": {
+ "fields": {
+ "items": {
+ "properties": {
+ "location": {
+ "type": "string"
+ },
+ "reason": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "message": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "message"
+ ],
+ "type": "object"
}
},
"required": [
- "detail"
+ "error"
],
- "title": "ErrorResponse",
"type": "object"
},
- "EventOut": {
+ "VersionCreatedOut": {
+ "description": "The append/restore response \u2014 a version plus the artifact's new\nrevision, which the version-creating 201 rotates.",
"properties": {
- "action": {
- "title": "Action",
+ "artifact_id": {
+ "pattern": "^art_[a-f0-9]{16}$",
+ "title": "Artifact Id",
+ "type": "string"
+ },
+ "artifact_revision": {
+ "description": "The artifact's revision after this version became head \u2014 the If-Match value for the next mutation.",
+ "pattern": "^rev_[a-f0-9]{16}$",
+ "title": "Artifact Revision",
+ "type": "string"
+ },
+ "content_type": {
+ "title": "Content Type",
+ "type": "string"
+ },
+ "created_at": {
+ "format": "date-time",
+ "title": "Created At",
"type": "string"
},
- "actor_name": {
+ "created_by": {
"anyOf": [
{
- "maxLength": 64,
"type": "string"
},
{
"type": "null"
}
],
- "title": "Actor Name"
+ "title": "Created By"
+ },
+ "hash": {
+ "title": "Hash",
+ "type": "string"
+ },
+ "id": {
+ "pattern": "^ver_[a-f0-9]{16}$",
+ "title": "Id",
+ "type": "string"
},
- "art_id": {
+ "parent_version_id": {
"anyOf": [
{
"type": "string"
@@ -1645,41 +1743,39 @@
"type": "null"
}
],
- "title": "Art Id"
- },
- "created_at": {
- "format": "date-time",
- "title": "Created At",
- "type": "string"
- },
- "drive_id": {
- "title": "Drive Id",
- "type": "string"
+ "title": "Parent Version Id"
},
- "id": {
- "title": "Id",
- "type": "string"
+ "size_bytes": {
+ "minimum": 0.0,
+ "title": "Size Bytes",
+ "type": "integer"
},
- "metadata": {
- "additionalProperties": true,
- "title": "Metadata",
- "type": "object"
+ "version_number": {
+ "minimum": 1.0,
+ "title": "Version Number",
+ "type": "integer"
}
},
"required": [
"id",
- "drive_id",
- "action",
- "created_at"
+ "artifact_id",
+ "version_number",
+ "parent_version_id",
+ "content_type",
+ "size_bytes",
+ "hash",
+ "created_by",
+ "created_at",
+ "artifact_revision"
],
- "title": "EventOut",
+ "title": "VersionCreatedOut",
"type": "object"
},
- "EventPage": {
+ "VersionListOut": {
"properties": {
"items": {
"items": {
- "$ref": "#/components/schemas/EventOut"
+ "$ref": "#/components/schemas/VersionOut"
},
"title": "Items",
"type": "array"
@@ -1697,86 +1793,29 @@
}
},
"required": [
- "items"
- ],
- "title": "EventPage",
- "type": "object"
- },
- "ExtensionExchangeRequest": {
- "description": "Single-use ticket \u2192 JWT pair. Called by `auth-complete.html`\ninside the SnipIt extension. No `Authorization` header \u2014 the\nticket itself is the credential.",
- "properties": {
- "ext_id": {
- "description": "The extension's ID (Chrome Web Store ID or unpacked dev ID).",
- "title": "Ext Id",
- "type": "string"
- },
- "ticket": {
- "description": "The opaque ticket from the /auth/callback handoff.",
- "title": "Ticket",
- "type": "string"
- }
- },
- "required": [
- "ext_id",
- "ticket"
+ "items",
+ "next_cursor"
],
- "title": "ExtensionExchangeRequest",
+ "title": "VersionListOut",
"type": "object"
},
- "ExtensionExchangeResponse": {
+ "VersionOut": {
"properties": {
- "access_token": {
- "description": "15-minute access_token (scope=extension).",
- "title": "Access Token",
- "type": "string"
- },
- "drive_id": {
- "description": "The drive these credentials are scoped to.",
- "title": "Drive Id",
- "type": "string"
- },
- "expires_in": {
- "description": "Seconds until access_token expiry.",
- "title": "Expires In",
- "type": "integer"
- },
- "identity_assertion": {
- "description": "90-day identity_assertion. Refresh via POST /oauth2/token.",
- "title": "Identity Assertion",
- "type": "string"
- },
- "scope": {
- "const": "extension",
- "default": "extension",
- "title": "Scope",
+ "artifact_id": {
+ "pattern": "^art_[a-f0-9]{16}$",
+ "title": "Artifact Id",
"type": "string"
},
- "token_type": {
- "default": "Bearer",
- "title": "Token Type",
+ "content_type": {
+ "title": "Content Type",
"type": "string"
- }
- },
- "required": [
- "access_token",
- "expires_in",
- "identity_assertion",
- "drive_id"
- ],
- "title": "ExtensionExchangeResponse",
- "type": "object"
- },
- "FeedbackCreateOut": {
- "properties": {
- "contact": {
- "title": "Contact",
- "type": "boolean"
},
- "id": {
- "title": "Id",
+ "created_at": {
+ "format": "date-time",
+ "title": "Created At",
"type": "string"
},
- "note": {
+ "created_by": {
"anyOf": [
{
"type": "string"
@@ -1785,34 +1824,18 @@
"type": "null"
}
],
- "title": "Note"
+ "title": "Created By"
},
- "status": {
- "title": "Status",
+ "hash": {
+ "title": "Hash",
"type": "string"
- }
- },
- "required": [
- "id",
- "status",
- "contact"
- ],
- "title": "FeedbackCreateOut",
- "type": "object"
- },
- "FeedbackStatusOut": {
- "description": "GET /v0/feedback/{fbk_id} response \u2014 lifecycle status of feedback THIS\ndrive filed.",
- "properties": {
- "contact": {
- "title": "Contact",
- "type": "boolean"
},
- "created_at": {
- "format": "date-time",
- "title": "Created At",
+ "id": {
+ "pattern": "^ver_[a-f0-9]{16}$",
+ "title": "Id",
"type": "string"
},
- "duplicate_of": {
+ "parent_version_id": {
"anyOf": [
{
"type": "string"
@@ -1821,10720 +1844,114 @@
"type": "null"
}
],
- "title": "Duplicate Of"
- },
- "id": {
- "title": "Id",
- "type": "string"
+ "title": "Parent Version Id"
},
- "kind": {
- "title": "Kind",
- "type": "string"
- },
- "status": {
- "title": "Status",
- "type": "string"
- },
- "status_changed_at": {
- "format": "date-time",
- "title": "Status Changed At",
- "type": "string"
- },
- "title": {
- "title": "Title",
- "type": "string"
- }
- },
- "required": [
- "id",
- "status",
- "kind",
- "title",
- "contact",
- "created_at",
- "status_changed_at"
- ],
- "title": "FeedbackStatusOut",
- "type": "object"
- },
- "FindHitOut": {
- "description": "One passage-level hit from `/v0/find` (hybrid chunk RAG over\n`embed_chunks`). The unit is a passage, not a file \u2014 consecutive\n`ord` values from the same `art_id` are normal because chunks\noverlap by ~400 tokens. Span fields are modality-aware: only the\npair matching `modality` is populated, the others stay None.",
- "properties": {
- "art_id": {
- "title": "Art Id",
- "type": "string"
- },
- "char_end": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "title": "Char End"
- },
- "char_start": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "title": "Char Start"
- },
- "content_type": {
- "title": "Content Type",
- "type": "string"
- },
- "drive_id": {
- "title": "Drive Id",
- "type": "string"
- },
- "file_type": {
- "title": "File Type",
- "type": "string"
- },
- "labels": {
- "items": {
- "type": "string"
- },
- "title": "Labels",
- "type": "array"
- },
- "modality": {
- "enum": [
- "text",
- "code",
- "pdf",
- "image",
- "audio",
- "video"
- ],
- "title": "Modality",
- "type": "string"
- },
- "ord": {
- "title": "Ord",
- "type": "integer"
- },
- "page_end": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "title": "Page End"
- },
- "page_start": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "title": "Page Start"
- },
- "path": {
- "title": "Path",
- "type": "string"
- },
- "rank_lexical": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "title": "Rank Lexical"
- },
- "rank_semantic": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "title": "Rank Semantic"
- },
- "score": {
- "title": "Score",
- "type": "number"
- },
- "snippet": {
- "title": "Snippet",
- "type": "string"
- },
- "text": {
- "title": "Text",
- "type": "string"
- },
- "time_end_ms": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "title": "Time End Ms"
- },
- "time_start_ms": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "title": "Time Start Ms"
- },
- "updated_at": {
- "format": "date-time",
- "title": "Updated At",
- "type": "string"
- },
- "url": {
- "title": "Url",
- "type": "string"
+ "size_bytes": {
+ "minimum": 0.0,
+ "title": "Size Bytes",
+ "type": "integer"
},
"version_number": {
+ "minimum": 1.0,
"title": "Version Number",
"type": "integer"
}
},
- "required": [
- "art_id",
- "drive_id",
- "path",
- "url",
- "content_type",
- "file_type",
- "updated_at",
- "version_number",
- "modality",
- "ord",
- "text",
- "snippet",
- "score"
- ],
- "title": "FindHitOut",
- "type": "object"
- },
- "FindPage": {
- "description": "`/v0/find` response \u2014 single-shot top-N, deliberately unpaginated\n(same contract + rationale as `SearchPage`).",
- "properties": {
- "items": {
- "items": {
- "$ref": "#/components/schemas/FindHitOut"
- },
- "title": "Items",
- "type": "array"
- }
- },
- "required": [
- "items"
- ],
- "title": "FindPage",
- "type": "object"
- },
- "FolderCopyIn": {
- "description": "POST /v0/folders/{fld_id}/copy body \u2014 duplicate the subtree to a\nnew path. `path` is the target folder path (canonical, trailing\nslash). Its own schema (vs. reusing `FolderMoveIn`) keeps the copy\nsurface self-documenting in the OpenAPI spec.",
- "properties": {
- "from_metageneration": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "title": "From Metageneration"
- },
- "path": {
- "title": "Path",
- "type": "string"
- }
- },
- "required": [
- "path"
- ],
- "title": "FolderCopyIn",
- "type": "object"
- },
- "FolderCopyOut": {
- "description": "POST /v0/folders/{fld_id}/copy response \u2014 the newly-created folder\nresource (same shape as `FolderOut`) plus copy-provenance fields:\n`from_fld_id` is the source folder and `n_artifacts_copied` is the\nnumber of descendant artifacts cloned into the new subtree. Mirrors\nthe MCP `copy` folder route's conceptual shape.",
- "properties": {
- "created_at": {
- "format": "date-time",
- "title": "Created At",
- "type": "string"
- },
- "deleted_at": {
- "anyOf": [
- {
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Deleted At"
- },
- "description": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Description"
- },
- "drive_id": {
- "title": "Drive Id",
- "type": "string"
- },
- "etag": {
- "title": "Etag",
- "type": "string"
- },
- "from_fld_id": {
- "title": "From Fld Id",
- "type": "string"
- },
- "id": {
- "title": "Id",
- "type": "string"
- },
- "inherit_grants": {
- "default": true,
- "title": "Inherit Grants",
- "type": "boolean"
- },
- "metageneration": {
- "default": 1,
- "title": "Metageneration",
- "type": "integer"
- },
- "n_artifacts_copied": {
- "title": "N Artifacts Copied",
- "type": "integer"
- },
- "path": {
- "title": "Path",
- "type": "string"
- },
- "purge_at": {
- "anyOf": [
- {
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Purge At"
- },
- "updated_at": {
- "format": "date-time",
- "title": "Updated At",
- "type": "string"
- }
- },
"required": [
"id",
- "drive_id",
- "path",
- "etag",
- "created_at",
- "updated_at",
- "from_fld_id",
- "n_artifacts_copied"
+ "artifact_id",
+ "version_number",
+ "parent_version_id",
+ "content_type",
+ "size_bytes",
+ "hash",
+ "created_by",
+ "created_at"
],
- "title": "FolderCopyOut",
- "type": "object"
- },
- "FolderCreateIn": {
- "description": "PUT /v0/folders/{path} body for the optional metadata params.\nEmpty body is fine \u2014 `mkdir` with no description just creates the\nfolder row.",
- "properties": {
- "description": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Description"
- }
- },
- "title": "FolderCreateIn",
+ "title": "VersionOut",
"type": "object"
- },
- "FolderDeleteOut": {
- "description": "DELETE response \u2014 surfaces cascade counts so the caller can\nconfirm scope of an rmdir before the client retries with\n`?recursive=true`.",
- "properties": {
- "deleted_at": {
- "format": "date-time",
- "title": "Deleted At",
- "type": "string"
- },
- "id": {
- "title": "Id",
- "type": "string"
- },
- "n_artifacts_deleted": {
- "title": "N Artifacts Deleted",
- "type": "integer"
- },
- "n_subfolders_deleted": {
- "title": "N Subfolders Deleted",
- "type": "integer"
- },
- "ok": {
- "default": true,
- "title": "Ok",
- "type": "boolean"
- },
- "path": {
- "title": "Path",
- "type": "string"
- },
- "purge_at": {
- "format": "date-time",
- "title": "Purge At",
- "type": "string"
- },
- "retention_days": {
- "title": "Retention Days",
- "type": "integer"
- }
- },
- "required": [
- "id",
- "path",
- "deleted_at",
- "purge_at",
- "retention_days",
- "n_subfolders_deleted",
- "n_artifacts_deleted"
- ],
- "title": "FolderDeleteOut",
- "type": "object"
- },
- "FolderMoveIn": {
- "description": "POST /v0/folders/{fld_id}/move body \u2014 rename / move.",
- "properties": {
- "path": {
- "title": "Path",
- "type": "string"
- }
- },
- "required": [
- "path"
- ],
- "title": "FolderMoveIn",
- "type": "object"
- },
- "FolderOut": {
- "description": "Folder resource (folders+permalinks design \u00a713). `path` is the\ncanonical leading+trailing-slash form. Access is expressed through\ngrants (permission-sharing-design \u00a74.4), not a folder-level flag.",
- "properties": {
- "created_at": {
- "format": "date-time",
- "title": "Created At",
- "type": "string"
- },
- "deleted_at": {
- "anyOf": [
- {
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Deleted At"
- },
- "description": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Description"
- },
- "drive_id": {
- "title": "Drive Id",
- "type": "string"
- },
- "etag": {
- "title": "Etag",
- "type": "string"
- },
- "id": {
- "title": "Id",
- "type": "string"
- },
- "inherit_grants": {
- "default": true,
- "title": "Inherit Grants",
- "type": "boolean"
- },
- "metageneration": {
- "default": 1,
- "title": "Metageneration",
- "type": "integer"
- },
- "path": {
- "title": "Path",
- "type": "string"
- },
- "purge_at": {
- "anyOf": [
- {
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Purge At"
- },
- "updated_at": {
- "format": "date-time",
- "title": "Updated At",
- "type": "string"
- }
- },
- "required": [
- "id",
- "drive_id",
- "path",
- "etag",
- "created_at",
- "updated_at"
- ],
- "title": "FolderOut",
- "type": "object"
- },
- "FolderPatchIn": {
- "description": "PATCH /v0/folders/{fld_id} body \u2014 partial update. Field absence =\nunchanged. `description`: explicit null = clear. `inherit_grants`:\nnon-nullable \u2014 null/absent = unchanged (it cannot be cleared, only\nflipped true/false).",
- "properties": {
- "description": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Description"
- },
- "inherit_grants": {
- "anyOf": [
- {
- "type": "boolean"
- },
- {
- "type": "null"
- }
- ],
- "title": "Inherit Grants"
- }
- },
- "title": "FolderPatchIn",
- "type": "object"
- },
- "FolderRestoreOut": {
- "description": "POST /v0/folders/{fld_id}/restore response \u2014 the restored (live)\nfolder resource (same shape as `FolderOut`) plus the cascade counts\nfrom `core.folders.restore_cascade` (dashboard-file-operations-design\n\u00a74.5), so the caller can confirm the scope of what came back with\nthe root.",
- "properties": {
- "created_at": {
- "format": "date-time",
- "title": "Created At",
- "type": "string"
- },
- "deleted_at": {
- "anyOf": [
- {
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Deleted At"
- },
- "description": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Description"
- },
- "drive_id": {
- "title": "Drive Id",
- "type": "string"
- },
- "etag": {
- "title": "Etag",
- "type": "string"
- },
- "id": {
- "title": "Id",
- "type": "string"
- },
- "inherit_grants": {
- "default": true,
- "title": "Inherit Grants",
- "type": "boolean"
- },
- "metageneration": {
- "default": 1,
- "title": "Metageneration",
- "type": "integer"
- },
- "n_artifacts_restored": {
- "title": "N Artifacts Restored",
- "type": "integer"
- },
- "n_subfolders_restored": {
- "title": "N Subfolders Restored",
- "type": "integer"
- },
- "path": {
- "title": "Path",
- "type": "string"
- },
- "purge_at": {
- "anyOf": [
- {
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Purge At"
- },
- "updated_at": {
- "format": "date-time",
- "title": "Updated At",
- "type": "string"
- }
- },
- "required": [
- "id",
- "drive_id",
- "path",
- "etag",
- "created_at",
- "updated_at",
- "n_subfolders_restored",
- "n_artifacts_restored"
- ],
- "title": "FolderRestoreOut",
- "type": "object"
- },
- "GrantCreateIn": {
- "description": "POST /v0/grants body. `resource` is an `art_*`/`fld_*` id or a path\n(resolved within the caller's drive). `expires_in` is seconds from now\n(omit for a permanent grant).",
- "properties": {
- "expires_in": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "title": "Expires In"
- },
- "principal": {
- "$ref": "#/components/schemas/GrantPrincipalIn"
- },
- "resource": {
- "title": "Resource",
- "type": "string"
- },
- "role": {
- "enum": [
- "viewer",
- "commenter",
- "editor",
- "manager"
- ],
- "title": "Role",
- "type": "string"
- }
- },
- "required": [
- "resource",
- "principal",
- "role"
- ],
- "title": "GrantCreateIn",
- "type": "object"
- },
- "GrantList": {
- "properties": {
- "items": {
- "items": {
- "$ref": "#/components/schemas/GrantOut"
- },
- "title": "Items",
- "type": "array"
- },
- "next_cursor": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Next Cursor"
- }
- },
- "required": [
- "items"
- ],
- "title": "GrantList",
- "type": "object"
- },
- "GrantOut": {
- "description": "A live grant. Audit fields (`granted_by_*`, `on_behalf_of`) are\nsurfaced so a manager can see who shared what.",
- "properties": {
- "artifacts_affected": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "title": "Artifacts Affected"
- },
- "created_at": {
- "format": "date-time",
- "title": "Created At",
- "type": "string"
- },
- "expires_at": {
- "anyOf": [
- {
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Expires At"
- },
- "granted_by_id": {
- "title": "Granted By Id",
- "type": "string"
- },
- "granted_by_type": {
- "title": "Granted By Type",
- "type": "string"
- },
- "id": {
- "title": "Id",
- "type": "string"
- },
- "on_behalf_of": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "On Behalf Of"
- },
- "principal_email": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Principal Email"
- },
- "principal_id": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Principal Id"
- },
- "principal_type": {
- "enum": [
- "user",
- "agent",
- "org",
- "anyone"
- ],
- "title": "Principal Type",
- "type": "string"
- },
- "resource_id": {
- "title": "Resource Id",
- "type": "string"
- },
- "resource_type": {
- "enum": [
- "artifact",
- "folder"
- ],
- "title": "Resource Type",
- "type": "string"
- },
- "role": {
- "enum": [
- "viewer",
- "commenter",
- "editor",
- "manager"
- ],
- "title": "Role",
- "type": "string"
- }
- },
- "required": [
- "id",
- "resource_type",
- "resource_id",
- "principal_type",
- "role",
- "granted_by_type",
- "granted_by_id",
- "created_at"
- ],
- "title": "GrantOut",
- "type": "object"
- },
- "GrantPatchIn": {
- "description": "PATCH /v0/grants/{grn_id} body. Field absence = unchanged; explicit\n`expires_in: null` clears the expiry (makes the grant permanent).",
- "properties": {
- "expires_in": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "title": "Expires In"
- },
- "role": {
- "anyOf": [
- {
- "enum": [
- "viewer",
- "commenter",
- "editor",
- "manager"
- ],
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Role"
- }
- },
- "title": "GrantPatchIn",
- "type": "object"
- },
- "GrantPrincipalIn": {
- "description": "Who a grant is for. `anyone` carries no id/email; `org`/`agent`\nrequire `id`; `user` requires exactly one of `id` / `email` (an email\nwith no account becomes a pending-email invite resolved on sign-in).",
- "properties": {
- "email": {
- "anyOf": [
- {
- "maxLength": 320,
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Email"
- },
- "id": {
- "anyOf": [
- {
- "maxLength": 128,
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Id"
- },
- "type": {
- "enum": [
- "user",
- "agent",
- "org",
- "anyone"
- ],
- "title": "Type",
- "type": "string"
- }
- },
- "required": [
- "type"
- ],
- "title": "GrantPrincipalIn",
- "type": "object"
- },
- "HealthDegradedDetail": {
- "properties": {
- "error": {
- "title": "Error",
- "type": "string"
- },
- "status": {
- "const": "degraded",
- "title": "Status",
- "type": "string"
- }
- },
- "required": [
- "status",
- "error"
- ],
- "title": "HealthDegradedDetail",
- "type": "object"
- },
- "HealthDegradedResponse": {
- "description": "Legacy health-probe failure shape.\n\nHealth predates the `/v0` error envelope and is consumed by load\nbalancers. PR 1 documents the wire shape without changing it; convergence\non the canonical API envelope is a separately reviewed compatibility\ndecision.",
- "properties": {
- "detail": {
- "$ref": "#/components/schemas/HealthDegradedDetail"
- }
- },
- "required": [
- "detail"
- ],
- "title": "HealthDegradedResponse",
- "type": "object"
- },
- "HealthOut": {
- "properties": {
- "status": {
- "const": "ok",
- "title": "Status",
- "type": "string"
- }
- },
- "required": [
- "status"
- ],
- "title": "HealthOut",
- "type": "object"
- },
- "HourlyUsageCounterOut": {
- "properties": {
- "limit": {
- "title": "Limit",
- "type": "integer"
- },
- "reset_at": {
- "format": "date-time",
- "title": "Reset At",
- "type": "string"
- },
- "used": {
- "title": "Used",
- "type": "integer"
- }
- },
- "required": [
- "used",
- "limit",
- "reset_at"
- ],
- "title": "HourlyUsageCounterOut",
- "type": "object"
- },
- "IdentityAssertionMetadataOut": {
- "additionalProperties": true,
- "properties": {
- "alg": {
- "title": "Alg",
- "type": "string"
- },
- "iss": {
- "title": "Iss",
- "type": "string"
- },
- "version": {
- "title": "Version",
- "type": "integer"
- }
- },
- "required": [
- "alg",
- "iss",
- "version"
- ],
- "title": "IdentityAssertionMetadataOut",
- "type": "object"
- },
- "InvitationList": {
- "properties": {
- "items": {
- "items": {
- "$ref": "#/components/schemas/InvitationOut"
- },
- "title": "Items",
- "type": "array"
- },
- "next_cursor": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Next Cursor"
- }
- },
- "required": [
- "items"
- ],
- "title": "InvitationList",
- "type": "object"
- },
- "InvitationOut": {
- "description": "One workspace invitation \u2014 metadata only; the raw token is never\nsurfaced over the API (it lives only in the invite email).",
- "properties": {
- "created_at": {
- "format": "date-time",
- "title": "Created At",
- "type": "string"
- },
- "email": {
- "title": "Email",
- "type": "string"
- },
- "expires_at": {
- "format": "date-time",
- "title": "Expires At",
- "type": "string"
- },
- "id": {
- "title": "Id",
- "type": "string"
- },
- "invited_by": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Invited By"
- },
- "organization_id": {
- "title": "Organization Id",
- "type": "string"
- },
- "role": {
- "enum": [
- "admin",
- "member"
- ],
- "title": "Role",
- "type": "string"
- },
- "status": {
- "enum": [
- "pending",
- "accepted",
- "revoked",
- "expired"
- ],
- "title": "Status",
- "type": "string"
- }
- },
- "required": [
- "id",
- "organization_id",
- "email",
- "role",
- "status",
- "expires_at",
- "created_at"
- ],
- "title": "InvitationOut",
- "type": "object"
- },
- "InviteCreateOut": {
- "description": "POST /v0/members/invite response. `already_member` is True when the\nemail was already a live member (no invite created \u2014 a no-op success).\n`email_delivered` is False when the invite row was created but the\nnotification email failed to send \u2014 the invite is still valid and can be\nresent, but the invitee has not yet received a link.",
- "properties": {
- "already_member": {
- "default": false,
- "title": "Already Member",
- "type": "boolean"
- },
- "email_delivered": {
- "default": true,
- "title": "Email Delivered",
- "type": "boolean"
- },
- "invitation": {
- "anyOf": [
- {
- "$ref": "#/components/schemas/InvitationOut"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "title": "InviteCreateOut",
- "type": "object"
- },
- "JwkOut": {
- "additionalProperties": true,
- "properties": {
- "alg": {
- "title": "Alg",
- "type": "string"
- },
- "e": {
- "title": "E",
- "type": "string"
- },
- "kid": {
- "title": "Kid",
- "type": "string"
- },
- "kty": {
- "title": "Kty",
- "type": "string"
- },
- "n": {
- "title": "N",
- "type": "string"
- },
- "use": {
- "title": "Use",
- "type": "string"
- }
- },
- "required": [
- "kty",
- "kid",
- "alg",
- "use",
- "n",
- "e"
- ],
- "title": "JwkOut",
- "type": "object"
- },
- "JwksOut": {
- "additionalProperties": true,
- "properties": {
- "keys": {
- "items": {
- "$ref": "#/components/schemas/JwkOut"
- },
- "title": "Keys",
- "type": "array"
- }
- },
- "required": [
- "keys"
- ],
- "title": "JwksOut",
- "type": "object"
- },
- "LookupValuesIn": {
- "properties": {
- "column": {
- "title": "Column",
- "type": "string"
- },
- "dataset": {
- "title": "Dataset",
- "type": "string"
- },
- "limit": {
- "default": 50,
- "title": "Limit",
- "type": "integer"
- }
- },
- "required": [
- "dataset",
- "column"
- ],
- "title": "LookupValuesIn",
- "type": "object"
- },
- "LookupValuesOut": {
- "properties": {
- "column": {
- "title": "Column",
- "type": "string"
- },
- "dataset": {
- "title": "Dataset",
- "type": "string"
- },
- "values": {
- "items": {},
- "title": "Values",
- "type": "array"
- }
- },
- "required": [
- "dataset",
- "column",
- "values"
- ],
- "title": "LookupValuesOut",
- "type": "object"
- },
- "MemberInviteIn": {
- "description": "POST /v0/members/invite body \u2014 invite a person by email.",
- "properties": {
- "email": {
- "maxLength": 320,
- "minLength": 3,
- "title": "Email",
- "type": "string"
- },
- "role": {
- "default": "member",
- "enum": [
- "admin",
- "member"
- ],
- "title": "Role",
- "type": "string"
- }
- },
- "required": [
- "email"
- ],
- "title": "MemberInviteIn",
- "type": "object"
- },
- "MemberList": {
- "properties": {
- "items": {
- "items": {
- "$ref": "#/components/schemas/MemberOut"
- },
- "title": "Items",
- "type": "array"
- },
- "next_cursor": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Next Cursor"
- }
- },
- "required": [
- "items"
- ],
- "title": "MemberList",
- "type": "object"
- },
- "MemberOut": {
- "description": "One live member of a workspace \u2014 metadata for the members page /\n`GET /v0/members`.",
- "properties": {
- "created_at": {
- "format": "date-time",
- "title": "Created At",
- "type": "string"
- },
- "email": {
- "title": "Email",
- "type": "string"
- },
- "first_name": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "First Name"
- },
- "last_name": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Last Name"
- },
- "role": {
- "enum": [
- "admin",
- "member"
- ],
- "title": "Role",
- "type": "string"
- },
- "user_id": {
- "title": "User Id",
- "type": "string"
- }
- },
- "required": [
- "user_id",
- "email",
- "role",
- "created_at"
- ],
- "title": "MemberOut",
- "type": "object"
- },
- "MemberRemoveOut": {
- "description": "DELETE /v0/members/{user_id} response \u2014 the member-removal receipt.\n`id` is the removed user's id (replaces the ad-hoc `removed` key).",
- "properties": {
- "id": {
- "title": "Id",
- "type": "string"
- },
- "ok": {
- "default": true,
- "title": "Ok",
- "type": "boolean"
- },
- "organization_id": {
- "title": "Organization Id",
- "type": "string"
- }
- },
- "required": [
- "id",
- "organization_id"
- ],
- "title": "MemberRemoveOut",
- "type": "object"
- },
- "MemberRoleIn": {
- "description": "PATCH /v0/members/{user} body \u2014 promote/demote a member.",
- "properties": {
- "role": {
- "enum": [
- "admin",
- "member"
- ],
- "title": "Role",
- "type": "string"
- }
- },
- "required": [
- "role"
- ],
- "title": "MemberRoleIn",
- "type": "object"
- },
- "OAuthProtocolErrorOut": {
- "additionalProperties": true,
- "description": "RFC OAuth error shape used by public protocol endpoints.",
- "properties": {
- "error": {
- "title": "Error",
- "type": "string"
- },
- "error_description": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Error Description"
- }
- },
- "required": [
- "error"
- ],
- "title": "OAuthProtocolErrorOut",
- "type": "object"
- },
- "OAuthRevocationOut": {
- "description": "RFC 7009 successful revocation has an empty JSON object.",
- "properties": {},
- "title": "OAuthRevocationOut",
- "type": "object"
- },
- "OperationUsageOut": {
- "properties": {
- "reads": {
- "title": "Reads",
- "type": "integer"
- },
- "writes": {
- "title": "Writes",
- "type": "integer"
- }
- },
- "required": [
- "reads",
- "writes"
- ],
- "title": "OperationUsageOut",
- "type": "object"
- },
- "Page": {
- "properties": {
- "items": {
- "items": {
- "$ref": "#/components/schemas/ArtifactOut"
- },
- "title": "Items",
- "type": "array"
- },
- "next_cursor": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Next Cursor"
- }
- },
- "required": [
- "items"
- ],
- "title": "Page",
- "type": "object"
- },
- "ProjectConfigIn": {
- "properties": {
- "auto_compile": {
- "default": false,
- "title": "Auto Compile",
- "type": "boolean"
- },
- "engine": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Engine"
- },
- "entrypoint": {
- "title": "Entrypoint",
- "type": "string"
- }
- },
- "required": [
- "entrypoint"
- ],
- "title": "ProjectConfigIn",
- "type": "object"
- },
- "ProtectedResourceMetadataOut": {
- "additionalProperties": true,
- "properties": {
- "authorization_servers": {
- "items": {
- "type": "string"
- },
- "title": "Authorization Servers",
- "type": "array"
- },
- "bearer_methods_supported": {
- "items": {
- "type": "string"
- },
- "title": "Bearer Methods Supported",
- "type": "array"
- },
- "resource": {
- "title": "Resource",
- "type": "string"
- },
- "scopes_supported": {
- "items": {
- "type": "string"
- },
- "title": "Scopes Supported",
- "type": "array"
- }
- },
- "required": [
- "resource",
- "authorization_servers",
- "bearer_methods_supported",
- "scopes_supported"
- ],
- "title": "ProtectedResourceMetadataOut",
- "type": "object"
- },
- "QueryColumnOut": {
- "additionalProperties": true,
- "properties": {
- "name": {
- "title": "Name",
- "type": "string"
- },
- "type": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Type"
- }
- },
- "required": [
- "name"
- ],
- "title": "QueryColumnOut",
- "type": "object"
- },
- "QueryDryRunOut": {
- "additionalProperties": true,
- "properties": {
- "dry_run": {
- "const": true,
- "title": "Dry Run",
- "type": "boolean"
- },
- "engine": {
- "title": "Engine",
- "type": "string"
- },
- "estimated_bytes_processed": {
- "title": "Estimated Bytes Processed",
- "type": "integer"
- },
- "result_schema": {
- "items": {
- "$ref": "#/components/schemas/QueryColumnOut"
- },
- "title": "Result Schema",
- "type": "array"
- },
- "valid": {
- "title": "Valid",
- "type": "boolean"
- }
- },
- "required": [
- "valid",
- "dry_run",
- "engine",
- "result_schema",
- "estimated_bytes_processed"
- ],
- "title": "QueryDryRunOut",
- "type": "object"
- },
- "QueryIn": {
- "properties": {
- "dry_run": {
- "default": false,
- "title": "Dry Run",
- "type": "boolean"
- },
- "inputs": {
- "additionalProperties": {
- "type": "string"
- },
- "title": "Inputs",
- "type": "object"
- },
- "sql": {
- "title": "Sql",
- "type": "string"
- }
- },
- "required": [
- "sql"
- ],
- "title": "QueryIn",
- "type": "object"
- },
- "QueryResultOut": {
- "additionalProperties": true,
- "properties": {
- "bytes_processed": {
- "title": "Bytes Processed",
- "type": "integer"
- },
- "cache_hit": {
- "title": "Cache Hit",
- "type": "boolean"
- },
- "engine": {
- "title": "Engine",
- "type": "string"
- },
- "preview": {
- "items": {
- "additionalProperties": true,
- "type": "object"
- },
- "title": "Preview",
- "type": "array"
- },
- "result_art_id": {
- "title": "Result Art Id",
- "type": "string"
- },
- "result_schema": {
- "items": {
- "$ref": "#/components/schemas/QueryColumnOut"
- },
- "title": "Result Schema",
- "type": "array"
- },
- "row_count": {
- "title": "Row Count",
- "type": "integer"
- }
- },
- "required": [
- "result_art_id",
- "engine",
- "result_schema",
- "row_count",
- "bytes_processed",
- "cache_hit",
- "preview"
- ],
- "title": "QueryResultOut",
- "type": "object"
- },
- "RevokeOut": {
- "description": "DELETE /v0/grants/{grn_id}, DELETE /v0/shares/{shr_id},\nDELETE /v0/invitations/{invitation_id} response \u2014 the unified\nrevoke receipt. `revoked` is a COUNT: 1 when a live row was revoked,\n0 when it was already gone (DELETE is idempotent).",
- "properties": {
- "id": {
- "title": "Id",
- "type": "string"
- },
- "ok": {
- "default": true,
- "title": "Ok",
- "type": "boolean"
- },
- "revoked": {
- "title": "Revoked",
- "type": "integer"
- }
- },
- "required": [
- "id",
- "revoked"
- ],
- "title": "RevokeOut",
- "type": "object"
- },
- "SearchHitOut": {
- "properties": {
- "art_id": {
- "title": "Art Id",
- "type": "string"
- },
- "content_type": {
- "title": "Content Type",
- "type": "string"
- },
- "drive_id": {
- "title": "Drive Id",
- "type": "string"
- },
- "file_type": {
- "title": "File Type",
- "type": "string"
- },
- "labels": {
- "items": {
- "type": "string"
- },
- "title": "Labels",
- "type": "array"
- },
- "path": {
- "title": "Path",
- "type": "string"
- },
- "score": {
- "title": "Score",
- "type": "number"
- },
- "snippet": {
- "title": "Snippet",
- "type": "string"
- },
- "updated_at": {
- "format": "date-time",
- "title": "Updated At",
- "type": "string"
- },
- "url": {
- "title": "Url",
- "type": "string"
- },
- "version_number": {
- "title": "Version Number",
- "type": "integer"
- }
- },
- "required": [
- "art_id",
- "drive_id",
- "path",
- "url",
- "content_type",
- "file_type",
- "snippet",
- "score",
- "updated_at",
- "version_number"
- ],
- "title": "SearchHitOut",
- "type": "object"
- },
- "SearchPage": {
- "description": "`/v0/search` response \u2014 single-shot top-N, deliberately unpaginated.\n\nRanked retrieval doesn't paginate meaningfully (the industry norm:\nvector/RAG APIs are pure top-K; Algolia/GitHub cap ranked results\noutright) \u2014 the correct \"next page\" of a relevance-ranked list is a\nnarrower query. Raise `limit` (\u2264100) for more hits. A `next_cursor`\nfield advertised here in the past was structurally always null and\nwas dropped; if deep retrieval is ever needed, an ES-`search_after`\nstyle `(score, id)` keyset can be re-added additively.",
- "properties": {
- "items": {
- "items": {
- "$ref": "#/components/schemas/SearchHitOut"
- },
- "title": "Items",
- "type": "array"
- }
- },
- "required": [
- "items"
- ],
- "title": "SearchPage",
- "type": "object"
- },
- "ShareCreateIn": {
- "description": "POST /v0/shares body. `resource` is an `art_*`/`fld_*` id or a path.\n`expires_in` is seconds from now (omit for the default: none for a human\ncreator, a short TTL for an agent). `password` (optional) gates redemption.",
- "properties": {
- "expires_in": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "title": "Expires In"
- },
- "password": {
- "anyOf": [
- {
- "maxLength": 1024,
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Password"
- },
- "resource": {
- "title": "Resource",
- "type": "string"
- },
- "role": {
- "default": "viewer",
- "enum": [
- "viewer",
- "commenter",
- "editor"
- ],
- "title": "Role",
- "type": "string"
- }
- },
- "required": [
- "resource"
- ],
- "title": "ShareCreateIn",
- "type": "object"
- },
- "ShareErrorOut": {
- "description": "Negotiated JSON error shape for the public share protocol.",
- "properties": {
- "error": {
- "$ref": "#/components/schemas/ErrorBody"
- }
- },
- "required": [
- "error"
- ],
- "title": "ShareErrorOut",
- "type": "object"
- },
- "ShareList": {
- "properties": {
- "items": {
- "items": {
- "$ref": "#/components/schemas/ShareOut"
- },
- "title": "Items",
- "type": "array"
- },
- "next_cursor": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Next Cursor"
- }
- },
- "required": [
- "items"
- ],
- "title": "ShareList",
- "type": "object"
- },
- "ShareMintOut": {
- "description": "The create/rotate response \u2014 the ONLY place the `share_key` and its\nredemption `url` are exposed.",
- "properties": {
- "access_count": {
- "default": 0,
- "title": "Access Count",
- "type": "integer"
- },
- "audience": {
- "title": "Audience",
- "type": "string"
- },
- "created_at": {
- "format": "date-time",
- "title": "Created At",
- "type": "string"
- },
- "expires_at": {
- "anyOf": [
- {
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Expires At"
- },
- "has_password": {
- "title": "Has Password",
- "type": "boolean"
- },
- "id": {
- "title": "Id",
- "type": "string"
- },
- "last_accessed_at": {
- "anyOf": [
- {
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Last Accessed At"
- },
- "resource_id": {
- "title": "Resource Id",
- "type": "string"
- },
- "resource_type": {
- "enum": [
- "artifact",
- "folder"
- ],
- "title": "Resource Type",
- "type": "string"
- },
- "role": {
- "enum": [
- "viewer",
- "commenter",
- "editor"
- ],
- "title": "Role",
- "type": "string"
- },
- "share_key": {
- "title": "Share Key",
- "type": "string"
- },
- "url": {
- "title": "Url",
- "type": "string"
- }
- },
- "required": [
- "id",
- "resource_type",
- "resource_id",
- "role",
- "audience",
- "has_password",
- "created_at",
- "share_key",
- "url"
- ],
- "title": "ShareMintOut",
- "type": "object"
- },
- "ShareOut": {
- "description": "A live share link as seen on list/management \u2014 NEVER carries the\n`share_key` (that is the credential, returned only at mint/rotate).",
- "properties": {
- "access_count": {
- "default": 0,
- "title": "Access Count",
- "type": "integer"
- },
- "audience": {
- "title": "Audience",
- "type": "string"
- },
- "created_at": {
- "format": "date-time",
- "title": "Created At",
- "type": "string"
- },
- "expires_at": {
- "anyOf": [
- {
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Expires At"
- },
- "has_password": {
- "title": "Has Password",
- "type": "boolean"
- },
- "id": {
- "title": "Id",
- "type": "string"
- },
- "last_accessed_at": {
- "anyOf": [
- {
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Last Accessed At"
- },
- "resource_id": {
- "title": "Resource Id",
- "type": "string"
- },
- "resource_type": {
- "enum": [
- "artifact",
- "folder"
- ],
- "title": "Resource Type",
- "type": "string"
- },
- "role": {
- "enum": [
- "viewer",
- "commenter",
- "editor"
- ],
- "title": "Role",
- "type": "string"
- }
- },
- "required": [
- "id",
- "resource_type",
- "resource_id",
- "role",
- "audience",
- "has_password",
- "created_at"
- ],
- "title": "ShareOut",
- "type": "object"
- },
- "ShareRedeemOut": {
- "properties": {
- "expires_at": {
- "format": "date-time",
- "title": "Expires At",
- "type": "string"
- },
- "role": {
- "title": "Role",
- "type": "string"
- },
- "token": {
- "title": "Token",
- "type": "string"
- },
- "url": {
- "title": "Url",
- "type": "string"
- }
- },
- "required": [
- "url",
- "token",
- "role",
- "expires_at"
- ],
- "title": "ShareRedeemOut",
- "type": "object"
- },
- "SourceRef": {
- "description": "One typed provenance ref. `type` is open-vocabulary (server\nvalidates only length, not the value), so callers can declare new\ntypes as their integrations evolve. `id` is the type-specific\nidentifier \u2014 for `type='artifact'` this is an `art_\u2026` ID.",
- "properties": {
- "id": {
- "title": "Id",
- "type": "string"
- },
- "metadata": {
- "anyOf": [
- {
- "additionalProperties": true,
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "title": "Metadata"
- },
- "type": {
- "title": "Type",
- "type": "string"
- }
- },
- "required": [
- "type",
- "id"
- ],
- "title": "SourceRef",
- "type": "object"
- },
- "StorageBreakdownOut": {
- "properties": {
- "as_of": {
- "format": "date",
- "title": "As Of",
- "type": "string"
- },
- "live_bytes": {
- "title": "Live Bytes",
- "type": "integer"
- },
- "trash_bytes": {
- "title": "Trash Bytes",
- "type": "integer"
- },
- "version_bytes": {
- "title": "Version Bytes",
- "type": "integer"
- }
- },
- "required": [
- "as_of",
- "live_bytes",
- "version_bytes",
- "trash_bytes"
- ],
- "title": "StorageBreakdownOut",
- "type": "object"
- },
- "StorageFootprintOut": {
- "properties": {
- "as_of": {
- "anyOf": [
- {
- "format": "date",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "As Of"
- },
- "live_bytes": {
- "title": "Live Bytes",
- "type": "integer"
- },
- "total_bytes": {
- "title": "Total Bytes",
- "type": "integer"
- },
- "trash_bytes": {
- "title": "Trash Bytes",
- "type": "integer"
- },
- "version_bytes": {
- "title": "Version Bytes",
- "type": "integer"
- }
- },
- "required": [
- "live_bytes",
- "version_bytes",
- "trash_bytes",
- "total_bytes"
- ],
- "title": "StorageFootprintOut",
- "type": "object"
- },
- "TokenResponse": {
- "description": "`POST /oauth2/token` success response. Mirrors RFC 6749 with\nan optional `identity_assertion` field for the claim grant path\n(where a fresh post-claim assertion supersedes the pre-claim\none).",
- "properties": {
- "access_token": {
- "title": "Access Token",
- "type": "string"
- },
- "expires_in": {
- "description": "Seconds until access_token expiry.",
- "title": "Expires In",
- "type": "integer"
- },
- "identity_assertion": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Identity Assertion"
- },
- "scope": {
- "title": "Scope",
- "type": "string"
- },
- "token_type": {
- "default": "Bearer",
- "title": "Token Type",
- "type": "string"
- }
- },
- "required": [
- "access_token",
- "expires_in",
- "scope"
- ],
- "title": "TokenResponse",
- "type": "object"
- },
- "TokenUsageOut": {
- "properties": {
- "embed": {
- "title": "Embed",
- "type": "integer"
- },
- "llm_cached": {
- "title": "Llm Cached",
- "type": "integer"
- },
- "llm_input": {
- "title": "Llm Input",
- "type": "integer"
- },
- "llm_output": {
- "title": "Llm Output",
- "type": "integer"
- }
- },
- "required": [
- "llm_input",
- "llm_output",
- "llm_cached",
- "embed"
- ],
- "title": "TokenUsageOut",
- "type": "object"
- },
- "TrashArtifactOut": {
- "properties": {
- "deleted_at": {
- "anyOf": [
- {
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Deleted At"
- },
- "id": {
- "title": "Id",
- "type": "string"
- },
- "path": {
- "title": "Path",
- "type": "string"
- },
- "purge_at": {
- "anyOf": [
- {
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Purge At"
- },
- "restore_url": {
- "title": "Restore Url",
- "type": "string"
- },
- "size_bytes": {
- "title": "Size Bytes",
- "type": "integer"
- }
- },
- "required": [
- "id",
- "path",
- "size_bytes",
- "restore_url"
- ],
- "title": "TrashArtifactOut",
- "type": "object"
- },
- "TrashDriveOut": {
- "properties": {
- "deleted_at": {
- "anyOf": [
- {
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Deleted At"
- },
- "id": {
- "title": "Id",
- "type": "string"
- }
- },
- "required": [
- "id"
- ],
- "title": "TrashDriveOut",
- "type": "object"
- },
- "TrashOut": {
- "description": "Trash collection with a compatibility-preserving pagination opt-in.",
- "properties": {
- "artifacts": {
- "deprecated": true,
- "description": "Deprecated alias of items.",
- "items": {
- "$ref": "#/components/schemas/TrashArtifactOut"
- },
- "title": "Artifacts",
- "type": "array"
- },
- "drive": {
- "$ref": "#/components/schemas/TrashDriveOut"
- },
- "items": {
- "items": {
- "$ref": "#/components/schemas/TrashArtifactOut"
- },
- "title": "Items",
- "type": "array"
- },
- "next_cursor": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Next Cursor"
- }
- },
- "required": [
- "drive",
- "items",
- "artifacts"
- ],
- "title": "TrashOut",
- "type": "object"
- },
- "UploadAbortOut": {
- "description": "Response of `DELETE /v0/uploads/{upload_id}` \u2014 the session is released.\n`released_bytes` is the reservation returned to the drive's quota (the\nsession's `size_bytes` for a live `initiated` session; `0` when the\nsession was already aborted or already expired \u2014 the GC sweep owns an\nexpired session's release).",
- "properties": {
- "released_bytes": {
- "title": "Released Bytes",
- "type": "integer"
- },
- "state": {
- "default": "aborted",
- "enum": [
- "aborted",
- "expired"
- ],
- "title": "State",
- "type": "string"
- },
- "upload_id": {
- "title": "Upload Id",
- "type": "string"
- }
- },
- "required": [
- "upload_id",
- "released_bytes"
- ],
- "title": "UploadAbortOut",
- "type": "object"
- },
- "UploadBeginIn": {
- "description": "Body of `POST /v0/uploads` \u2014 the large-upload begin call (large-upload-\ndesign.md \u00a75.1). All artifact decisions are frozen here; the subsequent\nGCS PUT carries only bytes, and `commit` carries only the `upload_id`.\n\n`labels`/`metadata`/`source` omitted (null) \u21d2 preserve the existing\nartifact's value at commit; present (incl. empty) \u21d2 replace.",
- "properties": {
- "actor_name": {
- "anyOf": [
- {
- "maxLength": 64,
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Actor Name"
- },
- "change_summary": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Change Summary"
- },
- "content_type": {
- "default": "application/octet-stream",
- "title": "Content Type",
- "type": "string"
- },
- "cors_origin": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "description": "Web origin (scheme://host[:port]) of the browser that will PUT the bytes, e.g. `https://app.example.com`. Set this when the `upload_url` is handed to browser code: GCS binds CORS at session initiate, so the returned session only echoes `Access-Control-Allow-Origin` (and is thus PUT-able from a browser) when opened with the caller's origin. A trusted backend relaying a browser upload forwards the browser's `Origin` here. Omit for server/desktop uploads (no CORS enforcement).",
- "title": "Cors Origin"
- },
- "crc32c": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Crc32C"
- },
- "if_match": {
- "anyOf": [
- {
- "maximum": 2147483647.0,
- "minimum": 0.0,
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "title": "If Match"
- },
- "if_none_match": {
- "default": false,
- "title": "If None Match",
- "type": "boolean"
- },
- "labels": {
- "anyOf": [
- {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
- ],
- "title": "Labels"
- },
- "metadata": {
- "anyOf": [
- {
- "additionalProperties": true,
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "title": "Metadata"
- },
- "path": {
- "title": "Path",
- "type": "string"
- },
- "size_bytes": {
- "minimum": 1.0,
- "title": "Size Bytes",
- "type": "integer"
- },
- "source": {
- "anyOf": [
- {
- "$ref": "#/components/schemas/ArtifactSource"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "required": [
- "path",
- "size_bytes"
- ],
- "title": "UploadBeginIn",
- "type": "object"
- },
- "UploadBeginOut": {
- "description": "Response of `POST /v0/uploads`. PUT the bytes to `upload_url` (no auth\nheader \u2014 the URL is the credential), then `POST .../commit`.",
- "properties": {
- "expires_at": {
- "format": "date-time",
- "title": "Expires At",
- "type": "string"
- },
- "headers": {
- "additionalProperties": {
- "type": "string"
- },
- "title": "Headers",
- "type": "object"
- },
- "max_bytes": {
- "title": "Max Bytes",
- "type": "integer"
- },
- "method": {
- "const": "PUT",
- "default": "PUT",
- "title": "Method",
- "type": "string"
- },
- "upload_id": {
- "title": "Upload Id",
- "type": "string"
- },
- "upload_url": {
- "title": "Upload Url",
- "type": "string"
- }
- },
- "required": [
- "upload_id",
- "upload_url",
- "headers",
- "expires_at",
- "max_bytes"
- ],
- "title": "UploadBeginOut",
- "type": "object"
- },
- "UploadStatusOut": {
- "description": "Response of `GET /v0/uploads/{upload_id}` \u2014 the live state of a\ndirect-to-GCS upload session (large-upload-design.md \u00a75).\n\n`state` is derived, not a stored column:\n * `initiated` \u2014 session open; PUT the bytes to the `upload_url`, then\n `POST /v0/uploads/{upload_id}/commit`.\n * `committed` \u2014 the bytes landed and the artifact was created\n (`committed_at` is set).\n * `aborted` \u2014 released via `DELETE /v0/uploads/{upload_id}`.\n * `expired` \u2014 past `expires_at` without a commit; the reservation is\n reclaimed by the GC sweep.",
- "properties": {
- "committed_at": {
- "anyOf": [
- {
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Committed At"
- },
- "content_type": {
- "title": "Content Type",
- "type": "string"
- },
- "created_at": {
- "format": "date-time",
- "title": "Created At",
- "type": "string"
- },
- "expires_at": {
- "format": "date-time",
- "title": "Expires At",
- "type": "string"
- },
- "max_bytes": {
- "title": "Max Bytes",
- "type": "integer"
- },
- "path": {
- "title": "Path",
- "type": "string"
- },
- "size_bytes": {
- "title": "Size Bytes",
- "type": "integer"
- },
- "state": {
- "enum": [
- "initiated",
- "committed",
- "aborted",
- "expired"
- ],
- "title": "State",
- "type": "string"
- },
- "upload_id": {
- "title": "Upload Id",
- "type": "string"
- }
- },
- "required": [
- "upload_id",
- "path",
- "content_type",
- "size_bytes",
- "state",
- "max_bytes",
- "expires_at",
- "created_at"
- ],
- "title": "UploadStatusOut",
- "type": "object"
- },
- "UsageCounterOut": {
- "properties": {
- "limit": {
- "title": "Limit",
- "type": "integer"
- },
- "used": {
- "title": "Used",
- "type": "integer"
- }
- },
- "required": [
- "used",
- "limit"
- ],
- "title": "UsageCounterOut",
- "type": "object"
- },
- "UsagePeriodOut": {
- "properties": {
- "ends": {
- "format": "date-time",
- "title": "Ends",
- "type": "string"
- },
- "starts": {
- "format": "date-time",
- "title": "Starts",
- "type": "string"
- },
- "year_month": {
- "title": "Year Month",
- "type": "string"
- }
- },
- "required": [
- "year_month",
- "starts",
- "ends"
- ],
- "title": "UsagePeriodOut",
- "type": "object"
- },
- "UserTokenList": {
- "properties": {
- "items": {
- "items": {
- "$ref": "#/components/schemas/UserTokenOut"
- },
- "title": "Items",
- "type": "array"
- },
- "next_cursor": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Next Cursor"
- }
- },
- "required": [
- "items"
- ],
- "title": "UserTokenList",
- "type": "object"
- },
- "UserTokenOut": {
- "description": "One `ad_user_` token \u2014 metadata only. The raw token is NEVER\nexposed over the API (minting is web-only, reveal-once); this shape\nomits both the raw value and the stored hash by construction.",
- "properties": {
- "created_at": {
- "format": "date-time",
- "title": "Created At",
- "type": "string"
- },
- "default_drive_id": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Default Drive Id"
- },
- "expires_at": {
- "anyOf": [
- {
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Expires At"
- },
- "id": {
- "title": "Id",
- "type": "string"
- },
- "label": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Label"
- },
- "last_used_at": {
- "anyOf": [
- {
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Last Used At"
- },
- "prefix": {
- "title": "Prefix",
- "type": "string"
- },
- "revoked_at": {
- "anyOf": [
- {
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Revoked At"
- },
- "scope": {
- "enum": [
- "read",
- "full"
- ],
- "title": "Scope",
- "type": "string"
- }
- },
- "required": [
- "id",
- "prefix",
- "scope",
- "created_at"
- ],
- "title": "UserTokenOut",
- "type": "object"
- },
- "ValidationErrorBody": {
- "additionalProperties": true,
- "properties": {
- "code": {
- "title": "Code",
- "type": "string"
- },
- "fields": {
- "items": {
- "$ref": "#/components/schemas/ValidationIssue"
- },
- "title": "Fields",
- "type": "array"
- },
- "message": {
- "title": "Message",
- "type": "string"
- }
- },
- "required": [
- "code",
- "message",
- "fields"
- ],
- "title": "ValidationErrorBody",
- "type": "object"
- },
- "ValidationErrorDetail": {
- "additionalProperties": true,
- "properties": {
- "error": {
- "$ref": "#/components/schemas/ValidationErrorBody"
- }
- },
- "required": [
- "error"
- ],
- "title": "ValidationErrorDetail",
- "type": "object"
- },
- "ValidationErrorResponse": {
- "additionalProperties": true,
- "description": "The runtime `VALIDATION_ERROR` response for request parsing failures.",
- "properties": {
- "detail": {
- "$ref": "#/components/schemas/ValidationErrorDetail"
- }
- },
- "required": [
- "detail"
- ],
- "title": "ValidationErrorResponse",
- "type": "object"
- },
- "ValidationIssue": {
- "additionalProperties": true,
- "description": "One Pydantic/FastAPI validation issue.",
- "properties": {
- "ctx": {
- "anyOf": [
- {
- "additionalProperties": true,
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "title": "Ctx"
- },
- "input": {
- "anyOf": [
- {},
- {
- "type": "null"
- }
- ],
- "title": "Input"
- },
- "loc": {
- "items": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "integer"
- }
- ]
- },
- "title": "Loc",
- "type": "array"
- },
- "msg": {
- "title": "Msg",
- "type": "string"
- },
- "type": {
- "title": "Type",
- "type": "string"
- }
- },
- "required": [
- "type",
- "loc",
- "msg"
- ],
- "title": "ValidationIssue",
- "type": "object"
- },
- "VersionOut": {
- "properties": {
- "actor_name": {
- "anyOf": [
- {
- "maxLength": 64,
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Actor Name"
- },
- "art_id": {
- "title": "Art Id",
- "type": "string"
- },
- "change_summary": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Change Summary"
- },
- "content_type": {
- "title": "Content Type",
- "type": "string"
- },
- "created_at": {
- "format": "date-time",
- "title": "Created At",
- "type": "string"
- },
- "hash": {
- "title": "Hash",
- "type": "string"
- },
- "size_bytes": {
- "title": "Size Bytes",
- "type": "integer"
- },
- "version_number": {
- "title": "Version Number",
- "type": "integer"
- }
- },
- "required": [
- "art_id",
- "version_number",
- "size_bytes",
- "hash",
- "content_type",
- "created_at"
- ],
- "title": "VersionOut",
- "type": "object"
- },
- "VersionPage": {
- "properties": {
- "items": {
- "items": {
- "$ref": "#/components/schemas/VersionOut"
- },
- "title": "Items",
- "type": "array"
- },
- "next_cursor": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Next Cursor"
- },
- "pruned_before": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "title": "Pruned Before"
- }
- },
- "required": [
- "items"
- ],
- "title": "VersionPage",
- "type": "object"
- },
- "VersionRetentionOut": {
- "properties": {
- "versions_max": {
- "title": "Versions Max",
- "type": "integer"
- }
- },
- "required": [
- "versions_max"
- ],
- "title": "VersionRetentionOut",
- "type": "object"
- },
- "WorkspaceCreateIn": {
- "description": "POST /v0/workspaces body. `name` is the user-facing workspace label;\nthe creator becomes its admin and gets a starter drive.",
- "properties": {
- "name": {
- "maxLength": 120,
- "minLength": 1,
- "title": "Name",
- "type": "string"
- }
- },
- "required": [
- "name"
- ],
- "title": "WorkspaceCreateIn",
- "type": "object"
- },
- "WorkspaceCreateOut": {
- "description": "POST /v0/workspaces response. Carries the new workspace + its starter\ndrive's `ad_live_` key **once** (`starter_drive_api_key`) \u2014 reveal-once,\nstore it now (mint more keys via `POST /v0/drives/{id}/keys`).",
- "properties": {
- "starter_drive_api_key": {
- "title": "Starter Drive Api Key",
- "type": "string"
- },
- "starter_drive_id": {
- "title": "Starter Drive Id",
- "type": "string"
- },
- "workspace": {
- "$ref": "#/components/schemas/WorkspaceOut"
- }
- },
- "required": [
- "workspace",
- "starter_drive_id",
- "starter_drive_api_key"
- ],
- "title": "WorkspaceCreateOut",
- "type": "object"
- },
- "WorkspaceList": {
- "properties": {
- "items": {
- "items": {
- "$ref": "#/components/schemas/WorkspaceOut"
- },
- "title": "Items",
- "type": "array"
- },
- "next_cursor": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Next Cursor"
- }
- },
- "required": [
- "items"
- ],
- "title": "WorkspaceList",
- "type": "object"
- },
- "WorkspaceOut": {
- "description": "One workspace in a listing \u2014 metadata only. `role` is the CALLER's\nrole in it (admin/member), so a client can render management affordances\nwithout a second round-trip.",
- "properties": {
- "created_at": {
- "format": "date-time",
- "title": "Created At",
- "type": "string"
- },
- "id": {
- "title": "Id",
- "type": "string"
- },
- "name": {
- "title": "Name",
- "type": "string"
- },
- "role": {
- "enum": [
- "admin",
- "member"
- ],
- "title": "Role",
- "type": "string"
- },
- "tier_id": {
- "title": "Tier Id",
- "type": "string"
- }
- },
- "required": [
- "id",
- "name",
- "role",
- "tier_id",
- "created_at"
- ],
- "title": "WorkspaceOut",
- "type": "object"
- },
- "WorkspaceRenameIn": {
- "description": "PATCH /v0/workspaces/{org} body \u2014 rename a workspace the caller\nadministers.",
- "properties": {
- "name": {
- "maxLength": 120,
- "minLength": 1,
- "title": "Name",
- "type": "string"
- }
- },
- "required": [
- "name"
- ],
- "title": "WorkspaceRenameIn",
- "type": "object"
- }
- },
- "securitySchemes": {
- "BearerAuth": {
- "bearerFormat": "ad_live_ | ad_user_ | JWT",
- "description": "AgentDrive bearer credential. Data-plane operations accept an `ad_live_` drive key, an `ad_user_` user token, or a supported short-lived JWT access token. User-control-plane operations accept `ad_user_` tokens. MCP `adat_` credentials are not valid on `/v0`.",
- "scheme": "bearer",
- "type": "http"
- }
- }
- },
- "info": {
- "description": "AgentDrive is an agent-focused artifact store: upload by path, share by rendered URL, address by stable permalink. The REST surface is documented here; the rendered viewer + agent claim flow live under `agentdrive.run`.",
- "title": "AgentDrive",
- "version": ""
- },
- "openapi": "3.1.0",
- "paths": {
- "/.well-known/jwks.json": {
- "get": {
- "description": "Public half of the RSA signing key for identity_assertion + access_token JWTs issued by AgentDrive. RFC 7517 shape. Cache-friendly; key rotation publishes both kids during the overlap window.",
- "operationId": "jwks__well_known_jwks_json_get",
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/JwksOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "JSON Web Key Set \u2014 public keys for verifying AgentDrive JWTs",
- "tags": [
- "agent-auth"
- ]
- }
- },
- "/.well-known/oauth-authorization-server": {
- "get": {
- "description": "Discovery document for the auth.md protocol. Carries the standard RFC 8414 fields plus an `agent_auth` block per the auth.md spec \u2014 the latter is what an agent runtime keys off to find the identity + claim endpoints.",
- "operationId": "oauth_authorization_server__well_known_oauth_authorization_server_get",
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/AuthorizationServerMetadataOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "Authorization-server metadata (RFC 8414 + auth.md agent_auth block)",
- "tags": [
- "agent-auth"
- ]
- }
- },
- "/.well-known/oauth-protected-resource": {
- "get": {
- "description": "Names this server as a protected resource and points clients at the authorization server they should obtain tokens from. In this design the resource server and authorization server are the same host.",
- "operationId": "oauth_protected_resource__well_known_oauth_protected_resource_get",
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ProtectedResourceMetadataOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "Protected-resource metadata (auth.md / RFC 9728-like discovery)",
- "tags": [
- "agent-auth"
- ]
- }
- },
- "/.well-known/oauth-protected-resource/mcp": {
- "get": {
- "description": "Path-inserted variant of the protected-resource document. MCP clients derive this URL from the resource URL `{origin}/mcp` (RFC 9728 \u00a73.1: insert the well-known segment between host and path) after reading the WWW-Authenticate challenge on a 401 \u2014 it is the first hop of the client-side OAuth flow.",
- "operationId": "oauth_protected_resource_mcp__well_known_oauth_protected_resource_mcp_get",
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ProtectedResourceMetadataOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "Protected-resource metadata for the MCP endpoint (RFC 9728 \u00a73.1)",
- "tags": [
- "agent-auth"
- ]
- }
- },
- "/a/{art_id}": {
- "get": {
- "description": "Resolve a stable artifact ID to its path-URL and 302 there.\n\nAuth model matches the path URL: public artifacts redirect for\nanyone; private artifacts redirect only for the owner. Non-owners\non private artifacts get 404 \u2014 same response as \"doesn't exist\",\nso the ID's existence isn't leaked. The forwarded query-param\nallowlist is `raw`, `download` (see _PERMALINK_FORWARDED_PARAMS).",
- "operationId": "view_permalink_artifact_a__art_id__get",
- "parameters": [
- {
- "in": "path",
- "name": "art_id",
- "required": true,
- "schema": {
- "title": "Art Id",
- "type": "string"
- }
- }
- ],
- "responses": {
- "302": {
- "description": "Redirect to the canonical or authentication URL.",
- "headers": {
- "Location": {
- "description": "Redirect target.",
- "schema": {
- "format": "uri-reference",
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The artifact does not exist or is not readable.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "View Permalink Artifact"
- }
- },
- "/a/{art_id}/head": {
- "get": {
- "description": "Return `{\"version\": }` for a readable artifact.\n\nAuth mirrors the permalink/viewer: the owner, or an `anyone:viewer`\ngrant (a published artifact), reads. Two deliberate differences from\nthe HTML viewer:\n\n * Never redirect to login. A poll is a background `fetch`, not a\n navigation \u2014 an HTML login page would be a useless body and a\n same-origin redirect the client can't act on. Anonymous callers\n on a private/absent artifact get a flat 404.\n * \"Doesn't exist\" and \"exists but not readable\" collapse to the\n same 404, so an anonymous poller can't use this as an existence\n oracle (matches the permalink/viewer leak guard).",
- "operationId": "view_artifact_head_a__art_id__head_get",
- "parameters": [
- {
- "in": "path",
- "name": "art_id",
- "required": true,
- "schema": {
- "title": "Art Id",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ArtifactHeadOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "View Artifact Head"
- }
- },
- "/agent/identity": {
- "post": {
- "description": "Two registration modes:\n\n**`type=anonymous`** \u2014 Provisions a brand-new agent identity bound to a fresh shadow-org drive. No human involved; returned `identity_assertion` carries `scope=pre_claim`. A human completes the claim ceremony later via /claim.\n\n**`type=identity_assertion`** \u2014 Agent provider (e.g. WorkOS) has already minted an ID-JAG asserting a user identity binding. We verify it against the provider's JWKS and provision a **claimed** identity immediately: scope=full, drive bound to the user, no claim ceremony needed.",
- "operationId": "register_agent_identity_agent_identity_post",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "additionalProperties": true,
- "title": "Body",
- "type": "object"
- }
- }
- },
- "required": true
- },
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/AnonymousIdentityResponse"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- },
- {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- ]
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "503": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Agent identity signing is not configured.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "Register an agent identity (anonymous or ID-JAG)",
- "tags": [
- "agent-auth"
- ]
- }
- },
- "/agent/identity/claim": {
- "post": {
- "description": "Returns a `user_code` and `verification_uri` (RFC 8628 device-code idiom). The agent surfaces these to the human, who visits the URI, signs in, and approves the claim. The agent then polls POST /oauth2/token (grant_type=claim) with the same `claim_token` to learn when the claim completes.",
- "operationId": "initiate_claim_agent_identity_claim_post",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ClaimInitRequest"
- }
- }
- },
- "required": true
- },
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ClaimInitResponse"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "Initiate the human-claim ceremony for an agent identity",
- "tags": [
- "agent-auth"
- ]
- }
- },
- "/auth/callback": {
- "get": {
- "description": "Complete a sign-in.\n\nHandles the auth provider's OAuth callback and shapes failures into\nuser-readable errors:\n * an invalid or expired login flow \u2014 LOGIN_FLOW_INVALID (400);\n * an invalid or already-used authorization code \u2014 AUTH_CODE_INVALID (400);\n * the upstream auth provider being unavailable \u2014 WORKOS_UNAVAILABLE (502),\n returned with Retry-After.",
- "operationId": "callback_auth_callback_get",
- "parameters": [
- {
- "in": "query",
- "name": "code",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Code"
- }
- },
- {
- "in": "query",
- "name": "state",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "State"
- }
- },
- {
- "in": "query",
- "name": "error",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Error"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "text/html": {
- "schema": {
- "type": "string"
- }
- }
- },
- "description": "Extension authentication handoff page.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "302": {
- "description": "Redirect to the canonical or authentication URL.",
- "headers": {
- "Location": {
- "description": "Redirect target.",
- "schema": {
- "format": "uri-reference",
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The login flow or authorization code is invalid.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "409": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- },
- "text/html": {
- "schema": {
- "type": "string"
- }
- }
- },
- "description": "Account recovery is required or the Hub principal conflicts with the existing account link.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "502": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The upstream identity provider is temporarily unavailable.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "503": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Extension authentication is temporarily disabled.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "Callback"
- }
- },
- "/auth/extension/start": {
- "get": {
- "description": "Begin a sign-in flow on behalf of a Chrome extension.\n\nProvider follows AUTH_MODE (WorkOS AuthKit or the TokenCanopy hub),\nexactly like /auth/login. Stamps `for=ext` + `ext_id` into the\nsigned OAuth state so the callback handler knows to render the\nextension handoff page instead of setting a session cookie.\n\nThree short-circuits, all surface as actionable errors:\n * EXTENSION_AUTH_DISABLED (503): kill switch flipped off.\n * UNKNOWN_EXTENSION (400): `ext_id` not on the allow-list.\n * Missing `ext_id` query string (400 INVALID_REQUEST).",
- "operationId": "extension_start_auth_extension_start_get",
- "parameters": [
- {
- "in": "query",
- "name": "ext_id",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Ext Id"
- }
- }
- ],
- "responses": {
- "302": {
- "description": "Redirect to the canonical or authentication URL.",
- "headers": {
- "Location": {
- "description": "Redirect target.",
- "schema": {
- "format": "uri-reference",
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The extension ID is missing or not allowed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "503": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Extension authentication is temporarily disabled.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "Extension Start"
- }
- },
- "/auth/login": {
- "get": {
- "description": "Begin a WorkOS sign-in flow.\n\nMints a pre-login state cookie (binds the OAuth flow to this\nbrowser \u2014 defense-in-depth against login-CSRF), signs a state\npayload, and redirects to AuthKit. The hosted AuthKit page lets\nthe user pick Google OAuth, Microsoft OAuth, magic-link,\npassword, or passkey; we don't care which \u2014 they all funnel\nback to /auth/callback with a `code` we exchange in D2.",
- "operationId": "login_auth_login_get",
- "parameters": [
- {
- "in": "query",
- "name": "return_to",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Return To"
- }
- }
- ],
- "responses": {
- "302": {
- "description": "Redirect to the canonical or authentication URL.",
- "headers": {
- "Location": {
- "description": "Redirect target.",
- "schema": {
- "format": "uri-reference",
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "Login"
- }
- },
- "/auth/logout": {
- "post": {
- "description": "Terminate both the local session AND the upstream WorkOS session.\n\nWithout the WorkOS-side termination, the next `/auth/login` flow\nsilently re-authenticates the user through AuthKit's still-valid\nsession cookie on `api.workos.com` \u2014 \"Sign out\" feels broken and\na shared-browser user can't switch accounts. The recommended\npattern (per https://workos.com/docs/authkit/sessions) is to\nredirect to the WorkOS logout endpoint with the `sid` we stashed\nduring the callback; WorkOS clears its own session and returns\nthe browser to our `return_to`.\n\nFailure modes handled:\n * No `workos_session_id` in the session (legacy v2 cookie issued\n before this slice landed): fall back to local-only logout. The\n upstream session lingers but the user's local state is cleared\n \u2014 same UX as before this slice; cookie rotation on next sign-in\n eventually overwrites it.\n * SDK raises during `get_logout_url`: pure string formatting at\n WorkOS's end, so the only realistic failure is a misconfigured\n WorkOS dashboard (no Sign-out redirect registered). We catch\n and fall back to local-only logout rather than 500ing \u2014 the\n user clicked \"Sign out\", they should land somewhere, not on an\n error page.",
- "operationId": "logout_auth_logout_post",
- "requestBody": {
- "content": {
- "application/x-www-form-urlencoded": {
- "schema": {
- "$ref": "#/components/schemas/Body_logout_auth_logout_post"
- }
- }
- },
- "required": true
- },
- "responses": {
- "302": {
- "description": "Redirect to the canonical or authentication URL.",
- "headers": {
- "Location": {
- "description": "Redirect target.",
- "schema": {
- "format": "uri-reference",
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The browser CSRF check failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "Logout"
- }
- },
- "/f/{fld_id}": {
- "get": {
- "description": "Resolve a stable folder ID to its current path-URL and 302.\n\nAuth model mirrors the artifact permalink: public folder = anon\nOK; private folder = owner only, otherwise 404 (no existence\nleak). \"Public\" is an `anyone:viewer` grant on the `fld_*` id\nresolved through `can_read` (\u00a74.4); folders carry no visibility\nflag of their own.",
- "operationId": "view_permalink_folder_f__fld_id__get",
- "parameters": [
- {
- "in": "path",
- "name": "fld_id",
- "required": true,
- "schema": {
- "title": "Fld Id",
- "type": "string"
- }
- }
- ],
- "responses": {
- "302": {
- "description": "Redirect to the canonical or authentication URL.",
- "headers": {
- "Location": {
- "description": "Redirect target.",
- "schema": {
- "format": "uri-reference",
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The folder does not exist or is not readable.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "View Permalink Folder"
- }
- },
- "/health": {
- "get": {
- "description": "Liveness + DB-reachability probe. Used by Cloud Run / k8s healthchecks\nand any uptime monitor. Returns 200 only if the DB pool can serve a\ntrivial query; 503 otherwise so the orchestrator can pull the instance\nout of rotation.\n\nNOTE: route is `/health`, NOT `/healthz`. Google's edge infrastructure\nintercepts `/healthz` (legacy kubernetes-reserved path) and returns a\ngeneric 404 before traffic reaches Cloud Run \u2014 discovered the hard way\nduring the first prod deploy. Don't rename back.",
- "operationId": "health_health_get",
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/HealthOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "503": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/HealthDegradedResponse"
- }
- }
- },
- "description": "The database reachability probe failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "Health"
- }
- },
- "/oauth2/authorize": {
- "get": {
- "operationId": "authorize_page_oauth2_authorize_get",
- "responses": {
- "200": {
- "content": {
- "text/html": {
- "schema": {
- "type": "string"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "302": {
- "description": "Redirect to the canonical or authentication URL.",
- "headers": {
- "Location": {
- "description": "Redirect target.",
- "schema": {
- "format": "uri-reference",
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/OAuthProtocolErrorOut"
- }
- }
- },
- "description": "The authorization request is invalid.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Authorization rate limit exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0.0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "Authorize Page",
- "tags": [
- "mcp-oauth-ui"
- ]
- },
- "post": {
- "operationId": "authorize_decision_oauth2_authorize_post",
- "requestBody": {
- "content": {
- "application/x-www-form-urlencoded": {
- "schema": {
- "$ref": "#/components/schemas/Body_authorize_decision_oauth2_authorize_post"
- }
- }
- },
- "required": true
- },
- "responses": {
- "302": {
- "description": "Redirect to the canonical or authentication URL.",
- "headers": {
- "Location": {
- "description": "Redirect target.",
- "schema": {
- "format": "uri-reference",
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "303": {
- "description": "Continue after the form submission at the redirect target.",
- "headers": {
- "Location": {
- "description": "Redirect target.",
- "schema": {
- "format": "uri-reference",
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/OAuthProtocolErrorOut"
- }
- }
- },
- "description": "The authorization decision or request is invalid.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "oneOf": [
- {
- "$ref": "#/components/schemas/OAuthProtocolErrorOut"
- },
- {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- ]
- }
- }
- },
- "description": "The selected drive is unavailable or the browser CSRF check failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Authorization rate limit exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0.0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "Authorize Decision",
- "tags": [
- "mcp-oauth-ui"
- ]
- }
- },
- "/oauth2/register": {
- "post": {
- "description": "Anonymous registration endpoint for MCP clients. Public clients only (PKCE, no client_secret). Returns the registered metadata plus the assigned `client_id`. Registration grants nothing by itself \u2014 every token still requires a user consent ceremony at /oauth2/authorize.",
- "operationId": "oauth2_register_oauth2_register_post",
- "responses": {
- "201": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ClientRegistrationOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/OAuthProtocolErrorOut"
- }
- }
- },
- "description": "Invalid client metadata.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Registration rate limit exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0.0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "Dynamic Client Registration (RFC 7591)",
- "tags": [
- "mcp-oauth"
- ]
- }
- },
- "/oauth2/revoke": {
- "post": {
- "description": "Revokes an `adat_` access token (that token only) or an `adrt_` refresh token (the whole rotation chain). Unknown tokens return 200 per RFC 7009 \u00a72.2 \u2014 existence is not revealed. Public-client endpoint auth (`client_id` form param, no secret).",
- "operationId": "oauth2_revoke_oauth2_revoke_post",
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/OAuthRevocationOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/OAuthProtocolErrorOut"
- }
- }
- },
- "description": "Invalid revocation request.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/OAuthProtocolErrorOut"
- }
- }
- },
- "description": "Client authentication failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/OAuthProtocolErrorOut"
- }
- }
- },
- "description": "Token type is unsupported.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Revocation rate limit exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0.0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "Token revocation (RFC 7009)",
- "tags": [
- "mcp-oauth"
- ]
- }
- },
- "/oauth2/token": {
- "post": {
- "description": "Two grant types:\n\n**`urn:ietf:params:oauth:grant-type:jwt-bearer`** (RFC 7523) \u2014 body `assertion=`. Returns a fresh 15-minute access_token with the same scope as the assertion.\n\n**`claim`** (custom) \u2014 body `claim_token=`. Polling endpoint for the claim ceremony. Returns one of: `authorization_pending` (400), `expired_token` (400), `access_denied` (400), or access_token + new identity_assertion + scope=full (200).",
- "operationId": "oauth2_token_oauth2_token_post",
- "requestBody": {
- "content": {
- "application/x-www-form-urlencoded": {
- "schema": {
- "$ref": "#/components/schemas/Body_oauth2_token_oauth2_token_post"
- }
- }
- },
- "required": true
- },
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/TokenResponse"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "Exchange a credential for an access_token",
- "tags": [
- "agent-auth"
- ]
- }
- },
- "/s/{share_key}": {
- "get": {
- "operationId": "redeem_share_s__share_key__get",
- "parameters": [
- {
- "in": "path",
- "name": "share_key",
- "required": true,
- "schema": {
- "title": "Share Key",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ShareRedeemOut"
- }
- },
- "text/html": {
- "schema": {
- "type": "string"
- }
- }
- },
- "description": "JSON capability response or browser password form.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "302": {
- "description": "Browser redemption succeeded; continue to the canonical URL.",
- "headers": {
- "Location": {
- "description": "Redirect target.",
- "schema": {
- "format": "uri-reference",
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ShareErrorOut"
- }
- },
- "text/html": {
- "schema": {
- "type": "string"
- }
- }
- },
- "description": "A password is required or the supplied password is invalid.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ShareErrorOut"
- }
- },
- "text/html": {
- "schema": {
- "type": "string"
- }
- }
- },
- "description": "The share is invalid, expired, or no longer authorized.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "Redeem Share"
- },
- "post": {
- "operationId": "redeem_share_with_password_s__share_key__post",
- "parameters": [
- {
- "in": "path",
- "name": "share_key",
- "required": true,
- "schema": {
- "title": "Share Key",
- "type": "string"
- }
- }
- ],
- "requestBody": {
- "content": {
- "application/x-www-form-urlencoded": {
- "schema": {
- "$ref": "#/components/schemas/Body_redeem_share_with_password_s__share_key__post"
- }
- }
- }
- },
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ShareRedeemOut"
- }
- },
- "text/html": {
- "schema": {
- "type": "string"
- }
- }
- },
- "description": "JSON capability response or browser password form.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "302": {
- "description": "Browser redemption succeeded; continue to the canonical URL.",
- "headers": {
- "Location": {
- "description": "Redirect target.",
- "schema": {
- "format": "uri-reference",
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ShareErrorOut"
- }
- },
- "text/html": {
- "schema": {
- "type": "string"
- }
- }
- },
- "description": "A password is required or the supplied password is invalid.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ShareErrorOut"
- }
- },
- "text/html": {
- "schema": {
- "type": "string"
- }
- }
- },
- "description": "The share is invalid, expired, or no longer authorized.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "Redeem Share With Password"
- }
- },
- "/v/{art_id}/{version}": {
- "get": {
- "description": "Render version `version` of an artifact, read-only.\n\nVersion history is owner-only. The drive-blind `can_read` gate still\nprovides the same sign-in-or-404 masking as `/a/{art_id}`, but readable\nnon-owners cannot browse snapshots. A pruned or never-existed version\nrenders a friendly unavailable state, never a 500.\n`?raw=1` / `?download=1` stream the version's bytes (powering the bar's\nRaw / Download buttons) with the same sandbox+nosniff headers as the\nhead raw path.",
- "operationId": "view_artifact_version_v__art_id___version__get",
- "parameters": [
- {
- "in": "path",
- "name": "art_id",
- "required": true,
- "schema": {
- "title": "Art Id",
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "version",
- "required": true,
- "schema": {
- "title": "Version",
- "type": "integer"
- }
- },
- {
- "in": "query",
- "name": "raw",
- "required": false,
- "schema": {
- "default": 0,
- "title": "Raw",
- "type": "integer"
- }
- },
- {
- "in": "query",
- "name": "download",
- "required": false,
- "schema": {
- "default": 0,
- "title": "Download",
- "type": "integer"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/octet-stream": {
- "schema": {
- "format": "binary",
- "type": "string"
- }
- },
- "text/html": {
- "schema": {
- "type": "string"
- }
- }
- },
- "description": "Rendered HTML or raw artifact bytes.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "View Artifact Version"
- }
- },
- "/v0/artifacts": {
- "get": {
- "description": "Returns artifacts sorted by path. Filter by `prefix`, `label` (repeatable + AND-combined), and `file_type`.\n\n**Cursor pagination:** when more results exist, the response carries `next_cursor`. Pass it back as `?cursor=` to fetch the next page. `next_cursor` is `null` on the final page. Filters MUST stay consistent across pages \u2014 the cursor encodes only the keyset position, not the filter set, so the client is responsible for re-sending the same filter on each page.",
- "operationId": "list_artifacts_v0_artifacts_get",
- "parameters": [
- {
- "in": "query",
- "name": "prefix",
- "required": false,
- "schema": {
- "default": "",
- "title": "Prefix",
- "type": "string"
- }
- },
- {
- "in": "query",
- "name": "label",
- "required": false,
- "schema": {
- "default": [],
- "items": {
- "type": "string"
- },
- "title": "Label",
- "type": "array"
- }
- },
- {
- "in": "query",
- "name": "file_type",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "File Type"
- }
- },
- {
- "in": "query",
- "name": "cursor",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Cursor"
- }
- },
- {
- "in": "query",
- "name": "limit",
- "required": false,
- "schema": {
- "default": 50,
- "maximum": 100,
- "minimum": 1,
- "title": "Limit",
- "type": "integer"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Page"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The pagination cursor is invalid.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "List artifacts in the drive"
- }
- },
- "/v0/artifacts/{art_id}": {
- "delete": {
- "description": "Soft-delete the artifact with this `art_\u2026` ID. Same semantics + response shape as the path-based `DELETE /v0/artifacts/{path}` (reversible until the GC cron hard-deletes at `purge_at`; `restore_url` points at the by-id restore), but keys on the immutable id so a concurrent rename can't change the target.\n\nReturns 404 ARTIFACT_NOT_FOUND if no live artifact has this id; 403 WIKI_RESERVED for `_wiki/` artifacts (system-managed); 412 if `If-Match` doesn't match the current version. Declared before the `{path:path}` family so the id convertor wins for DELETEs.",
- "operationId": "delete_artifact_by_id_route_v0_artifacts__art_id__delete",
- "parameters": [
- {
- "in": "path",
- "name": "art_id",
- "required": true,
- "schema": {
- "title": "Art Id",
- "type": "string"
- }
- },
- {
- "in": "header",
- "name": "if-match",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "If-Match"
- }
- },
- {
- "in": "header",
- "name": "x-agentdrive-actor",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "X-Agentdrive-Actor"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ArtifactDeleteOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "No live artifact with this ID exists.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "412": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "If-Match does not match the current artifact.",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Soft-delete an artifact by its stable ID"
- },
- "get": {
- "operationId": "get_artifact_by_id_v0_artifacts__art_id__get",
- "parameters": [
- {
- "in": "path",
- "name": "art_id",
- "required": true,
- "schema": {
- "title": "Art Id",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ArtifactOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "304": {
- "description": "The current entity tag or modification date matched.",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "No such artifact exists in this drive.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Canonical lookup of an artifact by its stable ID"
- },
- "patch": {
- "description": "Metadata-only JSON-merge-patch update of a single artifact, keyed by its stable `art_\u2026` ID. Every field in the body is optional; a field that is **omitted** is left unchanged, a field that is **present** is applied \u2014 with an explicit `null` / `[]` / `{}` meaning \"clear\". This mirrors the MCP `set_metadata` tool.\n\nEditable fields:\n * `labels` \u2014 replace the label set (`[]`/`null` clears).\n * `metadata` \u2014 replace the free-form metadata object (`{}`/`null` clears).\n * `source` \u2014 replace provenance refs (`null` clears).\n\n**To move/rename an artifact, use `POST /v0/artifacts/{art_id}/move`** \u2014 PATCH no longer accepts `path`. The body is `extra=\"forbid\"`, so a stray field (notably a legacy `path`) is rejected with 422 rather than silently ignored.\n\nMetadata edits do NOT create a new content version (no `version_number` / generation bump, no `artifact_versions` row) but DO bump the artifact's `metageneration` and `updated_at`.\n\nReturns 400 BAD_LABELS / BAD_SOURCE for invalid metadata; 404 ARTIFACT_NOT_FOUND for an unknown id. Honors `If-Match`, which takes the composite ETag `\"..\"` and is compared as a whole tuple: ANY concurrent content **or** metadata change (a bumped generation OR metageneration) \u2192 412 PRECONDITION_FAILED. There is no last-writer-wins gap for metadata-only edits. Use `X-AgentDrive-Actor` to attach attribution to the emitted `artifact.metadata_updated` event.",
- "operationId": "patch_artifact_route_v0_artifacts__art_id__patch",
- "parameters": [
- {
- "in": "path",
- "name": "art_id",
- "required": true,
- "schema": {
- "title": "Art Id",
- "type": "string"
- }
- },
- {
- "in": "header",
- "name": "x-agentdrive-actor",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "X-Agentdrive-Actor"
- }
- },
- {
- "in": "header",
- "name": "if-match",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "If-Match"
- }
- }
- ],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ArtifactPatchIn"
- }
- }
- },
- "required": true
- },
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ArtifactOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The labels or source metadata are invalid.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "No such live artifact exists in this drive.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "412": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request precondition did not match.",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Edit artifact metadata (labels / metadata / source)"
- }
- },
- "/v0/artifacts/{art_id}/copy": {
- "post": {
- "description": "Create a new artifact at `path` whose bytes are identical to the source artifact's. The copy reuses the source's CAS object (zero new storage) but gets a fresh `art_\u2026` ID, a fresh version 1, and \u2014 by default \u2014 `source.refs = [{type: 'artifact', id: ''}]` so provenance is preserved.\n\nQuota: the copy's `size_bytes` is added to the drive's `storage_bytes` even though physical bytes are shared.\n\nSource-version pin: pass `from_generation` in the body to require the source's current content generation (`version_number`) to equal it (\u2192 412 SOURCE_VERSION_MISMATCH); a concurrent source *metadata* edit does NOT fail the copy. Destination create-only: `If-None-Match: *` returns 412 CREATE_CONFLICT (instead of 409 PATH_CONFLICT) when the target path is occupied.\n\nReturns 409 PATH_CONFLICT if the target path is already taken; 413 STORAGE_QUOTA_EXCEEDED if the copy would push the drive over its limit.",
- "operationId": "copy_artifact_route_v0_artifacts__art_id__copy_post",
- "parameters": [
- {
- "in": "path",
- "name": "art_id",
- "required": true,
- "schema": {
- "title": "Art Id",
- "type": "string"
- }
- },
- {
- "in": "header",
- "name": "x-agentdrive-actor",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "X-Agentdrive-Actor"
- }
- },
- {
- "in": "header",
- "name": "if-none-match",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "If-None-Match"
- }
- }
- ],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/CopyIn"
- }
- }
- },
- "required": true
- },
- "responses": {
- "201": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ArtifactOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "Location": {
- "description": "Canonical URL of the created resource.",
- "schema": {
- "format": "uri-reference",
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The destination path or source metadata is invalid.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The source artifact does not exist in this drive.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "409": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The destination path is already occupied.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "412": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request precondition did not match.",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "413": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The copy would exceed the drive storage limit.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Duplicate an artifact to a new path (CAS-shared, new ID)"
- }
- },
- "/v0/artifacts/{art_id}/download": {
- "get": {
- "operationId": "download_artifact_by_id_v0_artifacts__art_id__download_get",
- "parameters": [
- {
- "in": "path",
- "name": "art_id",
- "required": true,
- "schema": {
- "title": "Art Id",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/octet-stream": {
- "schema": {
- "format": "binary",
- "type": "string"
- }
- }
- },
- "description": "Raw artifact bytes.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "No live artifact with this ID exists.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Stream the artifact bytes by stable ID (never rendered HTML)"
- }
- },
- "/v0/artifacts/{art_id}/download-url": {
- "get": {
- "description": "Returns a URL for the artifact's bytes. For large artifacts (>= the signed-download threshold) when signing is available, it's a short-lived **signed GCS URL** the client fetches directly (`direct:true`, `expires_at` set); otherwise the **proxy** `/download` URL (`direct:false`). Treat the URL as opaque. large-download-design.md \u00a75.1.",
- "operationId": "download_url_by_id_v0_artifacts__art_id__download_url_get",
- "parameters": [
- {
- "in": "path",
- "name": "art_id",
- "required": true,
- "schema": {
- "title": "Art Id",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/DownloadUrlOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The artifact does not exist in this drive.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Signed direct-from-GCS download URL by stable ID"
- }
- },
- "/v0/artifacts/{art_id}/meta": {
- "get": {
- "operationId": "get_artifact_by_id_meta_v0_artifacts__art_id__meta_get",
- "parameters": [
- {
- "in": "path",
- "name": "art_id",
- "required": true,
- "schema": {
- "title": "Art Id",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ArtifactOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "304": {
- "description": "The current entity tag or modification date matched.",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "No such artifact exists in this drive.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Artifact metadata by stable ID (same shape as path /meta)"
- }
- },
- "/v0/artifacts/{art_id}/move": {
- "post": {
- "description": "Canonical artifact move/rename, keyed by the stable `art_\u2026` ID (the artifact analogue of `POST /v0/folders/{fld_id}/move`). Moves the artifact to a new `path` on the same drive; ID, version history, source refs, labels, metadata, and the underlying CAS blob are all preserved \u2014 only `path` and `updated_at` change, and the move does NOT bump `version_number`.\n\nThe row UPDATE and the emitted `artifact.renamed` event commit in a SINGLE transaction \u2014 a failure leaves the artifact fully unchanged.\n\nReturns 409 PATH_CONFLICT if the target `path` is already taken; 404 ARTIFACT_NOT_FOUND for an unknown id; 403 WIKI_RESERVED for a `_wiki/` / `_compiled/` target. Honors `If-Match` (\u2192 412 PRECONDITION_FAILED). Use `X-AgentDrive-Actor` to attach attribution to the emitted `artifact.renamed` event.",
- "operationId": "move_artifact_route_v0_artifacts__art_id__move_post",
- "parameters": [
- {
- "in": "path",
- "name": "art_id",
- "required": true,
- "schema": {
- "title": "Art Id",
- "type": "string"
- }
- },
- {
- "in": "header",
- "name": "x-agentdrive-actor",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "X-Agentdrive-Actor"
- }
- },
- {
- "in": "header",
- "name": "if-match",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "If-Match"
- }
- }
- ],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ArtifactMoveIn"
- }
- }
- },
- "required": true
- },
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ArtifactOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "No such artifact exists in this drive.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "409": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The destination path is already occupied.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "412": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request precondition did not match.",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Rename / move an artifact to a new path"
- }
- },
- "/v0/artifacts/{art_id}/restore": {
- "post": {
- "description": "Clear `deleted_at` + `purge_at` on a soft-deleted artifact. Available only while the artifact is in trash (i.e. before the GC cleanup cron purges it). Returns 404 if the artifact is live or already hard-deleted; 409 PATH_CONFLICT if its path is now occupied by another live artifact. The 409 payload includes a `restore_options` block with `rename_to` and `force_overwrite` URLs the caller can follow to resolve the conflict \u2014 see deletion-design.md \u00a75.4.",
- "operationId": "restore_artifact_v0_artifacts__art_id__restore_post",
- "parameters": [
- {
- "in": "path",
- "name": "art_id",
- "required": true,
- "schema": {
- "title": "Art Id",
- "type": "string"
- }
- },
- {
- "description": "Restore at this path instead of the original. Soft-deletes the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`. Mutually exclusive with `overwrite`.",
- "in": "query",
- "name": "rename",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "description": "Restore at this path instead of the original. Soft-deletes the live occupant at the original path with audit `metadata.cause='restore_conflict_rename'`. Mutually exclusive with `overwrite`.",
- "title": "Rename"
- }
- },
- {
- "description": "Soft-delete the live occupant at the original path and restore there. Audit `metadata.cause='restore_conflict_overwrite'`. Mutually exclusive with `rename`.",
- "in": "query",
- "name": "overwrite",
- "required": false,
- "schema": {
- "default": false,
- "description": "Soft-delete the live occupant at the original path and restore there. Audit `metadata.cause='restore_conflict_overwrite'`. Mutually exclusive with `rename`.",
- "title": "Overwrite",
- "type": "boolean"
- }
- },
- {
- "in": "header",
- "name": "x-agentdrive-actor",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "X-Agentdrive-Actor"
- }
- },
- {
- "in": "header",
- "name": "if-match",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "If-Match"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ArtifactOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "No restorable artifact exists with this ID.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "409": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The original or requested restore path is occupied.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "412": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request precondition did not match.",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Restore a soft-deleted artifact"
- }
- },
- "/v0/artifacts/{art_id}/versions": {
- "get": {
- "description": "Returns versions in descending `version_number` order. Cursor pagination via `?cursor=`; `next_cursor` is non-null when the page is full and more older versions may exist.",
- "operationId": "list_artifact_versions_v0_artifacts__art_id__versions_get",
- "parameters": [
- {
- "in": "path",
- "name": "art_id",
- "required": true,
- "schema": {
- "title": "Art Id",
- "type": "string"
- }
- },
- {
- "in": "query",
- "name": "cursor",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Cursor"
- }
- },
- {
- "in": "query",
- "name": "limit",
- "required": false,
- "schema": {
- "default": 50,
- "maximum": 100,
- "minimum": 1,
- "title": "Limit",
- "type": "integer"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/VersionPage"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The pagination cursor is invalid.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The artifact does not exist in this drive.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "List versions of an artifact, newest first"
- }
- },
- "/v0/artifacts/{art_id}/versions/{version_number}": {
- "get": {
- "operationId": "get_artifact_version_v0_artifacts__art_id__versions__version_number__get",
- "parameters": [
- {
- "in": "path",
- "name": "art_id",
- "required": true,
- "schema": {
- "title": "Art Id",
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "version_number",
- "required": true,
- "schema": {
- "title": "Version Number",
- "type": "integer"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/VersionOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The artifact or version does not exist in this drive.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "410": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The requested version was pruned by retention.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Metadata for a specific version of an artifact"
- }
- },
- "/v0/artifacts/{art_id}/versions/{version_number}/download": {
- "get": {
- "operationId": "download_artifact_version_v0_artifacts__art_id__versions__version_number__download_get",
- "parameters": [
- {
- "in": "path",
- "name": "art_id",
- "required": true,
- "schema": {
- "title": "Art Id",
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "version_number",
- "required": true,
- "schema": {
- "title": "Version Number",
- "type": "integer"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/octet-stream": {
- "schema": {
- "format": "binary",
- "type": "string"
- }
- }
- },
- "description": "Raw artifact bytes.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The artifact or version does not exist.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "410": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The requested version has been pruned.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Stream bytes for a specific version (machine surface)"
- }
- },
- "/v0/artifacts/{art_id}/versions/{version_number}/download-url": {
- "get": {
- "description": "Same as `/{art_id}/download-url` but for a specific version's bytes (`direct:true` signed GCS URL when large + signing available, else the proxy `/versions/{n}/download` URL). large-download-design.md \u00a75.1.",
- "operationId": "download_url_version_v0_artifacts__art_id__versions__version_number__download_url_get",
- "parameters": [
- {
- "in": "path",
- "name": "art_id",
- "required": true,
- "schema": {
- "title": "Art Id",
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "version_number",
- "required": true,
- "schema": {
- "title": "Version Number",
- "type": "integer"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/DownloadUrlOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The artifact or version does not exist in this drive.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "410": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The requested version was pruned by retention.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Signed direct-from-GCS download URL for a specific version"
- }
- },
- "/v0/artifacts/{art_id}/versions/{version_number}/restore": {
- "post": {
- "description": "Roll the artifact forward to the content of version `version_number` by creating a **new head version** with identical bytes. History is preserved \u2014 this never rewrites or deletes past versions. The prior version's content-addressed blob is reused, so no bytes are re-uploaded. A change summary of `Restored version N` is recorded on the new version; `X-AgentDrive-Actor` attributes it.\n\nRestoring a version whose content already matches the current head (including the head itself) is a **no-op**: it returns the current artifact unchanged, with no new version created.\n\nHonors `If-Match` on the current head (roll forward only if the head is unchanged \u2192 412 PRECONDITION_FAILED).\n\nErrors: `404 ARTIFACT_NOT_FOUND`, `404 VERSION_NOT_FOUND`, and `410 VERSION_PRUNED` when the version existed but its bytes were retained out of existence.",
- "operationId": "restore_artifact_version_v0_artifacts__art_id__versions__version_number__restore_post",
- "parameters": [
- {
- "in": "path",
- "name": "art_id",
- "required": true,
- "schema": {
- "title": "Art Id",
- "type": "string"
- }
- },
- {
- "in": "path",
- "name": "version_number",
- "required": true,
- "schema": {
- "title": "Version Number",
- "type": "integer"
- }
- },
- {
- "in": "header",
- "name": "x-agentdrive-actor",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "X-Agentdrive-Actor"
- }
- },
- {
- "in": "header",
- "name": "if-match",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "If-Match"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ArtifactOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The artifact or version does not exist in this drive.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "410": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The requested version was pruned by retention.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "412": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request precondition did not match.",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Restore a previous version as a new head version"
- }
- },
- "/v0/artifacts/{path}": {
- "delete": {
- "description": "Soft-delete the artifact at the given path.\n\nA delete WITHOUT an `If-Match` precondition is last-writer-wins and will\nsilently remove a concurrently-modified artifact.",
- "operationId": "delete_artifact_v0_artifacts__path__delete",
- "parameters": [
- {
- "in": "path",
- "name": "path",
- "required": true,
- "schema": {
- "title": "Path",
- "type": "string"
- }
- },
- {
- "in": "header",
- "name": "if-match",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "If-Match"
- }
- },
- {
- "in": "header",
- "name": "x-agentdrive-actor",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "X-Agentdrive-Actor"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ArtifactDeleteOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "No such live artifact exists in this drive.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "412": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request precondition did not match.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Delete Artifact"
- },
- "put": {
- "description": "Upload an artifact at the given path. The path is treated as the artifact's location in the drive \u2014 re-uploading the same path overwrites in place (idempotent). Returns 201 when the artifact is created (no prior live artifact at the path), 200 on overwrite \u2014 mirroring `PUT /v0/folders/{path}`.\n\n**Limits:** request body must not exceed **50 MB**. Path must be non-empty, \u2264256 chars, only `[A-Za-z0-9_./-]`, no `..` segments, no leading/trailing slash. Per-token write rate limit: 100/hour.\n\n**Optional headers.** Each preserves the existing artifact's value when omitted on an overwrite, and takes the create-default on a new path; send the header to replace it:\n- `X-AgentDrive-Labels`: comma-separated labels (e.g. `draft,report`); an empty value clears them. Each: lowercase `[a-z0-9_-]+`, \u226464 chars; \u226416 labels per artifact.\n- `X-AgentDrive-Metadata`: JSON object of agent-attached fields.\n- `X-AgentDrive-Source`: JSON `{\"refs\": [...]}` source provenance (present, including `{\"refs\": []}`, replaces).\n- `X-AgentDrive-Actor`: caller-supplied actor name (\u226464 chars) for event-log attribution. Untrusted; never used for authz.\n\n**Preconditions.** `If-Match: \"..\"` makes the write conditional on the current composite ETag (\u2192 412 PRECONDITION_FAILED). `If-None-Match: *` is create-only: it succeeds only if no live artifact occupies the path (\u2192 412 CREATE_CONFLICT if one does). The two are mutually exclusive (\u2192 400 BAD_PRECONDITION).\n\n**Integrity (optional).** `X-AgentDrive-Checksum: :` (`sha256:` or `crc32c:`) or the standard `Content-MD5` (base64 MD5) is verified against the received bytes before they land (\u2192 400 CHECKSUM_MISMATCH on mismatch); no artifact is created on failure.",
- "operationId": "put_artifact_v0_artifacts__path__put",
- "parameters": [
- {
- "in": "path",
- "name": "path",
- "required": true,
- "schema": {
- "title": "Path",
- "type": "string"
- }
- },
- {
- "in": "header",
- "name": "content-type",
- "required": false,
- "schema": {
- "default": "application/octet-stream",
- "title": "Content-Type",
- "type": "string"
- }
- },
- {
- "in": "header",
- "name": "x-agentdrive-labels",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "X-Agentdrive-Labels"
- }
- },
- {
- "in": "header",
- "name": "x-agentdrive-metadata",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "X-Agentdrive-Metadata"
- }
- },
- {
- "in": "header",
- "name": "x-agentdrive-source",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "X-Agentdrive-Source"
- }
- },
- {
- "in": "header",
- "name": "x-agentdrive-actor",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "X-Agentdrive-Actor"
- }
- },
- {
- "in": "header",
- "name": "x-agentdrive-change-summary",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "X-Agentdrive-Change-Summary"
- }
- },
- {
- "in": "header",
- "name": "x-agentdrive-checksum",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "X-Agentdrive-Checksum"
- }
- },
- {
- "in": "header",
- "name": "content-md5",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Content-Md5"
- }
- },
- {
- "in": "header",
- "name": "if-match",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "If-Match"
- }
- },
- {
- "in": "header",
- "name": "if-none-match",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "If-None-Match"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ArtifactOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "201": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ArtifactOut"
- }
- }
- },
- "description": "Artifact created at a previously unused path.",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "Location": {
- "description": "Canonical URL of the created resource.",
- "schema": {
- "format": "uri-reference",
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The path, metadata, source, or conditional headers are invalid.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "409": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The path is occupied and overwrite semantics do not permit replacement.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "412": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request precondition did not match.",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "413": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The artifact or resulting drive storage exceeds its limit.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Upload (or overwrite) an artifact"
- }
- },
- "/v0/artifacts/{path}/download": {
- "get": {
- "description": "Same bytes-only machine surface as `/{art_id}/download` but resolves the artifact by path, so callers don't have to resolve path\u2192id first. Applies the identical CSP `sandbox` + `nosniff` posture (never serves HTML inline as active content).",
- "operationId": "download_artifact_by_path_v0_artifacts__path__download_get",
- "parameters": [
- {
- "in": "path",
- "name": "path",
- "required": true,
- "schema": {
- "title": "Path",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/octet-stream": {
- "schema": {
- "format": "binary",
- "type": "string"
- }
- }
- },
- "description": "Raw artifact bytes.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "No live artifact exists at this path.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Stream the artifact bytes by path (never rendered HTML)"
- }
- },
- "/v0/artifacts/{path}/download-url": {
- "get": {
- "description": "Same as `/{art_id}/download-url` but resolves the artifact by path. The returned proxy URL (when `direct:false`) still points at the by-id `/download` endpoint. large-download-design.md \u00a75.1.",
- "operationId": "download_url_by_path_v0_artifacts__path__download_url_get",
- "parameters": [
- {
- "in": "path",
- "name": "path",
- "required": true,
- "schema": {
- "title": "Path",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/DownloadUrlOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The artifact does not exist in this drive.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Signed direct-from-GCS download URL by path"
- }
- },
- "/v0/artifacts/{path}/meta": {
- "get": {
- "operationId": "get_artifact_meta_v0_artifacts__path__meta_get",
- "parameters": [
- {
- "in": "path",
- "name": "path",
- "required": true,
- "schema": {
- "title": "Path",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ArtifactOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "304": {
- "description": "The current entity tag or modification date matched.",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The artifact does not exist in this drive.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Get Artifact Meta"
- }
- },
- "/v0/auth/extension/exchange": {
- "post": {
- "description": "Single-use opaque ticket \u2192 JWT pair. Called once by an extension's auth-complete.html after the OAuth handoff lands. Returns a 15-minute `access_token` (scope=extension) and a 90-day `identity_assertion` the extension stores and refreshes via POST /oauth2/token.",
- "operationId": "extension_exchange_v0_auth_extension_exchange_post",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ExtensionExchangeRequest"
- }
- }
- },
- "required": true
- },
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ExtensionExchangeResponse"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The extension ID or ticket is invalid.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Too many extension sign-in attempts.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0.0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "503": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Extension authentication or token signing is unavailable.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "summary": "Redeem an extension OAuth ticket for a JWT pair",
- "tags": [
- "agent-auth"
- ]
- }
- },
- "/v0/drives": {
- "get": {
- "description": "Returns drive **metadata** (workspaces-design \u00a74.2): an **admin** sees the whole active workspace's drive inventory (every owner); a **member** sees only the drives they own. Metadata only \u2014 owner, size, timestamps \u2014 never a raw API key, and never an authorization to read a drive's contents. A `read`-scope token may call this; mutations require `full`.\n\n**Cursor pagination:** when more results exist, the response carries `next_cursor`. Pass it back as `?cursor=` to fetch the next page; `null` means the listing is complete. `limit` is clamped to [1, 100] (default 50), never rejected.",
- "operationId": "list_drives_route_v0_drives_get",
- "parameters": [
- {
- "in": "query",
- "name": "cursor",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "title": "Cursor"
- }
- },
- {
- "in": "query",
- "name": "limit",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "title": "Limit"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/DriveList"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "List the drives you can see",
- "tags": [
- "drives"
- ]
- },
- "post": {
- "description": "Create a named drive. Any **member** of the space may create one; the creator becomes its **owner**. Requires a `full`-scope user token. The response carries the drive's `ad_live_` API key **once** (`api_key`) \u2014 store it now, it is never returned again (mint more keys via `POST /v0/drives/{id}/keys`).\n\nThe target workspace is the user's active organization (`users.default_org`); cross-workspace creation names no other workspace in v0.\n\nA space may hold up to its plan's drive limit (workspaces-v2 \u00a74.6; seat-aware for shared drives). A caller at the limit is blocked with `403 DRIVE_LIMIT_REACHED`; the limit is tier-governed, not a hard cap.",
- "operationId": "create_drive_route_v0_drives_post",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/DriveCreateIn"
- }
- }
- },
- "required": true
- },
- "responses": {
- "201": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/DriveCreateOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "Location": {
- "description": "Canonical URL of the created resource.",
- "schema": {
- "format": "uri-reference",
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Create a drive in your active space",
- "tags": [
- "drives"
- ]
- }
- },
- "/v0/drives/me": {
- "get": {
- "description": "Drive overview for the authenticated bearer token.\n\nWire-protocol preservation (WorkOS integration \u00a76): the `email` field\nis preserved in the response shape; its meaning is now \"the drive's\nowner's email\" (via `drives.owner_user_id` \u2192 `users.email`, joined\nin `auth.resolve_drive`). For solo signups this equals v0 behavior \u2014\nthe email the user signed up with. Returns null if the owner has\nbeen hard-purged. `organization_id` is a new additive field, as are\n`metageneration` / `etag` (also emitted as the `ETag` header).",
- "operationId": "me_v0_drives_me_get",
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/DriveReadOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "ETag": {
- "description": "Current strong entity tag.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0.0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Me"
- }
- },
- "/v0/drives/me/usage": {
- "get": {
- "description": "Unified view of every metered dimension: storage (snapshot), writes (current hour), indexing ops + retrieval queries (current calendar month UTC). Each row carries `used` and `limit`; `limit: 0` means unlimited (the v0 free-tier default for the two monthly counters). Reads are de-throttled \u2014 there is no hourly read budget; the monthly read count appears under `ops_this_month.reads`.",
- "operationId": "me_usage_v0_drives_me_usage_get",
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/DriveUsageOut"
- }
- }
- },
- "description": "Successful Response",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "Bearer credential is missing or invalid.",
- "headers": {
- "WWW-Authenticate": {
- "description": "RFC 6750 bearer authentication challenge.",
- "schema": {
- "type": "string"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "The authenticated principal is not allowed to perform this operation.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ValidationErrorResponse"
- }
- }
- },
- "description": "Request validation failed.",
- "headers": {
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ErrorResponse"
- }
- }
- },
- "description": "A request, operation, or quota rate limit was exceeded.",
- "headers": {
- "Retry-After": {
- "description": "Seconds until the caller should retry.",
- "schema": {
- "minimum": 0.0,
- "type": "integer"
- }
- },
- "X-Request-Id": {
- "description": "Request correlation identifier.",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "security": [
- {
- "BearerAuth": []
- }
- ],
- "summary": "Current-period usage + caps for the authenticated drive"
- }
- },
- "/v0/drives/{drive_id}": {
- "delete": {
- "description": "Mark the drive for cleanup. All tenant data (artifacts, versions, wiki, embeddings, events) is hidden via the `live_*` views and CASCADE-removed by the GC cleanup cron at `purge_at`. Restore via `POST /v0/drives/{id}/restore` while the row is still in trash. The path-param `drive_id` MUST match the authenticated drive.\n\nAccepts either an `ad_live_` per-drive key (deletes that key's drive) or an `ad_user_` user token selecting an owned drive (workspaces-design \u00a75.3); a `read`-scope user token is rejected with 403 `INSUFFICIENT_SCOPE`. **Guard (\u00a78):** a workspace must retain at least one live drive \u2014 deleting the workspace's last live drive returns 409 `LAST_DRIVE`.\n\n**Explicit confirmation required:** pass `?confirm=DELETE` or the request is rejected with 400 `CONFIRM_REQUIRED`. Tenant-level deletion is the largest-blast-radius operation on the API; the static token forces a deliberate act (soft-delete still gives a restore window on top).\n\n**Optimistic concurrency:** send `If-Match` with the drive's composite ETag (`\"