SlideRule Provisioner API (v5.4.2)

Download OpenAPI specification:

License: BSD 3-Clause

API for deploying, managing, and monitoring SlideRule processing clusters. Supports cluster lifecycle management (deploy, extend, destroy, status), user auto-scaling groups, and test runner deployments. All endpoints require JWT authentication; owner-level operations additionally require request signature verification.

Get user info from JWT claims

Returns user information derived from the JWT claims, including username, organization roles, known and deployable clusters, and resource limits.

Authorizations:
OAuth2
header Parameters
X-Sliderule-Timestamp
string

Unix timestamp (seconds since epoch) of when the request was signed. Required for owner-level operations.

X-Sliderule-Signature
string

Base64-encoded signature of the canonical request string. Required for owner-level operations.

Responses

Response samples

Content type
application/json
{
  • "username": "string",
  • "orgRoles": [
    ],
  • "knownClusters": [
    ],
  • "deployableClusters": [
    ],
  • "maxNodes": 50,
  • "maxTTL": 720
}

Deploy a cluster

Creates a new SlideRule processing cluster via CloudFormation. Provisions an intelligent load balancer, monitor, and processing nodes.

Authorizations:
OAuth2
header Parameters
X-Sliderule-Timestamp
string

Unix timestamp (seconds since epoch) of when the request was signed. Required for owner-level operations.

X-Sliderule-Signature
string

Base64-encoded signature of the canonical request string. Required for owner-level operations.

Request Body schema: application/json
required
cluster
required
string <= 40 characters ^[A-Za-z0-9-_]+$

Name of the cluster to deploy. Must not be a system keyword (login, provisioner, client, recorder, runner, mcp, sliderule, monitor).

node_capacity
required
integer [ 1 .. 100 ]

Number of processing nodes to provision.

ttl
required
integer >= 15

Time to live in minutes before automatic shutdown. Members max 720 (12 hours), owners max 525600 (1 year).

is_public
boolean
Default: false

Whether the cluster should be publicly accessible.

version
string
Default: "latest"

Container image version to deploy.

Responses

Request samples

Content type
application/json
{
  • "cluster": "developers",
  • "node_capacity": 4,
  • "ttl": 60,
  • "is_public": false,
  • "version": "latest"
}

Response samples

Content type
application/json
{
  • "parms": [
    ],
  • "response": { }
}

Deploy a user auto-scaling group

Creates a user-specific auto-scaling group attached to an existing cluster. The username in the path must match the authenticated user.

Authorizations:
OAuth2
path Parameters
username
required
string

Username of the authenticated user (must match JWT sub claim).

header Parameters
X-Sliderule-Timestamp
string

Unix timestamp (seconds since epoch) of when the request was signed. Required for owner-level operations.

X-Sliderule-Signature
string

Base64-encoded signature of the canonical request string. Required for owner-level operations.

Request Body schema: application/json
required
cluster
required
string <= 40 characters ^[A-Za-z0-9-_]+$

Name of the cluster to deploy. Must not be a system keyword (login, provisioner, client, recorder, runner, mcp, sliderule, monitor).

node_capacity
required
integer [ 1 .. 100 ]

Number of processing nodes to provision.

ttl
required
integer >= 15

Time to live in minutes before automatic shutdown. Members max 720 (12 hours), owners max 525600 (1 year).

is_public
boolean
Default: false

Whether the cluster should be publicly accessible.

version
string
Default: "latest"

Container image version to deploy.

Responses

Request samples

Content type
application/json
{
  • "cluster": "developers",
  • "node_capacity": 4,
  • "ttl": 60,
  • "is_public": false,
  • "version": "latest"
}

Response samples

Content type
application/json
{
  • "parms": [
    ],
  • "response": { }
}

Extend cluster TTL

Extends the auto-shutdown time of a cluster by updating the EventBridge schedule rule with a new cron expression based on the requested TTL.

