Skip to main content

REST API

Fishjam Cloud (1.0.0)

Download OpenAPI specification:Download

Utilities

Healthcheck

Performs a health check on the application.

Returns:

  • A message indicating a successful health check.

Responses

Response samples

Content type
application/json
{
  • "detail": "string"
}

Jellyfish management

List Jellyfish

Fetches a list of active Jellyfish container instances for the authenticated user. Takes a cluster uuid as an optional filtering parameter.

Returns:

  • A list of the user's active Jellyfish container instances, as per the ContainerOut schema.
Authorizations:
ApiTokenAuthSessionAuth
query Parameters
Cluster Uuid Hex (string) or Cluster Uuid Hex (null) (Cluster Uuid Hex)
include_archived
boolean (Include Archived)
Default: false

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Jellyfish

Creates a new Jellyfish container instance using the specifications from NewContainerIn input.

Returns:

  • The newly generated container as per the NewContainerOut schema.

Raises:

  • HttpError, 500: If an error occurs during the container creation.
Authorizations:
ApiTokenAuthSessionAuth
Request Body schema: application/json
required
cluster_uuid_hex
required
string (Cluster Uuid Hex)
machine_type
string (MachineType)
Default: "xsmall"
Enum: "xsmall" "small" "medium" "large" "xlarge"
location
string (MachineLocation)
Default: "eu_central"
Enum: "us_east" "us_west" "af_south" "ap_east" "ap_south" "ap_southeast" "ap_northeast" "ca_central" "eu_central" "eu_west" "eu_south" "eu_north" "il_central" "me_south" "me_central" "sa_east"
Name (string) or Name (null) (Name)
Routing Key (string) or Routing Key (null) (Routing Key)

Responses

Request samples

Content type
application/json
{
  • "cluster_uuid_hex": "string",
  • "machine_type": "xsmall",
  • "location": "eu_central",
  • "name": "string",
  • "routing_key": "string"
}

Response samples

Content type
application/json
{}

List Jellyfish Versions

Fetches a list of available JF versions for the authenticated user.

Note: currently all versions are available for all users, this behavior may change in the future.

Returns:

  • A list of the user's available JF versions.
Authorizations:
ApiTokenAuthSessionAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Jellyfish Count

Returns a number of active Jellyfish container instances for the authenticated user. Takes a cluster uuid as an optional filtering parameter.

Returns:

  • A number of the user's active Jellyfish container instances.
Authorizations:
ApiTokenAuthSessionAuth
query Parameters
Cluster Uuid Hex (string) or Cluster Uuid Hex (null) (Cluster Uuid Hex)
include_archived
boolean (Include Archived)
Default: false

Responses

Response samples

Content type
application/json
{
  • "count": 0
}

Get Jellyfish

Retrieves a Jellyfish container instance using the provided jellyfish_uuid_hex path parameter.

Returns:

  • The identified container, as per the ContainerOut schema.

Raises:

  • HttpError, 404: If no container matches the provided jellyfish_uuid_hex.
Authorizations:
ApiTokenAuthSessionAuth
path Parameters
jellyfish_uuid_hex
required
string (Jellyfish Uuid Hex)

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "uuid": "string",
  • "status": "running",
  • "container_id": "string",
  • "machine_type": "xsmall",
  • "location": "us_east",
  • "routing_key": "string",
  • "cluster_uuid": "string"
}

Edit Jellyfish

Edits a Jellyfish container instance found by the jellyfish_uuid_hex uuid with the provided parameters path parameter.

Returns:

  • OK message.

Raises:

  • HttpError, 400: If the container is in an invalid state for reconfiguration.
  • HttpError, 404: If no container matches the provided jellyfish_uuid_hex.
  • HttpError, 409: If provided routing key is already used.
