Exoscale Public API

Infrastructure automation API, allowing programmatic access to all Exoscale products and services.

This documentation refers to an alpha version, and is currently not officially supported.

The OpenAPI Specification source of this documentation can be obtained here:

The currently supported API documentation can be consulted here:
https://community.exoscale.com/api/

This is the documentation for version 2.0.0-alpha2 of the API. Last update on Nov 16, 2020.

Base URL
{protocol}://{environment}-{zone}.exoscale.com/v2.alpha


security-groups

Security Groups are groups of firewall rules that regulate traffic to and from your Compute instances.

Read more

Delete a Security Group rule

URL parameters
  • id Required / string(uuid)
  • rule-id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/security-group/{id}/rules/{rule-id}
cURL example
curl \ -X DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/security-group/{id}/rules/{rule-id} \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

List Security Groups

Responses
  • 200 object

    200

    • security-groups array[object]
      • security-groups.id string(uuid)
      • security-groups.name string
      • security-groups.description string
      • security-groups.rules array[object]
        • security-groups.rules.description string
        • security-groups.rules.start-port integer(int64)

          Minimum value is 1, maximum value is 65535.

        • security-groups.rules.protocol string

          Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

        • security-groups.rules.icmp object
          • security-groups.rules.icmp.code integer(int64)

            Minimum value is 0, maximum value is 254.

          • security-groups.rules.icmp.type integer(int64)

            Minimum value is 0, maximum value is 254.

        • security-groups.rules.end-port integer(int64)

          Minimum value is 1, maximum value is 65535.

        • security-groups.rules.security-group object
          • security-groups.rules.security-group.id string(uuid)
          • security-groups.rules.security-group.name Required / string
        • security-groups.rules.id string(uuid)
        • security-groups.rules.network string
        • security-groups.rules.flow-direction string

          Values are ingress and egress.

Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/security-group
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/security-group \ -H "Content-Type: application/json"
Response example (200)
{ "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ] }

Create a Security Group

Body
  • id string(uuid)
  • name string
  • description string
  • rules array[object]
    • rules.description string
    • rules.start-port integer(int64)

      Minimum value is 1, maximum value is 65535.

    • rules.protocol string

      Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

    • rules.icmp object
      • rules.icmp.code integer(int64)

        Minimum value is 0, maximum value is 254.

      • rules.icmp.type integer(int64)

        Minimum value is 0, maximum value is 254.

    • rules.end-port integer(int64)

      Minimum value is 1, maximum value is 65535.

    • rules.security-group object
      • rules.security-group.id string(uuid)
      • rules.security-group.name Required / string
    • rules.id string(uuid)
    • rules.network string
    • rules.flow-direction string

      Values are ingress and egress.

Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/security-group
cURL example
curl \ -X POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/security-group \ -H "Content-Type: application/json" \ -d '{"id":"string","name":"string","description":"string","rules":[{"description":"string","start-port":42,"protocol":"tcp","icmp":{"code":42,"type":42},"end-port":42,"security-group":{"id":"string","name":"string"},"id":"string","network":"string","flow-direction":"ingress"}]}'
Request payload example
{ "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Retrieve a Security Group details

URL parameters
  • id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)
    • name string
    • description string
    • rules array[object]
      • rules.description string
      • rules.start-port integer(int64)

        Minimum value is 1, maximum value is 65535.

      • rules.protocol string

        Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

      • rules.icmp object
        • rules.icmp.code integer(int64)

          Minimum value is 0, maximum value is 254.

        • rules.icmp.type integer(int64)

          Minimum value is 0, maximum value is 254.

      • rules.end-port integer(int64)

        Minimum value is 1, maximum value is 65535.

      • rules.security-group object
        • rules.security-group.id string(uuid)
        • rules.security-group.name Required / string
      • rules.id string(uuid)
      • rules.network string
      • rules.flow-direction string

        Values are ingress and egress.

Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/security-group/{id}
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/security-group/{id} \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] }

Delete a Security Group

URL parameters
  • id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/security-group/{id}
cURL example
curl \ -X DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/security-group/{id} \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Create a Security Group rule

URL parameters
  • id Required / string(uuid)
Body
  • description string
  • start-port integer(int64)

    Minimum value is 1, maximum value is 65535.

  • protocol string

    Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

  • icmp object
    • icmp.code integer(int64)

      Minimum value is 0, maximum value is 254.

    • icmp.type integer(int64)

      Minimum value is 0, maximum value is 254.

  • end-port integer(int64)

    Minimum value is 1, maximum value is 65535.

  • security-group object
    • security-group.id string(uuid)
    • security-group.name Required / string
  • id string(uuid)
  • network string
  • flow-direction string

    Values are ingress and egress.

Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/security-group/{id}/rules
cURL example
curl \ -X POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/security-group/{id}/rules \ -H "Content-Type: application/json" \ -d '{"description":"string","start-port":42,"protocol":"tcp","icmp":{"code":42,"type":42},"end-port":42,"security-group":{"id":"string","name":"string"},"id":"string","network":"string","flow-direction":"ingress"}'
Request payload example
{ "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

instance-types

An Instance Type is a resource describing the amount of CPU, RAM and eventually GPUs your Compute instance will run on.

Read more

Retrieve an Instance Type details

URL parameters
  • id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)
    • size string

      Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

    • family string

      Values are gpu2, gpu, memory, storage, standard, and cpu.

    • cpus integer(int64)
    • gpus integer(int64)
    • authorized boolean
    • memory integer(int64)
Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/instance-type/{id}
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/instance-type/{id} \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }

List Compute instance types

Responses
  • 200 object

    200

    • instance-types array[object]
      • instance-types.id string(uuid)
      • instance-types.size string

        Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

      • instance-types.family string

        Values are gpu2, gpu, memory, storage, standard, and cpu.

      • instance-types.cpus integer(int64)
      • instance-types.gpus integer(int64)
      • instance-types.authorized boolean
      • instance-types.memory integer(int64)
Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/instance-type
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/instance-type \ -H "Content-Type: application/json"
Response example (200)
{ "instance-types": [ { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 } ] }

network-load-balancer

A Network Load Balancer (NLB) is a Layer 4 (TCP/UDP) load balancer that distributes incoming traffic to Compute instances managed by an Instance Pool.

Read more

Retrieve a Load Balancer Service details

URL parameters
  • id Required / string(uuid)
  • service-id Required / string(uuid)
Responses
  • 200 object

    200

    • description string
    • protocol Required / string

      Values are tcp and udp.

    • name Required / string
    • state string

      Values are creating, deleting, running, updating, and error.

    • target-port Required / integer(int64)
    • port Required / integer(int64)
    • instance-pool Required / object
      • instance-pool.id string(uuid)
      • instance-pool.name string
    • strategy Required / string

      Values are round-robin and source-hash.

    • healthcheck Required / object
      • healthcheck.mode Required / string

        Values are tcp, http, and https.

      • healthcheck.interval integer(int64)
      • healthcheck.uri string
      • healthcheck.port Required / integer(int64)
      • healthcheck.timeout integer(int64)
      • healthcheck.retries integer(int64)
      • healthcheck.tls-sni string
    • id string(uuid)
    • healthcheck-status array[object]
      • healthcheck-status.public-ip string(ipv4)
      • healthcheck-status.status string

        Values are failure and success.

Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}/service/{service-id}
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}/service/{service-id} \ -H "Content-Type: application/json"
Response example (200)
{ "description": "string", "protocol": "tcp", "name": "string", "state": "creating", "target-port": 42, "port": 42, "instance-pool": { "id": "string", "name": "string" }, "strategy": "round-robin", "healthcheck": { "mode": "tcp", "interval": 42, "uri": "string", "port": 42, "timeout": 42, "retries": 42, "tls-sni": "string" }, "id": "string", "healthcheck-status": [ { "public-ip": "string", "status": "failure" } ] }

Update a Load Balancer Service