Authorizations:
OAuth2
header Parameters
X-Sliderule-Timestamp
string

Unix timestamp (seconds since epoch) of when the request was signed. Required for owner-level operations.

X-Sliderule-Signature
string

Base64-encoded signature of the canonical request string. Required for owner-level operations.

Request Body schema: application/json
required
cluster
required
string <= 40 characters ^[A-Za-z0-9-_]+$

Name of the cluster to extend.

ttl
required
integer >= 15

New TTL in minutes from now.

node_capacity
integer [ 1 .. 100 ]

Node capacity (validated but not used for extend).

Responses

Request samples

Content type
application/json
{
  • "cluster": "string",
  • "ttl": 60,
  • "node_capacity": 1
}

Response samples

Content type
application/json
{
  • "cron_expression": "cron(30 14 7 5 ? 2026)",
  • "response": { }
}

Extend user ASG TTL

Extends the auto-shutdown time of a user auto-scaling group.

Authorizations:
OAuth2
path Parameters
username
required
string

Username of the authenticated user (must match JWT sub claim).

header Parameters
X-Sliderule-Timestamp
string

Unix timestamp (seconds since epoch) of when the request was signed. Required for owner-level operations.

X-Sliderule-Signature
string

Base64-encoded signature of the canonical request string. Required for owner-level operations.

Request Body schema: application/json
required
cluster
required
string <= 40 characters ^[A-Za-z0-9-_]+$

Name of the cluster to extend.

ttl
required
integer >= 15

New TTL in minutes from now.

node_capacity
integer [ 1 .. 100 ]

Node capacity (validated but not used for extend).

Responses

Request samples

Content type
application/json
{
  • "cluster": "string",
  • "ttl": 60,
  • "node_capacity": 1
}

Response samples

Content type
application/json
{
  • "cron_expression": "cron(30 14 7 5 ? 2026)",
  • "response": { }
}

Destroy a cluster

Destroys a cluster and all associated user ASG stacks. Removes EventBridge auto-shutdown rules and deletes CloudFormation stacks.

Authorizations:
OAuth2
header Parameters
X-Sliderule-Timestamp
string

Unix timestamp (seconds since epoch) of when the request was signed. Required for owner-level operations.

X-Sliderule-Signature
string

Base64-encoded signature of the canonical request string. Required for owner-level operations.

Request Body schema: application/json
required
cluster
required
string <= 40 characters ^[A-Za-z0-9-_]+$

Name of the cluster.

Responses

Request samples

Content type
application/json
{
  • "cluster": "developers"
}

Response samples

Content type
application/json
{
  • "status": true,
  • "exception": "string",
  • "property1": {
    },
  • "property2": {
    }
}

Destroy a user auto-scaling group

Destroys a user-specific auto-scaling group attached to a cluster.

Authorizations:
OAuth2
path Parameters
username
required
string

Username of the authenticated user (must match JWT sub claim).

header Parameters
X-Sliderule-Timestamp
string

Unix timestamp (seconds since epoch) of when the request was signed. Required for owner-level operations.

X-Sliderule-Signature
string

Base64-encoded signature of the canonical request string. Required for owner-level operations.

Request Body schema: application/json
required
cluster
required
string <= 40 characters ^[A-Za-z0-9-_]+$

Name of the cluster.

Responses

Request samples

Content type
application/json
{
  • "cluster": "developers"
}

Response samples

Content type
application/json
{
  • "status": true,
  • "exception": "string",
  • "property1": {
    },
  • "property2": {
    }
}

Get cluster deployment status

Returns the current deployment status of a cluster including CloudFormation stack status, auto-shutdown time, current node count, version, and whether the cluster is public.

Authorizations:
OAuth2
header Parameters
X-Sliderule-Timestamp
string

Unix timestamp (seconds since epoch) of when the request was signed. Required for owner-level operations.

X-Sliderule-Signature
string