Authorizations:
ApiTokenAuthSessionAuth
path Parameters
jellyfish_uuid_hex
required
string (Jellyfish Uuid Hex)
Request Body schema: application/json
required
machine_type
required
string (MachineType)
Enum: "xsmall" "small" "medium" "large" "xlarge"
location
required
string (MachineLocation)
Enum: "us_east" "us_west" "af_south" "ap_east" "ap_south" "ap_southeast" "ap_northeast" "ca_central" "eu_central" "eu_west" "eu_south" "eu_north" "il_central" "me_south" "me_central" "sa_east"
routing_key
required
string (Routing Key) <= 50 characters

Responses

Request samples

Content type
application/json
{
  • "machine_type": "xsmall",
  • "location": "us_east",
  • "routing_key": "string"
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

Drop Jellyfish

Deletes a Jellyfish container instance identified by the jellyfish_uuid_hex path parameter.

Returns:

  • A ContainerDeletedOut message consisting of detail and jellyfish_uuid_hex.

Raises:

  • HttpError, 400: If the container is in an invalid state for deletion.
  • HttpError, 404: If no container matches the provided jellyfish_uuid_hex.
  • HttpError, 500: If deletion of the container fails.
Authorizations:
ApiTokenAuthSessionAuth
path Parameters
jellyfish_uuid_hex
required
string (Jellyfish Uuid Hex)

Responses

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "detail": "string"
}

List Machines Locations

Fetches a set of possible machine configurations.

Returns:

  • A list of machine locations available to host Jellyfish on
Authorizations:
ApiTokenAuthSessionAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Cluster management

List Jellyfish Clusters

Fetches a list of clusters for the authenticated user.

Returns:

  • A list of the user's clusters as per the ClusterOut schema.
Authorizations:
ApiTokenAuthSessionAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Jellyfish Cluster

Creates a new cluster using the specifications from ClusterIn input.

Returns:

  • The newly generated cluster as per the ClusterIn schema.

Raises:

  • HttpError, 500: If an error occurs during the cluster creation.
Authorizations:
ApiTokenAuthSessionAuth
Request Body schema: application/json
required
image_version
required
string (Image Version) <= 128 characters
name
required
string (Name) <= 64 characters
Token (string) or Token (null) (Token)

Responses

Request samples

Content type
application/json
{
  • "image_version": "string",
  • "name": "string",
  • "token": "string"
}

Response samples

Content type
application/json
{
  • "image_version": "string",
  • "uuid": "string",
  • "name": "string",
  • "token": "string",
  • "status": "running"
}

Get Jellyfish Cluster

Retrieves a cluster using the provided cluster_uuid_hex path parameter.

Returns:

  • The identified cluster, as per the ClusterOut schema.

Raises:

  • HttpError, 404: If no cluster matches the provided cluster_uuid_hex.
Authorizations:
ApiTokenAuthSessionAuth
path Parameters
cluster_uuid_hex
required
string (Cluster Uuid Hex)

Responses

Response samples

Content type
application/json
{
  • "image_version": "string",
  • "uuid": "string",
  • "name": "string",
  • "token": "string",
  • "status": "running"
}

Edit Jellyfish Cluster

Edits a cluster matching the provided cluster_uuid_hex with the provided path parameters. Jellyfish dependent on that cluster are also editted.

Returns:

  • OK message.

Raises:

  • HttpError, 400: If at least one container has state invalid for reconfiguration.
  • HttpError, 404: If no cluster matches the provided cluster_uuid_hex.
  • HttpError, 409: If provided unique values are already used.
Authorizations:
ApiTokenAuthSessionAuth
path Parameters
cluster_uuid_hex
required
string (Cluster Uuid Hex)
Request Body schema: application/json
required
Image Version (string) or Image Version (null) (Image Version)
Name (string) or Name (null) (Name)
Token (string) or Token (null) (Token)

Responses

Request samples