URL parameters
  • id Required / string(uuid)
  • service-id Required / string(uuid)
Body
  • name string
  • description string
  • protocol string

    Values are tcp and udp.

  • strategy string

    Values are round-robin and source-hash.

  • port integer(int64)
  • target-port integer(int64)
  • healthcheck object
    • healthcheck.mode Required / string

      Values are tcp, http, and https.

    • healthcheck.interval integer(int64)
    • healthcheck.uri string
    • healthcheck.port Required / integer(int64)
    • healthcheck.timeout integer(int64)
    • healthcheck.retries integer(int64)
    • healthcheck.tls-sni string
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}/service/{service-id}
cURL example
curl \ -X PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}/service/{service-id} \ -H "Content-Type: application/json" \ -d '{"name":"string","description":"string","protocol":"tcp","strategy":"round-robin","port":42,"target-port":42,"healthcheck":{"mode":"tcp","interval":42,"uri":"string","port":42,"timeout":42,"retries":42,"tls-sni":"string"}}'
Request payload example
{ "name": "string", "description": "string", "protocol": "tcp", "strategy": "round-robin", "port": 42, "target-port": 42, "healthcheck": { "mode": "tcp", "interval": 42, "uri": "string", "port": 42, "timeout": 42, "retries": 42, "tls-sni": "string" } }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Delete a Load Balancer Service

URL parameters
  • id Required / string(uuid)
  • service-id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}/service/{service-id}
cURL example
curl \ -X DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}/service/{service-id} \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

List Load Balancers

Responses
  • 200 object

    200

    • load-balancers array[object]
      • load-balancers.id string(uuid)
      • load-balancers.description string
      • load-balancers.name Required / string
      • load-balancers.state string

        Values are creating, deleting, running, and error.

      • load-balancers.created-at string(date-time)
      • load-balancers.ip string(ipv4)
      • load-balancers.services array[object]
        • load-balancers.services.description string
        • load-balancers.services.protocol Required / string

          Values are tcp and udp.

        • load-balancers.services.name Required / string
        • load-balancers.services.state string

          Values are creating, deleting, running, updating, and error.

        • load-balancers.services.target-port Required / integer(int64)
        • load-balancers.services.port Required / integer(int64)
        • load-balancers.services.instance-pool Required / object
          • load-balancers.services.instance-pool.id string(uuid)
          • load-balancers.services.instance-pool.name string
        • load-balancers.services.strategy Required / string

          Values are round-robin and source-hash.

        • load-balancers.services.healthcheck Required / object
          • load-balancers.services.healthcheck.mode Required / string

            Values are tcp, http, and https.

          • load-balancers.services.healthcheck.interval integer(int64)
          • load-balancers.services.healthcheck.uri string
          • load-balancers.services.healthcheck.port Required / integer(int64)
          • load-balancers.services.healthcheck.timeout integer(int64)
          • load-balancers.services.healthcheck.retries integer(int64)
          • load-balancers.services.healthcheck.tls-sni string
        • load-balancers.services.id string(uuid)
        • load-balancers.services.healthcheck-status array[object]
          • load-balancers.services.healthcheck-status.public-ip string(ipv4)
          • load-balancers.services.healthcheck-status.status string

            Values are failure and success.

Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer \ -H "Content-Type: application/json"
Response example (200)
{ "load-balancers": [ { "id": "string", "description": "string", "name": "string", "state": "creating", "created-at": "2020-05-04T09:42:00+00:00", "ip": "string", "services": [ { "description": "string", "protocol": "tcp", "name": "string", "state": "creating", "target-port": 42, "port": 42, "instance-pool": { "id": "string", "name": "string" }, "strategy": "round-robin", "healthcheck": { "mode": "tcp", "interval": 42, "uri": "string", "port": 42, "timeout": 42, "retries": 42, "tls-sni": "string" }, "id": "string", "healthcheck-status": [ { "public-ip": "string", "status": "failure" } ] } ] } ] }

Create a new Load Balancer

Body
  • id string(uuid)
  • description string
  • name Required / string
  • state string

    Values are creating, deleting, running, and error.

  • created-at string(date-time)
  • ip string(ipv4)
  • services array[object]
    • services.description string
    • services.protocol Required / string

      Values are tcp and udp.

    • services.name Required / string
    • services.state string

      Values are creating, deleting, running, updating, and error.

    • services.target-port Required / integer(int64)
    • services.port Required / integer(int64)
    • services.instance-pool Required / object
      • services.instance-pool.id string(uuid)
      • services.instance-pool.name string
    • services.strategy Required / string

      Values are round-robin and source-hash.

    • services.healthcheck Required / object
      • services.healthcheck.mode Required / string

        Values are tcp, http, and https.

      • services.healthcheck.interval integer(int64)
      • services.healthcheck.uri string
      • services.healthcheck.port Required / integer(int64)
      • services.healthcheck.timeout integer(int64)
      • services.healthcheck.retries integer(int64)
      • services.healthcheck.tls-sni string
    • services.id string(uuid)
    • services.healthcheck-status array[object]
      • services.healthcheck-status.public-ip string(ipv4)
      • services.healthcheck-status.status string

        Values are failure and success.

Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer
cURL example
curl \ -X POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer \ -H "Content-Type: application/json" \ -d '{"id":"string","description":"string","name":"string","state":"creating","created-at":"2020-05-04T09:42:00+00:00","ip":"string","services":[{"description":"string","protocol":"tcp","name":"string","state":"creating","target-port":42,"port":42,"instance-pool":{"id":"string","name":"string"},"strategy":"round-robin","healthcheck":{"mode":"tcp","interval":42,"uri":"string","port":42,"timeout":42,"retries":42,"tls-sni":"string"},"id":"string","healthcheck-status":[{"public-ip":"string","status":...}'
Request payload example
{ "id": "string", "description": "string", "name": "string", "state": "creating", "created-at": "2020-05-04T09:42:00+00:00", "ip": "string", "services": [ { "description": "string", "protocol": "tcp", "name": "string", "state": "creating", "target-port": 42, "port": 42, "instance-pool": { "id": "string", "name": "string" }, "strategy": "round-robin", "healthcheck": { "mode": "tcp", "interval": 42, "uri": "string", "port": 42, "timeout": 42, "retries": 42, "tls-sni": "string" }, "id": "string", "healthcheck-status": [ { "public-ip": "string", "status": "failure" } ] } ] }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Add a Load Balancer Service

URL parameters
  • id Required / string(uuid)
Body
  • description string
  • protocol Required / string

    Values are tcp and udp.

  • name Required / string
  • state string

    Values are creating, deleting, running, updating, and error.

  • target-port Required / integer(int64)
  • port Required / integer(int64)
  • instance-pool Required / object
    • instance-pool.id string(uuid)
    • instance-pool.name string
  • strategy Required / string

    Values are round-robin and source-hash.

  • healthcheck Required / object
    • healthcheck.mode Required / string

      Values are tcp, http, and https.

    • healthcheck.interval integer(int64)
    • healthcheck.uri string
    • healthcheck.port Required / integer(int64)
    • healthcheck.timeout integer(int64)
    • healthcheck.retries integer(int64)
    • healthcheck.tls-sni string
  • id string(uuid)
  • healthcheck-status array[object]
    • healthcheck-status.public-ip string(ipv4)
    • healthcheck-status.status string

      Values are failure and success.

Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}/service
cURL example
curl \ -X POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}/service \ -H "Content-Type: application/json" \ -d '{"description":"string","protocol":"tcp","name":"string","state":"creating","target-port":42,"port":42,"instance-pool":{"id":"string","name":"string"},"strategy":"round-robin","healthcheck":{"mode":"tcp","interval":42,"uri":"string","port":42,"timeout":42,"retries":42,"tls-sni":"string"},"id":"string","healthcheck-status":[{"public-ip":"string","status":"failure"}]}'
Request payload example
{ "description": "string", "protocol": "tcp", "name": "string", "state": "creating", "target-port": 42, "port": 42, "instance-pool": { "id": "string", "name": "string" }, "strategy": "round-robin", "healthcheck": { "mode": "tcp", "interval": 42, "uri": "string", "port": 42, "timeout": 42, "retries": 42, "tls-sni": "string" }, "id": "string", "healthcheck-status": [ { "public-ip": "string", "status": "failure" } ] }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Retrieve a Load Balancer details