Base64-encoded signature of the canonical request string. Required for owner-level operations.

Request Body schema: application/json
required
cluster
required
string <= 40 characters ^[A-Za-z0-9-_]+$

Name of the cluster.

Responses

Request samples

Content type
application/json
{
  • "cluster": "developers"
}

Response samples

Content type
application/json
{
  • "response": { },
  • "auto_shutdown": "string",
  • "current_nodes": 0,
  • "version": "string",
  • "is_public": "string",
  • "node_capacity": "string"
}

Get user ASG deployment status

Returns the current deployment status of a user auto-scaling group.

Authorizations:
OAuth2
path Parameters
username
required
string

Username of the authenticated user (must match JWT sub claim).

header Parameters
X-Sliderule-Timestamp
string

Unix timestamp (seconds since epoch) of when the request was signed. Required for owner-level operations.

X-Sliderule-Signature
string

Base64-encoded signature of the canonical request string. Required for owner-level operations.

Request Body schema: application/json
required
cluster
required
string <= 40 characters ^[A-Za-z0-9-_]+$

Name of the cluster.

Responses

Request samples

Content type
application/json
{
  • "cluster": "developers"
}

Response samples

Content type
application/json
{
  • "response": { },
  • "auto_shutdown": "string",
  • "current_nodes": 0
}

Get cluster CloudFormation events

Returns CloudFormation stack events for a cluster deployment.

Authorizations:
OAuth2
header Parameters
X-Sliderule-Timestamp
string

Unix timestamp (seconds since epoch) of when the request was signed. Required for owner-level operations.

X-Sliderule-Signature
string

Base64-encoded signature of the canonical request string. Required for owner-level operations.

Request Body schema: application/json
required
cluster
required
string <= 40 characters ^[A-Za-z0-9-_]+$

Name of the cluster.

Responses

Request samples

Content type
application/json
{
  • "cluster": "developers"
}

Response samples

Content type
application/json
[
  • { }
]

Get user ASG CloudFormation events

Returns CloudFormation stack events for a user ASG deployment.

Authorizations:
OAuth2
path Parameters
username
required
string

Username of the authenticated user (must match JWT sub claim).

header Parameters
X-Sliderule-Timestamp
string

Unix timestamp (seconds since epoch) of when the request was signed. Required for owner-level operations.

X-Sliderule-Signature
string

Base64-encoded signature of the canonical request string. Required for owner-level operations.

Request Body schema: application/json
required
cluster
required
string <= 40 characters ^[A-Za-z0-9-_]+$

Name of the cluster.

Responses

Request samples

Content type
application/json
{
  • "cluster": "developers"
}

Response samples

Content type
application/json
[
  • { }
]

Get report of all deployed clusters

Returns a report of all deployed clusters including auto-shutdown time, node count, version, and per-user ASG details. Requires member role.

Authorizations:
OAuth2

Responses

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

Get report for a specific cluster

Returns a report for a single deployed cluster. Requires member role.

Authorizations:
OAuth2
path Parameters
cluster
required
string <= 40 characters ^[A-Za-z0-9-_]+$

Cluster name.

Responses

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

Get test runner report

Returns the summary report from the last test runner deployment. Requires member role.

Authorizations:
OAuth2
Request Body schema: application/json
required
branch
string
Default: "main"

Git branch to run tests against.

Responses

Request samples

Content type
application/json
{
  • "branch": "main"
}

Response samples

Content type
application/json
{ }

Deploy test runner

Deploys a test runner CloudFormation stack that automatically runs tests and destroys itself after completion. Only one test runner can be active at a time. Requires member role.

Authorizations:
OAuth2
Request Body schema: application/json
required
branch
string
Default: "main"

Git branch to run tests against.

Responses

Request samples

Content type
application/json
{
  • "branch": "main"
}

Response samples

Content type
application/json
{
  • "parms": [
    ],
  • "response": { }
}