Content type
application/json
{
  • "image_version": "string",
  • "name": "string",
  • "token": "string"
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

Delete Jellyfish Cluster

Deletes a cluster identified by the cluster_uuid_hex path parameter.

Returns:

  • A DeletedClusterOut messege consisting of detail and cluster_uuid_hex.

Raises:

  • HttpError, 400: If the cluster has active Jellyfish.
  • HttpError, 404: If no cluster matches the provided cluster_uuid_hex.
  • HttpError, 500: If deletion of the cluster fails.
Authorizations:
ApiTokenAuthSessionAuth
path Parameters
cluster_uuid_hex
required
string (Cluster Uuid Hex)

Responses

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "detail": "string"
}

Authentication

Sign In

Authenticates a user using the supplied credentials and sets a session id cookie.

Returns:

  • Authenticated user as per the UserOut schema.

Raises:

  • HttpError, 401: If the provided credentials are invalid.
  • HttpError, 403: If the user has not verified their account via the email verification link.
Request Body schema: application/json
required
email
required
string <email> (Email)
password
required
string (Password)

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "password": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "email": "user@example.com",
  • "has_surpassed_free_tier": false,
  • "free_tier_jellyseconds": 0,
  • "has_used_instances": false,
  • "last_feedback_timestamp": "2019-08-24T14:15:22Z",
  • "instance_limit": 0,
  • "allowed_features": [
    ],
  • "has_password": true
}

Sign Out

Terminates the current session.

Returns:

  • A success message confirming the user has been logged out.

Responses

Response samples

Content type
application/json
{
  • "detail": "string"
}

Verify User

Validates the provided verification token and sets the corresponding user status as verified.

Returns:

  • A success message confirming user verification.

Raises:

  • HttpError, 401: If the provided verification token is invalid.
Request Body schema: application/json
required
verification_token
required
string (Verification Token)

Responses

Request samples

Content type
application/json
{
  • "verification_token": "string"
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

Sign Up

Registers a new user.

Returns:

  • The newly created user object as per the UserOut schema.

Raises:

  • HttpError, 400: If the email provided is invalid.
  • HttpError, 409: If the chosen email is already in use.
Request Body schema: application/json
required
password
required
string (Password)
email
required
string <email> (Email)
registration_token
required
string (Registration Token)

Responses

Request samples

Content type
application/json
{
  • "password": "string",
  • "email": "user@example.com",
  • "registration_token": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "email": "user@example.com",
  • "has_surpassed_free_tier": false,
  • "free_tier_jellyseconds": 0,
  • "has_used_instances": false,
  • "last_feedback_timestamp": "2019-08-24T14:15:22Z",
  • "instance_limit": 0,
  • "allowed_features": [
    ],
  • "has_password": true
}

Resend Verification

Reissues the verification token to the user's registered email.

Returns:

  • A success message confirming the successful sending of the verification email.

Raises:

  • HttpError, 409: If the user has already verified their account.
  • HttpError, 429: If the resend limit has been reached.
Request Body schema: application/json
required
email
required
string <email> (Email)
password
required
string (Password)

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "password": "string"
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

Get Current User

Fetches the authenticated user's details.

Returns:

  • authenticated user data as per the UserOut schema.

Raises:

  • HttpError, 401: If unauthorized access is attempted.
Authorizations:
ApiTokenAuthSessionAuth

Responses

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "email": "user@example.com",
  • "has_surpassed_free_tier": false,
  • "free_tier_jellyseconds": 0,
  • "has_used_instances": false,
  • "last_feedback_timestamp": "2019-08-24T14:15:22Z",
  • "instance_limit": 0,
  • "allowed_features": [
    ],
  • "has_password": true
}

Delete Account

Deletes the authenticated account.

Returns:

  • A success message confirming the account has been deleted.
Authorizations:
ApiTokenAuthSessionAuth

Responses

Response samples

Content type
application/json
{
  • "detail": "string"
}

Get Csrf

Assigns a CSRF token to a cookie.

Returns:

  • A message indicating a successful operation.

Responses

Response samples

Content type
application/json
{
  • "detail": "string"
}

