Skip to content
Merged
17 changes: 9 additions & 8 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
"@tailwindcss/forms": "^0.5.9",
"@tailwindcss/typography": "^0.5.15",
"@types/js-cookie": "^3.0.6",
"@types/node": "^20.17.6",
"@types/node": "^22.9.0",
"@types/prismjs": "^1.26.5",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
Expand All @@ -41,6 +41,6 @@
"typescript": "^5.6.3"
},
"volta": {
"node": "20.16.0"
"node": "22.11.0"
}
}
28 changes: 28 additions & 0 deletions src/markdoc/partials/api/console/cassette-response-list.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
```json {% process=false filename="Response" %}
{
"object": "list",
"data": [
{
"id": "9d759f5a-7a1f-443e-a466-6471da1d367b",
"object": "cassette",
"handle": "default",
"name": "Default",
"project": "9c17d63b-96c0-4315-b4dd-e55373ce4ffd",
"parent": null,
"created_at": 1711305486,
"updated_at": 1711305486
},
{...},
{...}
],
"meta": {
"has_more": false,
"current_page": 1,
"from": 1,
"to": 3,
"total": 3,
"per_page": 10,
"last_page": 1
}
}
```
31 changes: 31 additions & 0 deletions src/markdoc/partials/api/console/cassette-response-parameters.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{% parameter name="id" type="string" %}
The unique identifier for this Cassette.
{% /parameter %}

{% parameter name="object" type="string" %}
This will always contain `cassette` for this endpoint.
{% /parameter %}

{% parameter name="handle" type="string" %}
The unique handle of the Cassette. The handle is only unique to every Cassette within a project.
{% /parameter %}

{% parameter name="name" type="string" %}
The Cassette name.
{% /parameter %}

{% parameter name="project" type="string | object" %}
The ID of the project this Cassette belongs to.
{% /parameter %}

{% parameter name="parent" type="string | object | null" %}
The parent Cassette, if this Cassette is duplicated.
{% /parameter %}

{% parameter name="created_at" type="timestamp" %}
The Cassette's created at timestamp.
{% /parameter %}