URL parameters
  • id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)
    • description string
    • name Required / string
    • state string

      Values are creating, deleting, running, and error.

    • created-at string(date-time)
    • ip string(ipv4)
    • services array[object]
      • services.description string
      • services.protocol Required / string

        Values are tcp and udp.

      • services.name Required / string
      • services.state string

        Values are creating, deleting, running, updating, and error.

      • services.target-port Required / integer(int64)
      • services.port Required / integer(int64)
      • services.instance-pool Required / object
        • services.instance-pool.id string(uuid)
        • services.instance-pool.name string
      • services.strategy Required / string

        Values are round-robin and source-hash.

      • services.healthcheck Required / object
        • services.healthcheck.mode Required / string

          Values are tcp, http, and https.

        • services.healthcheck.interval integer(int64)
        • services.healthcheck.uri string
        • services.healthcheck.port Required / integer(int64)
        • services.healthcheck.timeout integer(int64)
        • services.healthcheck.retries integer(int64)
        • services.healthcheck.tls-sni string
      • services.id string(uuid)
      • services.healthcheck-status array[object]
        • services.healthcheck-status.public-ip string(ipv4)
        • services.healthcheck-status.status string

          Values are failure and success.

Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id} \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "description": "string", "name": "string", "state": "creating", "created-at": "2020-05-04T09:42:00+00:00", "ip": "string", "services": [ { "description": "string", "protocol": "tcp", "name": "string", "state": "creating", "target-port": 42, "port": 42, "instance-pool": { "id": "string", "name": "string" }, "strategy": "round-robin", "healthcheck": { "mode": "tcp", "interval": 42, "uri": "string", "port": 42, "timeout": 42, "retries": 42, "tls-sni": "string" }, "id": "string", "healthcheck-status": [ { "public-ip": "string", "status": "failure" } ] } ] }

Update a Load Balancer

URL parameters
  • id Required / string(uuid)
Body
  • name string
  • description string
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}
cURL example
curl \ -X PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id} \ -H "Content-Type: application/json" \ -d '{"name":"string","description":"string"}'
Request payload example
{ "name": "string", "description": "string" }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Delete a Load Balancer

URL parameters
  • id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id}
cURL example
curl \ -X DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/load-balancer/{id} \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

event

Events form the basis of the Exoscale audit-trail, a mechanism to query past events
which happened on an organization

Read more

List events

Retrieve events for a given date range. Defaults to retrieving events
for the current and previous day. Both a from and to arguments can
be passed specifying dates to start from and to

URL parameters
  • from string(date-time)
  • to string(date-time)
Responses
  • 200 array[object]

    200

    • timestamp string(date-time)
    • payload object
      • payload.
Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/event
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/event \ -H "Content-Type: application/json"
Response example (200)
[ { "timestamp": "2020-05-04T09:42:00+00:00", "payload": { "": "string" } } ]

instances

Instances are the virtual machines at the core of the Exoscale Compute service.

Create a snapshot of a Compute instance

URL parameters
  • id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/instance/{id}:create-snapshot
cURL example
curl \ -X POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/instance/{id}:create-snapshot \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Create a Compute instance

URL parameters
  • start boolean
Body
  • id string(uuid)
  • name string
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/instance
cURL example
curl \ -X POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/instance \ -H "Content-Type: application/json" \ -d '{"id":"string","name":"string"}'
Request payload example
{ "id": "string", "name": "string" }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

snapshots

Snapshots provide a way to get point-in-time recovery for your Compute instance.

Read more

Export a snapshot

URL parameters
  • id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/snapshot/{id}:export
cURL example
curl \ -X POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/snapshot/{id}:export \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Retrieve a snapshot details

URL parameters
  • id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)
    • name string
    • description string
    • created-at string(date-time)
    • state string

      Values are snapshotting, deleted, exporting, ready, deleting, error, and exported.

    • export object
      • export.presigned-url string
      • export.md5sum string
    • instance object
      • instance.id string(uuid)
      • instance.name string
Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/snapshot/{id}
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/snapshot/{id} \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "name": "string", "description": "string", "created-at": "2020-05-04T09:42:00+00:00", "state": "snapshotting", "export": { "presigned-url": "string", "md5sum": "string" }, "instance": { "id": "string", "name": "string" } }

Delete a snapshot

URL parameters
  • id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/snapshot/{id}
cURL example
curl \ -X DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/snapshot/{id} \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

List snapshots

Responses
  • 200 object

    200

    • snapshots array[object]
      • snapshots.id string(uuid)
      • snapshots.name string
      • snapshots.description string
      • snapshots.created-at string(date-time)
      • snapshots.state string

        Values are snapshotting, deleted, exporting, ready, deleting, error, and exported.

      • snapshots.export object
        • snapshots.export.presigned-url string
        • snapshots.export.md5sum string
      • snapshots.instance object
        • snapshots.instance.id string(uuid)
        • snapshots.instance.name string
Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/snapshot
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/snapshot \ -H "Content-Type: application/json"
Response example (200)
{ "snapshots": [ { "id": "string", "name": "string", "description": "string", "created-at": "2020-05-04T09:42:00+00:00", "state": "snapshotting", "export": { "presigned-url": "string", "md5sum": "string" }, "instance": { "id": "string", "name": "string" } } ] }

zones

A Zone represents an independent datacenter in which Exoscale infrastructure is deployed into.

Read more

List zones

Responses
  • 200 object

    200

    • zones array[object]
      • zones.name string

        Values are de-muc-1, ch-gva-2, ch-zrh-1, and de-fra-1.

Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/zone
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/zone \ -H "Content-Type: application/json"
Response example (200)
{ "zones": [ { "name": "de-muc-1" } ] }

operations

Operations describe the current state of an asynchronous operation.

Lookup operation status by ID

URL parameters
  • id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/operation/{id}
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/operation/{id} \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

templates

Templates contain the OS and the initial setup of a Compute instance.

Retrieve a Compute template details

URL parameters
  • id Required / string(uuid)
Responses
  • 200 object

    200

    • description string
    • ssh-key-enabled boolean
    • family string
    • name string
    • default-user string
    • size integer(int64)
    • password-enabled boolean
    • build string
    • checksum string
    • boot-mode string

      Values are legacy and uefi.

    • id string(uuid)
    • url string
    • version string
    • created-at string(date-time)
    • visibility string

      Values are private and public.

Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/template/{id}
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/template/{id} \ -H "Content-Type: application/json"
Response example (200)
{ "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2020-05-04T09:42:00+00:00", "visibility": "private" }

Delete a template

URL parameters
  • id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/template/{id}
cURL example
curl \ -X DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/template/{id} \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

List templates

URL parameters
  • visibility string

    Values are private and public.

  • family string