Google Register

Authenticates a user via Google authentication, requiring an OAuth credential. Assigns a session id to a cookie.

Returns:

  • authenticated user object as per the UserOut schema.

Raises:

  • HttpError, 403: If the OAuth credential is invalid or does not have sufficient permissions.
  • HttpError, 409: If email from credentials is already registered in our system
Request Body schema: application/json
required
credential
required
string (Credential)
registration_token
required
string (Registration Token)

Responses

Request samples

Content type
application/json
{
  • "credential": "string",
  • "registration_token": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "email": "user@example.com",
  • "has_surpassed_free_tier": false,
  • "free_tier_jellyseconds": 0,
  • "has_used_instances": false,
  • "last_feedback_timestamp": "2019-08-24T14:15:22Z",
  • "instance_limit": 0,
  • "allowed_features": [
    ],
  • "has_password": true
}

Google Login

Authenticates a user via Google authentication, requiring an OAuth credential. Assigns a session id to a cookie.

Returns:

  • authenticated user object as per the UserOut schema.

Raises:

  • HttpError, 403: If the OAuth credential is invalid or does not have sufficient permissions.
  • HttpError, 404: If the OAuth credential is valid but user with provided email is not registered
Request Body schema: application/json
required
credential
required
string (Credential)

Responses

Request samples

Content type
application/json
{
  • "credential": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "email": "user@example.com",
  • "has_surpassed_free_tier": false,
  • "free_tier_jellyseconds": 0,
  • "has_used_instances": false,
  • "last_feedback_timestamp": "2019-08-24T14:15:22Z",
  • "instance_limit": 0,
  • "allowed_features": [
    ],
  • "has_password": true
}

Reset Password

Sends a password reset link to the specified user's email.

Returns:

  • A message confirming successful sending of the email.
Request Body schema: application/json
required
email
required
string <email> (Email)

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com"
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

Confirm Reset Password

Validates the password reset token and assigns a new password to the user.

Returns:

  • A message confirming successful password reset.

Raises:

  • HttpError, 403: If the password reset token is invalid.
  • HttpError, 404: If no user is found with the provided UUID.
path Parameters
user_uuid
required
string (User Uuid)
token
required
string (Token)
Request Body schema: application/json
required
password
required
string (Password)

Responses

Request samples

