NAV Navbar
shell
  • Introduction
  • Authentication
  • Compute
  • Image
  • Storage
  • Networking
  • Errors
  • Changelog
  • Introduction

    Welcome to the Tavu.io API reference! You can use our API endpoints to access and manage your instances and other resources.

    On the right hand side you can see examples on how to use our API in Shell code.

    All API requests should be directed to https://api.tavu.io/vps/{service}/{version}/{resource_type}.

    All API requests and responses should be provided in JSON format.

    Authentication

    API are used to allow access to the API. You can register an API key at our Tavu.io dashboard.

    All API requests are expected to have your API key included in a header that looks like the following:

    Authorization: your-api-key

    Additionally, if you want to authenticate with a team that you own or are a member of, you need to include a X-Team-Id header with the request:

    X-Team-Id: your-team-id

    Compute

    Instances

    List all instances

    Returns a list of all your instances.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instances" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "created_at": "2017-10-27T09:08:33.000+03:00",
        "id": "1c06dd09-966b-4ea7-abf1-243b2a447c60",
        "ssh_key": null,
        "availability_zone": {
          "id": "b7061120-6fd4-409a-ab38-a8c669b69c99",
          "region": "Ulvila",
          "number": 2
        },
        "status": "active",
        "name": "API-instance-001",
        "security_groups": [
          {
            "id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
            "name": "default",
            "description": "Default security group"
          },
          {
            "id": "935bad7c-1b2a-46d3-ab5f-a03530e12d3c",
            "name": "API-security-group-001",
            "description": "This is an example security group."
          }
        ],
        "volumes": [
          {
            "created_at": "2017-10-27T12:44:04.000+03:00",
            "id": "1b16e59d-f30d-4e8f-96ea-600530c8e1df",
            "detach_time": null,
            "size": 1,
            "status": "in-use",
            "snapshot_id": null,
            "description": "This is an example volume.",
            "name": "API-volume-001",
            "attachment": {
              "mounted_at": "/dev/vdb",
              "instance_id": "1c06dd09-966b-4ea7-abf1-243b2a447c60",
              "attach_time": "2017-10-30T09:38:24.000+02:00",
              "status": "attached"
            }
          }
        ],
        "configuration": {
          "id": "9c345ee8-9f33-49e0-80d6-73a1f766a268",
          "cpu": 1,
          "disk_type": "hdd",
          "disk": 50,
          "ram": 512,
          "bandwidth": "500.0",
          "availability_zones": [
            {
              "id": "b7061120-6fd4-409a-ab38-a8c669b69c99",
              "region": "Ulvila",
              "number": 2
            }
          ]
        },
        "image": {
          "id": "00ed37ab-7a47-45b3-9419-543a40b3c3f2",
          "name": "Ubuntu",
          "version": "14.04"
        },
        "ports": [
          {
            "id": "ae09a104-3893-4762-91f7-ab46ece51b72",
            "description": "",
            "name": "",
            "network_id": "9ff312e4-3afb-45c3-ae32-18f96f15b317",
            "mac_address": "fa:16:3e:71:01:cb",
            "admin_state_up": true,
            "status": "ACTIVE",
            "device_id": "1c06dd09-966b-4ea7-abf1-243b2a447c60",
            "device_owner": "compute:None",
            "ip_allocations": [
              {
                "ip_address": "192.168.1.13",
                "subnet_id": "cfff8364-bad7-4844-a2f0-1154600463d8",
                "network_id": "9ff312e4-3afb-45c3-ae32-18f96f15b317"
              }
            ]
          },
          {
            "id": "df329d74-bf12-463a-abae-3c052aa5e834",
            "description": "",
            "name": "",
            "network_id": "9ff312e4-3afb-45c3-ae32-18f96f15b317",
            "mac_address": "fa:16:3e:e8:69:04",
            "admin_state_up": true,
            "status": "ACTIVE",
            "device_id": "1c06dd09-966b-4ea7-abf1-243b2a447c60",
            "device_owner": "compute:None",
            "ip_allocations": [
              {
                "ip_address": "192.168.1.5",
                "subnet_id": "cfff8364-bad7-4844-a2f0-1154600463d8",
                "network_id": "9ff312e4-3afb-45c3-ae32-18f96f15b317"
              }
            ]
          }
        ]
      },
      {
        "created_at": "2017-11-03T09:21:41.000+02:00",
        "id": "6ca83822-e89b-4607-b362-6580577005ab",
        "ssh_key": "API-ssh-key-001",
        "availability_zone": {
          "id": "b7061120-6fd4-409a-ab38-a8c669b69c99",
          "region": "Ulvila",
          "number": 2
        },
        "status": "active",
        "name": "API-instance-002",
        "security_groups": [
          {
            "id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
            "name": "default",
            "description": "Default security group"
          }
        ],
        "volumes": [],
        "configuration": {
          "id": "9c345ee8-9f33-49e0-80d6-73a1f766a268",
          "cpu": 1,
          "disk_type": "hdd",
          "disk": 50,
          "ram": 512,
          "bandwidth": "500.0",
          "availability_zones": [
            {
              "id": "b7061120-6fd4-409a-ab38-a8c669b69c99",
              "region": "Ulvila",
              "number": 2
            }
          ]
        },
        "image": {
          "id": "00ed37ab-7a47-45b3-9419-543a40b3c3f2",
          "name": "Ubuntu",
          "version": "14.04"
        },
        "ports": [
          {
            "id": "244eac20-d496-460c-a255-af8f3a107ce3",
            "description": "",
            "name": "",
            "network_id": "9ff312e4-3afb-45c3-ae32-18f96f15b317",
            "mac_address": "fa:16:3e:f0:09:a7",
            "admin_state_up": true,
            "status": "ACTIVE",
            "device_id": "6ca83822-e89b-4607-b362-6580577005ab",
            "device_owner": "compute:None",
            "ip_allocations": [
              {
                "ip_address": "192.168.1.12",
                "subnet_id": "cfff8364-bad7-4844-a2f0-1154600463d8",
                "network_id": "9ff312e4-3afb-45c3-ae32-18f96f15b317"
              }
            ]
          }
        ]
      }
    ]
    

    Request

    GET/vps/compute/v1/instances

    Show instance details

    Returns a detailed description of the instance.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instances/1c06dd09-966b-4ea7-abf1-243b2a447c60" \
      -H 'Authorization: my-api-key'
    

    Example response

    {
      "created_at": "2017-10-27T09:08:33.000+03:00",
      "id": "1c06dd09-966b-4ea7-abf1-243b2a447c60",
      "ssh_key": null,
      "availability_zone": {
        "id": "b7061120-6fd4-409a-ab38-a8c669b69c99",
        "region": "Ulvila",
        "number": 2
      },
      "status": "active",
      "name": "API-instance-001",
      "security_groups": [
        {
          "id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
          "name": "default",
          "description": "Default security group"
        },
        {
          "id": "935bad7c-1b2a-46d3-ab5f-a03530e12d3c",
          "name": "API-security-group-001",
          "description": "This is an example security group."
        }
      ],
      "volumes": [
        {
          "created_at": "2017-10-27T12:44:04.000+03:00",
          "id": "1b16e59d-f30d-4e8f-96ea-600530c8e1df",
          "detach_time": null,
          "size": 1,
          "status": "in-use",
          "snapshot_id": null,
          "description": "This is an example volume.",
          "name": "API-volume-001",
          "attachment": {
            "mounted_at": "/dev/vdb",
            "instance_id": "1c06dd09-966b-4ea7-abf1-243b2a447c60",
            "attach_time": "2017-10-30T09:38:24.000+02:00",
            "status": "attached"
          }
        }
      ],
      "configuration": {
        "id": "9c345ee8-9f33-49e0-80d6-73a1f766a268",
        "cpu": 1,
        "disk_type": "hdd",
        "disk": 50,
        "ram": 512,
        "bandwidth": "500.0",
        "availability_zones": [
          {
            "id": "b7061120-6fd4-409a-ab38-a8c669b69c99",
            "region": "Ulvila",
            "number": 2
          }
        ]
      },
      "image": {
        "id": "00ed37ab-7a47-45b3-9419-543a40b3c3f2",
        "name": "Ubuntu",
        "version": "14.04"
      },
      "ports": [
        {
          "id": "ae09a104-3893-4762-91f7-ab46ece51b72",
          "description": "",
          "name": "",
          "network_id": "9ff312e4-3afb-45c3-ae32-18f96f15b317",
          "mac_address": "fa:16:3e:71:01:cb",
          "admin_state_up": true,
          "status": "ACTIVE",
          "device_id": "1c06dd09-966b-4ea7-abf1-243b2a447c60",
          "device_owner": "compute:None",
          "ip_allocations": [
            {
              "ip_address": "192.168.1.13",
              "subnet_id": "cfff8364-bad7-4844-a2f0-1154600463d8",
              "network_id": "9ff312e4-3afb-45c3-ae32-18f96f15b317"
            }
          ]
        },
        {
          "id": "df329d74-bf12-463a-abae-3c052aa5e834",
          "description": "",
          "name": "",
          "network_id": "9ff312e4-3afb-45c3-ae32-18f96f15b317",
          "mac_address": "fa:16:3e:e8:69:04",
          "admin_state_up": true,
          "status": "ACTIVE",
          "device_id": "1c06dd09-966b-4ea7-abf1-243b2a447c60",
          "device_owner": "compute:None",
          "ip_allocations": [
            {
              "ip_address": "192.168.1.5",
              "subnet_id": "cfff8364-bad7-4844-a2f0-1154600463d8",
              "network_id": "9ff312e4-3afb-45c3-ae32-18f96f15b317"
            }
          ]
        }
      ]
    }
    

    Request

    GET/vps/compute/v1/instances/{instance_id}

    Create instance

    Creates an instance.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instances" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "instance": {
          "name": "API-instance-001",
          "image_id": "00ed37ab-7a47-45b3-9419-543a40b3c3f2",
          "configuration_id": "6cb38035-1c37-453d-ab44-ce3ac54f6ce5",
          "ssh_key": "API-ssh-key-001",
          "disable_password": false,
          "networks": [
            "165d4a26-2114-4a14-9e75-b865b48e2ce0",
            "public"
          ],
          "availability_zone_id": "b7061120-6fd4-409a-ab38-a8c669b69c99"
        }
      }'
    

    Example response

    {
      "created_at": "2017-12-04T13:56:05.000+00:00",
      "id": "482e25a1-d3c3-4184-b027-e0de11d6ee57",
      "ssh_key": "API-ssh-key-001",
      "availability_zone": {
        "id": "b7061120-6fd4-409a-ab38-a8c669b69c99",
        "region": "Ulvila",
        "number": 2
      },
      "status": "building",
      "name": "API-instance-001",
      "security_groups": [],
      "volumes": [],
      "configuration": {
        "id": "6cb38035-1c37-453d-ab44-ce3ac54f6ce5",
        "cpu": 2,
        "disk_type": "ssd",
        "disk": 50,
        "ram": 1024,
        "bandwidth": "1000.0",
        "availability_zones": [
          {
            "id": "b7061120-6fd4-409a-ab38-a8c669b69c99",
            "region": "Ulvila",
            "number": 2
          }
        ]
      },
      "image": {
        "id": "00ed37ab-7a47-45b3-9419-543a40b3c3f2",
        "name": "Ubuntu",
        "version": "14.04"
      },
      "ports": [],
      "username": "ubuntu",
      "password": "ycpzdhf5"
    }
    

    Request

    POST/vps/compute/v1/instances

    Parameters

    Parameter Required Type Description
    instance true object An instance object.
    name true string The name you want for the instance.
    image_id true string The image you want the instance to boot from. This can be an operating system or instance snapshot.
    configuration_id true string The configuration you want the instance to boot with.
    networks false array An array of network IDs you want to attach the instance to. For public network add the word 'public' in the array. If no networks are given, instance will automatically be attached to a public network.
    ssh_keys false string An array of SSH key names you want to associate with the instance.
    disable_password false boolean Set to true if you wish to disable password authentication completely and only use SSH keys for authentication. Cannot be set to true if no SSH keys are set.
    instance_user_ids false array An array of Instance user IDs. These Instance users will be associated with your new instance.
    instance_script_id false integer ID of the Instance script you want to run on this instance. This will overwrite any Instance users you give.
    instance_script false string A Base64 strict encoded string that contains your script. You can use this field to pass user data to your instance without saving it as an Instance script object.
    upgrade_on_first_boot false boolean Set to true if you wish for your instance to upgrade and install packages.
    reboot_after_cloud_init false boolean Set to true if you wish for your instance to reboot after running cloud-init. This option is strongly recommended when upgrade_on_first_boot is set to true.
    generate_credentials false boolean Set to true when building an instance from a snapshot if you wish to generate credentials or add Instance users to this instance. Note that any credentials that the snapshot has will take precedence over the generated ones.
    availability_zone_id false string ID of the Availability zone you want this instance to be in. If not given an availability zone will be set automatically. Note that not all configurations are available in all availability zones.

    Update instance

    Updates an existing instance and returns the updated instance.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instances/21af330a-3f01-4afc-8359-62661666a2e0" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X PATCH -d '{
        "instance": {
          "name": "Instance-001"
        }
      }'
    

    Example response

    {
      "name": "Instance-001",
      "ssh_key": "API-ssh-key-001",
      "availability_zone": {
        "id": "b7061120-6fd4-409a-ab38-a8c669b69c99",
        "region": "Ulvila",
        "number": 2
      },
      "image": {
        "id": "00ed37ab-7a47-45b3-9419-543a40b3c3f2",
        "name": "Ubuntu",
        "version": "14.04"
      },
      "created_at": "2017-12-01T13:20:50.000+00:00",
      "id": "21af330a-3f01-4afc-8359-62661666a2e0",
      "status": "active",
      "security_groups": [
        {
          "id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
          "name": "default",
          "description": "Default security group",
          "rules": [
            {
              "id": "185c069b-6214-45de-a8e4-531ba3b5ac71",
              "security_group_id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
              "remote_group_id": null,
              "direction": "egress",
              "ethertype": "IPv6",
              "protocol": null,
              "port_range_min": null,
              "port_range_max": null,
              "remote_ip_prefix": null
            },
            {
              "id": "28cb1966-dca9-4421-b4e8-9b32484a028f",
              "security_group_id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
              "remote_group_id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
              "direction": "ingress",
              "ethertype": "IPv6",
              "protocol": null,
              "port_range_min": null,
              "port_range_max": null,
              "remote_ip_prefix": null
            },
            {
              "id": "7d9eacd5-26db-44be-87c0-a7004ad08163",
              "security_group_id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
              "remote_group_id": null,
              "direction": "ingress",
              "ethertype": "IPv4",
              "protocol": null,
              "port_range_min": null,
              "port_range_max": null,
              "remote_ip_prefix": "0.0.0.0/0"
            },
            {
              "id": "9e989924-77f5-47fb-a012-80c8b630b888",
              "security_group_id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
              "remote_group_id": null,
              "direction": "egress",
              "ethertype": "IPv4",
              "protocol": null,
              "port_range_min": null,
              "port_range_max": null,
              "remote_ip_prefix": null
            },
            {
              "id": "f670f40b-3f89-426c-9c01-b8b16be4d5d0",
              "security_group_id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
              "remote_group_id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
              "direction": "ingress",
              "ethertype": "IPv4",
              "protocol": null,
              "port_range_min": null,
              "port_range_max": null,
              "remote_ip_prefix": null
            }
          ]
        }
      ],
      "volumes": [],
      "configuration": {
        "id": "9c345ee8-9f33-49e0-80d6-73a1f766a268",
        "cpu": 1,
        "disk_type": "hdd",
        "disk": 50,
        "ram": 512,
        "bandwidth": "500.0",
        "availability_zones": [
          {
            "id": "b7061120-6fd4-409a-ab38-a8c669b69c99",
            "region": "Ulvila",
            "number": 2
          }
        ]
      },
      "ports": [
        {
          "id": "a4c9aae6-50e5-437a-ba8c-08b34d1bdc91",
          "description": "",
          "name": "",
          "network_id": "165d4a26-2114-4a14-9e75-b865b48e2ce0",
          "mac_address": "fa:16:3e:47:1e:13",
          "admin_state_up": true,
          "status": "ACTIVE",
          "device_id": "21af330a-3f01-4afc-8359-62661666a2e0",
          "device_owner": "compute:None",
          "ip_allocations": [
            {
              "ip_address": "192.168.2.6",
              "subnet_id": "9874325d-754c-4e66-989e-e5d83e5d8248"
            },
            {
              "ip_address": "abc0::b",
              "subnet_id": "339c4393-3d74-4e7c-b10d-e23c58d0b1fb"
            }
          ]
        }
      ]
    }
    

    Request

    PATCH/vps/compute/v1/instances/{instance_id}

    Parameters

    Parameter Required Type Description
    instance true object An instance object.
    name false string The new name for the instance.

    Delete instance

    Deletes the instance and returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instances/9ad22189-fb8d-499b-b012-c32baca2bec2" \
      -H 'Authorization: my-api-key' \
      -X DELETE
    

    Request

    DELETE/vps/compute/v1/instances/{instance_id}

    Instance actions

    Start instance

    Starts an instance. Returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instances/3dcc547c-457b-42fb-855d-a90b5334c41c/action" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "start": null
      }'
    

    Request

    POST/vps/compute/v1/instances/{instance_id}/action

    Parameters

    Parameter Required Type Description
    start true none A null value. Only the key is important.

    Stop instance

    Stops an instance. Returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instances/3dcc547c-457b-42fb-855d-a90b5334c41c/action" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "stop": null
      }'
    

    Request

    POST/vps/compute/v1/instances/{instance_id}/action

    Parameters

    Parameter Required Type Description
    stop true none A null value. Only the key is important.

    Reboot instance

    Reboots an instance. Returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instances/3dcc547c-457b-42fb-855d-a90b5334c41c/action" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "reboot": null
      }'
    

    Request

    POST/vps/compute/v1/instances/{instance_id}/action

    Parameters

    Parameter Required Type Description
    reboot true none A null value. Only the key is important.

    Force reboot instance

    Force reboots an instance. Returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instances/3dcc547c-457b-42fb-855d-a90b5334c41c/action" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "force_reboot": null
      }'
    

    Request

    POST/vps/compute/v1/instances/{instance_id}/action

    Parameters

    Parameter Required Type Description
    force_reboot true none A null value. Only the key is important.

    Resize instance

    Resizes an instance. Returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instances/3dcc547c-457b-42fb-855d-a90b5334c41c/action" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "resize": {
          "configuration_id": "0df068bc-21fb-4b77-8efb-9f39ede79d63"
        }
      }'
    

    Request

    POST/vps/compute/v1/instances/{instance_id}/action

    Parameters

    Parameter Required Type Description
    resize true object A resize object.
    configuration_id true string An ID of the configuration you want to resize to.

    Confirm resize of instance

    Confirm resize of an instance. Returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instances/3dcc547c-457b-42fb-855d-a90b5334c41c/action" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "confirm_resize": null
      }'
    

    Request

    POST/vps/compute/v1/instances/{instance_id}/action

    Parameters

    Parameter Required Type Description
    confirm_resize true none A null value. Only the key is important.

    Revert resize of instance

    Revert resize of an instance. Returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instances/3dcc547c-457b-42fb-855d-a90b5334c41c/action" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "revert_resize": null
      }'
    

    Request

    POST/vps/compute/v1/instances/{instance_id}/action

    Parameters

    Parameter Required Type Description
    revert_resize true none A null value. Only the key is important.

    Rebuild instance

    Rebuilds an instance. Returns the instance.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instances/3dcc547c-457b-42fb-855d-a90b5334c41c/action" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "rebuild": {
          "image_id": "00ed37ab-7a47-45b3-9419-543a40b3c3f2",
          "name": "Instance-1"
        }
      }'
    

    Example response

    {
      "created_at": "2017-12-12T08:31:00.000+00:00",
      "id": "3dcc547c-457b-42fb-855d-a90b5334c41c",
      "ssh_key": null,
      "availability_zone": {
        "id": "b7061120-6fd4-409a-ab38-a8c669b69c99",
        "region": "Ulvila",
        "number": 2
      },
      "status": "active",
      "name": "Instance-1",
      "security_groups": [
        {
          "id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
          "name": "default",
          "description": "Default security group",
          "rules": [
            {
              "id": "185c069b-6214-45de-a8e4-531ba3b5ac71",
              "security_group_id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
              "remote_group_id": null,
              "direction": "egress",
              "ethertype": "IPv6",
              "protocol": null,
              "port_range_min": null,
              "port_range_max": null,
              "remote_ip_prefix": null
            },
            {
              "id": "28cb1966-dca9-4421-b4e8-9b32484a028f",
              "security_group_id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
              "remote_group_id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
              "direction": "ingress",
              "ethertype": "IPv6",
              "protocol": null,
              "port_range_min": null,
              "port_range_max": null,
              "remote_ip_prefix": null
            },
            {
              "id": "7d9eacd5-26db-44be-87c0-a7004ad08163",
              "security_group_id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
              "remote_group_id": null,
              "direction": "ingress",
              "ethertype": "IPv4",
              "protocol": null,
              "port_range_min": null,
              "port_range_max": null,
              "remote_ip_prefix": "0.0.0.0/0"
            },
            {
              "id": "9e989924-77f5-47fb-a012-80c8b630b888",
              "security_group_id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
              "remote_group_id": null,
              "direction": "egress",
              "ethertype": "IPv4",
              "protocol": null,
              "port_range_min": null,
              "port_range_max": null,
              "remote_ip_prefix": null
            },
            {
              "id": "f670f40b-3f89-426c-9c01-b8b16be4d5d0",
              "security_group_id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
              "remote_group_id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
              "direction": "ingress",
              "ethertype": "IPv4",
              "protocol": null,
              "port_range_min": null,
              "port_range_max": null,
              "remote_ip_prefix": null
            }
          ]
        }
      ],
      "volumes": [],
      "configuration": {
        "id": "0df068bc-21fb-4b77-8efb-9f39ede79d63",
        "cpu": 1,
        "disk_type": "ssd",
        "disk": 50,
        "ram": 512,
        "bandwidth": "750.0",
        "availability_zones": [
          {
            "id": "b7061120-6fd4-409a-ab38-a8c669b69c99",
            "region": "Ulvila",
            "number": 2
          }
        ]
      },
      "image": {
        "id": "00ed37ab-7a47-45b3-9419-543a40b3c3f2",
        "name": "Ubuntu",
        "version": "14.04"
      },
      "ports": [
        {
          "id": "b986b9ca-933c-4a11-9ab5-d952378a2e0c",
          "description": "",
          "name": "",
          "network_id": "165d4a26-2114-4a14-9e75-b865b48e2ce0",
          "mac_address": "fa:16:3e:82:72:e6",
          "admin_state_up": true,
          "status": "ACTIVE",
          "device_id": "3dcc547c-457b-42fb-855d-a90b5334c41c",
          "device_owner": "compute:None",
          "ip_allocations": [
            {
              "ip_address": "192.168.2.5",
              "subnet_id": "9874325d-754c-4e66-989e-e5d83e5d8248"
            },
            {
              "ip_address": "abc0::5",
              "subnet_id": "339c4393-3d74-4e7c-b10d-e23c58d0b1fb"
            }
          ]
        }
      ],
      "password": "VkFBtuK6",
      "username": "ubuntu"
    }
    

    Request

    POST/vps/compute/v1/instances/{instance_id}/action

    Parameters

    Parameter Required Type Description
    rebuild true object A rebuild object.
    image_id true string An ID of the image you want to rebuild from.
    name false string A new name for the instance.

    Instance port interfaces

    List all interfaces of an instance

    Returns a list of all the port interfaces of the instance.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instances/cb9a2e15-2d5a-446e-ab1e-ec071ae126d1/interfaces" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "id": "9fb57a9b-1b0e-45de-863e-73373ebff4d4",
        "description": "",
        "name": "",
        "network_id": "bdcffe24-89a2-4c72-80df-2709997192a7",
        "mac_address": "fa:16:3e:cf:e0:b8",
        "admin_state_up": true,
        "status": "ACTIVE",
        "device_id": "19b1fa7a-7f5e-4806-8b6a-04472e46c3ba",
        "device_owner": "compute:None",
        "ip_allocations": [
          {
            "ip_address": "192.168.255.44",
            "subnet_id": "efa9c254-48bd-4d96-925f-a44a21828513"
          }
        ]
      }
    ]
    

    Request

    GET/vps/compute/v1/instances/{instance_id}/interfaces

    Show instance interface details

    Returns a detailed description of the instance port interface.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instances/19b1fa7a-7f5e-4806-8b6a-04472e46c3ba/interfaces/9fb57a9b-1b0e-45de-863e-73373ebff4d4" \
      -H 'Authorization: my-api-key'
    

    Example response

    {
      "id": "9fb57a9b-1b0e-45de-863e-73373ebff4d4",
      "description": "",
      "name": "",
      "network_id": "bdcffe24-89a2-4c72-80df-2709997192a7",
      "mac_address": "fa:16:3e:cf:e0:b8",
      "admin_state_up": true,
      "status": "ACTIVE",
      "device_id": "19b1fa7a-7f5e-4806-8b6a-04472e46c3ba",
      "device_owner": "compute:None",
      "ip_allocations": [
        {
          "ip_address": "192.168.255.44",
          "subnet_id": "efa9c254-48bd-4d96-925f-a44a21828513"
        }
      ]
    }
    

    Request

    GET/vps/compute/v1/instances/{instance_id}/interfaces/{interface_id}

    Create instance interface

    Creates a port interface for the instance in a network. Returns the newly created port object.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instances/19b1fa7a-7f5e-4806-8b6a-04472e46c3ba/interfaces" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "network_id": "165d4a26-2114-4a14-9e75-b865b48e2ce0"
      }'
    

    Example response

    {
      "id": "6421a7c1-156f-4e03-94c8-c844cc22eeef",
      "description": "",
      "name": "",
      "network_id": "165d4a26-2114-4a14-9e75-b865b48e2ce0",
      "mac_address": "fa:16:3e:82:3a:05",
      "admin_state_up": true,
      "status": "DOWN",
      "device_id": "19b1fa7a-7f5e-4806-8b6a-04472e46c3ba",
      "device_owner": "compute:None",
      "ip_allocations": [
        {
          "ip_address": "192.168.2.7",
          "subnet_id": "9874325d-754c-4e66-989e-e5d83e5d8248"
        },
        {
          "ip_address": "abc0::7",
          "subnet_id": "339c4393-3d74-4e7c-b10d-e23c58d0b1fb"
        }
      ]
    }
    

    Request

    POST/vps/compute/v1/instances/{instance_id}/interfaces

    Parameters

    Parameter Required Type Description
    network_id true string ID of the network you wish to attach the instance to, or 'public' if you want to attach the instance to a public network.

    Delete instance interface

    Deletes a port interface from the instance.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instances/19b1fa7a-7f5e-4806-8b6a-04472e46c3ba/interfaces/6421a7c1-156f-4e03-94c8-c844cc22eeef" \
      -H 'Authorization: my-api-key' \
      -X DELETE
    

    Request

    DELETE/vps/compute/v1/instances/{instance_id}/interfaces/{interface_id}

    Instance users

    List all instance users

    Returns a list of all your instance users.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instance-users" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "id": 15,
        "username": "my-instance-user-1",
        "ssh_keys": [
          {
            "name": "my-ssh-key-1",
            "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEUVNcJAFp1Q1jTa6fr/Jxv2J2jq3BSdYFL6TsVSfXX2m/v6bT9LrGxF2hbjHei9dsMxSW7Ksc6MgSomCmPfJwHJDX5SBQfZc8OmV861XDjOqT2aSxZ+oKXx78esGa+9SK2epYcX5lwShUQiu4ET+oXt8kUHQa1vRTYKTQjt311ztgR0x2T+wsEoC1XU+sxZKKess7CefLK6TnmBXPdwVrF0KVzY+Bk8H23wQjX9iA3gHriY1bP4k5V4lKFf4bVqugrlFUM/6hZy3rtrBfiGe+6ifJUx8EUh5W1F/xQ/xvFJvHxsAu/Bcz/nxuK40mUetyR4VVwXhfy0wUt/CH48MV Generated-by-Nova",
            "created_at": "2018-05-07T07:42:09.000+00:00",
            "fingerprint": "d8:38:c5:cb:fb:c4:10:c1:c5:cb:c8:24:b6:51:d5:09"
          },
          {
            "name": "my-ssh-key-2",
            "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7200jxzHXwhByvZcGKX5SwoojvoJJABjA/cYTr/lQJ4X7ulejGqBflTO05xB0v2uNeB4N462oAdU8guhJv7xYZgNRCG8ibOUcQArMxEuIVbBKjnpi6+HsitSY5xAkNaKVTRlaIm2vxgaLTBIQhu4IsrH1QiINHREGdduKN89M1T7HkAbPV0aLPZG/EwjJEWfQQs9XYwZ0kXJB3uGt7NQecQg9/UVzFaz1imA6IC2O9Sh+GVyo04x4KCvKDbHek1XRGUt3LaN4aNLZ9ZRmTmyvaq267RQRcMPVNKsPBxR9NfY5nCz9XT4U/Ra4+Guw4DrVE+OCYKcDel8xzjTN8wJZ Generated-by-Nova",
            "created_at": "2018-05-07T07:42:12.000+00:00",
            "fingerprint": "dc:d4:b6:59:ba:15:14:f2:cb:4b:ab:32:ef:a4:3d:55"
          }
        ],
        "disable_password": false,
        "created_at": "2018-04-25T09:42:26.410Z"
      },
      {
        "id": 16,
        "username": "my-instance-user-2",
        "ssh_keys": [
          {
            "name": "my-ssh-key-1",
            "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEUVNcJAFp1Q1jTa6fr/Jxv2J2jq3BSdYFL6TsVSfXX2m/v6bT9LrGxF2hbjHei9dsMxSW7Ksc6MgSomCmPfJwHJDX5SBQfZc8OmV861XDjOqT2aSxZ+oKXx78esGa+9SK2epYcX5lwShUQiu4ET+oXt8kUHQa1vRTYKTQjt311ztgR0x2T+wsEoC1XU+sxZKKess7CefLK6TnmBXPdwVrF0KVzY+Bk8H23wQjX9iA3gHriY1bP4k5V4lKFf4bVqugrlFUM/6hZy3rtrBfiGe+6ifJUx8EUh5W1F/xQ/xvFJvHxsAu/Bcz/nxuK40mUetyR4VVwXhfy0wUt/CH48MV Generated-by-Nova",
            "created_at": "2018-05-07T07:42:09.000+00:00",
            "fingerprint": "d8:38:c5:cb:fb:c4:10:c1:c5:cb:c8:24:b6:51:d5:09"
          }
        ],
        "disable_password": false,
        "created_at": "2018-04-25T09:42:45.894Z"
      }
    ]
    

    Request

    GET/vps/compute/v1/instance-users

    Show instance user details

    Returns a detailed description of the instance user.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instance-users/15" \
      -H 'Authorization: my-api-key'
    

    Example response

    {
      "id": 15,
      "username": "my-instance-user-1",
      "ssh_keys": [
        {
          "name": "my-ssh-key-1",
          "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEUVNcJAFp1Q1jTa6fr/Jxv2J2jq3BSdYFL6TsVSfXX2m/v6bT9LrGxF2hbjHei9dsMxSW7Ksc6MgSomCmPfJwHJDX5SBQfZc8OmV861XDjOqT2aSxZ+oKXx78esGa+9SK2epYcX5lwShUQiu4ET+oXt8kUHQa1vRTYKTQjt311ztgR0x2T+wsEoC1XU+sxZKKess7CefLK6TnmBXPdwVrF0KVzY+Bk8H23wQjX9iA3gHriY1bP4k5V4lKFf4bVqugrlFUM/6hZy3rtrBfiGe+6ifJUx8EUh5W1F/xQ/xvFJvHxsAu/Bcz/nxuK40mUetyR4VVwXhfy0wUt/CH48MV Generated-by-Nova",
          "created_at": "2018-05-07T07:42:09.000+00:00",
          "fingerprint": "d8:38:c5:cb:fb:c4:10:c1:c5:cb:c8:24:b6:51:d5:09"
        },
        {
          "name": "my-ssh-key-2",
          "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7200jxzHXwhByvZcGKX5SwoojvoJJABjA/cYTr/lQJ4X7ulejGqBflTO05xB0v2uNeB4N462oAdU8guhJv7xYZgNRCG8ibOUcQArMxEuIVbBKjnpi6+HsitSY5xAkNaKVTRlaIm2vxgaLTBIQhu4IsrH1QiINHREGdduKN89M1T7HkAbPV0aLPZG/EwjJEWfQQs9XYwZ0kXJB3uGt7NQecQg9/UVzFaz1imA6IC2O9Sh+GVyo04x4KCvKDbHek1XRGUt3LaN4aNLZ9ZRmTmyvaq267RQRcMPVNKsPBxR9NfY5nCz9XT4U/Ra4+Guw4DrVE+OCYKcDel8xzjTN8wJZ Generated-by-Nova",
          "created_at": "2018-05-07T07:42:12.000+00:00",
          "fingerprint": "dc:d4:b6:59:ba:15:14:f2:cb:4b:ab:32:ef:a4:3d:55"
        }
      ],
      "disable_password": false,
      "created_at": "2018-04-25T09:42:26.410Z"
    }
    

    Request

    GET/vps/compute/v1/instance-users/{instance_user_id}

    Create instance user

    Creates an instance user.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instance-users" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "instance_user": {
          "username": "my-instance-user-1",
          "disable_password": false,
          "password": "my-password",
          "password_confirmation": "my-password",
          "ssh_keys": [
            "my-ssh-key-1", "my-ssh-key-2"
          ]
        }
      }'
    

    Example response

    {
      "id": 15,
      "username": "my-instance-user-1",
      "ssh_keys": [
        {
          "name": "my-ssh-key-1",
          "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEUVNcJAFp1Q1jTa6fr/Jxv2J2jq3BSdYFL6TsVSfXX2m/v6bT9LrGxF2hbjHei9dsMxSW7Ksc6MgSomCmPfJwHJDX5SBQfZc8OmV861XDjOqT2aSxZ+oKXx78esGa+9SK2epYcX5lwShUQiu4ET+oXt8kUHQa1vRTYKTQjt311ztgR0x2T+wsEoC1XU+sxZKKess7CefLK6TnmBXPdwVrF0KVzY+Bk8H23wQjX9iA3gHriY1bP4k5V4lKFf4bVqugrlFUM/6hZy3rtrBfiGe+6ifJUx8EUh5W1F/xQ/xvFJvHxsAu/Bcz/nxuK40mUetyR4VVwXhfy0wUt/CH48MV Generated-by-Nova",
          "created_at": "2018-05-07T07:42:09.000+00:00",
          "fingerprint": "d8:38:c5:cb:fb:c4:10:c1:c5:cb:c8:24:b6:51:d5:09"
        },
        {
          "name": "my-ssh-key-2",
          "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7200jxzHXwhByvZcGKX5SwoojvoJJABjA/cYTr/lQJ4X7ulejGqBflTO05xB0v2uNeB4N462oAdU8guhJv7xYZgNRCG8ibOUcQArMxEuIVbBKjnpi6+HsitSY5xAkNaKVTRlaIm2vxgaLTBIQhu4IsrH1QiINHREGdduKN89M1T7HkAbPV0aLPZG/EwjJEWfQQs9XYwZ0kXJB3uGt7NQecQg9/UVzFaz1imA6IC2O9Sh+GVyo04x4KCvKDbHek1XRGUt3LaN4aNLZ9ZRmTmyvaq267RQRcMPVNKsPBxR9NfY5nCz9XT4U/Ra4+Guw4DrVE+OCYKcDel8xzjTN8wJZ Generated-by-Nova",
          "created_at": "2018-05-07T07:42:12.000+00:00",
          "fingerprint": "dc:d4:b6:59:ba:15:14:f2:cb:4b:ab:32:ef:a4:3d:55"
        }
      ],
      "disable_password": false,
      "created_at": "2018-04-25T09:42:26.410Z"
    }
    

    Request

    POST/vps/compute/v1/instance-users

    Parameters

    Parameter Required Type Description
    instance_user true object An instance_user object.
    username true string The username you want for the instance user.
    password false string The password you want for this instance user. Required if disable_password is set to false.
    password_confirmation false string Has to match the password. Required if password is given.
    ssh_keys false array An array of SSH key names you want to associate with the instance user. SSH keys are required if disable_password is set to true.
    disable_password false boolean Defaults to true. Set to false if you wish to enable password authentication.

    Update instance user

    Updates an existing instance user and returns the updated instance user.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instance-users/15" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X PATCH -d '{
        "instance_user": {
          "username": "new-username"
        }
      }'
    

    Example response

    {
      "id": 15,
      "username": "new-username",
      "ssh_keys": [
        {
          "name": "my-ssh-key-1",
          "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEUVNcJAFp1Q1jTa6fr/Jxv2J2jq3BSdYFL6TsVSfXX2m/v6bT9LrGxF2hbjHei9dsMxSW7Ksc6MgSomCmPfJwHJDX5SBQfZc8OmV861XDjOqT2aSxZ+oKXx78esGa+9SK2epYcX5lwShUQiu4ET+oXt8kUHQa1vRTYKTQjt311ztgR0x2T+wsEoC1XU+sxZKKess7CefLK6TnmBXPdwVrF0KVzY+Bk8H23wQjX9iA3gHriY1bP4k5V4lKFf4bVqugrlFUM/6hZy3rtrBfiGe+6ifJUx8EUh5W1F/xQ/xvFJvHxsAu/Bcz/nxuK40mUetyR4VVwXhfy0wUt/CH48MV Generated-by-Nova",
          "created_at": "2018-05-07T07:42:09.000+00:00",
          "fingerprint": "d8:38:c5:cb:fb:c4:10:c1:c5:cb:c8:24:b6:51:d5:09"
        },
        {
          "name": "my-ssh-key-2",
          "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7200jxzHXwhByvZcGKX5SwoojvoJJABjA/cYTr/lQJ4X7ulejGqBflTO05xB0v2uNeB4N462oAdU8guhJv7xYZgNRCG8ibOUcQArMxEuIVbBKjnpi6+HsitSY5xAkNaKVTRlaIm2vxgaLTBIQhu4IsrH1QiINHREGdduKN89M1T7HkAbPV0aLPZG/EwjJEWfQQs9XYwZ0kXJB3uGt7NQecQg9/UVzFaz1imA6IC2O9Sh+GVyo04x4KCvKDbHek1XRGUt3LaN4aNLZ9ZRmTmyvaq267RQRcMPVNKsPBxR9NfY5nCz9XT4U/Ra4+Guw4DrVE+OCYKcDel8xzjTN8wJZ Generated-by-Nova",
          "created_at": "2018-05-07T07:42:12.000+00:00",
          "fingerprint": "dc:d4:b6:59:ba:15:14:f2:cb:4b:ab:32:ef:a4:3d:55"
        }
      ],
      "disable_password": false,
      "created_at": "2018-04-25T09:42:26.410Z"
    }
    

    Request

    PATCH/vps/compute/v1/instance-users/{instance_user_id}

    Parameters

    Parameter Required Type Description
    instance_user true object An instance_user object.
    username true string The new username you want for the instance user.
    password false string The new password you want for this instance user. Required if disable_password is set to false and no password exists for the instance user currently.
    password_confirmation false string Has to match the password. Required if password is given.
    ssh_keys false array An array of SSH key names you want to associate with the instance user. This will completely overwrite the old SSH keys. SSH keys are required if disable_password is set to true.
    disable_password false boolean Defaults to true. Set to false if you wish to enable password authentication.

    Delete instance user

    Deletes the instance user and returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instance-users/15" \
      -H 'Authorization: my-api-key' \
      -X DELETE
    

    Request

    DELETE/vps/compute/v1/instance-users/{instance_user_id}

    Instance scripts

    List all instance scripts

    Returns a list of all your instance scripts.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instance-scripts" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "id": 76,
        "name": "my-instance-script-1",
        "description": "A script that sets up my user how I want it.",
        "script": "I2Nsb3VkLWNvbmZpZw0KLS0tDQp1c2VyczoNCi0gbmFtZTogbXl1c2VyMg0KICBzdWRvOiBBTEw9KEFMTCkgTk9QQVNTV0Q6QUxMDQogIHNoZWxsOiAiL2Jpbi9iYXNoIg0KICBzc2gtYXV0aG9yaXplZC1rZXlzOg0KICAtIHNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQURBUUFCQUFBQkFRQzZudTBVUmtoK0xKdTNGQ3RjakNRSDVEL29ibHIreGUzL1BVWUVKZXdvWWs4V08vc2xBVFN1Q3JJMHZGT2VGakd6NitLcDFkRVdYM0pudWkrKzNHNXdkeXA5VHlYeUNlMmF5dTErcUpOVWxJeUhMUXpyK0hJNjhza0l4Y1hLeVZ4UGZ6YlBiWXJ0d0VxazJiN2JlQ3NPRWUzNlNFUGhMNHVhaUh5eFRnWnBaTEI5TDdsaUxhZVBBNVZ5SFAxdW9Mbkx5R0JxZEFZZXBIaEZqOXNCQ0FWVmY0N1hSYVF3dXZzYjRYVHdZNDdLRTVwUktYck5DdGNobGtMUVo1cS8zOTFCQ1VpWW1qV0FkNUwveW00NnhlL3hwZUh5N2x1WDFMUCthTDlRd1Z6M0VYYTMzQlRlUk1CaERpV2RMdExvM3NJbVBsZVg5ZktZWk1CS1o4dlVJTTBEDQogICAgR2VuZXJhdGVkLWJ5LU5vdmENCg==",
        "created_at": "2018-05-04T12:54:45.846Z"
      }
    ]
    

    Request

    GET/vps/compute/v1/instance-scripts

    Show instance script details

    Returns a detailed description of the instance script.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instance-scripts/15" \
      -H 'Authorization: my-api-key'
    

    Example response

    {
      "id": 76,
      "name": "my-instance-script-1",
      "description": "A script that sets up my user how I want it.",
      "script": "I2Nsb3VkLWNvbmZpZw0KLS0tDQp1c2VyczoNCi0gbmFtZTogbXl1c2VyMg0KICBzdWRvOiBBTEw9KEFMTCkgTk9QQVNTV0Q6QUxMDQogIHNoZWxsOiAiL2Jpbi9iYXNoIg0KICBzc2gtYXV0aG9yaXplZC1rZXlzOg0KICAtIHNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQURBUUFCQUFBQkFRQzZudTBVUmtoK0xKdTNGQ3RjakNRSDVEL29ibHIreGUzL1BVWUVKZXdvWWs4V08vc2xBVFN1Q3JJMHZGT2VGakd6NitLcDFkRVdYM0pudWkrKzNHNXdkeXA5VHlYeUNlMmF5dTErcUpOVWxJeUhMUXpyK0hJNjhza0l4Y1hLeVZ4UGZ6YlBiWXJ0d0VxazJiN2JlQ3NPRWUzNlNFUGhMNHVhaUh5eFRnWnBaTEI5TDdsaUxhZVBBNVZ5SFAxdW9Mbkx5R0JxZEFZZXBIaEZqOXNCQ0FWVmY0N1hSYVF3dXZzYjRYVHdZNDdLRTVwUktYck5DdGNobGtMUVo1cS8zOTFCQ1VpWW1qV0FkNUwveW00NnhlL3hwZUh5N2x1WDFMUCthTDlRd1Z6M0VYYTMzQlRlUk1CaERpV2RMdExvM3NJbVBsZVg5ZktZWk1CS1o4dlVJTTBEDQogICAgR2VuZXJhdGVkLWJ5LU5vdmENCg==",
      "created_at": "2018-05-04T12:54:45.846Z"
    }
    

    Request

    GET/vps/compute/v1/instance-scripts/{instance_id}

    Create instance script

    Creates an instance script.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instance-scripts" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "instance_script": {
          "name": "my-instance-script-1",
          "description": "A script that sets up my user how I want it.",
          "script": "I2Nsb3VkLWNvbmZpZw0KLS0tDQp1c2VyczoNCi0gbmFtZTogbXl1c2VyMg0KICBzdWRvOiBBTEw9KEFMTCkgTk9QQVNTV0Q6QUxMDQogIHNoZWxsOiAiL2Jpbi9iYXNoIg0KICBzc2gtYXV0aG9yaXplZC1rZXlzOg0KICAtIHNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQURBUUFCQUFBQkFRQzZudTBVUmtoK0xKdTNGQ3RjakNRSDVEL29ibHIreGUzL1BVWUVKZXdvWWs4V08vc2xBVFN1Q3JJMHZGT2VGakd6NitLcDFkRVdYM0pudWkrKzNHNXdkeXA5VHlYeUNlMmF5dTErcUpOVWxJeUhMUXpyK0hJNjhza0l4Y1hLeVZ4UGZ6YlBiWXJ0d0VxazJiN2JlQ3NPRWUzNlNFUGhMNHVhaUh5eFRnWnBaTEI5TDdsaUxhZVBBNVZ5SFAxdW9Mbkx5R0JxZEFZZXBIaEZqOXNCQ0FWVmY0N1hSYVF3dXZzYjRYVHdZNDdLRTVwUktYck5DdGNobGtMUVo1cS8zOTFCQ1VpWW1qV0FkNUwveW00NnhlL3hwZUh5N2x1WDFMUCthTDlRd1Z6M0VYYTMzQlRlUk1CaERpV2RMdExvM3NJbVBsZVg5ZktZWk1CS1o4dlVJTTBEDQogICAgR2VuZXJhdGVkLWJ5LU5vdmENCg==",
        }
      }'
    

    Example response

    {
      "id": 76,
      "name": "my-instance-script-1",
      "description": "A script that sets up my user how I want it.",
      "script": "I2Nsb3VkLWNvbmZpZw0KLS0tDQp1c2VyczoNCi0gbmFtZTogbXl1c2VyMg0KICBzdWRvOiBBTEw9KEFMTCkgTk9QQVNTV0Q6QUxMDQogIHNoZWxsOiAiL2Jpbi9iYXNoIg0KICBzc2gtYXV0aG9yaXplZC1rZXlzOg0KICAtIHNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQURBUUFCQUFBQkFRQzZudTBVUmtoK0xKdTNGQ3RjakNRSDVEL29ibHIreGUzL1BVWUVKZXdvWWs4V08vc2xBVFN1Q3JJMHZGT2VGakd6NitLcDFkRVdYM0pudWkrKzNHNXdkeXA5VHlYeUNlMmF5dTErcUpOVWxJeUhMUXpyK0hJNjhza0l4Y1hLeVZ4UGZ6YlBiWXJ0d0VxazJiN2JlQ3NPRWUzNlNFUGhMNHVhaUh5eFRnWnBaTEI5TDdsaUxhZVBBNVZ5SFAxdW9Mbkx5R0JxZEFZZXBIaEZqOXNCQ0FWVmY0N1hSYVF3dXZzYjRYVHdZNDdLRTVwUktYck5DdGNobGtMUVo1cS8zOTFCQ1VpWW1qV0FkNUwveW00NnhlL3hwZUh5N2x1WDFMUCthTDlRd1Z6M0VYYTMzQlRlUk1CaERpV2RMdExvM3NJbVBsZVg5ZktZWk1CS1o4dlVJTTBEDQogICAgR2VuZXJhdGVkLWJ5LU5vdmENCg==",
      "created_at": "2018-05-04T12:54:45.846Z"
    }
    

    Request

    POST/vps/compute/v1/instance-scripts

    Parameters

    Parameter Required Type Description
    instance_script true object An instance_script object.
    name true string The name you want for the instance script.
    description false string A description for the instance script.
    script true string The script you want to run on first boot. The script must be given as a strict Base64 encoded string. Meaning linebreak characters (\n) are not allowed.

    Update instance script

    Updates an existing instance script and returns the updated instance script.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instance-users/76" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X PATCH -d '{
        "instance_script": {
          "name": "new-script-name"
        }
      }'
    

    Example response

    {
      "id": 76,
      "name": "new-script-name",
      "description": "A script that sets up my user how I want it.",
      "script": "I2Nsb3VkLWNvbmZpZw0KLS0tDQp1c2VyczoNCi0gbmFtZTogbXl1c2VyMg0KICBzdWRvOiBBTEw9KEFMTCkgTk9QQVNTV0Q6QUxMDQogIHNoZWxsOiAiL2Jpbi9iYXNoIg0KICBzc2gtYXV0aG9yaXplZC1rZXlzOg0KICAtIHNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQURBUUFCQUFBQkFRQzZudTBVUmtoK0xKdTNGQ3RjakNRSDVEL29ibHIreGUzL1BVWUVKZXdvWWs4V08vc2xBVFN1Q3JJMHZGT2VGakd6NitLcDFkRVdYM0pudWkrKzNHNXdkeXA5VHlYeUNlMmF5dTErcUpOVWxJeUhMUXpyK0hJNjhza0l4Y1hLeVZ4UGZ6YlBiWXJ0d0VxazJiN2JlQ3NPRWUzNlNFUGhMNHVhaUh5eFRnWnBaTEI5TDdsaUxhZVBBNVZ5SFAxdW9Mbkx5R0JxZEFZZXBIaEZqOXNCQ0FWVmY0N1hSYVF3dXZzYjRYVHdZNDdLRTVwUktYck5DdGNobGtMUVo1cS8zOTFCQ1VpWW1qV0FkNUwveW00NnhlL3hwZUh5N2x1WDFMUCthTDlRd1Z6M0VYYTMzQlRlUk1CaERpV2RMdExvM3NJbVBsZVg5ZktZWk1CS1o4dlVJTTBEDQogICAgR2VuZXJhdGVkLWJ5LU5vdmENCg==",
      "created_at": "2018-05-04T12:54:45.846Z"
    }
    

    Request

    PATCH/vps/compute/v1/instance-scripts/{instance_script_id}

    Parameters

    Parameter Required Type Description
    instance_script true object An instance_script object.
    name true string The name you want for the instance script.
    description false string A description for the instance script.
    script true string The script you want to run on first boot. The script must be given as a strict Base64 encoded string. Meaning linebreak characters (\n) are not allowed.

    Delete instance user

    Deletes the instance user and returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/instance-users/15" \
      -H 'Authorization: my-api-key' \
      -X DELETE
    

    Request

    DELETE/vps/compute/v1/instance-users/{instance_user_id}

    Configurations

    List all configurations

    Returns a list of all available configurations for instances.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/configurations" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "id": "6cb38035-1c37-453d-ab44-ce3ac54f6ce5",
        "cpu": 2,
        "disk_type": "ssd",
        "disk": 50,
        "ram": 1024,
        "bandwidth": "1000.0",
        "availability_zones": [
          {
            "id": "b7061120-6fd4-409a-ab38-a8c669b69c99",
            "region": "Ulvila",
            "number": 2
          }
        ]
      },
      {
        "id": "9c345ee8-9f33-49e0-80d6-73a1f766a268",
        "cpu": 1,
        "disk_type": "hdd",
        "disk": 50,
        "ram": 512,
        "bandwidth": "500.0",
        "availability_zones": [
          {
            "id": "b7061120-6fd4-409a-ab38-a8c669b69c99",
            "region": "Ulvila",
            "number": 2
          }
        ]
      },
      {
        "id": "0df068bc-21fb-4b77-8efb-9f39ede79d63",
        "cpu": 1,
        "disk_type": "ssd",
        "disk": 50,
        "ram": 512,
        "bandwidth": "750.0",
        "availability_zones": [
          {
            "id": "b7061120-6fd4-409a-ab38-a8c669b69c99",
            "region": "Ulvila",
            "number": 2
          }
        ]
      },
      {
        "id": "6938285d-e79e-45fd-af04-1fdcae5e2090",
        "cpu": 1,
        "disk_type": "hdd",
        "disk": 50,
        "ram": 2048,
        "bandwidth": "4000.0",
        "availability_zones": [
          {
            "id": "b7061120-6fd4-409a-ab38-a8c669b69c99",
            "region": "Ulvila",
            "number": 2
          }
        ]
      },
      {
        "id": "9859841d-772c-4305-9e1e-940f13b4c014",
        "cpu": 1,
        "ram": 512,
        "disk_type": "nvme",
        "disk": 5,
        "bandwidth": "10000.0",
        "availability_zones": [
          {
            "id": "702b4979-5a1b-47c8-b539-d10ec9825cfd",
            "region": "Ulvila",
            "number": 1
          }
        ]
      },
    ]
    

    Request

    GET/vps/compute/v1/configurations

    SSH keys

    List all SSH keys

    Returns a list of all your SSH keys.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/ssh-keys" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "created_at": "2017-11-16T13:24:14.000+00:00",
        "name": "API-ssh-key-001",
        "fingerprint": "c0:d3:ac:f8:86:b6:7a:73:18:19:de:0e:8c:c4:dc:d9",
        "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5Pa2HJiIbo231473EW7BUy71gCCQGt45SU42mC0AQH7JQUG7vSvLGGAE6GHPlDszTxKfRohmXx0IGiwPp785A7Doone7TuUpablqC9rvwRY0PL70/cauKez9sYtylBszVLXCmaTAqI2QnuO3nJYcP7HjbJLiwb5oSjz67+5IBsU2e6uY+lktJA+05XgFAXPxoc1bfiIr2t+k+Ob33PMwVJAetbPhR6qIQqCD6O3ByS79SfECPWsa/mtMbbmTAf6lfrGg/vy8a8dEjz2qi+D/n/TzTqoNtLS8HG3Ip3e9+1aoVHOu3XBWOByw3CoRQwRwrPAE78myB8Oj/ocGBxhkt Generated-by-Nova"
      },
      {
        "created_at": "2017-11-16T14:34:30.000+00:00",
        "name": "API-ssh-key-002",
        "fingerprint": "b8:8d:df:a1:79:7f:c1:f9:d7:08:99:4e:2b:cd:96:84",
        "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDbz2wQehcjKE8OEdLWnQBtsjAxn8VS2OGFhjPstCLRWCjhpHDttXIzhEQrmVRbcAZ++R+Pko3jIApGvAZJxPdWbQJlAGOr2FU1zmBPJW6y0thDpzRK8R6r0mmDPeSqFZi6pDnqoP8mKgQKlQW6f4uBv3qRCjKLNl9EGKtgnVbTl8hcWK21+Tg2QvqRDzQzQ61ALWoT9OVz9mtkHLfZ2m5qxGqL8UePX+AyD2Sx8DlUbCrbk+7/tU07wIYv5ATqZLRdDnVd6Y/JvJRCULns9p9++8o5gsIg/+rtaxPTx3YbfphJNeYKr2HzXPhRxHw3MafIvqhSPTsz332q3QOTfy0n Generated-by-Nova"
      }
    ]
    

    Request

    GET/vps/compute/v1/ssh-keys

    Show SSH key details

    Returns a detailed description of the SSH key.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/ssh-keys/API-ssh-key-001" \
      -H 'Authorization: my-api-key'
    

    Example response

    {
      "created_at": "2017-11-16T13:24:14.000+00:00",
      "name": "API-ssh-key-001",
      "fingerprint": "c0:d3:ac:f8:86:b6:7a:73:18:19:de:0e:8c:c4:dc:d9",
      "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5Pa2HJiIbo231473EW7BUy71gCCQGt45SU42mC0AQH7JQUG7vSvLGGAE6GHPlDszTxKfRohmXx0IGiwPp785A7Doone7TuUpablqC9rvwRY0PL70/cauKez9sYtylBszVLXCmaTAqI2QnuO3nJYcP7HjbJLiwb5oSjz67+5IBsU2e6uY+lktJA+05XgFAXPxoc1bfiIr2t+k+Ob33PMwVJAetbPhR6qIQqCD6O3ByS79SfECPWsa/mtMbbmTAf6lfrGg/vy8a8dEjz2qi+D/n/TzTqoNtLS8HG3Ip3e9+1aoVHOu3XBWOByw3CoRQwRwrPAE78myB8Oj/ocGBxhkt Generated-by-Nova"
    }
    

    Request

    GET/vps/compute/v1/ssh-keys/{ssh_key_name}

    Create SSH key

    Creates a SSH key.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/ssh-keys" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "ssh_key": {
          "name": "API-ssh-key-003",
          "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD1rrUa4dv6R8MUsD7jGTYYMrRrmGrjCI2+qE6Hp63Wgz4wjJ1RErE8Ja2BhtAPnS5ITjPdezYMGp8jzSC6MBJWzbSimktIcWARAV5OrarEp/XW9NzCDgpl60t8/S4snZ+Si4te42t0maS000kyJaCIpTLJpfftpu8DwuljotaLIT00G9S3uabuj2jQY8ymf9HjL8SysLOg+6qdeahx5RlxT4+A5mENljxFC1+QXAGoqNB8G91LEVd/JVD0lt0g53epUb2uzvtQ6q6lGyY7wmgSHQHiBXO2o+03FOojeaKLD3o2vNMdgwVUamW8gLnoreaZMS+AG+r/d/w9555oxPdb Generated-by-Nova"
        }
      }'
    

    Example response

    {
      "name": "API-ssh-key-003",
      "fingerprint": "52:8e:92:82:d2:81:88:20:b4:f8:63:56:47:ae:20:35",
      "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD1rrUa4dv6R8MUsD7jGTYYMrRrmGrjCI2+qE6Hp63Wgz4wjJ1RErE8Ja2BhtAPnS5ITjPdezYMGp8jzSC6MBJWzbSimktIcWARAV5OrarEp/XW9NzCDgpl60t8/S4snZ+Si4te42t0maS000kyJaCIpTLJpfftpu8DwuljotaLIT00G9S3uabuj2jQY8ymf9HjL8SysLOg+6qdeahx5RlxT4+A5mENljxFC1+QXAGoqNB8G91LEVd/JVD0lt0g53epUb2uzvtQ6q6lGyY7wmgSHQHiBXO2o+03FOojeaKLD3o2vNMdgwVUamW8gLnoreaZMS+AG+r/d/w9555oxPdb Generated-by-Nova"
    }
    

    Request

    POST/vps/compute/v1/ssh-keys

    Parameters

    Parameter Required Type Description
    ssh_key true object A ssh_key object.
    name true string The name you want for the SSH key. This must be unique, as the name is used as an ID also.
    public_key false string The public key to import. If not given, a keypair will be generated, and private key will be returned within the response.

    Delete SSH key

    Deletes the SSH key and returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/compute/v1/ssh-keys/API-ssh-key-001" \
      -H 'Authorization: my-api-key' \
      -X DELETE
    

    Request

    DELETE/vps/compute/v1/ssh-keys/{ssh_key_name}

    Image

    Operating systems

    List all operating systems

    Returns a list of all available operating systems for instances.

    Example request

    curl "https://api.tavu.io/vps/image/v1/operating-systems" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "id": "00ed37ab-7a47-45b3-9419-543a40b3c3f2",
        "name": "Ubuntu",
        "version": "14.04"
      },
      {
        "id": "00ed37ab-7a47-45b3-9419-543a40b3c3f2",
        "name": "Ubuntu",
        "version": "12.04"
      },
      {
        "id": "7d5c5b7d-414c-4e0a-ad41-67e75476a670",
        "name": "centos",
        "version": "7"
      }
    ]
    

    Request

    GET/vps/image/v1/operating-systems

    Instance snapshots

    List all instance snapshots

    Returns a list of all your instance snapshots.

    Example request

    curl "https://api.tavu.io/vps/image/v1/instance-snapshots" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "id": "62f39f1e-0ac0-4df3-9397-fb419560fbdb",
        "name": "API-instance-snapshot-001",
        "size": 936,
        "status": "active",
        "created_at": "2017-11-10T14:19:06.000+00:00",
        "instance_id": "1c06dd09-966b-4ea7-abf1-243b2a447c60"
      },
      {
        "id": "ae603e51-0366-44a0-b27a-cb3b06a4d092",
        "name": "API-instance-snapshot-002",
        "size": null,
        "status": "queued",
        "created_at": "2017-11-13T13:30:30.000+00:00",
        "instance_id": "1c06dd09-966b-4ea7-abf1-243b2a447c60"
      }
    ]
    

    Request

    GET/vps/image/v1/instance-snapshots

    Show instance snapshot details

    Returns a detailed description of the instance snapshot.

    Example request

    curl "https://api.tavu.io/vps/image/v1/instance-snapshots/62f39f1e-0ac0-4df3-9397-fb419560fbdb" \
      -H 'Authorization: my-api-key'
    

    Example response

    {
      "id": "62f39f1e-0ac0-4df3-9397-fb419560fbdb",
      "name": "API-instance-snapshot-001",
      "size": 936,
      "status": "active",
      "created_at": "2017-11-10T14:19:06.000+00:00",
      "instance_id": "1c06dd09-966b-4ea7-abf1-243b2a447c60"
    }
    

    Request

    GET/vps/image/v1/instance-snapshots/{instance_snapshot_id}

    Create instance snapshot

    Creates an instance snapshot.

    Example request

    curl "https://api.tavu.io/vps/image/v1/instance-snapshots" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "snapshot": {
          "name": "API-instance-snapshot-001",
          "instance_id": "1c06dd09-966b-4ea7-abf1-243b2a447c60"
        }
      }'
    

    Example response

    {
      "id": "f21cffd5-dc63-4e14-a325-9656c43ac4a0",
      "name": "API-instance-snapshot-001",
      "size": null,
      "status": "queued",
      "created_at": "2017-11-13T12:34:31.000+00:00",
      "instance_id": "1c06dd09-966b-4ea7-abf1-243b2a447c60"
    }
    

    Request

    POST/vps/image/v1/instance-snapshots

    Parameters

    Parameter Required Type Description
    snapshot true object A snapshot object.
    instance_id true string The ID of the instance you want to take a snapshot of.
    name true string The name you want for the instance snapshot.

    Delete instance snapshot

    Deletes the instance snapshot and returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/image/v1/instance-snapshots/07ffe712-eaf4-46e4-bbe4-3c5b340c66a8" \
      -H 'Authorization: my-api-key' \
      -X DELETE
    

    Request

    DELETE/vps/image/v1/instance-snapshots/{instance_snapshot_id}

    Storage

    Volumes

    List all volumes

    Returns a list of all your volumes.

    Example request

    curl "https://api.tavu.io/vps/storage/v1/volumes" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "created_at": "2017-10-27T12:44:04.000+03:00",
        "id": "1b16e59d-f30d-4e8f-96ea-600530c8e1df",
        "size": 1,
        "status": "in-use",
        "snapshot_id": null,
        "description": "This is an example volume.",
        "name": "API-volume-001",
        "snapshots": [
          {
            "created_at": "2017-10-30T11:30:38.000+02:00",
            "id": "fde6609f-4669-4b22-ab40-48836eed5b3f",
            "volume_id": "1b16e59d-f30d-4e8f-96ea-600530c8e1df",
            "volume_size": 1,
            "description": null,
            "name": "API-volume-snapshot-002"
          }
        ],
        "attachment": {
          "mounted_at": "/dev/vdb",
          "instance_id": "1c06dd09-966b-4ea7-abf1-243b2a447c60",
          "attach_time": "2017-10-30T09:38:24.000+02:00",
          "status": "attached"
        }
      },
      {
        "created_at": "2017-10-30T11:32:07.000+02:00",
        "id": "f5c32033-6f56-47a1-a1c0-94b44ab9ca29",
        "size": 1,
        "status": "available",
        "snapshot_id": "fde6609f-4669-4b22-ab40-48836eed5b3f",
        "description": "A brand new description.",
        "name": "Volume-001",
        "snapshots": [
          {
            "created_at": "2017-11-07T11:33:37.000+02:00",
            "id": "c674750f-6be4-44de-8c07-719987b8ee0c",
            "volume_id": "f5c32033-6f56-47a1-a1c0-94b44ab9ca29",
            "volume_size": 1,
            "description": null,
            "name": "API-volume-snapshot-001"
          }
        ]
      }
    ]
    

    Request

    GET/vps/storage/v1/volumes

    Show volume details

    Returns a detailed description of the volume.

    Example request

    curl "https://api.tavu.io/vps/storage/v1/volumes/1b16e59d-f30d-4e8f-96ea-600530c8e1df" \
      -H 'Authorization: my-api-key'
    

    Example response

    {
      "created_at": "2017-10-27T12:44:04.000+03:00",
      "id": "1b16e59d-f30d-4e8f-96ea-600530c8e1df",
      "size": 1,
      "status": "in-use",
      "snapshot_id": null,
      "description": "This is an example volume.",
      "name": "API-volume-001",
      "snapshots": [
        {
          "created_at": "2017-10-30T11:30:38.000+02:00",
          "id": "fde6609f-4669-4b22-ab40-48836eed5b3f",
          "volume_id": "1b16e59d-f30d-4e8f-96ea-600530c8e1df",
          "volume_size": 1,
          "description": null,
          "name": "API-volume-snapshot-002"
        }
      ],
      "attachment": {
        "mounted_at": "/dev/vdb",
        "instance_id": "1c06dd09-966b-4ea7-abf1-243b2a447c60",
        "attach_time": "2017-10-30T09:38:24.000+02:00",
        "status": "attached"
      }
    }
    

    Request

    GET/vps/storage/v1/volumes/{volume_id}

    Create volume

    Creates a volume.

    Example request

    curl "https://api.tavu.io/vps/storage/v1/volumes" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "volume": {
          "size": 1,
          "name": "Api-volume-001",
          "description": "This is an example volume."
        }
      }'
    

    Example response

    {
      "created_at": "2017-10-31T14:00:03.919355",
      "id": "6ed88946-8799-47d2-8e9c-49e5b53ce586",
      "size": 1,
      "status": "creating",
      "snapshot_id": null,
      "name": "Api-volume-001",
      "description": "This is an example volume."
    }
    

    Request

    POST/vps/storage/v1/volumes

    Parameters

    Parameter Required Type Description
    volume true object A volume object.
    size true integer The size you want for the volume in gigabytes.
    name true string The name you want for the volume.
    description false string The description you want for the volume.
    snapshot_id false string The snapshot you want to base the volume on.

    Update volume

    Updates an existing volume and returns the updated volume.

    Example request

    curl "https://api.tavu.io/vps/storage/v1/volumes/f5c32033-6f56-47a1-a1c0-94b44ab9ca29" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X PATCH -d '{
        "volume": {
          "name": "Volume-001",
          "description": "A brand new description."
        }
      }'
    

    Example response

    {
      "created_at": "2017-10-30T11:32:07.000000",
      "id": "f5c32033-6f56-47a1-a1c0-94b44ab9ca29",
      "size": 1,
      "status": "available",
      "snapshot_id": "fde6609f-4669-4b22-ab40-48836eed5b3f",
      "name": "Volume-001",
      "description": "A brand new description."
    }
    

    Request

    PATCH/vps/storage/v1/volumes/{volume_id}

    Parameters

    Parameter Required Type Description
    volume true object A volume object.
    name false string The new name for the volume.
    description false string The new description for the volume.

    Delete volume

    Deletes the volume and returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/storage/v1/volumes/1b16e59d-f30d-4e8f-96ea-600530c8e1df" \
      -H 'Authorization: my-api-key' \
      -X DELETE
    

    Request

    DELETE/vps/storage/v1/volumes/{volume_id}

    Attach volume to instance

    Attaches the volume to an instance. Returns the IDs of the volume and the instance, as well as the mount point of the volume on the instance.

    Example request

    curl "https://api.tavu.io/vps/storage/v1/volumes/f5c32033-6f56-47a1-a1c0-94b44ab9ca29/attach" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X PATCH -d '{
        "instance_id": "19b1fa7a-7f5e-4806-8b6a-04472e46c3ba"
      }'
    

    Example response

    {
      "volume_id": "f5c32033-6f56-47a1-a1c0-94b44ab9ca29",
      "instance_id": "19b1fa7a-7f5e-4806-8b6a-04472e46c3ba",
      "mount_point": "/dev/vdb"
    }
    

    Request

    PATCH/vps/storage/v1/volumes/{volume_id}/attach

    Parameters

    Parameter Required Type Description
    instance_id true string The ID of the instance you want to attach the volume to.

    Detach volume from instance

    Detaches the volume from an instance. Returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/storage/v1/volumes/f5c32033-6f56-47a1-a1c0-94b44ab9ca29/detach" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X PATCH -d '{
        "instance_id": "19b1fa7a-7f5e-4806-8b6a-04472e46c3ba"
      }'
    

    Request

    PATCH/vps/storage/v1/volumes/{volume_id}/detach

    Parameters

    Parameter Required Type Description
    instance_id true string The ID of the instance you want to detach the volume from.

    Volume snapshots

    List all volume snapshots

    Returns a list of all your volume snapshots.

    Example request

    curl "https://api.tavu.io/vps/storage/v1/volume-snapshots" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "created_at": "2017-11-07T11:33:37.000+02:00",
        "id": "c674750f-6be4-44de-8c07-719987b8ee0c",
        "volume_id": "f5c32033-6f56-47a1-a1c0-94b44ab9ca29",
        "volume_size": 1,
        "description": null,
        "name": "API-volume-snapshot-001"
      },
      {
        "created_at": "2017-10-30T11:30:38.000+02:00",
        "id": "fde6609f-4669-4b22-ab40-48836eed5b3f",
        "volume_id": "1b16e59d-f30d-4e8f-96ea-600530c8e1df",
        "volume_size": 1,
        "description": null,
        "name": "API-volume-snapshot-002"
      }
    ]
    

    Request

    GET/vps/storage/v1/volume-snapshots

    Show volume snapshot details

    Returns a detailed description of the volume snapshot.

    Example request

    curl "https://api.tavu.io/vps/storage/v1/volume-snapshots/c674750f-6be4-44de-8c07-719987b8ee0c" \
      -H 'Authorization: my-api-key'
    

    Example response

    {
      "created_at": "2017-11-07T11:33:37.000+02:00",
      "id": "c674750f-6be4-44de-8c07-719987b8ee0c",
      "volume_id": "f5c32033-6f56-47a1-a1c0-94b44ab9ca29",
      "volume_size": 1,
      "description": null,
      "name": "API-volume-snapshot-001"
    }
    

    Request

    GET/vps/storage/v1/volume-snapshots/{volume_snapshot_id}

    Create volume snapshot

    Creates a volume snapshot.

    Example request

    curl "https://api.tavu.io/vps/storage/v1/volume-snapshots" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "snapshot": {
          "name": "API-snapshot-001",
          "volume_id": "f5c32033-6f56-47a1-a1c0-94b44ab9ca29",
          "description": "This is an example snapshot."
        }
      }'
    

    Example response

    {
      "name": "API-snapshot-001",
      "description": "This is an example snapshot.",
      "volume_id": "f5c32033-6f56-47a1-a1c0-94b44ab9ca29",
      "created_at": "2017-11-10T09:56:44.951817",
      "id": "c1607b27-2f5c-43c6-b035-09d910967201",
      "volume_size": 1
    }
    

    Request

    POST/vps/storage/v1/volume-snapshots

    Parameters

    Parameter Required Type Description
    snapshot true object A snapshot object.
    volume_id true string The ID of the volume you want to take a snapshot of.
    name true string The name you want for the volume snapshot.
    description false string The description you want for the volume snapshot.

    Update volume snapshot

    Updates an existing volume snapshot and returns the updated volume snapshot.

    Example request

    curl "https://api.tavu.io/vps/storage/v1/volume-snapshots/c1607b27-2f5c-43c6-b035-09d910967201" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X PATCH -d '{
        "snapshot": {
          "name": "API-snapshot-002",
          "description": "A brand new description."
        }
      }'
    

    Example response

    {
      "name": "API-snapshot-002",
      "description": "A brand new description.",
      "volume_id": "f5c32033-6f56-47a1-a1c0-94b44ab9ca29",
      "created_at": "2017-11-10T09:56:44.000000",
      "id": "c1607b27-2f5c-43c6-b035-09d910967201",
      "volume_size": 1
    }
    

    Request

    PATCH/vps/storage/v1/volume-snapshots/{volume_snapshot_id}

    Parameters

    Parameter Required Type Description
    snapshot true object A snapshot object.
    name false string The new name for the volume snapshot.
    description false string The new description for the volume snapshot.

    Delete volume snapshot

    Deletes the volume snapshot and returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/storage/v1/volume-snapshots/8c9397a3-9f4f-41f2-a0e7-fadfb6c1b106" \
      -H 'Authorization: my-api-key' \
      -X DELETE
    

    Request

    DELETE/vps/storage/v1/volume-snapshots/{volume_snapshot_id}

    Networking

    Ports

    List all ports

    Returns a list of all your ports.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/ports" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "id": "0ae04bdd-e282-4601-b290-f0c29f293bf5",
        "description": "",
        "name": "",
        "network_id": "9ff312e4-3afb-45c3-ae32-18f96f15b317",
        "mac_address": "fa:16:3e:47:64:bd",
        "admin_state_up": 1,
        "status": "ACTIVE",
        "device_id": "dhcp4be0643f-1d98-573b-97cd-ca98a65347dd-9ff312e4-3afb-45c3-ae32-18f96f15b317",
        "device_owner": "network:dhcp",
        "ip_allocations": [
          {
            "ip_address": "192.168.1.2",
            "subnet_id": "cfff8364-bad7-4844-a2f0-1154600463d8",
            "network_id": "9ff312e4-3afb-45c3-ae32-18f96f15b317"
          }
        ]
      },
      {
        "id": "244eac20-d496-460c-a255-af8f3a107ce3",
        "description": "",
        "name": "",
        "network_id": "9ff312e4-3afb-45c3-ae32-18f96f15b317",
        "mac_address": "fa:16:3e:f0:09:a7",
        "admin_state_up": 1,
        "status": "ACTIVE",
        "device_id": "6ca83822-e89b-4607-b362-6580577005ab",
        "device_owner": "compute:None",
        "ip_allocations": [
          {
            "ip_address": "192.168.1.12",
            "subnet_id": "cfff8364-bad7-4844-a2f0-1154600463d8",
            "network_id": "9ff312e4-3afb-45c3-ae32-18f96f15b317"
          }
        ]
      }
    ]
    

    Request

    GET/vps/networking/v1/ports

    Show port details

    Returns a detailed description of the port.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/ports/0ae04bdd-e282-4601-b290-f0c29f293bf5" \
      -H 'Authorization: my-api-key'
    

    Example response

    {
      "id": "0ae04bdd-e282-4601-b290-f0c29f293bf5",
      "description": "",
      "name": "",
      "network_id": "9ff312e4-3afb-45c3-ae32-18f96f15b317",
      "mac_address": "fa:16:3e:47:64:bd",
      "admin_state_up": 1,
      "status": "ACTIVE",
      "device_id": "dhcp4be0643f-1d98-573b-97cd-ca98a65347dd-9ff312e4-3afb-45c3-ae32-18f96f15b317",
      "device_owner": "network:dhcp",
      "ip_allocations": [
        {
          "ip_address": "192.168.1.2",
          "subnet_id": "cfff8364-bad7-4844-a2f0-1154600463d8",
          "network_id": "9ff312e4-3afb-45c3-ae32-18f96f15b317"
        }
      ]
    }
    

    Request

    GET/vps/networking/v1/ports/{port_id}

    Update port

    Updates an existing port and returns the updated port.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/ports/022eb2ac-4dd8-4074-be76-227ab2c205ec" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X PATCH -d '{
        "port": {
          "name": "API-port-001",
          "description": "This is an example port.",
          "admin_state_up": true
        }
      }'
    

    Example response

    {
      "id": "022eb2ac-4dd8-4074-be76-227ab2c205ec",
      "description": "This is an example port.",
      "name": "API-port-001",
      "network_id": "165d4a26-2114-4a14-9e75-b865b48e2ce0",
      "mac_address": "fa:16:3e:79:9f:44",
      "admin_state_up": true,
      "status": "DOWN",
      "device_id": "cb9a2e15-2d5a-446e-ab1e-ec071ae126d1",
      "device_owner": "network:port_interface",
      "ip_allocations": [
        {
          "ip_address": "192.168.2.1",
          "subnet_id": "9874325d-754c-4e66-989e-e5d83e5d8248"
        }
      ]
    }
    

    Request

    PATCH/vps/networking/v1/ports/{port_id}

    Parameters

    Parameter Required Type Description
    port true object A port object.
    name false string The new name for the port.
    description false string The new description for the port.
    admin_state_up false boolean The new administrative state of the port, either up (true) or down (false).

    Networks

    List all networks

    Returns a list of all your networks.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/networks" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "id": "9ff312e4-3afb-45c3-ae32-18f96f15b317",
        "description": "",
        "name": "API-network-001",
        "status": "ACTIVE",
        "admin_state_up": true
      }
    ]
    

    Request

    GET/vps/networking/v1/networks

    Show network details

    Returns a detailed description of the network.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/networks/9ff312e4-3afb-45c3-ae32-18f96f15b317" \
      -H 'Authorization: my-api-key'
    

    Example response

    {
      "id": "9ff312e4-3afb-45c3-ae32-18f96f15b317",
      "description": "",
      "name": "API-network-001",
      "status": "ACTIVE",
      "admin_state_up": true
    }
    

    Request

    GET/vps/networking/v1/networks/{network_id}

    Create network

    Creates a network.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/networks" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "network": {
          "name": "API-network-001",
          "description": "This is an example network.",
          "admin_state_up": true
        }
      }'
    

    Example response

    {
      "id": "165d4a26-2114-4a14-9e75-b865b48e2ce0",
      "description": "This is an example network.",
      "name": "API-network-001",
      "status": "ACTIVE",
      "admin_state_up": true
    }
    

    Request

    POST/vps/networking/v1/networks

    Parameters

    Parameter Required Type Description
    network true object A network object.
    name true string The name you want for the network.
    description false string The description you want for the network.
    admin_state_up false boolean The administrative state of the network, either up (true) or down (false).

    Update network

    Updates an existing network and returns the updated network.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/networks/165d4a26-2114-4a14-9e75-b865b48e2ce0" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X PATCH -d '{
        "network": {
          "name": "Network-1",
          "description": "A brand new description.",
          "admin_state_up": false
        }
      }'
    

    Example response

    {
      "id": "165d4a26-2114-4a14-9e75-b865b48e2ce0",
      "description": "A brand new description.",
      "name": "Network-1",
      "status": "ACTIVE",
      "admin_state_up": false
    }
    

    Request

    PATCH/vps/networking/v1/networks/{network_id}

    Parameters

    Parameter Required Type Description
    network true object A network object.
    name false string The new name for the network.
    description false string The new description for the network.
    admin_state_up false boolean The new administrative state of the network, either up (true) or down (false).

    Delete network

    Deletes the network and returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/networks/d290eda3-7a62-41c9-8386-730b5d84013a" \
      -H 'Authorization: my-api-key' \
      -X DELETE
    

    Request

    DELETE/vps/networking/v1/networks/{network_id}

    Subnets

    List all subnets

    Returns a list of all your subnets.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/subnets" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "id": "9874325d-754c-4e66-989e-e5d83e5d8248",
        "description": "This is an example subnet.",
        "name": "API-subnet-001",
        "network_id": "165d4a26-2114-4a14-9e75-b865b48e2ce0",
        "ip_version": 4,
        "cidr": "192.168.2.0/24",
        "gateway_ip": "192.168.2.1",
        "enable_dhcp": false,
        "ipv6_ra_mode": null,
        "ipv6_address_mode": null,
        "allocation_pools": [
          {
            "start": "192.168.2.3",
            "end": "192.168.2.7"
          },
          {
            "start": "192.168.2.10",
            "end": "192.168.2.20"
          }
        ],
        "dns_nameservers": [
          "8.8.8.8"
        ],
        "host_routes": [
          {
            "destination": "192.168.2.6/32",
            "nexthop": "192.168.2.7"
          }
        ]
      },
      {
        "id": "df1e1f10-cf74-4d2f-bda9-12ecc18cf8bf",
        "description": "",
        "name": "API-subnet-003",
        "network_id": "165d4a26-2114-4a14-9e75-b865b48e2ce0",
        "ip_version": 6,
        "cidr": "abc0::/64",
        "gateway_ip": null,
        "enable_dhcp": true,
        "ipv6_ra_mode": "dhcpv6-stateful",
        "ipv6_address_mode": "dhcpv6-stateful",
        "allocation_pools": [
          {
            "start": "abc0::2",
            "end": "abc0::f"
          }
        ],
        "dns_nameservers": [],
        "host_routes": [
          {
            "destination": "abc0::0010/124",
            "nexthop": "abc0::0011"
          }
        ]
      }
    ]
    

    Request

    GET/vps/networking/v1/subnets

    Show subnet details

    Returns a detailed description of the subnet.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/subnets/9874325d-754c-4e66-989e-e5d83e5d8248" \
      -H 'Authorization: my-api-key'
    

    Example response

    {
      "id": "9874325d-754c-4e66-989e-e5d83e5d8248",
      "description": "This is an example subnet.",
      "name": "API-subnet-001",
      "network_id": "165d4a26-2114-4a14-9e75-b865b48e2ce0",
      "ip_version": 4,
      "cidr": "192.168.2.0/24",
      "gateway_ip": "192.168.2.1",
      "enable_dhcp": false,
      "ipv6_ra_mode": null,
      "ipv6_address_mode": null,
      "allocation_pools": [
        {
          "start": "192.168.2.3",
          "end": "192.168.2.7"
        },
        {
          "start": "192.168.2.10",
          "end": "192.168.2.20"
        }
      ],
      "dns_nameservers": [
        "8.8.8.8"
      ],
      "host_routes": [
        {
          "destination": "192.168.2.6/32",
          "nexthop": "192.168.2.7"
        }
      ]
    }
    

    Request

    GET/vps/networking/v1/subnets/{subnet_id}

    Create subnet

    Creates a subnet.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/subnets" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "subnet": {
          "network_id": "165d4a26-2114-4a14-9e75-b865b48e2ce0",
          "name": "API-subnet-001",
          "description": "This is an example subnet",
          "cidr": "192.168.2.0/24",
          "ip_version": 4,
          "gateway_ip": "192.168.2.1",
          "enable_dhcp": true,
          "dns_nameservers": [
            "8.8.8.8",
            "4.4.2.2"
          ],
          "allocation_pools": [
            {
              "start":"192.168.2.2",
              "end":"192.168.2.7"
            },
            {
              "start":"192.168.2.10",
              "end":"192.168.2.200"
            }
          ],
          "host_routes": [
            {
              "destination":"192.168.2.6/32",
              "nexthop":"192.168.2.7"
            }
          ]
        }
      }'
    

    Example response

    {
      "id": "9874325d-754c-4e66-989e-e5d83e5d8248",
      "name": "API-subnet-001",
      "description": "This is an example subnet",
      "cidr": "192.168.2.0/24",
      "gateway_ip": "192.168.2.1",
      "ip_version": 4,
      "enable_dhcp": true,
      "dns_nameservers": [
        "8.8.8.8",
        "4.4.2.2"
      ],
      "allocation_pools": [
        {
          "start": "192.168.2.10",
          "end": "192.168.2.200"
        },
        {
          "start": "192.168.2.2",
          "end": "192.168.2.7"
        }
      ],
      "host_routes": [
        {
          "nexthop": "192.168.2.7",
          "destination": "192.168.2.6/32"
        }
      ],
      "network_id": "165d4a26-2114-4a14-9e75-b865b48e2ce0",
      "ipv6_ra_mode": null,
      "ipv6_address_mode": null
    }
    

    Request

    POST/vps/networking/v1/subnets

    Parameters

    Parameter Required Type Description
    subnet true object A subnet object.
    name true string The name you want for the subnet.
    network_id true string The ID of the network you want this subnet to be a part of.
    cidr true string The CIDR you want for the subnet.
    ip_version true integer The IP version of the subnet. NOTE: this has to match with the CIDR IP version.
    description false string The description you want for the subnet.
    gateway_ip false string The gateway IP you want for the subnet.
    enable_dhcp false boolean Do you want the subnet to have DHCP enabled or not.
    ipv6_ra_mode false string IPv6 RA mode. Available options are: dhcpv6-stateless, dhcpv6-stateful and slaac.
    ipv6_address_mode false string IPv6 address mode. Available options are: dhcpv6-stateless, dhcpv6-stateful and slaac.
    dns_nameservers false array List of DNS nameserver IPs as strings.
    allocation_pools false array List of allocation pool objects, that contain start and end IP addresses.
    host_routes false array List of host route objects, that contain destination CIDR and nexthop IP address.

    Update subnet

    Updates an existing subnet and returns the updated subnet.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/subnets/9874325d-754c-4e66-989e-e5d83e5d8248" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X PATCH -d '{
        "subnet": {
          "name": "Subnet-001",
          "description": "A brand new description.",
          "gateway_ip": null,
          "enable_dhcp": false,
          "dns_nameservers": [
            "8.8.8.8"
          ],
          "allocation_pools": [
            {
              "start":"192.168.2.3",
              "end":"192.168.2.8"
            }
          ],
          "host_routes": []
        }
      }'
    

    Example response

    {
      "id": "9874325d-754c-4e66-989e-e5d83e5d8248",
      "name": "Subnet-001",
      "description": "A brand new description.",
      "cidr": "192.168.2.0/24",
      "gateway_ip": "192.168.2.1",
      "ip_version": 4,
      "enable_dhcp": false,
      "dns_nameservers": [
        "8.8.8.8"
      ],
      "allocation_pools": [
        {
          "start": "192.168.2.3",
          "end": "192.168.2.8"
        }
      ],
      "host_routes": [],
      "network_id": "165d4a26-2114-4a14-9e75-b865b48e2ce0",
      "ipv6_ra_mode": null,
      "ipv6_address_mode": null
    }
    

    Request

    PATCH/vps/networking/v1/subnets/{subnet_id}

    Parameters

    Parameter Required Type Description
    subnet true object A subnet object.
    name false string The new name for the subnet.
    description false string The new description for the subnet.
    gateway_ip false string The new gateway IP you want for the subnet.
    enable_dhcp false boolean Do you want the subnet to have DHCP enabled or not.
    dns_nameservers false array The new list of DNS nameserver IPs as strings.
    allocation_pools false array List of allocation pool objects, that contain start and end IP addresses.
    host_routes false array List of host route objects, that contain destination CIDR and nexthop IP address.

    Delete subnet

    Deletes the subnet and returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/subnets/09ebbf29-6aa9-421c-843b-ddd252b4cd2d" \
      -H 'Authorization: my-api-key' \
      -X DELETE
    

    Request

    DELETE/vps/networking/v1/subnets/{subnet_id}

    Firewalls

    List all firewalls

    Returns a list of all your firewalls.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/firewalls" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "id": "76850c34-7489-4182-b655-f2caba3bc955",
        "name": "API-firewall-002",
        "description": "This is an example firewall.",
        "audited": false,
        "admin_state_up": false,
        "status": "INACTIVE",
        "router_ids": []
      },
      {
        "id": "9648de6d-1a05-4794-a53c-fb29eb7c458a",
        "name": "API-firewall-001",
        "description": "",
        "audited": true,
        "admin_state_up": true,
        "status": "INACTIVE",
        "router_ids": []
      }
    ]
    

    Request

    GET/vps/networking/v1/firewalls

    Show firewall details

    Returns a detailed description of the firewall.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/firewalls/76850c34-7489-4182-b655-f2caba3bc955" \
      -H 'Authorization: my-api-key'
    

    Example response

    {
      "id": "76850c34-7489-4182-b655-f2caba3bc955",
      "name": "API-firewall-002",
      "description": "This is an example firewall.",
      "audited": false,
      "admin_state_up": false,
      "status": "INACTIVE",
      "router_ids": []
    }
    

    Request

    GET/vps/networking/v1/firewalls/{firewall_id}

    Update firewall

    Updates an existing firewall and returns the updated firewall.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/firewalls/76850c34-7489-4182-b655-f2caba3bc955" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X PATCH -d '{
        "firewall": {
          "name": "Firewall-001",
          "description": "A brand new description.",
          "admin_state_up": false,
          "router_ids": []
        }
      }'
    

    Example response

    {
      "name": "Firewall-001",
      "description": "A brand new description.",
      "admin_state_up": false,
      "router_ids": [],
      "id": "76850c34-7489-4182-b655-f2caba3bc955",
      "audited": false,
      "status": "PENDING_UPDATE"
    }
    

    Request

    PATCH/vps/networking/v1/firewalls/{firewall_id}

    Parameters

    Parameter Required Type Description
    firewall true object A firewall object.
    name false string The new name for the firewall.
    description false string The new description for the firewall.
    admin_state_up false boolean The new administrative state of the firewall, either up (true) or down (false).
    router_ids false array An array of IDs of the routers you wish the firewall to be attached to.

    Delete firewall

    Deletes the firewall and returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/firewalls/76850c34-7489-4182-b655-f2caba3bc955" \
      -H 'Authorization: my-api-key' \
      -X DELETE
    

    Request

    DELETE/vps/networking/v1/firewalls/{firewall_id}

    Audit firewall

    Changes firewall audit status to audited. Returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/firewalls/76850c34-7489-4182-b655-f2caba3bc955/audit" \
      -H 'Authorization: my-api-key'
    

    Request

    GET/vps/networking/v1/firewalls/{firewall_id}/audit

    Firewall rules

    List all rules of a firewall

    Returns a list of all the rules of the firewall.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/firewalls/76850c34-7489-4182-b655-f2caba3bc955/rules" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "id": "6276aab0-2ea7-4bdb-ba6f-f897986d77f3",
        "name": "",
        "description": "",
        "protocol": null,
        "ip_version": 4,
        "source_ip_address": null,
        "destination_ip_address": null,
        "source_port_range_min": null,
        "source_port_range_max": null,
        "destination_port_range_min": null,
        "destination_port_range_max": null,
        "action": "allow",
        "enabled": true,
        "position": 2
      },
      {
        "id": "807655f4-5a41-4c95-addd-b87e60967a73",
        "name": "Rule 1",
        "description": "This is an example rule.",
        "protocol": "tcp",
        "ip_version": 4,
        "source_ip_address": "192.168.2.1",
        "destination_ip_address": "192.168.3.1",
        "source_port_range_min": 1,
        "source_port_range_max": 2,
        "destination_port_range_min": 1,
        "destination_port_range_max": 1,
        "action": "deny",
        "enabled": true,
        "position": 1
      }
    ]
    

    Request

    GET/vps/networking/v1/firewalls/{firewall_id}/rules

    Show firewall rule details

    Returns a detailed description of the firewall rule.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/firewalls/76850c34-7489-4182-b655-f2caba3bc955/rules/807655f4-5a41-4c95-addd-b87e60967a73" \
      -H 'Authorization: my-api-key'
    

    Example response

    {
      "id": "807655f4-5a41-4c95-addd-b87e60967a73",
      "name": "Rule 1",
      "description": "This is an example rule.",
      "protocol": "tcp",
      "ip_version": 4,
      "source_ip_address": "192.168.2.1",
      "destination_ip_address": "192.168.3.1",
      "source_port_range_min": 1,
      "source_port_range_max": 2,
      "destination_port_range_min": 1,
      "destination_port_range_max": 1,
      "action": "deny",
      "enabled": true,
      "position": 1
    }
    

    Request

    GET/vps/networking/v1/firewalls/{firewall_id}/rules/{rule_id}

    Create firewall rule

    Creates a rule for the firewall.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/firewalls/76850c34-7489-4182-b655-f2caba3bc955/rules" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "rule": {
          "name": "API-rule-001",
          "description": "This is an example rule.",
          "protocol": "tcp",
          "ip_version": 4,
          "source_ip_address": "192.168.1.1",
          "destination_ip_address": "192.168.2.1",
          "source_port_range_min": 1,
          "source_port_range_max": 20,
          "destination_port_range_min": 1,
          "destination_port_range_max": 20,
          "action": "allow",
          "enabled": true
        }
      }'
    

    Example response

    {
      "name": "API-rule-001",
      "description": "This is an example rule.",
      "protocol": "tcp",
      "ip_version": 4,
      "source_ip_address": "192.168.1.1",
      "destination_ip_address": "192.168.2.1",
      "source_port_range_min": 1,
      "source_port_range_max": 20,
      "destination_port_range_min": 1,
      "destination_port_range_max": 20,
      "action": "allow",
      "enabled": true,
      "id": "9eb732bd-a010-4603-be24-6bce9370cb22",
      "position": 1
    }
    

    Request

    POST/vps/networking/v1/firewalls/{firewall_id}/rules

    Parameters

    Parameter Required Type Description
    rule true object A rule object.
    name false string The name you want for the firewall rule.
    description false string The description you want for the firewall rule.
    protocol false string The protocol of the traffic. Available options are: icmp, tcp and udp.
    ip_version false integer The IP version of the traffic.
    source_ip_address false string The IP address or CIDR of the source.
    destination_ip_address false string The IP address or CIDR of the destination.
    source_port_range_min false integer The minimum port number of the source port range.
    source_port_range_max false integer The maximum port number of the source port range. Not needed if rule affects only one port.
    destination_port_range_min false integer The minimum port number of the destination port range.
    destination_port_range_max false integer The maximum port number of the destination port range. Not needed if rule affects only one port.
    action false string What should be done to the traffic. Available options are: allow, deny and reject.
    enabled false boolean Whether you want the rule to be in use or not.

    Update firewall rule

    Updates an existing firewall rule and returns the updated rule.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/firewalls/76850c34-7489-4182-b655-f2caba3bc955/rules/9eb732bd-a010-4603-be24-6bce9370cb22" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X PATCH -d '{
        "rule": {
          "name": "Rule-001",
          "description": "A brand new description.",
          "protocol": "udp",
          "ip_version": 4,
          "destination_ip_address": "192.168.4.1",
          "source_port_range_min": 1,
          "destination_port_range_min": 20,
          "destination_port_range_max": 20,
          "action": "deny",
          "enabled": true
        }
      }'
    

    Example response

    {
      "name": "Rule-001",
      "description": "A brand new description.",
      "protocol": "udp",
      "ip_version": 4,
      "source_ip_address": "192.168.1.1",
      "destination_ip_address": "192.168.4.1",
      "source_port_range_min": 1,
      "source_port_range_max": 1,
      "destination_port_range_min": 20,
      "destination_port_range_max": 20,
      "action": "deny",
      "enabled": true,
      "id": "9eb732bd-a010-4603-be24-6bce9370cb22",
      "position": 1
    }
    

    Request

    PATCH/vps/networking/v1/firewalls/{firewall_id}/rules/{rule_id}

    Parameters

    Parameter Required Type Description
    rule true object A rule object.
    name false string The new name for the firewall rule.
    description false string The new description for the firewall rule.
    protocol false string The protocol of the traffic. Available options are: icmp, tcp and udp.
    ip_version false integer The IP version of the traffic.
    source_ip_address false string The IP address or CIDR of the source.
    destination_ip_address false string The IP address or CIDR of the destination.
    source_port_range_min false integer The minimum port number of the source port range.
    source_port_range_max false integer The maximum port number of the source port range. Not needed if rule affects only one port.
    destination_port_range_min false integer The minimum port number of the destination port range.
    destination_port_range_max false integer The maximum port number of the destination port range. Not needed if rule affects only one port.
    action false string What should be done to the traffic. Available options are: allow, deny and reject.
    enabled false boolean Whether you want the rule to be in use or not.

    Delete firewall rule

    Deletes the firewall rule and returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/firewalls/76850c34-7489-4182-b655-f2caba3bc955/rules/32cf0411-ae24-4742-98b8-9dac8d273342" \
      -H 'Authorization: my-api-key' \
      -X DELETE
    

    Request

    DELETE/vps/networking/v1/firewalls/{firewall_id}/rules/{rule_id}

    Routers

    List all routers

    Returns a list of all your routers.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/routers" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "id": "3b0b8942-200c-4db9-a2eb-1a020d1a817c",
        "description": "",
        "name": "Router-1",
        "status": "ACTIVE",
        "admin_state_up": true,
        "routes": [
          {
            "destination": "192.168.1.6/32",
            "nexthop": "192.168.2.7"
          }
        ],
        "external_gateway_snat_enabled": true,
        "external_gateway_info": {
          "id": "a59fc165-4ed9-4416-9f1b-d59dea6d7486",
          "description": "",
          "name": "",
          "network_id": "bdcffe24-89a2-4c72-80df-2709997192a7",
          "mac_address": "fa:16:3e:9b:d0:43",
          "admin_state_up": true,
          "status": "ACTIVE",
          "device_id": "3b0b8942-200c-4db9-a2eb-1a020d1a817c",
          "device_owner": "network:router_gateway",
          "ip_allocations": [
            {
              "ip_address": "192.168.255.41",
              "subnet_id": "efa9c254-48bd-4d96-925f-a44a21828513"
            }
          ]
        }
      },
      {
        "id": "6706ddad-3f13-44bb-906a-3c874ccb9ef8",
        "description": "",
        "name": "API-router-001",
        "status": "ACTIVE",
        "admin_state_up": true,
        "routes": [],
        "external_gateway_info": null
      }
    ]
    

    Request

    GET/vps/networking/v1/routers

    Show router details

    Returns a detailed description of the router.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/routers/3b0b8942-200c-4db9-a2eb-1a020d1a817c" \
      -H 'Authorization: my-api-key'
    

    Example response

    {
      "id": "3b0b8942-200c-4db9-a2eb-1a020d1a817c",
      "description": "",
      "name": "Router-1",
      "status": "ACTIVE",
      "admin_state_up": true,
      "routes": [
        {
          "destination": "192.168.1.6/32",
          "nexthop": "192.168.2.7"
        }
      ],
      "external_gateway_snat_enabled": true,
      "external_gateway_info": {
        "id": "a59fc165-4ed9-4416-9f1b-d59dea6d7486",
        "description": "",
        "name": "",
        "network_id": "bdcffe24-89a2-4c72-80df-2709997192a7",
        "mac_address": "fa:16:3e:9b:d0:43",
        "admin_state_up": true,
        "status": "ACTIVE",
        "device_id": "3b0b8942-200c-4db9-a2eb-1a020d1a817c",
        "device_owner": "network:router_gateway",
        "ip_allocations": [
          {
            "ip_address": "192.168.255.41",
            "subnet_id": "efa9c254-48bd-4d96-925f-a44a21828513"
          }
        ]
      }
    }
    

    Request

    GET/vps/networking/v1/routers/{router_id}

    Update router

    Updates an existing router and returns the updated router.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/routers/cb9a2e15-2d5a-446e-ab1e-ec071ae126d1" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X PATCH -d '{
        "router": {
          "name": "Router-1",
          "description": "A brand new description.",
          "admin_state_up": true,
          "routes": [
            {
              "nexthop": "192.168.2.2",
              "destination": "192.168.3.1/32"
            }
          ]
        }
      }'
    

    Example response

    {
      "id": "cb9a2e15-2d5a-446e-ab1e-ec071ae126d1",
      "description": "A brand new description.",
      "name": "Router-1",
      "status": "ACTIVE",
      "admin_state_up": true,
      "routes": [
        {
          "destination": "192.168.3.1/32",
          "nexthop": "192.168.2.2"
        }
      ],
      "external_gateway_port": {
        "id": "879744a3-7134-4bcf-8bd4-ca1617af7f06",
        "description": "",
        "name": "",
        "network_id": "bdcffe24-89a2-4c72-80df-2709997192a7",
        "mac_address": "fa:16:3e:f4:5b:ed",
        "admin_state_up": true,
        "status": "DOWN",
        "device_id": "cb9a2e15-2d5a-446e-ab1e-ec071ae126d1",
        "device_owner": "network:router_gateway",
        "ip_allocations": [
          {
            "ip_address": "192.168.255.40",
            "subnet_id": "efa9c254-48bd-4d96-925f-a44a21828513"
          }
        ]
      }
    }
    

    Request

    PATCH/vps/networking/v1/routers/{router_id}

    Parameters

    Parameter Required Type Description
    router true object A router object.
    name false string The new name for the router.
    description false string The new description for the router.
    admin_state_up false boolean The new administrative state of the router, either up (true) or down (false).
    attach_to_external false boolean Whether you want the router to have a gateway IP in a external network or not.
    routes false array List of route objects, that contain destination CIDR and nexthop IP address.

    Delete router

    Deletes the router and returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/routers/6706ddad-3f13-44bb-906a-3c874ccb9ef8" \
      -H 'Authorization: my-api-key' \
      -X DELETE
    

    Request

    DELETE/vps/networking/v1/routers/{router_id}

    Router port interfaces

    List all interfaces of a router

    Returns a list of all the port interfaces of the router.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/routers/cb9a2e15-2d5a-446e-ab1e-ec071ae126d1/interfaces" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "id": "71e01e11-ff1f-4d18-b273-f2bf0a70d2f6",
        "description": "",
        "name": "",
        "network_id": "165d4a26-2114-4a14-9e75-b865b48e2ce0",
        "mac_address": "fa:16:3e:d2:e3:96",
        "admin_state_up": true,
        "status": "ACTIVE",
        "device_id": "cb9a2e15-2d5a-446e-ab1e-ec071ae126d1",
        "device_owner": "network:router_interface",
        "ip_allocations": [
          {
            "ip_address": "abc0::1",
            "subnet_id": "339c4393-3d74-4e7c-b10d-e23c58d0b1fb"
          }
        ]
      },
      {
        "id": "b99e839a-cb44-44a0-a284-a06bfae31c8d",
        "description": "",
        "name": "",
        "network_id": "165d4a26-2114-4a14-9e75-b865b48e2ce0",
        "mac_address": "fa:16:3e:0b:02:52",
        "admin_state_up": true,
        "status": "ACTIVE",
        "device_id": "cb9a2e15-2d5a-446e-ab1e-ec071ae126d1",
        "device_owner": "network:router_interface",
        "ip_allocations": [
          {
            "ip_address": "192.168.2.1",
            "subnet_id": "9874325d-754c-4e66-989e-e5d83e5d8248"
          }
        ]
      }
    ]
    

    Request

    GET/vps/networking/v1/routers/{router_id}/interfaces

    Show router interface details

    Returns a detailed description of the router port interface.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/routers/cb9a2e15-2d5a-446e-ab1e-ec071ae126d1/interfaces/d272026e-98ea-4a9c-b758-22d268cf41b1" \
      -H 'Authorization: my-api-key'
    

    Example response

    {
      "id": "d272026e-98ea-4a9c-b758-22d268cf41b1",
      "description": "",
      "name": "",
      "network_id": "165d4a26-2114-4a14-9e75-b865b48e2ce0",
      "mac_address": "fa:16:3e:a6:c3:60",
      "admin_state_up": true,
      "status": "ACTIVE",
      "device_id": "cb9a2e15-2d5a-446e-ab1e-ec071ae126d1",
      "device_owner": "network:router_interface",
      "ip_allocations": [
        {
          "ip_address": "192.168.2.1",
          "subnet_id": "9874325d-754c-4e66-989e-e5d83e5d8248"
        }
      ]
    }
    

    Request

    GET/vps/networking/v1/routers/{router_id}/interfaces/{interface_id}

    Create router interface

    Creates a port interface for the router in a subnet. Returns the IDs of the router, the newly created port, the subnet the port belongs to and the network the subnet belongs to.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/routers/cb9a2e15-2d5a-446e-ab1e-ec071ae126d1/interfaces" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "subnet_id": "9874325d-754c-4e66-989e-e5d83e5d8248"
      }'
    

    Example response

    {
      "id": "cb9a2e15-2d5a-446e-ab1e-ec071ae126d1",
      "network_id": "165d4a26-2114-4a14-9e75-b865b48e2ce0",
      "subnet_id": "9874325d-754c-4e66-989e-e5d83e5d8248",
      "port_id": "9d8932e3-8b81-40bf-869e-3a8acbf7c8ad"
    }
    

    Request

    POST/vps/networking/v1/routers/{router_id}/interfaces

    Parameters

    Parameter Required Type Description
    subnet_id true string ID of the subnet you wish to attach the router to.

    Delete router interface

    Deletes a port interface from the router. Returns the IDs of the router, the deleted port, the subnet the port belonged to and the network the subnet belongs to.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/routers/cb9a2e15-2d5a-446e-ab1e-ec071ae126d1/interfaces/d272026e-98ea-4a9c-b758-22d268cf41b1" \
      -H 'Authorization: my-api-key' \
      -X DELETE
    

    Example response

    {
      "id": "cb9a2e15-2d5a-446e-ab1e-ec071ae126d1",
      "network_id": "165d4a26-2114-4a14-9e75-b865b48e2ce0",
      "subnet_id": "9874325d-754c-4e66-989e-e5d83e5d8248",
      "port_id": "d272026e-98ea-4a9c-b758-22d268cf41b1"
    }
    

    Request

    DELETE/vps/networking/v1/routers/{router_id}/interfaces/{interface_id}

    Security groups

    List all security groups

    Returns a list of all your security groups.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/security-groups" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
        "description": "Default security group",
        "name": "default"
      },
      {
        "id": "935bad7c-1b2a-46d3-ab5f-a03530e12d3c",
        "description": "This is an example security group.",
        "name": "API-security-group-001"
      }
    ]
    

    Request

    GET/vps/networking/v1/security-groups

    Show security group details

    Returns a detailed description of the security group.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/security-groups/935bad7c-1b2a-46d3-ab5f-a03530e12d3c" \
      -H 'Authorization: my-api-key'
    

    Example response

    {
      "id": "935bad7c-1b2a-46d3-ab5f-a03530e12d3c",
      "description": "This is an example security group.",
      "name": "API-security-group-001"
    }
    

    Request

    GET/vps/networking/v1/security-groups/{security_group_id}

    Create security group

    Creates a security group.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/security-groups" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "security_group": {
          "name": "Api-security-group-001",
          "description": "This is an example security group."
        }
      }'
    

    Example response

    {
      "description": "This is an example security group.",
      "id": "7ee3f318-9e52-4ac2-835b-caa1f425b57a",
      "name": "Api-security-group-001"
    }
    

    Request

    POST/vps/networking/v1/security-groups

    Parameters

    Parameter Required Type Description
    security_group true object A security_group object.
    name true string The name you want for the security group.
    description false string The description you want for the security group.

    Update security group

    Updates an existing security group and returns the updated security group.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/security-groups/7ee3f318-9e52-4ac2-835b-caa1f425b57a" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X PATCH -d '{
        "security_group": {
          "name": "Api-security-group-002",
          "description": "A brand new description."
        }
      }'
    

    Example response

    {
      "description": "A brand new description.",
      "id": "7ee3f318-9e52-4ac2-835b-caa1f425b57a",
      "name": "Api-security-group-002"
    }
    

    Request

    PATCH/vps/networking/v1/security-groups/{security_group_id}

    Parameters

    Parameter Required Type Description
    security_group true object A security_group object.
    name false string The new name for the security group.
    description false string The new description for the security group.

    Delete security group

    Deletes the security group and returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/security-groups/7ee3f318-9e52-4ac2-835b-caa1f425b57a" \
      -H 'Authorization: my-api-key' \
      -X DELETE
    

    Request

    DELETE/vps/networking/v1/security-groups/{security_group_id}

    Security group rules

    List all rules of a security group

    Returns a list of all the rules of the security group.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/security-groups/935bad7c-1b2a-46d3-ab5f-a03530e12d3c/rules" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "id": "4bd3354d-c754-4cd5-ae69-f72edd4cc27d",
        "security_group_id": "935bad7c-1b2a-46d3-ab5f-a03530e12d3c",
        "remote_group_id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
        "direction": "ingress",
        "ethertype": "IPv4",
        "protocol": null,
        "port_range_min": null,
        "port_range_max": null,
        "remote_ip_prefix": null
      },
      {
        "id": "d51fda1a-71c7-4dd1-8c2c-546c1e008367",
        "security_group_id": "935bad7c-1b2a-46d3-ab5f-a03530e12d3c",
        "remote_group_id": null,
        "direction": "ingress",
        "ethertype": "IPv4",
        "protocol": "icmp",
        "port_range_min": 0,
        "port_range_max": 0,
        "remote_ip_prefix": "0.0.0.0/0"
      }
    ]
    

    Request

    GET/vps/networking/v1/security-groups/{security_group_id}/rules

    Show security group rule details

    Returns a detailed description of the security group rule.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/security-groups/935bad7c-1b2a-46d3-ab5f-a03530e12d3c/rules/4bd3354d-c754-4cd5-ae69-f72edd4cc27d" \
      -H 'Authorization: my-api-key'
    

    Example response

    {
      "id": "4bd3354d-c754-4cd5-ae69-f72edd4cc27d",
      "security_group_id": "935bad7c-1b2a-46d3-ab5f-a03530e12d3c",
      "remote_group_id": "7512b702-4ef5-49f4-b44e-1b5a6e25a10b",
      "direction": "ingress",
      "ethertype": "IPv4",
      "protocol": null,
      "port_range_min": null,
      "port_range_max": null,
      "remote_ip_prefix": null
    }
    

    Request

    GET/vps/networking/v1/security-groups/{security_group_id}/rules/{rule_id}

    Create security group rule

    Creates a rule for the security group.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/security-groups/935bad7c-1b2a-46d3-ab5f-a03530e12d3c/rules" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X POST -d '{
        "rule": {
          "remote_ip_prefix": "0.0.0.0/0",
          "direction": "ingress",
          "port_range_min": 1,
          "port_range_max": 2,
          "ethertype": "IPv4",
          "protocol": "tcp"
        }
      }'
    

    Example response

    {
      "id": "74bfe90d-8377-4685-873b-9192dcf05417",
      "security_group_id": "935bad7c-1b2a-46d3-ab5f-a03530e12d3c",
      "remote_group_id": null,
      "direction": "ingress",
      "ethertype": "IPv4",
      "protocol": "tcp",
      "port_range_min": 1,
      "port_range_max": 2,
      "remote_ip_prefix": "0.0.0.0/0"
    }
    

    Request

    POST/vps/networking/v1/security-groups/{security_group_id}/rules

    Parameters

    Parameter Required Type Description
    rule true object A rule object.
    direction true string Direction of the traffic to be allowed. Either ingress or egress.
    remote_group_id false string Remote security group ID to be associated with the rule. Specify only remote_group_id or remote_ip_prefix.
    remote_ip_prefix false string Remote IP prefix to be associated with the rule. Specify only remote_group_id or remote_ip_prefix.
    protocol false string The protocol of the traffic. Available options are: icmp, icmpv6, tcp and udp. or any integer between 1 and 255.
    ethertype false string Either IPv4 or IPv6. If remote_ip_prefix is specified, versions must match.
    port_range_min false integer The minimum port number of the port range. If protocol is ICMP, this represents the ICMP type.
    port_range_max false integer The maximum port number of the port range. Not needed if rule affects only one port.

    Delete security group rule

    Deletes the security group rule and returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/security-groups/935bad7c-1b2a-46d3-ab5f-a03530e12d3c/rules/e4f14c52-a148-49f9-821a-003688279997" \
      -H 'Authorization: my-api-key' \
      -X DELETE
    

    Request

    DELETE/vps/networking/v1/security-groups/{security_group_id}/rules/{rule_id}

    Floating IPs

    List all floating IPs

    Returns a list of all your floating IPs.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/floating-ips" \
      -H 'Authorization: my-api-key'
    

    Example response

    [
      {
        "id": "96388526-df19-41a1-8adb-b36a21a28741",
        "created_at": "2018-01-17T11:15:50.000+00:00",
        "updated_at": "2018-01-17T11:28:29.000+00:00",
        "description": "",
        "revision_number": 5,
        "floating_ip_address": "192.168.255.51",
        "floating_network_id": "bdcffe24-89a2-4c72-80df-2709997192a7",
        "fixed_ip_address": null,
        "router_id": null,
        "status": "DOWN",
        "port_id": null
      },
      {
        "id": "99bb1efe-782b-4af8-9c34-0bc6142980dc",
        "created_at": "2018-01-17T11:14:05.000+00:00",
        "updated_at": "2018-01-17T11:14:05.000+00:00",
        "description": "",
        "revision_number": 1,
        "floating_ip_address": "192.168.255.50",
        "floating_network_id": "bdcffe24-89a2-4c72-80df-2709997192a7",
        "fixed_ip_address": null,
        "router_id": null,
        "status": "DOWN",
        "port_id": null
      }
    ]
    

    Request

    GET/vps/networking/v1/floating-ips

    Show floating IP details

    Returns a detailed description of the floating IP.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/floating-ips/807655f4-5a41-4c95-addd-b87e60967a73" \
      -H 'Authorization: my-api-key'
    

    Example response

    {
      "id": "99bb1efe-782b-4af8-9c34-0bc6142980dc",
      "created_at": "2018-01-17T11:14:05.000+00:00",
      "updated_at": "2018-01-17T11:14:05.000+00:00",
      "description": "",
      "revision_number": 1,
      "floating_ip_address": "192.168.255.50",
      "floating_network_id": "bdcffe24-89a2-4c72-80df-2709997192a7",
      "fixed_ip_address": null,
      "router_id": null,
      "status": "DOWN",
      "port_id": null
    }
    

    Request

    GET/vps/networking/v1/floating-ips/{floating_ip_id}

    Update floating IP

    Updates an existing floating IP and returns the updated floating IP.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/floating-ips/99fg1efe-182b-4bf8-3c34-0b88042980dc" \
      -H 'Authorization: my-api-key' \
      -H 'Content-Type: application/json' \
      -X PATCH -d '{
        "floating_ip": {
          "port_id": "5daee914-e5ea-41b6-830b-b0b10c0b11ec",
          "description": "Attached to instance3"
        }
      }'
    

    Example response

    {
      "id": "99fg1efe-182b-4bf8-3c34-0b88042980dc",
      "created_at": "2018-01-17T11:14:05.000+00:00",
      "updated_at": "2018-01-17T11:14:05.000+00:00",
      "description": "This is an example Floating IP.",
      "revision_number": 1,
      "floating_ip_address": "192.168.255.51",
      "floating_network_id": "bdcffe24-89a2-4c72-80df-2709997192a7",
      "fixed_ip_address": null,
      "router_id": null,
      "status": "DOWN",
      "port_id": "5daee914-e5ea-41b6-830b-b0b10c0b11ec"
    }
    

    Request

    PATCH/vps/networking/v1/floating-ips/{floating_ip_id}

    Parameters

    Parameter Required Type Description
    floating_ip false object A floating_ip object.
    description false string The description you want for the floating IP.
    port_id false string ID of the instance interface you want to associate the floating IP with.

    Delete floating IP

    Deletes the floating IP and returns an empty body if succesful.

    Example request

    curl "https://api.tavu.io/vps/networking/v1/floating-ips/32cf0411-ae24-4742-98b8-9dac8d273342" \
      -H 'Authorization: my-api-key' \
      -X DELETE
    

    Request

    DELETE/vps/networking/v1/floating-ips/{floating_ip_id}

    Errors

    Tavu.io API uses the following error codes:

    Code Message Meaning
    400 Bad Request Your request was malformed. You should not try sending the request again without modifying it. We'll try and provide you with a hint on what was wrong.
    401 Unauthorized Your API key is wrong or there was an error authenticating your API key.
    403 Forbidden You do not have the permissions to access this resource.
    404 Not Found The requested resource was not found.
    429 Too Many Requests You have hit the Rate Limit. Try again later.
    500 Internal Server Error We had a problem with our server. Try again later.

    Changelog

    1.0.0-beta

    2018-08-17

    2018-05-14

    2018-04-24

    2018-04-13

    2018-04-11

    2018-03-19

    2018-02-26

    2018-02-23

    2018-02-22

    2018-01-17

    Open beta release of the Tavu API