Responses
  • 200 object

    200

    • templates array[object]
      • templates.description string
      • templates.ssh-key-enabled boolean
      • templates.family string
      • templates.name string
      • templates.default-user string
      • templates.size integer(int64)
      • templates.password-enabled boolean
      • templates.build string
      • templates.checksum string
      • templates.boot-mode string

        Values are legacy and uefi.

      • templates.id string(uuid)
      • templates.url string
      • templates.version string
      • templates.created-at string(date-time)
      • templates.visibility string

        Values are private and public.

Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/template
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/template \ -H "Content-Type: application/json"
Response example (200)
{ "templates": [ { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2020-05-04T09:42:00+00:00", "visibility": "private" } ] }

Register a template

Body
  • description string
  • ssh-key-enabled boolean
  • family string
  • name string
  • default-user string
  • size integer(int64)
  • password-enabled boolean
  • build string
  • checksum string
  • boot-mode string

    Values are legacy and uefi.

  • id string(uuid)
  • url string
  • version string
  • created-at string(date-time)
  • visibility string

    Values are private and public.

Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/template
cURL example
curl \ -X POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/template \ -H "Content-Type: application/json" \ -d '{"description":"string","ssh-key-enabled":true,"family":"string","name":"string","default-user":"string","size":42,"password-enabled":true,"build":"string","checksum":"string","boot-mode":"legacy","id":"string","url":"string","version":"string","created-at":"2020-05-04T09:42:00+00:00","visibility":"private"}'
Request payload example
{ "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2020-05-04T09:42:00+00:00", "visibility": "private" }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

sks

SKS is Exoscale's scalable Kubernetes service which provides managed Kubernetes
control planes with integrated support for Exoscale instance pools ands network load
balancers.
Read more

Generate a new Kubeconfig file for a SKS cluster

This operation returns a Kubeconfig file encoded in base64.

URL parameters
  • id Required / string(uuid)
Body
  • ttl integer(int64)
  • user string
  • roles array[string]
Responses
  • 200 object

    200

    • kubeconfig string
Definition
POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster-kubeconfig/{id}
cURL example
curl \ -X POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster-kubeconfig/{id} \ -H "Content-Type: application/json" \ -d '{"ttl":42,"user":"string","roles":["string"]}'
Request payload example
{ "ttl": 42, "user": "string", "roles": [ "string" ] }
Response example (200)
{ "kubeconfig": "string" }

Retrieve a Nodepool details

URL parameters
  • id Required / string(uuid)
  • sks-nodepool-id Required / string(uuid)
Responses
  • 200 object

    200

    • description string
    • security-groups array[object]
      • security-groups.id string(uuid)
      • security-groups.name string
      • security-groups.description string
      • security-groups.rules array[object]
        • security-groups.rules.description string
        • security-groups.rules.start-port integer(int64)

          Minimum value is 1, maximum value is 65535.

        • security-groups.rules.protocol string

          Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

        • security-groups.rules.icmp object
          • security-groups.rules.icmp.code integer(int64)

            Minimum value is 0, maximum value is 254.

          • security-groups.rules.icmp.type integer(int64)

            Minimum value is 0, maximum value is 254.

        • security-groups.rules.end-port integer(int64)

          Minimum value is 1, maximum value is 65535.

        • security-groups.rules.security-group object
          • security-groups.rules.security-group.id string(uuid)
          • security-groups.rules.security-group.name Required / string
        • security-groups.rules.id string(uuid)
        • security-groups.rules.network string
        • security-groups.rules.flow-direction string

          Values are ingress and egress.

    • name string
    • instance-type object
      • instance-type.id string(uuid)
      • instance-type.size string

        Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

      • instance-type.family string

        Values are gpu2, gpu, memory, storage, standard, and cpu.

      • instance-type.cpus integer(int64)
      • instance-type.gpus integer(int64)
      • instance-type.authorized boolean
      • instance-type.memory integer(int64)
    • template object
      • template.description string
      • template.ssh-key-enabled boolean
      • template.family string
      • template.name string
      • template.default-user string
      • template.size integer(int64)
      • template.password-enabled boolean
      • template.build string
      • template.checksum string
      • template.boot-mode string

        Values are legacy and uefi.

      • template.id string(uuid)
      • template.url string
      • template.version string
      • template.created-at string(date-time)
      • template.visibility string

        Values are private and public.

    • state string

      Values are renewing-token, creating, deleting, running, updating, and error.

    • size integer(int64)
    • instance-pool object
      • instance-pool.id string(uuid)
      • instance-pool.name string
    • id string(uuid)
    • disk-size integer(int64)

      Minimum value is 10, maximum value is 50000.

    • version string

      Values are 1.18.6.

    • created-at string(date-time)
Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool/{sks-nodepool-id}
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool/{sks-nodepool-id} \ -H "Content-Type: application/json"
Response example (200)
{ "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2020-05-04T09:42:00+00:00", "visibility": "private" }, "state": "renewing-token", "size": 42, "instance-pool": { "id": "string", "name": "string" }, "id": "string", "disk-size": 42, "version": "1.18.6", "created-at": "2020-05-04T09:42:00+00:00" }

Update a Nodepool

URL parameters
  • id Required / string(uuid)
  • sks-nodepool-id Required / string(uuid)
Body
  • description string
  • security-groups array[object]
    • security-groups.id string(uuid)
    • security-groups.name string
    • security-groups.description string
    • security-groups.rules array[object]
      • security-groups.rules.description string
      • security-groups.rules.start-port integer(int64)

        Minimum value is 1, maximum value is 65535.

      • security-groups.rules.protocol string

        Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

      • security-groups.rules.icmp object
        • security-groups.rules.icmp.code integer(int64)

          Minimum value is 0, maximum value is 254.

        • security-groups.rules.icmp.type integer(int64)

          Minimum value is 0, maximum value is 254.

      • security-groups.rules.end-port integer(int64)

        Minimum value is 1, maximum value is 65535.

      • security-groups.rules.security-group object
        • security-groups.rules.security-group.id string(uuid)
        • security-groups.rules.security-group.name Required / string
      • security-groups.rules.id string(uuid)
      • security-groups.rules.network string
      • security-groups.rules.flow-direction string

        Values are ingress and egress.

  • name string
  • instance-type object
    • instance-type.id string(uuid)
    • instance-type.size string

      Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

    • instance-type.family string

      Values are gpu2, gpu, memory, storage, standard, and cpu.

    • instance-type.cpus integer(int64)
    • instance-type.gpus integer(int64)
    • instance-type.authorized boolean
    • instance-type.memory integer(int64)
  • template object
    • template.description string
    • template.ssh-key-enabled boolean
    • template.family string
    • template.name string
    • template.default-user string
    • template.size integer(int64)
    • template.password-enabled boolean
    • template.build string
    • template.checksum string
    • template.boot-mode string

      Values are legacy and uefi.

    • template.id string(uuid)
    • template.url string
    • template.version string
    • template.created-at string(date-time)
    • template.visibility string

      Values are private and public.

  • state string

    Values are renewing-token, creating, deleting, running, updating, and error.

  • size integer(int64)
  • instance-pool object
    • instance-pool.id string(uuid)
    • instance-pool.name string
  • id string(uuid)
  • disk-size integer(int64)

    Minimum value is 10, maximum value is 50000.

  • version string

    Values are 1.18.6.

  • created-at string(date-time)
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool/{sks-nodepool-id}
cURL example
curl \ -X PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool/{sks-nodepool-id} \ -H "Content-Type: application/json" \ -d '{"description":"string","security-groups":[{"id":"string","name":"string","description":"string","rules":[{"description":"string","start-port":42,"protocol":"tcp","icmp":{"code":42,"type":42},"end-port":42,"security-group":{"id":"string","name":"string"},"id":"string","network":"string","flow-direction":"ingress"}]}],"name":"string","instance-type":{"id":"string","size":"large","family":"gpu2","cpus":42,"gpus":42,"authorized":true,"memory":42},"template":{"description":"string","ssh-key-enab...}'
Request payload example
{ "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2020-05-04T09:42:00+00:00", "visibility": "private" }, "state": "renewing-token", "size": 42, "instance-pool": { "id": "string", "name": "string" }, "id": "string", "disk-size": 42, "version": "1.18.6", "created-at": "2020-05-04T09:42:00+00:00" }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Delete a Nodepool

URL parameters
  • id Required / string(uuid)
  • sks-nodepool-id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool/{sks-nodepool-id}
cURL example
curl \ -X DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool/{sks-nodepool-id} \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Scale a Nodepool

URL parameters
  • id Required / string(uuid)
  • sks-nodepool-id Required / string(uuid)
Body
  • description string
  • security-groups array[object]
    • security-groups.id string(uuid)
    • security-groups.name string
    • security-groups.description string
    • security-groups.rules array[object]
      • security-groups.rules.description string
      • security-groups.rules.start-port integer(int64)

        Minimum value is 1, maximum value is 65535.

      • security-groups.rules.protocol string

        Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

      • security-groups.rules.icmp object
        • security-groups.rules.icmp.code integer(int64)

          Minimum value is 0, maximum value is 254.

        • security-groups.rules.icmp.type integer(int64)

          Minimum value is 0, maximum value is 254.

      • security-groups.rules.end-port integer(int64)

        Minimum value is 1, maximum value is 65535.

      • security-groups.rules.security-group object
        • security-groups.rules.security-group.id string(uuid)
        • security-groups.rules.security-group.name Required / string
      • security-groups.rules.id string(uuid)
      • security-groups.rules.network string
      • security-groups.rules.flow-direction string

        Values are ingress and egress.

  • name string
  • instance-type object
    • instance-type.id string(uuid)
    • instance-type.size string

      Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

    • instance-type.family string

      Values are gpu2, gpu, memory, storage, standard, and cpu.

    • instance-type.cpus integer(int64)
    • instance-type.gpus integer(int64)
    • instance-type.authorized boolean
    • instance-type.memory integer(int64)
  • template object
    • template.description string
    • template.ssh-key-enabled boolean
    • template.family string
    • template.name string
    • template.default-user string
    • template.size integer(int64)
    • template.password-enabled boolean
    • template.build string
    • template.checksum string
    • template.boot-mode string

      Values are legacy and uefi.

    • template.id string(uuid)
    • template.url string
    • template.version string
    • template.created-at string(date-time)
    • template.visibility string

      Values are private and public.

  • state string

    Values are renewing-token, creating, deleting, running, updating, and error.

  • size integer(int64)
  • instance-pool object
    • instance-pool.id string(uuid)
    • instance-pool.name string
  • id string(uuid)
  • disk-size integer(int64)

    Minimum value is 10, maximum value is 50000.

  • version string

    Values are 1.18.6.

  • created-at string(date-time)
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool/{sks-nodepool-id}:scale
cURL example
curl \ -X PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool/{sks-nodepool-id}:scale \ -H "Content-Type: application/json" \ -d '{"description":"string","security-groups":[{"id":"string","name":"string","description":"string","rules":[{"description":"string","start-port":42,"protocol":"tcp","icmp":{"code":42,"type":42},"end-port":42,"security-group":{"id":"string","name":"string"},"id":"string","network":"string","flow-direction":"ingress"}]}],"name":"string","instance-type":{"id":"string","size":"large","family":"gpu2","cpus":42,"gpus":42,"authorized":true,"memory":42},"template":{"description":"string","ssh-key-enab...}'
Request payload example
{ "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2020-05-04T09:42:00+00:00", "visibility": "private" }, "state": "renewing-token", "size": 42, "instance-pool": { "id": "string", "name": "string" }, "id": "string", "disk-size": 42, "version": "1.18.6", "created-at": "2020-05-04T09:42:00+00:00" }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