Content type
application/json
{
  • "password": "string"
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

Change Password

Changes the password of the authenticated user.

Returns:

  • A message confirming successful password change.

Raises:

  • HttpError, 403: If the provided current password is incorrect.
Authorizations:
ApiTokenAuthSessionAuth
Request Body schema: application/json
required
Old Password (string) or Old Password (null) (Old Password)
new_password
required
string (New Password)

Responses

Request samples

Content type
application/json
{
  • "old_password": "string",
  • "new_password": "string"
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

API Tokens

Get Api Tokens

Fetches the API tokens of the authenticated user.

Returns:

  • A list of API tokens, as per the ApiTokenOut schema.
Authorizations:
ApiTokenAuthSessionAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create New Api Token

Generates a new API token for the authenticated user.

Returns:

  • The newly generated token as per the CreateApiTokenOut schema.
Authorizations:
ApiTokenAuthSessionAuth

Responses

Response samples

Content type
application/json
{
  • "token": "string"
}

Archive Api Token

Removes a specified API token.

Returns:

  • A success message confirming deletion of the token.

Raises:

  • HttpError, 404: If the specified API token is not found.
Authorizations:
ApiTokenAuthSessionAuth
path Parameters
token_uuid
required
string (Token Uuid)

Responses

Response samples

Content type
application/json
{
  • "detail": "string"
}

Payments

Create User Payment Details

Generates a Stripe customer for the authenticated user and then creates and persists the user's payment details using the Stripe customer id.

Returns:

  • A success message upon completion.

Raises:

  • HttpError, 409: If user already possesses payment details.
  • HttpError, 500: When Stripe is unable to process the request.
  • HttpError, 503: In case of connectivity issues with Stripe.
  • HttpError, 503: When the request is blocked by rate limiter.
Authorizations:
ApiTokenAuthSessionAuth

Responses

Response samples

Content type
application/json
{
  • "detail": "string"
}

Update User Payment Details

Updates the payment details of the authenticated user.

Returns:

  • user's payment details as per the CustomerOut schema.

Raises:

  • HttpError, 404: If user does not possess payment details.
  • HttpError, 500: When Stripe is unable to process the request.
  • HttpError, 503: In case of connectivity issues with Stripe.
  • HttpError, 503: When the request is blocked by rate limiter.
Authorizations:
ApiTokenAuthSessionAuth
Request Body schema: application/json
required
required
object (AddressIn)
required
object (CustomerDataIn)

Responses

Request samples

Content type
application/json
{
  • "address": {
    },
  • "customer": {
    }
}

Response samples

Content type
application/json
{
  • "address": {
    },
  • "customer": {
    }
}

Get User Payment Details

Fetches the payment details of the authenticated user.

Returns:

  • user's payment details as per the CustomerOut schema.

Raises:

  • HttpError, 404: If user does not possess payment details.
  • HttpError, 500: When Stripe is unable to process the request.
  • HttpError, 503: In case of connectivity issues with Stripe.
  • HttpError, 503: When the request is blocked by rate limiter.
Authorizations:
ApiTokenAuthSessionAuth

Responses

Response samples

Content type
application/json
{
  • "address": {
    },
  • "customer": {
    }
}

Get Monthly Billing Data

Fetches the list of monthly billing of the authenticated user.

Returns:

  • user's monthly billing as per the MonthlyBillingOut schema.
Authorizations:
ApiTokenAuthSessionAuth
query Parameters
limit
integer (Limit) >= 1
Default: 100
offset
integer (Offset) >= 0
Default: 0

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "count": 0
}

Metrics

Get Instant Query

Queries Prometheus for a specific metric at a certain timestamp. If label is user_email, then the label_values are ignored.

Returns:

  • The query results as per the MetricInstantQueryOut schema.

Raises:

  • HttpError, 404: If the specified metric is not found.
  • HttpError, 403: If provided label values are not allowed for the user.
  • HttpError, 500: Upon failing to parse Prometheus response.
  • HttpError, 500: If Prometheus Returns:
  • an unexpected response.
  • HttpError, 503: If Prometheus is not available.
Authorizations:
ApiTokenAuthSessionAuth
query Parameters
metric
required
string (MetricName)
Enum: "fishjam_rooms" "fishjam_room_duration_seconds" "fishjam_room_peers" "fishjam_room_peer_time_total_seconds" "fishjam_room_peer_crashes_total" "fishjam_room_peer_connects_total" "fishjam_room_peer_disconnects_total" "fishjam_traffic_egress_webrtc_total_bytes" "fishjam_traffic_egress_http_total_bytes" "fishjam_traffic_ingress_webrtc_total_bytes" "fishjam_traffic_ingress_http_total_bytes" "fishjam_traffic_egress_webrtc_per_second_bytes" "fishjam_traffic_egress_http_per_second_bytes" "fishjam_traffic_ingress_webrtc_per_second_bytes" "fishjam_traffic_ingress_http_per_second_bytes" "node_cpu_usage_ratio" "node_filesystem_usage_ratio" "node_ram_usage_ratio"
Time (integer) or Time (null) (Time)
Interval (integer) or Interval (null) (Interval)
Resolution (integer) or Resolution (null) (Resolution)
scope_name
required
string (MetricLabel)
Enum: "instance_uuid" "cluster_uuid" "user_email"
Array of Scope Uuids (strings) or Scope Uuids (null) (Scope Uuids)
MetricLabel (string) or null

Responses

Response samples

Content type
application/json
{
  • "result_type": "vector",
  • "result": [
    ]
}

Get Range Query

Queries Prometheus for a specific metric between two timestamps. If label is user_email, then the label_values are ignored.

Returns:

  • The query results as per the MetricRangeQueryOut schema.

Raises:

  • HttpError, 404: If the specified metric is not found.
  • HttpError, 403: If provided label values are not allowed for the user.
  • HttpError, 500: Upon failing to parse Prometheus response.
  • HttpError, 500: If Prometheus Returns:
  • an unexpected response.
  • HttpError, 503: If Prometheus is not available.
Authorizations:
ApiTokenAuthSessionAuth
query Parameters
metric
required
string (MetricName)
Enum: "fishjam_rooms" "fishjam_room_duration_seconds" "fishjam_room_peers" "fishjam_room_peer_time_total_seconds" "fishjam_room_peer_crashes_total" "fishjam_room_peer_connects_total" "fishjam_room_peer_disconnects_total" "fishjam_traffic_egress_webrtc_total_bytes" "fishjam_traffic_egress_http_total_bytes" "fishjam_traffic_ingress_webrtc_total_bytes" "fishjam_traffic_ingress_http_total_bytes" "fishjam_traffic_egress_webrtc_per_second_bytes" "fishjam_traffic_egress_http_per_second_bytes" "fishjam_traffic_ingress_webrtc_per_second_bytes" "fishjam_traffic_ingress_http_per_second_bytes" "node_cpu_usage_ratio" "node_filesystem_usage_ratio" "node_ram_usage_ratio"
Time (integer) or Time (null) (Time)
Interval (integer) or Interval (null) (Interval)
Resolution (integer) or Resolution (null) (Resolution)
scope_name
required
string (MetricLabel)
Enum: "instance_uuid" "cluster_uuid" "user_email"
Array of Scope Uuids (strings) or Scope Uuids (null) (Scope Uuids)
MetricLabel (string) or null
end
required
integer (End) > 0
start
required
integer (Start) > 0
step
required
number (Step) > 0

Responses

Response samples

Content type
application/json
{
  • "result_type": "matrix",
  • "result": [
    ]
}

Current Usage

Authorizations:
ApiTokenAuthSessionAuth

Responses

Response samples

Content type
application/json
{
  • "amount": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "end_timestamp": "2019-08-24T14:15:22Z"
}

logs

Query Range

Authorizations:
ApiTokenAuthSessionAuth
query Parameters
jellyfish_uuid_hex
required
string (Jellyfish Uuid Hex)
Since Seconds (integer) or Since Seconds (null) (Since Seconds)
Start (string) or Start (null) (Start)
required
End (string) or End (null) (End)
limit
integer (Limit) ( 0 .. 1000 ]
Default: 100
Search Phrase (string) or Search Phrase (null) (Search Phrase)
JellyfishLogSeverity (string) or null

Responses

Response samples

Content type
application/json
[
  • {
    }
]

notifications

Get Schema

Responses

Response samples

Content type
application/json
{ }

webhooks

Get Webhooks

Authorizations:
ApiTokenAuthSessionAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Webhook

Authorizations:
ApiTokenAuthSessionAuth
Request Body schema: application/json
required
name
required
string (Name)
url
required
string (Url)
required
Authorization Header (string) or Authorization Header (null) (Authorization Header)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "url": "string",
  • "authorization_header": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "name": "string",
  • "url": "string",
  • "authorization_header": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "is_enabled": true
}