{% parameter name="updated_at" type="timestamp" %}
The Cassette's updated at timestamp.
{% /parameter %}
12 changes: 12 additions & 0 deletions src/markdoc/partials/api/console/cassette-response.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
```json {% process=false filename="Response" %}
{
"id": "9d759f5a-7a1f-443e-a466-6471da1d367b",
"object": "cassette",
"handle": "default",
"name": "Default",
"project": "9c17d63b-96c0-4315-b4dd-e55373ce4ffd",
"parent": null,
"created_at": 1711305486,
"updated_at": 1711305486
}
```
36 changes: 36 additions & 0 deletions src/navigation/api/console.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,37 @@ export const consoleAPINavigation: APINavigationItem[] = [
},
],
},
{
title: 'Cassettes',
expandable: false,
items: [
{
title: 'Create Cassette',
url: '/api/console/cassettes/create',
method: 'POST',
},
{
title: 'Update Cassette',
url: '/api/console/cassettes/update',
method: 'PATCH',
},
{
title: 'Retrieve Cassette',
url: '/api/console/cassettes/retrieve',
method: 'GET',
},
{
title: 'Remove Cassette',
url: '/api/console/cassettes/remove',
method: 'DELETE',
},
{
title: 'Duplicate Cassette',
url: '/api/console/cassettes/duplicate',
method: 'POST',
},
],
},
{
title: 'Domains',
expandable: false,
Expand Down Expand Up @@ -157,6 +188,11 @@ export const consoleAPINavigation: APINavigationItem[] = [
url: '/api/console/projects/domains',
method: 'GET',
},
{
title: 'List all project Cassettes',
url: '/api/console/projects/cassettes',
method: 'GET',
},
{
title: 'Search projects',
url: '/api/console/projects/search',
Expand Down
63 changes: 63 additions & 0 deletions src/pages/api-reference/console/cassettes/create.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
title: 'Create Cassette'
description: 'Create a Cassette for a project in your agency.'
api: 'POST /v1/agencies/{username}/cassettes'
---

{% row %}

{% column %}
### Body parameters

{% parameter name="name" type="string" required=true %}
The name of the Cassette.
{% /parameter %}

{% parameter name="project" type="string" required=true %}
The ID of the project this Cassette will belong to.
{% /parameter %}

{% parameter name="handle" type="array" required=true %}
The unique handle for the Cassette.
{% /parameter %}

### Response

{% partial file="api/console/cassette-response-parameters.md" /%}

{% /column %}

{% column sticky="true" %}

{% code-group %}

```ts {% process=false filename="Node.js" %}
import Blutui from 'blutui'

const blutui = new Blutui('ey....')

blutui.agency('studio').cassettes.create({
name: 'Default',
project: '99bc147e-966c-4dd0-8def-de817c63cf41',
handle: 'default',
})
```

```bash {% process=false filename="cURL" %}
curl -X POST 'https://api.blutui.com/v1/agencies/studio/cassettes' \
-H 'Authorization: Bearer ey....' \
-H 'Content-Type: application/json'
-d $'{
"name": "Default",
"project": "99bc147e-966c-4dd0-8def-de817c63cf41",
"handle": "default",
}'
```

{% /code-group %}

{% partial file="api/console/cassette-response.md" /%}

{% /column %}

{% /row %}
64 changes: 64 additions & 0 deletions src/pages/api-reference/console/cassettes/duplicate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
title: 'Duplicate Cassette'
description: 'Duplicate a Cassette for a project your agency.'
api: 'POST /v1/agencies/{username}/cassettes/{id}/duplicate'
---

{% row %}

{% column %}
### Path parameters

{% parameter name="id" type="string" required="true" %}
The ID of the Cassette to duplicate.
{% /parameter %}

### Body parameters

{% parameter name="name" type="string" required=true %}
The name of the Cassette.
{% /parameter %}

{% parameter name="handle" type="array" required=true %}
The unique handle for the Cassette.
{% /parameter %}

### Response

{% partial file="api/console/cassette-response-parameters.md" /%}

{% /column %}

{% column sticky="true" %}

{% code-group %}

```ts {% process=false filename="Node.js" %}
import Blutui from 'blutui'

const blutui = new Blutui('ey....')

blutui.agency('studio').cassettes.duplicate('9d759f5a-7a1f-443e-a466-6471da1d367b', {
name: 'Default',
handle: 'default',
})
```

```bash {% process=false filename="cURL" %}
curl -X POST 'https://api.blutui.com/v1/agencies/studio/cassettes' \
-H 'Authorization: Bearer ey....' \
-H 'Content-Type: application/json'
-d $'{
"name": "Default",
"project": "99bc147e-966c-4dd0-8def-de817c63cf41",
"handle": "default",
}'
```

{% /code-group %}

{% partial file="api/console/cassette-response.md" /%}

{% /column %}

{% /row %}
62 changes: 62 additions & 0 deletions src/pages/api-reference/console/cassettes/remove.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
title: 'Remove Cassette'
description: 'Remove a Cassette from a project your agency.'
api: 'DELETE /v1/agencies/{username}/cassettes/{id}'
---

{% row %}

{% column %}
### Path parameters

{% parameter name="id" type="string" required="true" %}
The ID of the Cassette to remove.
{% /parameter %}

### Response

{% parameter name="id" type="string" %}
The unique identifier for this Cassette.
{% /parameter %}

{% parameter name="object" type="string" %}
This will always contain `cassette` for this endpoint.
{% /parameter %}

{% parameter name="deleted" type="boolean" %}
Determine if the object was successfully deleted.
{% /parameter %}

{% /column %}

{% column sticky="true" %}

{% code-group %}

```ts {% process=false filename="Node.js" %}
import Blutui from 'blutui'

const blutui = new Blutui('ey....')

blutui.agency('studio').cassettes.remove('9d759f5a-7a1f-443e-a466-6471da1d367b')
```

```bash {% process=false filename="cURL" %}
curl -X DELETE 'https://api.blutui.com/v1/agencies/studio/cassettes/9d759f5a-7a1f-443e-a466-6471da1d367b' \
-H 'Authorization: Bearer ey....' \
-H 'Content-Type: application/json'
```

{% /code-group %}

```json {% process=false filename="Response" %}
{
"id": "9d759f5a-7a1f-443e-a466-6471da1d367b",
"object": "cassette",
"deleted": true
}
```

{% /column %}

{% /row %}
Loading