List SKS clusters

Responses
  • 200 object

    200

    • sks-clusters array[object]
      • sks-clusters.id string(uuid)
      • sks-clusters.name string
      • sks-clusters.description string
      • sks-clusters.state string

        Values are creating, deleting, running, updating, and error.

      • sks-clusters.created-at string(date-time)
      • sks-clusters.version string

        Values are 1.18.6.

      • sks-clusters.endpoint string
      • sks-clusters.sks-nodepools array[object]
        • sks-clusters.sks-nodepools.description string
        • sks-clusters.sks-nodepools.security-groups array[object]
          • sks-clusters.sks-nodepools.security-groups.id string(uuid)
          • sks-clusters.sks-nodepools.security-groups.name string
          • sks-clusters.sks-nodepools.security-groups.description string
          • sks-clusters.sks-nodepools.security-groups.rules array[object]
            • sks-clusters.sks-nodepools.security-groups.rules.description string
            • sks-clusters.sks-nodepools.security-groups.rules.start-port integer(int64)

              Minimum value is 1, maximum value is 65535.

            • sks-clusters.sks-nodepools.security-groups.rules.protocol string

              Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

            • sks-clusters.sks-nodepools.security-groups.rules.icmp object
              • sks-clusters.sks-nodepools.security-groups.rules.icmp.code integer(int64)

                Minimum value is 0, maximum value is 254.

              • sks-clusters.sks-nodepools.security-groups.rules.icmp.type integer(int64)

                Minimum value is 0, maximum value is 254.

            • sks-clusters.sks-nodepools.security-groups.rules.end-port integer(int64)

              Minimum value is 1, maximum value is 65535.

            • sks-clusters.sks-nodepools.security-groups.rules.security-group object
              • sks-clusters.sks-nodepools.security-groups.rules.security-group.id string(uuid)
              • sks-clusters.sks-nodepools.security-groups.rules.security-group.name Required / string
            • sks-clusters.sks-nodepools.security-groups.rules.id string(uuid)
            • sks-clusters.sks-nodepools.security-groups.rules.network string
            • sks-clusters.sks-nodepools.security-groups.rules.flow-direction string

              Values are ingress and egress.

        • sks-clusters.sks-nodepools.name string
        • sks-clusters.sks-nodepools.instance-type object
          • sks-clusters.sks-nodepools.instance-type.id string(uuid)
          • sks-clusters.sks-nodepools.instance-type.size string

            Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

          • sks-clusters.sks-nodepools.instance-type.family string

            Values are gpu2, gpu, memory, storage, standard, and cpu.

          • sks-clusters.sks-nodepools.instance-type.cpus integer(int64)
          • sks-clusters.sks-nodepools.instance-type.gpus integer(int64)
          • sks-clusters.sks-nodepools.instance-type.authorized boolean
          • sks-clusters.sks-nodepools.instance-type.memory integer(int64)
        • sks-clusters.sks-nodepools.template object
          • sks-clusters.sks-nodepools.template.description string
          • sks-clusters.sks-nodepools.template.ssh-key-enabled boolean
          • sks-clusters.sks-nodepools.template.family string
          • sks-clusters.sks-nodepools.template.name string
          • sks-clusters.sks-nodepools.template.default-user string
          • sks-clusters.sks-nodepools.template.size integer(int64)
          • sks-clusters.sks-nodepools.template.password-enabled boolean
          • sks-clusters.sks-nodepools.template.build string
          • sks-clusters.sks-nodepools.template.checksum string
          • sks-clusters.sks-nodepools.template.boot-mode string

            Values are legacy and uefi.

          • sks-clusters.sks-nodepools.template.id string(uuid)
          • sks-clusters.sks-nodepools.template.url string
          • sks-clusters.sks-nodepools.template.version string
          • sks-clusters.sks-nodepools.template.created-at string(date-time)
          • sks-clusters.sks-nodepools.template.visibility string

            Values are private and public.

        • sks-clusters.sks-nodepools.state string

          Values are renewing-token, creating, deleting, running, updating, and error.

        • sks-clusters.sks-nodepools.size integer(int64)
        • sks-clusters.sks-nodepools.instance-pool object
          • sks-clusters.sks-nodepools.instance-pool.id string(uuid)
          • sks-clusters.sks-nodepools.instance-pool.name string
        • sks-clusters.sks-nodepools.id string(uuid)
        • sks-clusters.sks-nodepools.disk-size integer(int64)

          Minimum value is 10, maximum value is 50000.

        • sks-clusters.sks-nodepools.version string

          Values are 1.18.6.

        • sks-clusters.sks-nodepools.created-at string(date-time)
Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster \ -H "Content-Type: application/json"
Response example (200)
{ "sks-clusters": [ { "id": "string", "name": "string", "description": "string", "state": "creating", "created-at": "2020-05-04T09:42:00+00:00", "version": "1.18.6", "endpoint": "string", "sks-nodepools": [ { "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2020-05-04T09:42:00+00:00", "visibility": "private" }, "state": "renewing-token", "size": 42, "instance-pool": { "id": "string", "name": "string" }, "id": "string", "disk-size": 42, "version": "1.18.6", "created-at": "2020-05-04T09:42:00+00:00" } ] } ] }