Update Webhook

Authorizations:
ApiTokenAuthSessionAuth
path Parameters
uuid
required
string (Uuid)
Request Body schema: application/json
required
Name (string) or Name (null) (Name)
Url (string) or Url (null) (Url)
Authorization Header (string) or Authorization Header (null) (Authorization Header)
Is Enabled (boolean) or Is Enabled (null) (Is Enabled)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "url": "string",
  • "authorization_header": "string",
  • "is_enabled": true
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

Delete Webhook

Authorizations:
ApiTokenAuthSessionAuth
path Parameters
uuid
required
string (Uuid)

Responses

Response samples

Content type
application/json
{
  • "detail": "string"
}

Recordings management

Get Recording Settings

Retrieves recording settings of a cluster using the provided cluster_uuid_hex path parameter.

Returns:

  • The identified recording settings, as per the RecordingSettingsOut schema.

Raises:

  • HttpError, 403: If recordings feature is not allowed for the user.
  • HttpError, 404: If no cluster matches the provided cluster_uuid_hex or no recording settings are found.
Authorizations:
ApiTokenAuthSessionAuth
query Parameters
cluster_uuid_hex
required
string (Cluster Uuid Hex)

Responses

Response samples

Content type
application/json
{
  • "role_arn": "string",
  • "bucket_region": "string",
  • "bucket_name": "string",
  • "base_path": "string",
  • "trimmed_base_path": "string"
}