Create a SKS cluster

Body
  • id string(uuid)
  • name string
  • description string
  • state string

    Values are creating, deleting, running, updating, and error.

  • created-at string(date-time)
  • version string

    Values are 1.18.6.

  • endpoint string
  • sks-nodepools array[object]
    • sks-nodepools.description string
    • sks-nodepools.security-groups array[object]
      • sks-nodepools.security-groups.id string(uuid)
      • sks-nodepools.security-groups.name string
      • sks-nodepools.security-groups.description string
      • sks-nodepools.security-groups.rules array[object]
        • sks-nodepools.security-groups.rules.description string
        • sks-nodepools.security-groups.rules.start-port integer(int64)

          Minimum value is 1, maximum value is 65535.

        • sks-nodepools.security-groups.rules.protocol string

          Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

        • sks-nodepools.security-groups.rules.icmp object
          • sks-nodepools.security-groups.rules.icmp.code integer(int64)

            Minimum value is 0, maximum value is 254.

          • sks-nodepools.security-groups.rules.icmp.type integer(int64)

            Minimum value is 0, maximum value is 254.

        • sks-nodepools.security-groups.rules.end-port integer(int64)

          Minimum value is 1, maximum value is 65535.

        • sks-nodepools.security-groups.rules.security-group object
          • sks-nodepools.security-groups.rules.security-group.id string(uuid)
          • sks-nodepools.security-groups.rules.security-group.name Required / string
        • sks-nodepools.security-groups.rules.id string(uuid)
        • sks-nodepools.security-groups.rules.network string
        • sks-nodepools.security-groups.rules.flow-direction string

          Values are ingress and egress.

    • sks-nodepools.name string
    • sks-nodepools.instance-type object
      • sks-nodepools.instance-type.id string(uuid)
      • sks-nodepools.instance-type.size string

        Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

      • sks-nodepools.instance-type.family string

        Values are gpu2, gpu, memory, storage, standard, and cpu.

      • sks-nodepools.instance-type.cpus integer(int64)
      • sks-nodepools.instance-type.gpus integer(int64)
      • sks-nodepools.instance-type.authorized boolean
      • sks-nodepools.instance-type.memory integer(int64)
    • sks-nodepools.template object
      • sks-nodepools.template.description string
      • sks-nodepools.template.ssh-key-enabled boolean
      • sks-nodepools.template.family string
      • sks-nodepools.template.name string
      • sks-nodepools.template.default-user string
      • sks-nodepools.template.size integer(int64)
      • sks-nodepools.template.password-enabled boolean
      • sks-nodepools.template.build string
      • sks-nodepools.template.checksum string
      • sks-nodepools.template.boot-mode string

        Values are legacy and uefi.

      • sks-nodepools.template.id string(uuid)
      • sks-nodepools.template.url string
      • sks-nodepools.template.version string
      • sks-nodepools.template.created-at string(date-time)
      • sks-nodepools.template.visibility string

        Values are private and public.

    • sks-nodepools.state string

      Values are renewing-token, creating, deleting, running, updating, and error.

    • sks-nodepools.size integer(int64)
    • sks-nodepools.instance-pool object
      • sks-nodepools.instance-pool.id string(uuid)
      • sks-nodepools.instance-pool.name string
    • sks-nodepools.id string(uuid)
    • sks-nodepools.disk-size integer(int64)

      Minimum value is 10, maximum value is 50000.

    • sks-nodepools.version string

      Values are 1.18.6.

    • sks-nodepools.created-at string(date-time)
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster
cURL example
curl \ -X POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster \ -H "Content-Type: application/json" \ -d '{"id":"string","name":"string","description":"string","state":"creating","created-at":"2020-05-04T09:42:00+00:00","version":"1.18.6","endpoint":"string","sks-nodepools":[{"description":"string","security-groups":[{"id":"string","name":"string","description":"string","rules":[{"description":"string","start-port":42,"protocol":"tcp","icmp":{"code":42,"type":42},"end-port":42,"security-group":{"id":"string","name":"string"},"id":"string","network":"string","flow-direction":"ingress"}]}],"name":...}'
Request payload example
{ "id": "string", "name": "string", "description": "string", "state": "creating", "created-at": "2020-05-04T09:42:00+00:00", "version": "1.18.6", "endpoint": "string", "sks-nodepools": [ { "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2020-05-04T09:42:00+00:00", "visibility": "private" }, "state": "renewing-token", "size": 42, "instance-pool": { "id": "string", "name": "string" }, "id": "string", "disk-size": 42, "version": "1.18.6", "created-at": "2020-05-04T09:42:00+00:00" } ] }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Retrieve a SKS cluster details

URL parameters
  • id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)
    • name string
    • description string
    • state string

      Values are creating, deleting, running, updating, and error.

    • created-at string(date-time)
    • version string

      Values are 1.18.6.

    • endpoint string
    • sks-nodepools array[object]
      • sks-nodepools.description string
      • sks-nodepools.security-groups array[object]
        • sks-nodepools.security-groups.id string(uuid)
        • sks-nodepools.security-groups.name string
        • sks-nodepools.security-groups.description string
        • sks-nodepools.security-groups.rules array[object]
          • sks-nodepools.security-groups.rules.description string
          • sks-nodepools.security-groups.rules.start-port integer(int64)

            Minimum value is 1, maximum value is 65535.

          • sks-nodepools.security-groups.rules.protocol string

            Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

          • sks-nodepools.security-groups.rules.icmp object
            • sks-nodepools.security-groups.rules.icmp.code integer(int64)

              Minimum value is 0, maximum value is 254.

            • sks-nodepools.security-groups.rules.icmp.type integer(int64)

              Minimum value is 0, maximum value is 254.

          • sks-nodepools.security-groups.rules.end-port integer(int64)

            Minimum value is 1, maximum value is 65535.

          • sks-nodepools.security-groups.rules.security-group object
            • sks-nodepools.security-groups.rules.security-group.id string(uuid)
            • sks-nodepools.security-groups.rules.security-group.name Required / string
          • sks-nodepools.security-groups.rules.id string(uuid)
          • sks-nodepools.security-groups.rules.network string
          • sks-nodepools.security-groups.rules.flow-direction string

            Values are ingress and egress.

      • sks-nodepools.name string
      • sks-nodepools.instance-type object
        • sks-nodepools.instance-type.id string(uuid)
        • sks-nodepools.instance-type.size string

          Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

        • sks-nodepools.instance-type.family string

          Values are gpu2, gpu, memory, storage, standard, and cpu.

        • sks-nodepools.instance-type.cpus integer(int64)
        • sks-nodepools.instance-type.gpus integer(int64)
        • sks-nodepools.instance-type.authorized boolean
        • sks-nodepools.instance-type.memory integer(int64)
      • sks-nodepools.template object
        • sks-nodepools.template.description string
        • sks-nodepools.template.ssh-key-enabled boolean
        • sks-nodepools.template.family string
        • sks-nodepools.template.name string
        • sks-nodepools.template.default-user string
        • sks-nodepools.template.size integer(int64)
        • sks-nodepools.template.password-enabled boolean
        • sks-nodepools.template.build string
        • sks-nodepools.template.checksum string
        • sks-nodepools.template.boot-mode string

          Values are legacy and uefi.

        • sks-nodepools.template.id string(uuid)
        • sks-nodepools.template.url string
        • sks-nodepools.template.version string
        • sks-nodepools.template.created-at string(date-time)
        • sks-nodepools.template.visibility string

          Values are private and public.

      • sks-nodepools.state string

        Values are renewing-token, creating, deleting, running, updating, and error.

      • sks-nodepools.size integer(int64)
      • sks-nodepools.instance-pool object
        • sks-nodepools.instance-pool.id string(uuid)
        • sks-nodepools.instance-pool.name string
      • sks-nodepools.id string(uuid)
      • sks-nodepools.disk-size integer(int64)

        Minimum value is 10, maximum value is 50000.

      • sks-nodepools.version string

        Values are 1.18.6.

      • sks-nodepools.created-at string(date-time)
Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id} \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "name": "string", "description": "string", "state": "creating", "created-at": "2020-05-04T09:42:00+00:00", "version": "1.18.6", "endpoint": "string", "sks-nodepools": [ { "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2020-05-04T09:42:00+00:00", "visibility": "private" }, "state": "renewing-token", "size": 42, "instance-pool": { "id": "string", "name": "string" }, "id": "string", "disk-size": 42, "version": "1.18.6", "created-at": "2020-05-04T09:42:00+00:00" } ] }

Update a SKS cluster

URL parameters
  • id Required / string(uuid)
Body
  • id string(uuid)
  • name string
  • description string
  • state string

    Values are creating, deleting, running, updating, and error.

  • created-at string(date-time)
  • version string

    Values are 1.18.6.

  • endpoint string
  • sks-nodepools array[object]
    • sks-nodepools.description string
    • sks-nodepools.security-groups array[object]
      • sks-nodepools.security-groups.id string(uuid)
      • sks-nodepools.security-groups.name string
      • sks-nodepools.security-groups.description string
      • sks-nodepools.security-groups.rules array[object]
        • sks-nodepools.security-groups.rules.description string
        • sks-nodepools.security-groups.rules.start-port integer(int64)

          Minimum value is 1, maximum value is 65535.

        • sks-nodepools.security-groups.rules.protocol string

          Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

        • sks-nodepools.security-groups.rules.icmp object
          • sks-nodepools.security-groups.rules.icmp.code integer(int64)

            Minimum value is 0, maximum value is 254.

          • sks-nodepools.security-groups.rules.icmp.type integer(int64)

            Minimum value is 0, maximum value is 254.

        • sks-nodepools.security-groups.rules.end-port integer(int64)

          Minimum value is 1, maximum value is 65535.

        • sks-nodepools.security-groups.rules.security-group object
          • sks-nodepools.security-groups.rules.security-group.id string(uuid)
          • sks-nodepools.security-groups.rules.security-group.name Required / string
        • sks-nodepools.security-groups.rules.id string(uuid)
        • sks-nodepools.security-groups.rules.network string
        • sks-nodepools.security-groups.rules.flow-direction string

          Values are ingress and egress.

    • sks-nodepools.name string
    • sks-nodepools.instance-type object
      • sks-nodepools.instance-type.id string(uuid)
      • sks-nodepools.instance-type.size string

        Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

      • sks-nodepools.instance-type.family string

        Values are gpu2, gpu, memory, storage, standard, and cpu.

      • sks-nodepools.instance-type.cpus integer(int64)
      • sks-nodepools.instance-type.gpus integer(int64)
      • sks-nodepools.instance-type.authorized boolean
      • sks-nodepools.instance-type.memory integer(int64)
    • sks-nodepools.template object
      • sks-nodepools.template.description string
      • sks-nodepools.template.ssh-key-enabled boolean
      • sks-nodepools.template.family string
      • sks-nodepools.template.name string
      • sks-nodepools.template.default-user string
      • sks-nodepools.template.size integer(int64)
      • sks-nodepools.template.password-enabled boolean
      • sks-nodepools.template.build string
      • sks-nodepools.template.checksum string
      • sks-nodepools.template.boot-mode string

        Values are legacy and uefi.

      • sks-nodepools.template.id string(uuid)
      • sks-nodepools.template.url string
      • sks-nodepools.template.version string
      • sks-nodepools.template.created-at string(date-time)
      • sks-nodepools.template.visibility string

        Values are private and public.

    • sks-nodepools.state string

      Values are renewing-token, creating, deleting, running, updating, and error.

    • sks-nodepools.size integer(int64)
    • sks-nodepools.instance-pool object
      • sks-nodepools.instance-pool.id string(uuid)
      • sks-nodepools.instance-pool.name string
    • sks-nodepools.id string(uuid)
    • sks-nodepools.disk-size integer(int64)

      Minimum value is 10, maximum value is 50000.

    • sks-nodepools.version string

      Values are 1.18.6.

    • sks-nodepools.created-at string(date-time)
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}
cURL example
curl \ -X PUT {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id} \ -H "Content-Type: application/json" \ -d '{"id":"string","name":"string","description":"string","state":"creating","created-at":"2020-05-04T09:42:00+00:00","version":"1.18.6","endpoint":"string","sks-nodepools":[{"description":"string","security-groups":[{"id":"string","name":"string","description":"string","rules":[{"description":"string","start-port":42,"protocol":"tcp","icmp":{"code":42,"type":42},"end-port":42,"security-group":{"id":"string","name":"string"},"id":"string","network":"string","flow-direction":"ingress"}]}],"name":...}'
Request payload example
{ "id": "string", "name": "string", "description": "string", "state": "creating", "created-at": "2020-05-04T09:42:00+00:00", "version": "1.18.6", "endpoint": "string", "sks-nodepools": [ { "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2020-05-04T09:42:00+00:00", "visibility": "private" }, "state": "renewing-token", "size": 42, "instance-pool": { "id": "string", "name": "string" }, "id": "string", "disk-size": 42, "version": "1.18.6", "created-at": "2020-05-04T09:42:00+00:00" } ] }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

Delete a SKS cluster

URL parameters
  • id Required / string(uuid)
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}
cURL example
curl \ -X DELETE {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id} \ -H "Content-Type: application/json"
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

List a SKS cluster Nodepools

URL parameters
  • id Required / string(uuid)
Responses
  • 200 object

    200

    • sks-nodepools array[object]
      • sks-nodepools.description string
      • sks-nodepools.security-groups array[object]
        • sks-nodepools.security-groups.id string(uuid)
        • sks-nodepools.security-groups.name string
        • sks-nodepools.security-groups.description string
        • sks-nodepools.security-groups.rules array[object]
          • sks-nodepools.security-groups.rules.description string
          • sks-nodepools.security-groups.rules.start-port integer(int64)

            Minimum value is 1, maximum value is 65535.

          • sks-nodepools.security-groups.rules.protocol string

            Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

          • sks-nodepools.security-groups.rules.icmp object
            • sks-nodepools.security-groups.rules.icmp.code integer(int64)

              Minimum value is 0, maximum value is 254.

            • sks-nodepools.security-groups.rules.icmp.type integer(int64)

              Minimum value is 0, maximum value is 254.

          • sks-nodepools.security-groups.rules.end-port integer(int64)

            Minimum value is 1, maximum value is 65535.

          • sks-nodepools.security-groups.rules.security-group object
            • sks-nodepools.security-groups.rules.security-group.id string(uuid)
            • sks-nodepools.security-groups.rules.security-group.name Required / string
          • sks-nodepools.security-groups.rules.id string(uuid)
          • sks-nodepools.security-groups.rules.network string
          • sks-nodepools.security-groups.rules.flow-direction string

            Values are ingress and egress.

      • sks-nodepools.name string
      • sks-nodepools.instance-type object
        • sks-nodepools.instance-type.id string(uuid)
        • sks-nodepools.instance-type.size string

          Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

        • sks-nodepools.instance-type.family string

          Values are gpu2, gpu, memory, storage, standard, and cpu.

        • sks-nodepools.instance-type.cpus integer(int64)
        • sks-nodepools.instance-type.gpus integer(int64)
        • sks-nodepools.instance-type.authorized boolean
        • sks-nodepools.instance-type.memory integer(int64)
      • sks-nodepools.template object
        • sks-nodepools.template.description string
        • sks-nodepools.template.ssh-key-enabled boolean
        • sks-nodepools.template.family string
        • sks-nodepools.template.name string
        • sks-nodepools.template.default-user string
        • sks-nodepools.template.size integer(int64)
        • sks-nodepools.template.password-enabled boolean
        • sks-nodepools.template.build string
        • sks-nodepools.template.checksum string
        • sks-nodepools.template.boot-mode string

          Values are legacy and uefi.

        • sks-nodepools.template.id string(uuid)
        • sks-nodepools.template.url string
        • sks-nodepools.template.version string
        • sks-nodepools.template.created-at string(date-time)
        • sks-nodepools.template.visibility string

          Values are private and public.

      • sks-nodepools.state string

        Values are renewing-token, creating, deleting, running, updating, and error.

      • sks-nodepools.size integer(int64)
      • sks-nodepools.instance-pool object
        • sks-nodepools.instance-pool.id string(uuid)
        • sks-nodepools.instance-pool.name string
      • sks-nodepools.id string(uuid)
      • sks-nodepools.disk-size integer(int64)

        Minimum value is 10, maximum value is 50000.

      • sks-nodepools.version string

        Values are 1.18.6.

      • sks-nodepools.created-at string(date-time)