Upsert Recording Settings

Upserts recording settings of a cluster using the provided cluster_uuid_hex path parameter.

Returns:

  • The upserted recording settings, as per the RecordingSettingsOut schema.

Raises:

  • HttpError, 403: If recordings feature is not allowed for the user.
  • HttpError, 404: If no cluster matches the provided cluster_uuid_hex.
Authorizations:
ApiTokenAuthSessionAuth
query Parameters
cluster_uuid_hex
required
string (Cluster Uuid Hex)
Request Body schema: application/json
required
role_arn
required
string (Role Arn) <= 255 characters
bucket_region
required
string (Bucket Region) <= 50 characters
bucket_name
required
string (Bucket Name) <= 63 characters
base_path
string (Base Path) <= 255 characters
Default: "/"

Responses

Request samples

Content type
application/json
{
  • "role_arn": "string",
  • "bucket_region": "string",
  • "bucket_name": "string",
  • "base_path": "/"
}

Response samples

Content type
application/json
{
  • "role_arn": "string",
  • "bucket_region": "string",
  • "bucket_name": "string",
  • "base_path": "string",
  • "trimmed_base_path": "string"
}

Validate Settings

Validates the recording settings of a cluster by sending example empty data to provided AWS S3 bucket.

Returns:

  • A message indicating the success of the operation.

Raises:

  • HttpError, 400: If the provided data do not allow uploading files to S3.
  • HttpError, 403: If recordings feature is not allowed for the user.
Authorizations:
ApiTokenAuthSessionAuth
Request Body schema: application/json
required
role_arn
required
string (Role Arn) <= 255 characters
bucket_region
required
string (Bucket Region) <= 50 characters
bucket_name
required
string (Bucket Name) <= 63 characters
base_path
string (Base Path) <= 255 characters
Default: "/"

Responses

Request samples

Content type
application/json
{
  • "role_arn": "string",
  • "bucket_region": "string",
  • "bucket_name": "string",
  • "base_path": "/"
}

Response samples

Content type
application/json
{
  • "failing_field": "role_arn",
  • "detail": "string"
}

Feedback management

Send Feedback

Sends a feedback from an authenticated user to teams' slack channel.

Returns:

  • A success message
Authorizations:
ApiTokenAuthSessionAuth
Request Body schema: application/json
required
feedback_type
required
string (FeedbackType)
Enum: "good" "bad" "bug" "feature_request" "general_feedback"
message
string (Message) <= 2000 characters
Default: ""

Responses

Request samples

Content type
application/json
{
  • "feedback_type": "good",
  • "message": ""
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

Limit Change Requests

Create Instance Limit Change Request

Authorizations:
ApiTokenAuthSessionAuth
Request Body schema: application/json
required
desired_limit
required
integer (Desired Limit) > 0
reason
required
string (Reason) <= 1024 characters

Responses

Request samples

Content type
application/json
{
  • "desired_limit": 0,
  • "reason": "string"
}

Response samples

Content type
application/json
{
  • "detail": "string"
}