Definition
GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool
cURL example
curl \ -X GET {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool \ -H "Content-Type: application/json"
Response example (200)
{ "sks-nodepools": [ { "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2020-05-04T09:42:00+00:00", "visibility": "private" }, "state": "renewing-token", "size": 42, "instance-pool": { "id": "string", "name": "string" }, "id": "string", "disk-size": 42, "version": "1.18.6", "created-at": "2020-05-04T09:42:00+00:00" } ] }

Create a new Nodepool

URL parameters
  • id Required / string(uuid)
Body
  • description string
  • security-groups array[object]
    • security-groups.id string(uuid)
    • security-groups.name string
    • security-groups.description string
    • security-groups.rules array[object]
      • security-groups.rules.description string
      • security-groups.rules.start-port integer(int64)

        Minimum value is 1, maximum value is 65535.

      • security-groups.rules.protocol string

        Values are tcp, esp, icmp, udp, gre, ah, ipip, and icmpv6.

      • security-groups.rules.icmp object
        • security-groups.rules.icmp.code integer(int64)

          Minimum value is 0, maximum value is 254.

        • security-groups.rules.icmp.type integer(int64)

          Minimum value is 0, maximum value is 254.

      • security-groups.rules.end-port integer(int64)

        Minimum value is 1, maximum value is 65535.

      • security-groups.rules.security-group object
        • security-groups.rules.security-group.id string(uuid)
        • security-groups.rules.security-group.name Required / string
      • security-groups.rules.id string(uuid)
      • security-groups.rules.network string
      • security-groups.rules.flow-direction string

        Values are ingress and egress.

  • name string
  • instance-type object
    • instance-type.id string(uuid)
    • instance-type.size string

      Values are large, huge, jumbo, medium, mega, small, extra-large, titan, micro, and tiny.

    • instance-type.family string

      Values are gpu2, gpu, memory, storage, standard, and cpu.

    • instance-type.cpus integer(int64)
    • instance-type.gpus integer(int64)
    • instance-type.authorized boolean
    • instance-type.memory integer(int64)
  • template object
    • template.description string
    • template.ssh-key-enabled boolean
    • template.family string
    • template.name string
    • template.default-user string
    • template.size integer(int64)
    • template.password-enabled boolean
    • template.build string
    • template.checksum string
    • template.boot-mode string

      Values are legacy and uefi.

    • template.id string(uuid)
    • template.url string
    • template.version string
    • template.created-at string(date-time)
    • template.visibility string

      Values are private and public.

  • state string

    Values are renewing-token, creating, deleting, running, updating, and error.

  • size integer(int64)
  • instance-pool object
    • instance-pool.id string(uuid)
    • instance-pool.name string
  • id string(uuid)
  • disk-size integer(int64)

    Minimum value is 10, maximum value is 50000.

  • version string

    Values are 1.18.6.

  • created-at string(date-time)
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool
cURL example
curl \ -X POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/sks-cluster/{id}/nodepool \ -H "Content-Type: application/json" \ -d '{"description":"string","security-groups":[{"id":"string","name":"string","description":"string","rules":[{"description":"string","start-port":42,"protocol":"tcp","icmp":{"code":42,"type":42},"end-port":42,"security-group":{"id":"string","name":"string"},"id":"string","network":"string","flow-direction":"ingress"}]}],"name":"string","instance-type":{"id":"string","size":"large","family":"gpu2","cpus":42,"gpus":42,"authorized":true,"memory":42},"template":{"description":"string","ssh-key-enab...}'
Request payload example
{ "description": "string", "security-groups": [ { "id": "string", "name": "string", "description": "string", "rules": [ { "description": "string", "start-port": 42, "protocol": "tcp", "icmp": { "code": 42, "type": 42 }, "end-port": 42, "security-group": { "id": "string", "name": "string" }, "id": "string", "network": "string", "flow-direction": "ingress" } ] } ], "name": "string", "instance-type": { "id": "string", "size": "large", "family": "gpu2", "cpus": 42, "gpus": 42, "authorized": true, "memory": 42 }, "template": { "description": "string", "ssh-key-enabled": true, "family": "string", "name": "string", "default-user": "string", "size": 42, "password-enabled": true, "build": "string", "checksum": "string", "boot-mode": "legacy", "id": "string", "url": "string", "version": "string", "created-at": "2020-05-04T09:42:00+00:00", "visibility": "private" }, "state": "renewing-token", "size": 42, "instance-pool": { "id": "string", "name": "string" }, "id": "string", "disk-size": 42, "version": "1.18.6", "created-at": "2020-05-04T09:42:00+00:00" }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }

instance

This operation reverts the snapshot to the Compute instance volume

This operation reverts the snapshot to the Compute instance volume, restoring stored data as it was at the time of the snapshot.
The Compute instance must be previously stopped.

URL parameters
  • instance-id Required / string(uuid)
Body
  • id string(uuid)
  • name string
  • description string
  • created-at string(date-time)
  • state string

    Values are snapshotting, deleted, exporting, ready, deleting, error, and exported.

  • export object
    • export.presigned-url string
    • export.md5sum string
  • instance object
    • instance.id string(uuid)
    • instance.name string
Responses
  • 200 object

    200

    • id string(uuid)
    • reason string

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, and conflict.

    • reference object
      • reference.id string(uuid)
      • reference.link string
      • reference.command string
    • message string
    • state string

      Values are failure, pending, success, and timeout.

Definition
POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/instance/{instance-id}:revert-snapshot
cURL example
curl \ -X POST {protocol}://{environment}-{zone}.exoscale.com/v2.alpha/instance/{instance-id}:revert-snapshot \ -H "Content-Type: application/json" \ -d '{"id":"string","name":"string","description":"string","created-at":"2020-05-04T09:42:00+00:00","state":"snapshotting","export":{"presigned-url":"string","md5sum":"string"},"instance":{"id":"string","name":"string"}}'
Request payload example
{ "id": "string", "name": "string", "description": "string", "created-at": "2020-05-04T09:42:00+00:00", "state": "snapshotting", "export": { "presigned-url": "string", "md5sum": "string" }, "instance": { "id": "string", "name": "string" } }
Response example (200)
{ "id": "string", "reason": "incorrect", "reference": { "id": "string", "link": "string", "command": "string" }, "message": "string", "state": "failure" }