openapi: 3.1.0
info:
title: Instance API
description: |-
Scaleway Instances are virtual machines in the cloud. Different [Instance types](https://www.scaleway.com/en/docs/instances/reference-content/choosing-instance-type/) offer different technical specifications in terms of vCPU, RAM, bandwidth and storage. Once you have created your Instance and installed your image of choice (e.g. an operating system), you can [connect to your Instance via SSH](https://www.scaleway.com/en/docs/instances/how-to/connect-to-instance/) to use it as you wish. When you are done using the Instance, you can delete it from your account.
To retrieve information about the different [images](#path-images) available to install on Scaleway Instances, check out our [Marketplace API](https://www.scaleway.com/en/developers/api/marketplace/).
## Concepts
Refer to our [dedicated concepts page](https://www.scaleway.com/en/docs/instances/concepts/) to find definitions of all concepts and terminology related to Instances.
## Quickstart
1. Configure your environment variables
This is an optional step that seeks to simplify your usage of the Instances API. See [Availability Zones](#availability-zones) below for help choosing an Availability Zone. You can find your Project ID in the [Scaleway console](https://console.scaleway.com/project/settings).
```bash
export SCW_SECRET_KEY=""
export SCW_DEFAULT_ZONE=""
export SCW_PROJECT_ID=""
```
2. **Create an Instance**: Run the following command to create an Instance. You can customize the details in the payload (name, description, type, tags etc) to your needs: use the information below to adjust the payload as necessary.
```bash
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
"https://api.scaleway.com/instance/v1/zones/$SCW_DEFAULT_ZONE/servers" \
-d '{
"name": "my-new-instance",
"project": "'"$SCW_PROJECT_ID"'",
"commercial_type": "GP1-S",
"image": "ubuntu_noble",
"enable_ipv6": true,
"volumes": {
"0":{
"size": 300000000000,
"volume_type": "l_ssd"
}
}
}'
```
| Parameter | Description | Valid values |
|:------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `name` | A name of your choice for the Instance (string) | Any string containing only alphanumeric characters, dots, spaces and dashes, e.g. `"my-new-instance"`. |
| `project` | The Project in which the Instance should be created (string) | Any valid Scaleway Project ID (see above), e.g. `"b4bd99e0-b389-11ed-afa1-0242ac120002"` |
| `commercial-type` | The commercial Instance type to create (string) | Any valid ID of a Scaleway commercial Instance type, e.g. `"GP1-S"`, `"PRO2-M"`. Use the [List Instance Types](#path-instance-types-list-instance-types) endpoint to get a list of all valid Instance types and their IDs. |
| `image` | The image to install on the Instance, e.g. a particular OS (string) | Any Scaleway image label, e.g. `"ubuntu_noble"`, or any valid Scaleway image ID, e.g. `"6fc0ade6-d6a3-4fb9-87ab-2444ac71e5c0"` which is the ID for the `Ubuntu 24.04 Noble Numbat` image. Use the [List Instance Images](#path-images-list-instance-images) endpoint to get a list of all available images with their IDs and labels, or check out the [Scaleway Marketplace API](https://www.scaleway.com/en/developers/api/marketplace/). |
| `enable_ipv6` | Whether to enable IPv6 on the Instance (boolean) | `true` or `false` |
| `volumes` | An object that specifies the storage volumes to attach to the Instance. For more information, see **Creating an Instance: the volumes object** in the [Technical information](#technical-information) section of this quickstart. | A (dictionary) object with a minimum of one key (`"0"`) whose value is another object containing the parameters `"name"` (a name for the volume), `"size"` (the size for the volume, in bytes), and `"volume_type"` (`"l_ssd"`). Additional keys for additional volumes should increment by 1 each time (the second volume would have a key of `1`.) Further parameters are available, and it is possible to attach existing volumes rather than creating a new one, or create a volume from a snapshot. |
3. **List your Instances**: run the following command to get a list of all the Instances in your account, with their details:
```bash
curl -X GET \
-H "Content-Type: application/json" \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/$SCW_DEFAULT_ZONE/servers/"
```
4. **Delete an Instance**: run the following command to delete an Instance, specified by its Instance ID:
```bash
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
"https://api.scaleway.com/instance/v1/zones/$SCW_DEFAULT_ZONE/servers/"
```
The expected successful response is empty.
- You have a [Scaleway account](https://console.scaleway.com/)
- You have created an [API key](https://www.scaleway.com/en/docs/iam/how-to/create-api-keys/) and that the API key has sufficient [IAM permissions](https://www.scaleway.com/en/docs/iam/reference-content/permission-sets/) to perform the actions described on this page
- You have [installed `curl`](https://curl.se/download.html)
## Technical information
### Availability Zones
Instances can be deployed in the following Availability Zones:
| Name | API ID |
|-----------|-----------------------|
| Paris | `fr-par-1` `fr-par-2` `fr-par-3` |
| Amsterdam | `nl-ams-1` `nl-ams-2` `nl-ams-3` |
| Warsaw | `pl-waw-1` `pl-waw-2` `pl-waw-3` |
### Pagination
Most listing requests receive a paginated response. Requests against paginated endpoints accept two `query` arguments:
- `page`, a positive integer to choose which page to return.
- `per_page`, an positive integer lower or equal to 100 to select the number of items to return per page. The default value is `50`.
Paginated endpoints usually also accept filters to search and sort results.These filters are documented along each endpoint documentation.
The `X-Total-Count` header contains the total number of items returned.
### Creating an Instance: the volumes object
When [creating an Instance](#path-instances-create-an-instance) using the Scaleway API, the `volumes` object is **not strictly required**. However, the defaults vary depending on certain conditions:
1. If an image label is used:
- The default will be an `sbs_volume` volume.
- The size of this volume will be the OS size (typically 10GB in most cases).
2. If an image ID from the marketplace is used:
- If the Instance supports local storage:
- The default will be an `l_ssd` volume.
- The size of this volume will be the instance's maximum local storage capacity.
- Else, the volume created will depend on the marketplace's local_image type:
- SBS volume for instance_sbs type.
- l_ssd volume for instance_local type.
If you want to customize the storage configuration or add additional volumes, you will need to include the volumes object in your API request. This object should contain at least one (dictionary) object with a minimum of one key (`"0"`) whose value is another object containing the parameters `"name"` (a name for the volume), `"size"` (the size for the volume, in bytes), and `"volume_type"` (`"sbs_volume"` or `"l_ssd"`). Additional keys for additional volumes should increment by 1 each time (the second volume would have a key of `"1"`.)
Note that volume `size` must respect the volume constraints of the Instance's `commercial_type`: for each type of Instance, a minimum amount of storage is required, and there is also a maximum that cannot be exceeded. All Instance types support Block Storage (`sbs_volume`), some also support local storage (`l_ssd`). Read more about these constraints in the [List Instance types](#path-instance-types-list-instance-types) documentation, specifically the `volume_constraints` parameter for each type listed in the response
You can use the `volumes` object in different ways. The table below shows which parameters are required for each of the following use cases:
| Use case | Required params | Optional params | Notes |
|-------------------------|-----------------------|---------------------|----------------------------------------|
| Create a volume (`l_ssd`, `sbs_volume`) from a snapshot of an image | | `volume_type`, `size`, `boot` | If the `size` parameter is not set, the size of the volume will equal the size of the corresponding snapshot of the image. The image snapshot type should be compatible with the `volume_type`. |
| Create a volume (`l_ssd`) from a snapshot | `base_snapshot`, `name`, `volume_type` | `boot` | |
| Create a volume of type `sbs_volume` from a snapshot | `base_snapshot`, `name`, `volume_type` | `size`, `boot` | |
| Create an empty volume | `name`, `volume_type`, `size` | `boot` | |
| Attach an existing volume (`l_ssd`) | `id` | `boot` | |
| Attach an existing volume of type `sbs_volume` | `id`, `volume_type` | `boot` | |
This information is designed to help you correctly configure the `volumes` object when using the [Create an Instance](#path-instances-create-an-instance) or [Update an Instance](#path-instances-update-an-instance) methods.
## Going further
For more help using Scaleway Instances, check out the following resources:
- Our [main documentation](https://www.scaleway.com/en/docs/instances/)
- The #instance channel on our [Slack Community](https://www.scaleway.com/en/docs/tutorials/scaleway-slack-community/)
- Our [support ticketing system](https://www.scaleway.com/en/docs/account/how-to/open-a-support-ticket/).
version: v1
servers:
- url: https://api.scaleway.com
tags:
- name: Instances
description: |
Instances are computing units providing resources to run your applications on.
Scaleway offers various Instance types including **Virtual Instances** and **dedicated GPU Instances**.
**Note: Instances can be referenced as "servers" in API endpoints.**
- name: Images
description: |
Images are backups of your Instances.
One image will contain all the volumes of your Instance and can be used to restore your Instance and its data. You can also use it to create a series of Instances with a predefined configuration.
To copy not all but only one specified volume of an Instance, you can use the snapshot feature instead.
- name: Security Groups
description: |
A security group is a set of firewall rules on a set of Instances.
Security groups enable you to create rules that either drop or allow incoming traffic from certain ports of your Instances.
Security groups are stateful by default which means return traffic is automatically allowed, regardless of any rules.
As a contrary, you have to switch in a stateless mode to define explicitly allowed.
- name: User Data
description: |
User data is a key/value store you can use to provide your instance with introspective data.
As an example of use, Scaleway images contain the `scw-generate-ssh-keys` script, which generates the SSH server’s host keys, then stores their fingerprints as user data under the `ssh-host-fingerprints` key.
This way, before connecting to the instance using SSH, one can query the fingerprints to ensure that the remote host is the expected one, thus avoiding any man-in-the-middle attack.
There are two ways of accessing user data:
- **From within a running Instance**, by requesting the Metadata API at http://169.254.42.42/user_data (or http://[fd00:42::42]/user_data using IPv6).
The `scaleway-ecosystem` package, installed by default on all OS images provided by Scaleway, ships with the `scw-userdata` helper command that allows you to easily query the user data from the instance.
For security reasons, viewing and editing user data is only allowed to queries originating from a port below 1024 (by default, only the super-user can bind to ports below 1024).
To specify the source port with cURL, use the `--local-port` option (e.g. `curl --local-port 1-1023 http://169.254.42.42/user_data`).
- **From the Instance API** by using the methods described below.
- name: Instance Types
description: |
All Instance types available in a specified zone.
Each type contains all the features of the Instance (CPU, RAM, Storage) as well as their associated pricing.
- name: Volume Types
description: |
All volume types available in a specified zone.
Each of these types will contains all the capabilities and constraints of the volume (min size, max size, snapshot).
- name: IPs
description: |
A flexible IP address is an IP address which you hold independently of any Instance.
You can attach it to any of your Instances and do live migration of the IP address between your Instances.
Note that attaching a flexible IP address to an Instance removes its previous public IP and interrupts any ongoing public connection to the Instance. This does not apply if you have migrated your server to the new Network stack and have at least one flexible IP attached to the Instance.
- name: Volumes
description: |
A volume is where you store your data inside your Instance. It
appears as a block device on Linux that you can use to create
a filesystem and mount it.
The Instance API only supports local (`l_ssd`) and `scratch` volume types.
Block storage volumes can also be attached to Instances, these volumes are
managed by the SBS API (https://www.scaleway.com/en/developers/api/block/).
Minimum and maximum volume sizes for each volume types can be queried
from the zone `/products/volumes` API endpoint. _I.e_ for:
- `fr-par-1` use https://api.scaleway.com/instance/v1/zones/fr-par-1/products/volumes
- `nl-ams-1` use https://api.scaleway.com/instance/v1/zones/nl-ams-1/products/volumes
Each type of volume is also subject to a global quota for the sum of all the
volumes. This quota depends of the level of support and may be
changed on demand.
When using multiple block devices, it's advised to mount them by
using their UUID instead of their device name. A device name is
subject to change depending on the volumes order. Block devices
UUIDs can be found in `/dev/disk/by-id/`.
- name: Snapshots
description: |
Snapshots contain the data of a specified volume at a particular point in time.
The data can include the Instance's operating system,
configuration information and/or files stored on the volume.
A snapshot can be done from a specified volume, e.g. you
have one Instance with a volume containing the OS and another one
containing the application data, and you want to use different
snapshot strategies on both volumes.
Volumes can be created from snapshots of their own type.
- name: Placement Groups
description: |
Placement groups allow the user to express a preference regarding
the physical position of a group of Instances. The feature lets the user
choose to either group Instances on the same physical hardware for
best network throughput and low latency or to spread Instances across
physically distanced hardware to reduce the risk of physical failure.
The operating mode is selected by a `policy_type`. Two policy
types are available:
- `low_latency` will group Instances on the same hypervisors
- `max_availability` will spread Instances across physically distanced hypervisors
The `policy_type` is set to `max_availability` by default.
For each policy types, one of the two `policy_mode` may be selected:
- `optional` will start your Instances even if the constraint is not respected
- `enforced` guarantees that if the Instance starts, the constraint is respected
The `policy_mode` is set by default to `optional`.
- name: Private NICs
description: |
A Private NIC is the network interface that connects an Instance to a
Private Network. An Instance can have multiple private NICs at the same
time, but each NIC must belong to a different Private Network.
components:
schemas:
google.protobuf.BoolValue:
type: boolean
nullable: true
google.protobuf.Int32Value:
type: integer
format: int32
nullable: true
google.protobuf.StringValue:
type: string
nullable: true
google.protobuf.UInt32Value:
type: integer
format: uint32
nullable: true
scaleway.instance.v1.Arch:
type: string
enum:
- unknown_arch
- x86_64
- arm
- arm64
default: unknown_arch
scaleway.instance.v1.AttachServerFileSystemResponse:
type: object
properties:
server:
$ref: '#/components/schemas/scaleway.instance.v1.Server'
x-properties-order:
- server
scaleway.instance.v1.AttachServerVolumeRequest.VolumeType:
type: string
enum:
- unknown_volume_type
- l_ssd
- b_ssd
- sbs_volume
x-enum-descriptions:
values:
b_ssd: Deprecated
default: unknown_volume_type
scaleway.instance.v1.AttachServerVolumeResponse:
type: object
properties:
server:
$ref: '#/components/schemas/scaleway.instance.v1.Server'
x-properties-order:
- server
scaleway.instance.v1.BootType:
type: string
enum:
- local
- bootscript
- rescue
default: local
scaleway.instance.v1.Bootscript:
type: object
properties:
architecture:
$ref: '#/components/schemas/scaleway.instance.v1.Arch'
bootcmdargs:
type: string
default:
type: boolean
dtb:
type: string
id:
type: string
initrd:
type: string
kernel:
type: string
organization:
type: string
public:
type: boolean
title:
type: string
project:
type: string
zone:
type: string
description: The zone you want to target
x-properties-order:
- architecture
- bootcmdargs
- default
- dtb
- id
- initrd
- kernel
- organization
- public
- title
- project
- zone
scaleway.instance.v1.CreateImageResponse:
type: object
properties:
image:
$ref: '#/components/schemas/scaleway.instance.v1.Image'
x-properties-order:
- image
scaleway.instance.v1.CreateIpResponse:
type: object
properties:
ip:
$ref: '#/components/schemas/scaleway.instance.v1.Ip'
x-properties-order:
- ip
scaleway.instance.v1.CreatePlacementGroupResponse:
type: object
properties:
placement_group:
$ref: '#/components/schemas/scaleway.instance.v1.PlacementGroup'
x-properties-order:
- placement_group
scaleway.instance.v1.CreatePrivateNICResponse:
type: object
properties:
private_nic:
$ref: '#/components/schemas/scaleway.instance.v1.PrivateNIC'
x-properties-order:
- private_nic
scaleway.instance.v1.CreateSecurityGroupResponse:
type: object
properties:
security_group:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroup'
x-properties-order:
- security_group
scaleway.instance.v1.CreateSecurityGroupRuleResponse:
type: object
properties:
rule:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroupRule'
x-properties-order:
- rule
scaleway.instance.v1.CreateServerResponse:
type: object
properties:
server:
$ref: '#/components/schemas/scaleway.instance.v1.Server'
x-properties-order:
- server
scaleway.instance.v1.CreateSnapshotResponse:
type: object
properties:
snapshot:
$ref: '#/components/schemas/scaleway.instance.v1.Snapshot'
task:
$ref: '#/components/schemas/scaleway.instance.v1.Task'
x-properties-order:
- snapshot
- task
scaleway.instance.v1.CreateVolumeResponse:
type: object
properties:
volume:
$ref: '#/components/schemas/scaleway.instance.v1.Volume'
x-properties-order:
- volume
scaleway.instance.v1.Dashboard:
type: object
properties:
volumes_count:
type: integer
format: uint32
running_servers_count:
type: integer
format: uint32
servers_by_types:
type: object
properties:
:
type: integer
format: uint32
additionalProperties: true
images_count:
type: integer
format: uint32
snapshots_count:
type: integer
format: uint32
servers_count:
type: integer
format: uint32
ips_count:
type: integer
format: uint32
security_groups_count:
type: integer
format: uint32
ips_unused:
type: integer
format: uint32
volumes_l_ssd_count:
type: integer
format: uint32
volumes_l_ssd_total_size:
type: integer
description: (in bytes)
format: uint64
private_nics_count:
type: integer
format: uint32
placement_groups_count:
type: integer
format: uint32
volumes_scratch_count:
type: integer
format: uint32
volumes_b_ssd_count:
type: integer
deprecated: true
format: uint32
volumes_b_ssd_total_size:
type: integer
description: (in bytes)
deprecated: true
format: uint64
x-properties-order:
- volumes_count
- running_servers_count
- servers_by_types
- images_count
- snapshots_count
- servers_count
- ips_count
- security_groups_count
- ips_unused
- volumes_l_ssd_count
- volumes_l_ssd_total_size
- private_nics_count
- placement_groups_count
- volumes_scratch_count
- volumes_b_ssd_count
- volumes_b_ssd_total_size
scaleway.instance.v1.DetachServerFileSystemResponse:
type: object
properties:
server:
$ref: '#/components/schemas/scaleway.instance.v1.Server'
x-properties-order:
- server
scaleway.instance.v1.DetachServerVolumeResponse:
type: object
properties:
server:
$ref: '#/components/schemas/scaleway.instance.v1.Server'
x-properties-order:
- server
scaleway.instance.v1.ExportSnapshotResponse:
type: object
properties:
task:
$ref: '#/components/schemas/scaleway.instance.v1.Task'
x-properties-order:
- task
scaleway.instance.v1.GetDashboardResponse:
type: object
properties:
dashboard:
$ref: '#/components/schemas/scaleway.instance.v1.Dashboard'
x-properties-order:
- dashboard
scaleway.instance.v1.GetImageResponse:
type: object
properties:
image:
$ref: '#/components/schemas/scaleway.instance.v1.Image'
x-properties-order:
- image
scaleway.instance.v1.GetIpResponse:
type: object
properties:
ip:
$ref: '#/components/schemas/scaleway.instance.v1.Ip'
x-properties-order:
- ip
scaleway.instance.v1.GetPlacementGroupResponse:
type: object
properties:
placement_group:
$ref: '#/components/schemas/scaleway.instance.v1.PlacementGroup'
x-properties-order:
- placement_group
scaleway.instance.v1.GetPlacementGroupServersResponse:
type: object
properties:
servers:
type: array
description: Instances attached to the placement group.
items:
$ref: '#/components/schemas/scaleway.instance.v1.PlacementGroupServer'
x-properties-order:
- servers
scaleway.instance.v1.GetPrivateNICResponse:
type: object
properties:
private_nic:
$ref: '#/components/schemas/scaleway.instance.v1.PrivateNIC'
x-properties-order:
- private_nic
scaleway.instance.v1.GetSecurityGroupResponse:
type: object
properties:
security_group:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroup'
x-properties-order:
- security_group
scaleway.instance.v1.GetSecurityGroupRuleResponse:
type: object
properties:
rule:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroupRule'
x-properties-order:
- rule
scaleway.instance.v1.GetServerResponse:
type: object
properties:
server:
$ref: '#/components/schemas/scaleway.instance.v1.Server'
x-properties-order:
- server
scaleway.instance.v1.GetServerTypesAvailabilityResponse:
type: object
properties:
servers:
type: object
description: Map of server types.
properties:
:
type: object
description: Map of server types.
properties:
availability:
$ref: '#/components/schemas/scaleway.instance.v1.ServerTypesAvailability'
x-properties-order:
- availability
additionalProperties: true
x-properties-order:
- servers
scaleway.instance.v1.GetSnapshotResponse:
type: object
properties:
snapshot:
$ref: '#/components/schemas/scaleway.instance.v1.Snapshot'
x-properties-order:
- snapshot
scaleway.instance.v1.GetVolumeResponse:
type: object
properties:
volume:
$ref: '#/components/schemas/scaleway.instance.v1.Volume'
x-properties-order:
- volume
scaleway.instance.v1.Image:
type: object
properties:
id:
type: string
name:
type: string
arch:
$ref: '#/components/schemas/scaleway.instance.v1.Arch'
creation_date:
type: string
description: (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
modification_date:
type: string
description: (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
default_bootscript:
deprecated: true
$ref: '#/components/schemas/scaleway.instance.v1.Bootscript'
extra_volumes:
type: object
properties:
:
$ref: '#/components/schemas/scaleway.instance.v1.Volume'
additionalProperties: true
from_server:
type: string
organization:
type: string
public:
type: boolean
root_volume:
$ref: '#/components/schemas/scaleway.instance.v1.VolumeSummary'
state:
$ref: '#/components/schemas/scaleway.instance.v1.Image.State'
project:
type: string
tags:
type: array
items:
type: string
zone:
type: string
description: The zone you want to target
x-properties-order:
- id
- name
- arch
- creation_date
- modification_date
- default_bootscript
- extra_volumes
- from_server
- organization
- public
- root_volume
- state
- project
- tags
- zone
scaleway.instance.v1.Image.State:
type: string
enum:
- available
- creating
- error
default: available
scaleway.instance.v1.Ip:
type: object
properties:
id:
type: string
address:
type: string
description: (IP address)
example: 1.2.3.4
reverse:
$ref: '#/components/schemas/google.protobuf.StringValue'
server:
$ref: '#/components/schemas/scaleway.instance.v1.ServerSummary'
organization:
type: string
tags:
type: array
items:
type: string
project:
type: string
type:
$ref: '#/components/schemas/scaleway.instance.v1.IpType'
state:
$ref: '#/components/schemas/scaleway.instance.v1.Ip.State'
prefix:
type: string
description: (IP network)
example: 1.2.3.4/32
ipam_id:
type: string
description: (UUID format)
example: 6170692e-7363-616c-6577-61792e636f6d
zone:
type: string
description: The zone you want to target
x-properties-order:
- id
- address
- reverse
- server
- organization
- tags
- project
- type
- state
- prefix
- ipam_id
- zone
scaleway.instance.v1.Ip.State:
type: string
enum:
- unknown_state
- detached
- attached
- pending
- error
default: unknown_state
scaleway.instance.v1.IpType:
type: string
enum:
- unknown_iptype
- routed_ipv4
- routed_ipv6
default: unknown_iptype
scaleway.instance.v1.ListImagesResponse:
type: object
properties:
images:
type: array
description: List of images.
items:
$ref: '#/components/schemas/scaleway.instance.v1.Image'
x-properties-order:
- images
scaleway.instance.v1.ListIpsResponse:
type: object
properties:
ips:
type: array
description: List of ips.
items:
$ref: '#/components/schemas/scaleway.instance.v1.Ip'
x-properties-order:
- ips
scaleway.instance.v1.ListPlacementGroupsResponse:
type: object
properties:
placement_groups:
type: array
description: List of placement groups.
items:
$ref: '#/components/schemas/scaleway.instance.v1.PlacementGroup'
x-properties-order:
- placement_groups
scaleway.instance.v1.ListPrivateNICsResponse:
type: object
properties:
private_nics:
type: array
items:
$ref: '#/components/schemas/scaleway.instance.v1.PrivateNIC'
total_count:
type: integer
format: uint64
x-properties-order:
- private_nics
- total_count
scaleway.instance.v1.ListSecurityGroupRulesResponse:
type: object
properties:
rules:
type: array
description: List of security rules.
items:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroupRule'
x-properties-order:
- rules
scaleway.instance.v1.ListSecurityGroupsResponse:
type: object
properties:
security_groups:
type: array
description: List of security groups.
items:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroup'
x-properties-order:
- security_groups
scaleway.instance.v1.ListServerActionsResponse:
type: object
properties:
actions:
type: array
items:
$ref: '#/components/schemas/scaleway.instance.v1.Server.Action'
x-properties-order:
- actions
scaleway.instance.v1.ListServerUserDataResponse:
type: object
properties:
user_data:
type: array
items:
type: string
x-properties-order:
- user_data
scaleway.instance.v1.ListServersResponse:
type: object
properties:
servers:
type: array
description: List of Instances.
items:
$ref: '#/components/schemas/scaleway.instance.v1.Server'
x-properties-order:
- servers
scaleway.instance.v1.ListServersTypesResponse:
type: object
properties:
servers:
type: object
description: List of Instance types.
properties:
:
type: object
description: List of Instance types.
properties:
monthly_price:
type: number
description: Estimated monthly price, for a 30 days month, in Euro.
deprecated: true
format: float
hourly_price:
type: number
description: Hourly price in Euro.
format: float
alt_names:
type: array
description: Alternative Instance name, if any.
items:
type: string
per_volume_constraint:
type: object
description: Additional volume constraints.
properties:
l_ssd:
type: object
description: Local SSD volumes.
properties:
min_size:
type: integer
description: Minimum volume size in bytes. (in bytes)
format: uint64
max_size:
type: integer
description: Maximum volume size in bytes. (in bytes)
format: uint64
x-properties-order:
- min_size
- max_size
x-properties-order:
- l_ssd
volumes_constraint:
type: object
description: Initial volume constraints.
properties:
min_size:
type: integer
description: Minimum volume size in bytes. (in bytes)
format: uint64
max_size:
type: integer
description: Maximum volume size in bytes. (in bytes)
format: uint64
x-properties-order:
- min_size
- max_size
ncpus:
type: integer
description: Number of CPU.
format: uint32
gpu:
type: integer
description: Number of GPU.
format: uint64
nullable: true
ram:
type: integer
description: Available RAM in bytes.
format: uint64
gpu_info:
type: object
description: GPU information.
properties:
gpu_manufacturer:
type: string
description: GPU manufacturer.
gpu_name:
type: string
description: GPU model name.
gpu_memory:
type: integer
description: RAM of a single GPU, in bytes. (in bytes)
format: uint64
x-properties-order:
- gpu_manufacturer
- gpu_name
- gpu_memory
arch:
type: string
description: CPU architecture.
enum:
- unknown_arch
- x86_64
- arm
- arm64
default: unknown_arch
network:
type: object
description: Network available for the Instance.
properties:
interfaces:
type: array
description: List of available network interfaces.
items:
$ref: '#/components/schemas/scaleway.instance.v1.ServerType.Network.Interface'
sum_internal_bandwidth:
type: integer
description: Total maximum internal bandwidth in bits per seconds.
format: uint64
nullable: true
sum_internet_bandwidth:
type: integer
description: Total maximum internet bandwidth in bits per seconds.
format: uint64
nullable: true
ipv6_support:
type: boolean
description: True if IPv6 is enabled.
x-properties-order:
- interfaces
- sum_internal_bandwidth
- sum_internet_bandwidth
- ipv6_support
capabilities:
type: object
description: Capabilities.
properties:
block_storage:
type: boolean
description: Defines whether the Instance supports block storage.
nullable: true
boot_types:
type: array
description: List of supported boot types.
items:
$ref: '#/components/schemas/scaleway.instance.v1.BootType'
max_file_systems:
type: integer
description: Max number of SFS (Scaleway File Systems) that
can be attached to the Instance.
format: uint32
x-properties-order:
- block_storage
- boot_types
- max_file_systems
scratch_storage_max_size:
type: integer
description: Maximum available scratch storage. (in bytes)
format: uint64
nullable: true
scratch_storage_max_volumes_count:
type: integer
description: Maximum supported number of scratch volumes.
format: uint32
block_bandwidth:
type: integer
description: The maximum bandwidth allocated to block storage access
(in bytes per second).
format: uint64
nullable: true
end_of_service:
type: boolean
description: True if this Instance type has reached end of service.
x-properties-order:
- monthly_price
- hourly_price
- alt_names
- per_volume_constraint
- volumes_constraint
- ncpus
- gpu
- ram
- gpu_info
- arch
- network
- capabilities
- scratch_storage_max_size
- scratch_storage_max_volumes_count
- block_bandwidth
- end_of_service
additionalProperties: true
x-properties-order:
- servers
scaleway.instance.v1.ListSnapshotsResponse:
type: object
properties:
snapshots:
type: array
description: List of snapshots.
items:
$ref: '#/components/schemas/scaleway.instance.v1.Snapshot'
x-properties-order:
- snapshots
scaleway.instance.v1.ListVolumesResponse:
type: object
properties:
volumes:
type: array
description: List of volumes.
items:
$ref: '#/components/schemas/scaleway.instance.v1.Volume'
x-properties-order:
- volumes
scaleway.instance.v1.ListVolumesTypesResponse:
type: object
properties:
volumes:
type: object
description: Map of volume types.
properties:
:
type: object
description: Map of volume types.
properties:
display_name:
type: string
capabilities:
$ref: '#/components/schemas/scaleway.instance.v1.VolumeType.Capabilities'
constraints:
$ref: '#/components/schemas/scaleway.instance.v1.VolumeType.Constraints'
x-properties-order:
- display_name
- capabilities
- constraints
additionalProperties: true
x-properties-order:
- volumes
scaleway.instance.v1.MigrationPlan:
type: object
properties:
volume:
type: object
description: A volume which will be migrated to SBS together with the snapshots,
if present.
properties:
id:
type: string
description: Volume unique ID.
name:
type: string
description: Volume name.
export_uri:
type: string
description: Show the volume NBD export URI (deprecated, will always
be empty).
deprecated: true
size:
type: integer
description: Volume disk size. (in bytes)
format: uint64
volume_type:
type: string
description: Volume type.
enum:
- l_ssd
- b_ssd
- unified
- scratch
- sbs_volume
- sbs_snapshot
x-enum-descriptions:
values:
b_ssd: Deprecated
unified: Deprecated
default: l_ssd
creation_date:
type: string
description: Volume creation date. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
modification_date:
type: string
description: Volume modification date. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
organization:
type: string
description: Volume Organization ID.
project:
type: string
description: Volume Project ID.
tags:
type: array
description: Volume tags.
items:
type: string
server:
type: object
description: Instance attached to the volume.
properties:
id:
type: string
name:
type: string
x-properties-order:
- id
- name
state:
type: string
description: Volume state.
enum:
- available
- snapshotting
- fetching
- saving
- attaching
- resizing
- hotsyncing
- error
default: available
zone:
type: string
description: Zone in which the volume is located.
x-properties-order:
- id
- name
- export_uri
- size
- volume_type
- creation_date
- modification_date
- organization
- project
- tags
- server
- state
- zone
snapshots:
type: array
description: A list of snapshots which will be migrated to SBS together
and with the volume, if present.
items:
$ref: '#/components/schemas/scaleway.instance.v1.Snapshot'
validation_key:
type: string
description: A value to be passed to the call to the [Migrate a volume and/or
snapshots to SBS](#path-volumes-migrate-a-volume-andor-snapshots-to-sbs-scaleway-block-storage)
endpoint, to confirm that the execution of the plan is being requested.
x-properties-order:
- volume
- snapshots
- validation_key
scaleway.instance.v1.NullableStringValue:
type: string
nullable: true
scaleway.instance.v1.PlacementGroup:
type: object
properties:
id:
type: string
description: Placement group unique ID.
name:
type: string
description: Placement group name.
organization:
type: string
description: Placement group Organization ID.
project:
type: string
description: Placement group Project ID.
tags:
type: array
description: Placement group tags.
items:
type: string
policy_mode:
type: string
description: Select the failure mode when the placement cannot be respected,
either optional or enforced.
enum:
- optional
- enforced
default: optional
policy_type:
type: string
description: Select the behavior of the placement group, either low_latency
(group) or max_availability (spread).
enum:
- max_availability
- low_latency
default: max_availability
policy_respected:
type: boolean
description: |-
True if the policy is respected, false otherwise.
In the server endpoints the value is always false as it is deprecated.
In the placement group endpoints the value is correct.
zone:
type: string
description: Zone in which the placement group is located.
x-properties-order:
- id
- name
- organization
- project
- tags
- policy_mode
- policy_type
- policy_respected
- zone
scaleway.instance.v1.PlacementGroup.PolicyMode:
type: string
enum:
- optional
- enforced
default: optional
scaleway.instance.v1.PlacementGroup.PolicyType:
type: string
enum:
- max_availability
- low_latency
default: max_availability
scaleway.instance.v1.PlacementGroupServer:
type: object
properties:
id:
type: string
description: Instance UUID.
name:
type: string
description: Instance name.
policy_respected:
type: boolean
description: Defines whether the placement group policy is respected (either
1 or 0).
x-properties-order:
- id
- name
- policy_respected
scaleway.instance.v1.PrivateNIC:
type: object
properties:
id:
type: string
description: Private NIC unique ID.
server_id:
type: string
description: Instance to which the private NIC is attached.
private_network_id:
type: string
description: Private Network the private NIC is attached to.
mac_address:
type: string
description: Private NIC MAC address.
state:
type: string
description: Private NIC state.
enum:
- available
- syncing
- syncing_error
default: available
tags:
type: array
description: Private NIC tags.
items:
type: string
creation_date:
type: string
description: Private NIC creation date. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
zone:
type: string
description: The zone in which the Private NIC is located.
x-properties-order:
- id
- server_id
- private_network_id
- mac_address
- state
- tags
- creation_date
- zone
scaleway.instance.v1.SecurityGroup:
type: object
properties:
id:
type: string
description: Security group unique ID.
name:
type: string
description: Security group name.
description:
type: string
description: Security group description.
enable_default_security:
type: boolean
description: True if SMTP is blocked on IPv4 and IPv6. This feature is read
only, please open a support ticket if you need to make it configurable.
inbound_default_policy:
type: string
description: Default inbound policy.
enum:
- unknown_policy
- accept
- drop
default: unknown_policy
outbound_default_policy:
type: string
description: Default outbound policy.
enum:
- unknown_policy
- accept
- drop
default: unknown_policy
organization:
type: string
description: Security group Organization ID.
project:
type: string
description: Security group Project ID.
tags:
type: array
description: Security group tags.
items:
type: string
organization_default:
type: boolean
description: True if it is your default security group for this Organization
ID.
deprecated: true
project_default:
type: boolean
description: True if it is your default security group for this Project
ID.
creation_date:
type: string
description: Security group creation date. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
modification_date:
type: string
description: Security group modification date. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
servers:
type: array
description: List of Instances attached to this security group.
items:
$ref: '#/components/schemas/scaleway.instance.v1.ServerSummary'
stateful:
type: boolean
description: Defines whether the security group is stateful.
state:
type: string
description: Security group state.
enum:
- available
- syncing
- syncing_error
default: available
zone:
type: string
description: Zone in which the security group is located.
x-properties-order:
- id
- name
- description
- enable_default_security
- inbound_default_policy
- outbound_default_policy
- organization
- project
- tags
- organization_default
- project_default
- creation_date
- modification_date
- servers
- stateful
- state
- zone
scaleway.instance.v1.SecurityGroupRule:
type: object
properties:
id:
type: string
protocol:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroupRule.Protocol'
direction:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroupRule.Direction'
action:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroupRule.Action'
ip_range:
type: string
description: (IP network)
example: 1.2.3.4/32
dest_port_from:
$ref: '#/components/schemas/google.protobuf.UInt32Value'
dest_port_to:
$ref: '#/components/schemas/google.protobuf.UInt32Value'
position:
type: integer
format: uint32
editable:
type: boolean
zone:
type: string
description: The zone you want to target
x-properties-order:
- id
- protocol
- direction
- action
- ip_range
- dest_port_from
- dest_port_to
- position
- editable
- zone
scaleway.instance.v1.SecurityGroupRule.Action:
type: string
enum:
- unknown_action
- accept
- drop
default: unknown_action
scaleway.instance.v1.SecurityGroupRule.Direction:
type: string
enum:
- unknown_direction
- inbound
- outbound
default: unknown_direction
scaleway.instance.v1.SecurityGroupRule.Protocol:
type: string
enum:
- unknown_protocol
- TCP
- UDP
- ICMP
- ANY
default: unknown_protocol
scaleway.instance.v1.SecurityGroupTemplate:
type: object
properties:
id:
type: string
name:
type: string
x-properties-order:
- id
- name
scaleway.instance.v1.Server:
type: object
properties:
id:
type: string
description: Instance unique ID.
name:
type: string
description: Instance name.
organization:
type: string
description: Instance Organization ID.
project:
type: string
description: Instance Project ID.
allowed_actions:
type: array
description: List of allowed actions on the Instance.
items:
$ref: '#/components/schemas/scaleway.instance.v1.Server.Action'
tags:
type: array
description: Tags associated with the Instance.
items:
type: string
commercial_type:
type: string
description: Instance commercial type (eg. GP1-M).
creation_date:
type: string
description: Instance creation date. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
dynamic_ip_required:
type: boolean
description: True if a dynamic IPv4 is required.
routed_ip_enabled:
type: boolean
description: True to configure the instance so it uses the routed IP mode.
Use of `routed_ip_enabled` as `False` is deprecated.
deprecated: true
enable_ipv6:
type: boolean
description: True if IPv6 is enabled (deprecated and always `False` when
`routed_ip_enabled` is `True`).
deprecated: true
hostname:
type: string
description: Instance host name.
image:
type: object
description: Information about the Instance image.
properties:
id:
type: string
name:
type: string
arch:
$ref: '#/components/schemas/scaleway.instance.v1.Arch'
creation_date:
type: string
description: (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
modification_date:
type: string
description: (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
default_bootscript:
deprecated: true
$ref: '#/components/schemas/scaleway.instance.v1.Bootscript'
extra_volumes:
type: object
properties:
:
$ref: '#/components/schemas/scaleway.instance.v1.Volume'
additionalProperties: true
from_server:
type: string
organization:
type: string
public:
type: boolean
root_volume:
$ref: '#/components/schemas/scaleway.instance.v1.VolumeSummary'
state:
$ref: '#/components/schemas/scaleway.instance.v1.Image.State'
project:
type: string
tags:
type: array
items:
type: string
zone:
type: string
description: The zone you want to target
x-properties-order:
- id
- name
- arch
- creation_date
- modification_date
- default_bootscript
- extra_volumes
- from_server
- organization
- public
- root_volume
- state
- project
- tags
- zone
protected:
type: boolean
description: Defines whether the Instance protection option is activated.
private_ip:
type: string
description: Private IP address of the Instance (deprecated and always `null`
when `routed_ip_enabled` is `True`).
nullable: true
public_ip:
type: object
description: Information about the public IP (deprecated in favor of `public_ips`).
deprecated: true
properties:
id:
type: string
description: Unique ID of the IP address.
address:
type: string
description: Instance's public IP-Address. (IP address)
example: 1.2.3.4
gateway:
type: string
description: Gateway's IP address. (IP address)
example: 1.2.3.4
netmask:
type: string
description: CIDR netmask.
family:
type: string
description: IP address family (inet or inet6).
enum:
- inet
- inet6
default: inet
dynamic:
type: boolean
description: True if the IP address is dynamic.
provisioning_mode:
type: string
description: Information about this address provisioning mode.
enum:
- manual
- dhcp
- slaac
default: manual
tags:
type: array
description: Tags associated with the IP.
items:
type: string
ipam_id:
type: string
description: The ip_id of an IPAM ip if the ip is created from IPAM,
null if not. (UUID format)
example: 6170692e-7363-616c-6577-61792e636f6d
state:
type: string
description: IP address state.
enum:
- unknown_state
- detached
- attached
- pending
- error
default: unknown_state
x-properties-order:
- id
- address
- gateway
- netmask
- family
- dynamic
- provisioning_mode
- tags
- ipam_id
- state
public_ips:
type: array
description: Information about all the public IPs attached to the server.
items:
$ref: '#/components/schemas/scaleway.instance.v1.Server.Ip'
mac_address:
type: string
description: The server's MAC address.
modification_date:
type: string
description: Instance modification date. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
state:
type: string
description: Instance state.
enum:
- running
- stopped
- stopped in place
- starting
- stopping
- locked
default: running
location:
type: object
description: Instance location.
properties:
cluster_id:
type: string
hypervisor_id:
type: string
node_id:
type: string
platform_id:
type: string
zone_id:
type: string
x-properties-order:
- cluster_id
- hypervisor_id
- node_id
- platform_id
- zone_id
ipv6:
type: object
description: Instance IPv6 address (deprecated when `routed_ip_enabled`
is `True`).
deprecated: true
properties:
address:
type: string
description: Instance IPv6 IP-Address. (IPv6 address)
example: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
gateway:
type: string
description: IPv6 IP-addresses gateway. (IPv6 address)
example: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
netmask:
type: string
description: IPv6 IP-addresses CIDR netmask.
x-properties-order:
- address
- gateway
- netmask
boot_type:
type: string
description: Instance boot type.
enum:
- local
- bootscript
- rescue
default: local
volumes:
type: object
description: Instance volumes.
properties:
:
type: object
description: Instance volumes.
properties:
id:
type: string
name:
type: string
export_uri:
type: string
deprecated: true
organization:
type: string
server:
$ref: '#/components/schemas/scaleway.instance.v1.ServerSummary'
size:
type: integer
description: (in bytes)
format: uint64
volume_type:
$ref: '#/components/schemas/scaleway.instance.v1.VolumeServer.VolumeType'
creation_date:
type: string
description: (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
modification_date:
type: string
description: (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
state:
$ref: '#/components/schemas/scaleway.instance.v1.VolumeServer.State'
project:
type: string
boot:
type: boolean
zone:
type: string
description: The zone you want to target
x-properties-order:
- id
- name
- export_uri
- organization
- server
- size
- volume_type
- creation_date
- modification_date
- state
- project
- boot
- zone
additionalProperties: true
security_group:
type: object
description: Instance security group.
properties:
id:
type: string
name:
type: string
x-properties-order:
- id
- name
maintenances:
type: array
description: Instance planned maintenance.
items:
$ref: '#/components/schemas/scaleway.instance.v1.Server.Maintenance'
state_detail:
type: string
description: Detailed information about the Instance state.
arch:
type: string
description: Instance architecture.
enum:
- unknown_arch
- x86_64
- arm
- arm64
default: unknown_arch
placement_group:
type: object
description: Instance placement group.
properties:
id:
type: string
description: Placement group unique ID.
name:
type: string
description: Placement group name.
organization:
type: string
description: Placement group Organization ID.
project:
type: string
description: Placement group Project ID.
tags:
type: array
description: Placement group tags.
items:
type: string
policy_mode:
type: string
description: Select the failure mode when the placement cannot be respected,
either optional or enforced.
enum:
- optional
- enforced
default: optional
policy_type:
type: string
description: Select the behavior of the placement group, either low_latency
(group) or max_availability (spread).
enum:
- max_availability
- low_latency
default: max_availability
policy_respected:
type: boolean
description: |-
True if the policy is respected, false otherwise.
In the server endpoints the value is always false as it is deprecated.
In the placement group endpoints the value is correct.
zone:
type: string
description: Zone in which the placement group is located.
x-properties-order:
- id
- name
- organization
- project
- tags
- policy_mode
- policy_type
- policy_respected
- zone
private_nics:
type: array
description: Instance private NICs.
items:
$ref: '#/components/schemas/scaleway.instance.v1.PrivateNIC'
zone:
type: string
description: Zone in which the Instance is located.
admin_password_encryption_ssh_key_id:
type: string
description: |-
UUID of the SSH RSA key that will be used to encrypt the initial admin password for OS requiring it. Mandatory for Windows OS.
The public_key value of this key is used to encrypt the admin password. When set to an empty string, reset this value and admin_password_encrypted_value to an empty string so a new password may be generated.
nullable: true
admin_password_encrypted_value:
type: string
description: |-
A base64 encoded string containing the admin password encrypted with the public key pointed to by admin_password_encryption_ssh_key_id.
This value is reset when admin_password_encryption_ssh_key_id is set to an empty string.
nullable: true
filesystems:
type: array
description: List of attached filesystems.
items:
$ref: '#/components/schemas/scaleway.instance.v1.Server.Filesystem'
end_of_service:
type: boolean
description: True if the Instance type has reached end of service.
dns:
type: string
description: Public DNS of the server.
nullable: true
x-properties-order:
- id
- name
- organization
- project
- allowed_actions
- tags
- commercial_type
- creation_date
- dynamic_ip_required
- routed_ip_enabled
- enable_ipv6
- hostname
- image
- protected
- private_ip
- public_ip
- public_ips
- mac_address
- modification_date
- state
- location
- ipv6
- boot_type
- volumes
- security_group
- maintenances
- state_detail
- arch
- placement_group
- private_nics
- zone
- admin_password_encryption_ssh_key_id
- admin_password_encrypted_value
- filesystems
- end_of_service
- dns
scaleway.instance.v1.Server.Action:
type: string
enum:
- poweron
- backup
- stop_in_place
- poweroff
- terminate
- reboot
- enable_routed_ip
default: poweron
scaleway.instance.v1.Server.Filesystem:
type: object
properties:
filesystem_id:
type: string
description: (UUID format)
example: 6170692e-7363-616c-6577-61792e636f6d
state:
$ref: '#/components/schemas/scaleway.instance.v1.Server.Filesystem.State'
x-properties-order:
- filesystem_id
- state
scaleway.instance.v1.Server.Filesystem.State:
type: string
enum:
- unknown_state
- attaching
- available
- detaching
default: unknown_state
scaleway.instance.v1.Server.Ip:
type: object
properties:
id:
type: string
description: Unique ID of the IP address.
address:
type: string
description: Instance's public IP-Address. (IP address)
example: 1.2.3.4
gateway:
type: string
description: Gateway's IP address. (IP address)
example: 1.2.3.4
netmask:
type: string
description: CIDR netmask.
family:
type: string
description: IP address family (inet or inet6).
enum:
- inet
- inet6
default: inet
dynamic:
type: boolean
description: True if the IP address is dynamic.
provisioning_mode:
type: string
description: Information about this address provisioning mode.
enum:
- manual
- dhcp
- slaac
default: manual
tags:
type: array
description: Tags associated with the IP.
items:
type: string
ipam_id:
type: string
description: The ip_id of an IPAM ip if the ip is created from IPAM, null
if not. (UUID format)
example: 6170692e-7363-616c-6577-61792e636f6d
state:
type: string
description: IP address state.
enum:
- unknown_state
- detached
- attached
- pending
- error
default: unknown_state
x-properties-order:
- id
- address
- gateway
- netmask
- family
- dynamic
- provisioning_mode
- tags
- ipam_id
- state
scaleway.instance.v1.Server.Maintenance:
type: object
properties:
reason:
type: string
start_date:
type: string
description: (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
x-properties-order:
- reason
- start_date
scaleway.instance.v1.ServerActionResponse:
type: object
properties:
task:
$ref: '#/components/schemas/scaleway.instance.v1.Task'
x-properties-order:
- task
scaleway.instance.v1.ServerCompatibleTypes:
type: object
properties:
compatible_types:
type: array
description: Instance compatible types.
items:
type: string
x-properties-order:
- compatible_types
scaleway.instance.v1.ServerSummary:
type: object
properties:
id:
type: string
name:
type: string
x-properties-order:
- id
- name
scaleway.instance.v1.ServerType.Network.Interface:
type: object
properties:
internal_bandwidth:
type: integer
description: Maximum internal bandwidth in bits per seconds.
format: uint64
nullable: true
internet_bandwidth:
type: integer
description: Maximum internet bandwidth in bits per seconds.
format: uint64
nullable: true
x-properties-order:
- internal_bandwidth
- internet_bandwidth
scaleway.instance.v1.ServerTypesAvailability:
type: string
enum:
- available
- scarce
- shortage
default: available
scaleway.instance.v1.SetImageResponse:
type: object
properties:
image:
$ref: '#/components/schemas/scaleway.instance.v1.Image'
x-properties-order:
- image
scaleway.instance.v1.SetPlacementGroupResponse:
type: object
properties:
placement_group:
$ref: '#/components/schemas/scaleway.instance.v1.PlacementGroup'
x-properties-order:
- placement_group
scaleway.instance.v1.SetPlacementGroupServersResponse:
type: object
properties:
servers:
type: array
description: Instances attached to the placement group.
items:
$ref: '#/components/schemas/scaleway.instance.v1.PlacementGroupServer'
x-properties-order:
- servers
scaleway.instance.v1.SetSecurityGroupResponse:
type: object
properties:
security_group:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroup'
x-properties-order:
- security_group
scaleway.instance.v1.SetSecurityGroupRuleResponse:
type: object
properties:
rule:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroupRule'
x-properties-order:
- rule
scaleway.instance.v1.SetSecurityGroupRulesRequest.Rule:
type: object
properties:
id:
type: string
description: UUID of the security rule to update. If no value is provided,
a new rule will be created.
nullable: true
action:
type: string
description: Action to apply when the rule matches a packet.
enum:
- unknown_action
- accept
- drop
default: unknown_action
protocol:
type: string
description: Protocol family this rule applies to.
enum:
- unknown_protocol
- TCP
- UDP
- ICMP
- ANY
default: unknown_protocol
direction:
type: string
description: Direction the rule applies to.
enum:
- unknown_direction
- inbound
- outbound
default: unknown_direction
ip_range:
type: string
description: Range of IP addresses these rules apply to. (IP network)
example: 1.2.3.4/32
dest_port_from:
type: integer
description: Beginning of the range of ports this rule applies to (inclusive).
This value will be set to null if protocol is ICMP or ANY.
format: uint32
nullable: true
dest_port_to:
type: integer
description: End of the range of ports this rule applies to (inclusive).
This value will be set to null if protocol is ICMP or ANY, or if it is
equal to dest_port_from.
format: uint32
nullable: true
position:
type: integer
description: Position of this rule in the security group rules list. If
several rules are passed with the same position, the resulting order is
undefined.
format: uint32
editable:
type: boolean
description: Indicates if this rule is editable. Rules with the value false
will be ignored.
nullable: true
zone:
type: string
description: Zone of the rule. This field is ignored.
x-properties-order:
- id
- action
- protocol
- direction
- ip_range
- dest_port_from
- dest_port_to
- position
- editable
- zone
scaleway.instance.v1.SetSecurityGroupRulesResponse:
type: object
properties:
rules:
type: array
items:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroupRule'
x-properties-order:
- rules
scaleway.instance.v1.SetSnapshotResponse:
type: object
properties:
snapshot:
$ref: '#/components/schemas/scaleway.instance.v1.Snapshot'
x-properties-order:
- snapshot
scaleway.instance.v1.SetVolumeResponse:
type: object
properties:
volume:
$ref: '#/components/schemas/scaleway.instance.v1.Volume'
x-properties-order:
- volume
scaleway.instance.v1.Snapshot:
type: object
properties:
id:
type: string
description: Snapshot ID.
name:
type: string
description: Snapshot name.
organization:
type: string
description: Snapshot Organization ID.
project:
type: string
description: Snapshot Project ID.
tags:
type: array
description: Snapshot tags.
items:
type: string
volume_type:
type: string
description: Snapshot volume type.
enum:
- l_ssd
- b_ssd
- unified
- scratch
- sbs_volume
- sbs_snapshot
x-enum-descriptions:
values:
b_ssd: Deprecated
unified: Deprecated
default: l_ssd
size:
type: integer
description: Snapshot size. (in bytes)
format: uint64
state:
type: string
description: Snapshot state.
enum:
- available
- snapshotting
- error
- invalid_data
- importing
- exporting
default: available
base_volume:
type: object
description: Volume on which the snapshot is based on.
properties:
id:
type: string
description: Volume ID on which the snapshot is based.
name:
type: string
description: Volume name on which the snapshot is based on.
x-properties-order:
- id
- name
creation_date:
type: string
description: Snapshot creation date. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
modification_date:
type: string
description: Snapshot modification date. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
zone:
type: string
description: Snapshot zone.
error_reason:
type: string
description: Reason for the failed snapshot import.
nullable: true
x-properties-order:
- id
- name
- organization
- project
- tags
- volume_type
- size
- state
- base_volume
- creation_date
- modification_date
- zone
- error_reason
scaleway.instance.v1.Snapshot.BaseVolume:
type: object
properties:
id:
type: string
description: Volume ID on which the snapshot is based.
name:
type: string
description: Volume name on which the snapshot is based on.
x-properties-order:
- id
- name
scaleway.instance.v1.Snapshot.State:
type: string
enum:
- available
- snapshotting
- error
- invalid_data
- importing
- exporting
default: available
scaleway.instance.v1.Task:
type: object
properties:
id:
type: string
description: Unique ID of the task.
description:
type: string
description: Description of the task.
progress:
type: integer
description: Progress of the task in percent.
format: int32
started_at:
type: string
description: Task start date. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
terminated_at:
type: string
description: Task end date. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
status:
type: string
description: Task status.
enum:
- pending
- started
- success
- failure
- retry
default: pending
href_from:
type: string
href_result:
type: string
zone:
type: string
description: Zone in which the task is executed.
x-properties-order:
- id
- description
- progress
- started_at
- terminated_at
- status
- href_from
- href_result
- zone
scaleway.instance.v1.UpdateImageResponse:
type: object
properties:
image:
$ref: '#/components/schemas/scaleway.instance.v1.Image'
x-properties-order:
- image
scaleway.instance.v1.UpdateIpResponse:
type: object
properties:
ip:
$ref: '#/components/schemas/scaleway.instance.v1.Ip'
x-properties-order:
- ip
scaleway.instance.v1.UpdatePlacementGroupResponse:
type: object
properties:
placement_group:
$ref: '#/components/schemas/scaleway.instance.v1.PlacementGroup'
x-properties-order:
- placement_group
scaleway.instance.v1.UpdatePlacementGroupServersResponse:
type: object
properties:
servers:
type: array
description: Instances attached to the placement group.
items:
$ref: '#/components/schemas/scaleway.instance.v1.PlacementGroupServer'
x-properties-order:
- servers
scaleway.instance.v1.UpdateSecurityGroupResponse:
type: object
properties:
security_group:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroup'
x-properties-order:
- security_group
scaleway.instance.v1.UpdateSecurityGroupRuleResponse:
type: object
properties:
rule:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroupRule'
x-properties-order:
- rule
scaleway.instance.v1.UpdateServerResponse:
type: object
properties:
server:
$ref: '#/components/schemas/scaleway.instance.v1.Server'
x-properties-order:
- server
scaleway.instance.v1.UpdateSnapshotResponse:
type: object
properties:
snapshot:
$ref: '#/components/schemas/scaleway.instance.v1.Snapshot'
x-properties-order:
- snapshot
scaleway.instance.v1.UpdateVolumeResponse:
type: object
properties:
volume:
$ref: '#/components/schemas/scaleway.instance.v1.Volume'
x-properties-order:
- volume
scaleway.instance.v1.Volume:
type: object
properties:
id:
type: string
description: Volume unique ID.
name:
type: string
description: Volume name.
export_uri:
type: string
description: Show the volume NBD export URI (deprecated, will always be
empty).
deprecated: true
size:
type: integer
description: Volume disk size. (in bytes)
format: uint64
volume_type:
type: string
description: Volume type.
enum:
- l_ssd
- b_ssd
- unified
- scratch
- sbs_volume
- sbs_snapshot
x-enum-descriptions:
values:
b_ssd: Deprecated
unified: Deprecated
default: l_ssd
creation_date:
type: string
description: Volume creation date. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
modification_date:
type: string
description: Volume modification date. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
organization:
type: string
description: Volume Organization ID.
project:
type: string
description: Volume Project ID.
tags:
type: array
description: Volume tags.
items:
type: string
server:
type: object
description: Instance attached to the volume.
properties:
id:
type: string
name:
type: string
x-properties-order:
- id
- name
state:
type: string
description: Volume state.
enum:
- available
- snapshotting
- fetching
- saving
- attaching
- resizing
- hotsyncing
- error
default: available
zone:
type: string
description: Zone in which the volume is located.
x-properties-order:
- id
- name
- export_uri
- size
- volume_type
- creation_date
- modification_date
- organization
- project
- tags
- server
- state
- zone
scaleway.instance.v1.Volume.VolumeType:
type: string
enum:
- l_ssd
- b_ssd
- unified
- scratch
- sbs_volume
- sbs_snapshot
x-enum-descriptions:
values:
b_ssd: Deprecated
unified: Deprecated
default: l_ssd
scaleway.instance.v1.VolumeServer.State:
type: string
enum:
- available
- snapshotting
- resizing
- fetching
- saving
- hotsyncing
- attaching
- error
default: available
scaleway.instance.v1.VolumeServer.VolumeType:
type: string
enum:
- l_ssd
- b_ssd
- sbs_volume
- scratch
x-enum-descriptions:
values:
b_ssd: Deprecated
default: l_ssd
scaleway.instance.v1.VolumeServerTemplate:
type: object
properties:
id:
type: string
description: UUID of the volume.
nullable: true
boot:
type: boolean
description: Force the Instance to boot on this volume.
nullable: true
default: false
name:
type: string
description: Name of the volume.
nullable: true
size:
type: integer
description: Disk size of the volume, must be a multiple of 512. (in bytes)
format: uint64
nullable: true
volume_type:
type: string
description: Type of the volume.
enum:
- l_ssd
- b_ssd
- unified
- scratch
- sbs_volume
- sbs_snapshot
x-enum-descriptions:
values:
b_ssd: Deprecated
unified: Deprecated
default: l_ssd
base_snapshot:
type: string
description: ID of the snapshot on which this volume will be based.
nullable: true
organization:
type: string
description: Organization ID of the volume.
nullable: true
project:
type: string
description: Project ID of the volume.
nullable: true
x-properties-order:
- id
- boot
- name
- size
- volume_type
- base_snapshot
- organization
- project
scaleway.instance.v1.VolumeSummary:
type: object
properties:
id:
type: string
name:
type: string
size:
type: integer
description: (in bytes)
format: uint64
volume_type:
$ref: '#/components/schemas/scaleway.instance.v1.Volume.VolumeType'
x-properties-order:
- id
- name
- size
- volume_type
scaleway.instance.v1.VolumeType.Capabilities:
type: object
properties:
snapshot:
type: boolean
x-properties-order:
- snapshot
scaleway.instance.v1.VolumeType.Constraints:
type: object
properties:
min:
type: integer
description: (in bytes)
format: uint64
max:
type: integer
description: (in bytes)
format: uint64
x-properties-order:
- min
- max
scaleway.std.File:
type: object
properties:
name:
type: string
content_type:
type: string
content:
type: string
x-properties-order:
- name
- content_type
- content
scaleway.std.StringsValue:
type: array
nullable: true
items:
type: string
securitySchemes:
scaleway:
in: header
name: X-Auth-Token
type: apiKey
paths:
/instance/v1/zones/{zone}/block-migration/apply:
post:
tags:
- Volumes
operationId: ApplyBlockMigration
summary: Migrate a volume and/or snapshots to SBS (Scaleway Block Storage)
description: To be used, the call to this endpoint must be preceded by a call
to the [Get a volume or snapshot's migration plan](#path-volumes-get-a-volume-or-snapshots-migration-plan)
endpoint. To migrate all resources mentioned in the migration plan, the validation_key
returned in the plan must be provided.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
responses:
"204":
description: ""
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
volume_id:
type: string
description: The volume to migrate, along with potentially other
resources, according to the migration plan generated with a call
to the [Get a volume or snapshot's migration plan](#path-volumes-get-a-volume-or-snapshots-migration-plan)
endpoint.
nullable: true
x-one-of: resource
snapshot_id:
type: string
description: The snapshot to migrate, along with potentially other
resources, according to the migration plan generated with a call
to the [Get a volume or snapshot's migration plan](#path-volumes-get-a-volume-or-snapshots-migration-plan)
endpoint.
nullable: true
x-one-of: resource
validation_key:
type: string
description: A value to be retrieved from a call to the [Get a volume
or snapshot's migration plan](#path-volumes-get-a-volume-or-snapshots-migration-plan)
endpoint, to confirm that the volume and/or snapshots specified
in said plan should be migrated.
required:
- validation_key
x-properties-order:
- volume_id
- snapshot_id
- validation_key
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"validation_key":"string"}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/block-migration/apply"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/instance/v1/zones/{zone}/block-migration/apply" \
X-Auth-Token:$SCW_SECRET_KEY \
validation_key="string"
/instance/v1/zones/{zone}/block-migration/check-organization-quotas:
post:
operationId: CheckBlockMigrationOrganizationQuotas
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
responses:
"204":
description: ""
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
organization:
type: string
x-properties-order:
- organization
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"organization":"string"}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/block-migration/check-organization-quotas"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/instance/v1/zones/{zone}/block-migration/check-organization-quotas" \
X-Auth-Token:$SCW_SECRET_KEY \
organization="string"
/instance/v1/zones/{zone}/block-migration/plan:
post:
tags:
- Volumes
operationId: PlanBlockMigration
summary: Get a volume or snapshot's migration plan
description: |-
Given a volume or snapshot, returns the migration plan but does not perform the actual migration. To perform the migration, you have to call the [Migrate a volume and/or snapshots to SBS](#path-volumes-migrate-a-volume-andor-snapshots-to-sbs-scaleway-block-storage) endpoint afterward.
The endpoint returns the resources that should be migrated together:
- the volume and any snapshots created from the volume, if the call was made to plan a volume migration.
- the base volume of the snapshot (if the volume is not deleted) and its related snapshots, if the call was made to plan a snapshot migration.
The endpoint also returns the validation_key, which must be provided to the [Migrate a volume and/or snapshots to SBS](#path-volumes-migrate-a-volume-andor-snapshots-to-sbs-scaleway-block-storage) endpoint to confirm that all resources listed in the plan should be migrated.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.MigrationPlan'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
volume_id:
type: string
description: The volume for which the migration plan will be generated.
nullable: true
x-one-of: resource
snapshot_id:
type: string
description: The snapshot for which the migration plan will be generated.
nullable: true
x-one-of: resource
x-properties-order:
- volume_id
- snapshot_id
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/block-migration/plan"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/instance/v1/zones/{zone}/block-migration/plan" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/dashboard:
get:
operationId: GetDashboard
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: query
name: organization
schema:
$ref: '#/components/schemas/google.protobuf.StringValue'
- in: query
name: project
schema:
$ref: '#/components/schemas/google.protobuf.StringValue'
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.GetDashboardResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/dashboard"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/dashboard" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/images:
get:
tags:
- Images
operationId: ListImages
summary: List Instance images
description: List all existing Instance images.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: query
name: organization
schema:
$ref: '#/components/schemas/google.protobuf.StringValue'
- in: query
name: per_page
schema:
type: integer
format: uint32
- in: query
name: page
schema:
$ref: '#/components/schemas/google.protobuf.Int32Value'
- in: query
name: name
schema:
$ref: '#/components/schemas/google.protobuf.StringValue'
- in: query
name: public
schema:
$ref: '#/components/schemas/google.protobuf.BoolValue'
- in: query
name: arch
schema:
$ref: '#/components/schemas/google.protobuf.StringValue'
- in: query
name: project
schema:
$ref: '#/components/schemas/google.protobuf.StringValue'
- in: query
name: tags
schema:
$ref: '#/components/schemas/google.protobuf.StringValue'
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.ListImagesResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/images"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/images" \
X-Auth-Token:$SCW_SECRET_KEY
post:
tags:
- Images
operationId: CreateImage
summary: Create an Instance image
description: Create an Instance image from the specified snapshot ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
responses:
"201":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.CreateImageResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the image.
root_volume:
type: string
description: UUID of the snapshot.
arch:
type: string
description: Architecture of the image.
enum:
- unknown_arch
- x86_64
- arm
- arm64
default: unknown_arch
extra_volumes:
type: object
description: Additional volumes of the image.
properties:
:
type: object
description: Additional volumes of the image.
properties:
id:
type: string
description: UUID of the volume.
name:
type: string
description: Name of the volume.
size:
type: integer
description: Disk size of the volume, must be a multiple
of 512. (in bytes)
format: uint64
volume_type:
type: string
description: Type of the volume.
enum:
- l_ssd
- b_ssd
- unified
- scratch
- sbs_volume
- sbs_snapshot
x-enum-descriptions:
values:
b_ssd: Deprecated
unified: Deprecated
default: l_ssd
organization:
type: string
description: Organization ID of the volume.
deprecated: true
nullable: true
x-one-of: ProjectIdentifier
project:
type: string
description: Project ID of the volume.
nullable: true
x-one-of: ProjectIdentifier
x-properties-order:
- id
- name
- size
- volume_type
- organization
- project
additionalProperties: true
organization:
type: string
description: Organization ID of the image.
deprecated: true
nullable: true
x-one-of: ProjectIdentifier
project:
type: string
description: Project ID of the image.
nullable: true
x-one-of: ProjectIdentifier
tags:
type: array
description: Tags of the image.
items:
type: string
public:
type: boolean
description: True to create a public image.
nullable: true
required:
- root_volume
- arch
x-properties-order:
- name
- root_volume
- arch
- extra_volumes
- organization
- project
- tags
- public
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"arch": "unknown_arch",
"extra_volumes": {
"": {
"id": "string",
"name": "string",
"organization": "string",
"project": "string",
"size": 42,
"volume_type": "l_ssd"
}
},
"name": "string",
"root_volume": "string"
}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/images"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/instance/v1/zones/{zone}/images" \
X-Auth-Token:$SCW_SECRET_KEY \
arch="unknown_arch" \
extra_volumes:='{
"": {
"id": "string",
"name": "string",
"organization": "string",
"project": "string",
"size": 42,
"volume_type": "l_ssd"
}
}' \
name="string" \
root_volume="string"
/instance/v1/zones/{zone}/images/{id}:
put:
tags:
- Images
operationId: SetImage
summary: Update image
description: Replace all image properties with an image message.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: id
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.SetImageResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
arch:
$ref: '#/components/schemas/scaleway.instance.v1.Arch'
creation_date:
type: string
description: (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
modification_date:
type: string
description: (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
default_bootscript:
deprecated: true
$ref: '#/components/schemas/scaleway.instance.v1.Bootscript'
extra_volumes:
type: object
properties:
:
$ref: '#/components/schemas/scaleway.instance.v1.Volume'
additionalProperties: true
from_server:
type: string
organization:
type: string
public:
type: boolean
root_volume:
$ref: '#/components/schemas/scaleway.instance.v1.VolumeSummary'
state:
$ref: '#/components/schemas/scaleway.instance.v1.Image.State'
project:
type: string
tags:
$ref: '#/components/schemas/scaleway.std.StringsValue'
x-properties-order:
- name
- arch
- creation_date
- modification_date
- default_bootscript
- extra_volumes
- from_server
- organization
- public
- root_volume
- state
- project
- tags
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PUT \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"extra_volumes": {
"": ""
},
"from_server": "string",
"name": "string",
"organization": "string",
"project": "string",
"public": false
}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/images/{id}"
- lang: HTTPie
source: |-
http PUT "https://api.scaleway.com/instance/v1/zones/{zone}/images/{id}" \
X-Auth-Token:$SCW_SECRET_KEY \
extra_volumes:='{
"": ""
}' \
from_server="string" \
name="string" \
organization="string" \
project="string" \
public:=false
/instance/v1/zones/{zone}/images/{image_id}:
get:
tags:
- Images
operationId: GetImage
summary: Get an Instance image
description: Get details of an image with the specified ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: image_id
description: UUID of the image you want to get.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.GetImageResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/images/{image_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/images/{image_id}" \
X-Auth-Token:$SCW_SECRET_KEY
patch:
tags:
- Images
operationId: UpdateImage
summary: Update image
description: Update the properties of an image.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: image_id
description: UUID of the image. (UUID format)
required: true
schema:
type: string
example: 6170692e-7363-616c-6577-61792e636f6d
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.UpdateImageResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the image.
nullable: true
arch:
type: string
description: Architecture of the image.
enum:
- unknown_arch
- x86_64
- arm
- arm64
default: unknown_arch
extra_volumes:
type: object
description: Additional snapshots of the image, with extra_volumeKey
being the position of the snapshot in the image.
properties:
:
type: object
description: Additional snapshots of the image, with extra_volumeKey
being the position of the snapshot in the image.
properties:
id:
type: string
description: UUID of the snapshot. (UUID format)
example: 6170692e-7363-616c-6577-61792e636f6d
required:
- id
x-properties-order:
- id
additionalProperties: true
tags:
type: array
description: Tags of the image.
nullable: true
items:
type: string
public:
type: boolean
description: True to set the image as public.
nullable: true
x-properties-order:
- name
- arch
- extra_volumes
- tags
- public
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PATCH \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"extra_volumes":{"":{"id":"6170692e-7363-616c-6577-61792e636f6d"}}}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/images/{image_id}"
- lang: HTTPie
source: |-
http PATCH "https://api.scaleway.com/instance/v1/zones/{zone}/images/{image_id}" \
X-Auth-Token:$SCW_SECRET_KEY \
extra_volumes:='{"":{"id":"6170692e-7363-616c-6577-61792e636f6d"}}'
delete:
tags:
- Images
operationId: DeleteImage
summary: Delete an Instance image
description: Delete the image with the specified ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: image_id
description: UUID of the image you want to delete.
required: true
schema:
type: string
responses:
"204":
description: ""
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/images/{image_id}"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/instance/v1/zones/{zone}/images/{image_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/ips:
get:
tags:
- IPs
operationId: ListIps
summary: List all flexible IPs
description: List all flexible IPs in a specified zone.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: query
name: project
description: Project ID in which the IPs are reserved.
schema:
type: string
- in: query
name: organization
description: Organization ID in which the IPs are reserved.
schema:
type: string
- in: query
name: tags
description: Filter IPs with these exact tags (to filter with several tags,
use commas to separate them).
schema:
type: string
- in: query
name: name
description: Filter on the IP address (Works as a LIKE operation on the IP
address).
schema:
type: string
- in: query
name: per_page
description: A positive integer lower or equal to 100 to select the number
of items to return.
schema:
type: integer
format: uint32
- in: query
name: page
description: A positive integer to choose the page to return.
schema:
type: integer
format: int32
- in: query
name: type
description: Filter on the IP Mobility IP type (whose value should be either
'routed_ipv4' or 'routed_ipv6').
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.ListIpsResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/ips"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/ips" \
X-Auth-Token:$SCW_SECRET_KEY
post:
tags:
- IPs
operationId: CreateIp
summary: Reserve a flexible IP
description: Reserve a flexible IP and attach it to the specified Instance.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
responses:
"201":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.CreateIpResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
organization:
type: string
description: Organization ID in which the IP is reserved.
deprecated: true
nullable: true
x-one-of: ProjectIdentifier
project:
type: string
description: Project ID in which the IP is reserved.
nullable: true
x-one-of: ProjectIdentifier
tags:
type: array
description: Tags of the IP.
items:
type: string
server:
type: string
description: UUID of the Instance you want to attach the IP to.
nullable: true
type:
type: string
description: IP type to reserve (either 'routed_ipv4' or 'routed_ipv6').
enum:
- unknown_iptype
- routed_ipv4
- routed_ipv6
default: unknown_iptype
x-properties-order:
- organization
- project
- tags
- server
- type
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/ips"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/instance/v1/zones/{zone}/ips" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/ips/{ip_id}/release-to-ipam:
post:
tags:
- IPs
operationId: ReleaseIpToIpam
summary: Releases the reserved IP without deleting the reservation.
description: '**The IP remains available in IPAM**, which means that it is still
reserved by the Organization, and can be reattached to another resource (Instance
or other product).'
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: ip_id
description: ID of the IP you want to release from the Instance but retain
in IPAM.
required: true
schema:
type: string
responses:
"204":
description: ""
requestBody:
required: true
content:
application/json:
schema:
type: object
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/ips/{ip_id}/release-to-ipam"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/instance/v1/zones/{zone}/ips/{ip_id}/release-to-ipam" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/ips/{ip}:
get:
tags:
- IPs
operationId: GetIp
summary: Get a flexible IP
description: Get details of an IP with the specified ID or address.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: ip
description: IP ID or address to get.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.GetIpResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/ips/{ip}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/ips/{ip}" \
X-Auth-Token:$SCW_SECRET_KEY
patch:
tags:
- IPs
operationId: UpdateIp
summary: Update a flexible IP
description: Update a flexible IP in the specified zone with the specified ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: ip
description: IP ID or IP address.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.UpdateIpResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
reverse:
type: string
description: Reverse domain name.
nullable: true
type:
type: string
description: Should have no effect.
enum:
- unknown_iptype
- routed_ipv4
- routed_ipv6
default: unknown_iptype
tags:
type: array
description: An array of keywords you want to tag this IP with.
nullable: true
items:
type: string
server:
$ref: '#/components/schemas/scaleway.instance.v1.NullableStringValue'
x-properties-order:
- reverse
- type
- tags
- server
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PATCH \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/ips/{ip}"
- lang: HTTPie
source: |-
http PATCH "https://api.scaleway.com/instance/v1/zones/{zone}/ips/{ip}" \
X-Auth-Token:$SCW_SECRET_KEY
delete:
tags:
- IPs
operationId: DeleteIp
summary: Delete a flexible IP
description: Delete the IP with the specified ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: ip
description: ID or address of the IP to delete.
required: true
schema:
type: string
responses:
"204":
description: ""
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/ips/{ip}"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/instance/v1/zones/{zone}/ips/{ip}" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/placement_groups:
get:
tags:
- Placement Groups
operationId: ListPlacementGroups
summary: List placement groups
description: List all placement groups in a specified Availability Zone.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: query
name: per_page
description: A positive integer lower or equal to 100 to select the number
of items to return.
schema:
type: integer
format: uint32
- in: query
name: page
description: A positive integer to choose the page to return.
schema:
type: integer
format: int32
- in: query
name: organization
description: List only placement groups of this Organization ID.
schema:
type: string
- in: query
name: project
description: List only placement groups of this Project ID.
schema:
type: string
- in: query
name: tags
description: List placement groups with these exact tags (to filter with several
tags, use commas to separate them).
schema:
type: string
- in: query
name: name
description: Filter placement groups by name (for eg. "cluster1" will return
"cluster100" and "cluster1" but not "foo").
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.ListPlacementGroupsResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups" \
X-Auth-Token:$SCW_SECRET_KEY
post:
tags:
- Placement Groups
operationId: CreatePlacementGroup
summary: Create a placement group
description: Create a new placement group in a specified Availability Zone.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
responses:
"201":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.CreatePlacementGroupResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the placement group.
organization:
type: string
description: Organization ID of the placement group.
deprecated: true
nullable: true
x-one-of: ProjectIdentifier
project:
type: string
description: Project ID of the placement group.
nullable: true
x-one-of: ProjectIdentifier
tags:
type: array
description: Tags of the placement group.
items:
type: string
policy_mode:
type: string
description: Operating mode of the placement group.
enum:
- optional
- enforced
default: optional
policy_type:
type: string
description: Policy type of the placement group.
enum:
- max_availability
- low_latency
default: max_availability
x-properties-order:
- name
- organization
- project
- tags
- policy_mode
- policy_type
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"string"}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups" \
X-Auth-Token:$SCW_SECRET_KEY \
name="string"
/instance/v1/zones/{zone}/placement_groups/{placement_group_id}:
get:
tags:
- Placement Groups
operationId: GetPlacementGroup
summary: Get a placement group
description: Get the specified placement group.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: placement_group_id
description: UUID of the placement group you want to get.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.GetPlacementGroupResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}" \
X-Auth-Token:$SCW_SECRET_KEY
put:
tags:
- Placement Groups
operationId: SetPlacementGroup
summary: Set placement group
description: Set all parameters of the specified placement group.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: placement_group_id
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.SetPlacementGroupResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
organization:
type: string
policy_mode:
$ref: '#/components/schemas/scaleway.instance.v1.PlacementGroup.PolicyMode'
policy_type:
$ref: '#/components/schemas/scaleway.instance.v1.PlacementGroup.PolicyType'
project:
type: string
tags:
$ref: '#/components/schemas/scaleway.std.StringsValue'
x-properties-order:
- name
- organization
- policy_mode
- policy_type
- project
- tags
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PUT \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "string",
"organization": "string",
"project": "string"
}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}"
- lang: HTTPie
source: |-
http PUT "https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}" \
X-Auth-Token:$SCW_SECRET_KEY \
name="string" \
organization="string" \
project="string"
patch:
tags:
- Placement Groups
operationId: UpdatePlacementGroup
summary: Update a placement group
description: Update one or more parameter of the specified placement group.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: placement_group_id
description: UUID of the placement group.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.UpdatePlacementGroupResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the placement group.
nullable: true
tags:
type: array
description: Tags of the placement group.
nullable: true
items:
type: string
policy_mode:
type: string
description: Operating mode of the placement group.
enum:
- optional
- enforced
default: optional
policy_type:
type: string
description: Policy type of the placement group.
enum:
- max_availability
- low_latency
default: max_availability
x-properties-order:
- name
- tags
- policy_mode
- policy_type
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PATCH \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}"
- lang: HTTPie
source: |-
http PATCH "https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}" \
X-Auth-Token:$SCW_SECRET_KEY
delete:
tags:
- Placement Groups
operationId: DeletePlacementGroup
summary: Delete the specified placement group
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: placement_group_id
description: UUID of the placement group you want to delete.
required: true
schema:
type: string
responses:
"204":
description: ""
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers:
get:
tags:
- Placement Groups
operationId: GetPlacementGroupServers
summary: Get placement group servers
description: Get all Instances belonging to the specified placement group.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: placement_group_id
description: UUID of the placement group you want to get.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.GetPlacementGroupServersResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers" \
X-Auth-Token:$SCW_SECRET_KEY
put:
tags:
- Placement Groups
operationId: SetPlacementGroupServers
summary: Set placement group servers
description: Set all Instances belonging to the specified placement group.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: placement_group_id
description: UUID of the placement group you want to set.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.SetPlacementGroupServersResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
servers:
type: array
description: An array of the Instances' UUIDs you want to configure.
items:
type: string
required:
- servers
x-properties-order:
- servers
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PUT \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"servers":["string"]}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers"
- lang: HTTPie
source: |-
http PUT "https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers" \
X-Auth-Token:$SCW_SECRET_KEY \
servers:='["string"]'
patch:
tags:
- Placement Groups
operationId: UpdatePlacementGroupServers
summary: Update placement group servers
description: Update all Instances belonging to the specified placement group.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: placement_group_id
description: UUID of the placement group you want to update.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.UpdatePlacementGroupServersResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
servers:
type: array
description: An array of the Instances' UUIDs you want to configure.
items:
type: string
required:
- servers
x-properties-order:
- servers
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PATCH \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"servers":["string"]}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers"
- lang: HTTPie
source: |-
http PATCH "https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers" \
X-Auth-Token:$SCW_SECRET_KEY \
servers:='["string"]'
/instance/v1/zones/{zone}/products/servers:
get:
tags:
- Instance Types
operationId: ListServersTypes
summary: List Instance types
description: List available Instance types and their technical details.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: query
name: per_page
schema:
type: integer
format: uint32
- in: query
name: page
schema:
$ref: '#/components/schemas/google.protobuf.Int32Value'
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.ListServersTypesResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/products/servers"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/products/servers" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/products/servers/availability:
get:
tags:
- Instance Types
operationId: GetServerTypesAvailability
summary: Get availability
description: Get availability for all Instance types.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: query
name: per_page
description: A positive integer lower or equal to 100 to select the number
of items to return.
schema:
type: integer
format: uint32
- in: query
name: page
description: A positive integer to choose the page to return.
schema:
type: integer
format: int32
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.GetServerTypesAvailabilityResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/products/servers/availability"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/products/servers/availability" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/products/volumes:
get:
tags:
- Volume Types
operationId: ListVolumesTypes
summary: List volume types
description: List all volume types and their technical details.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: query
name: per_page
schema:
type: integer
format: uint32
- in: query
name: page
schema:
$ref: '#/components/schemas/google.protobuf.Int32Value'
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.ListVolumesTypesResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/products/volumes"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/products/volumes" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/security_groups:
get:
tags:
- Security Groups
operationId: ListSecurityGroups
summary: List security groups
description: List all existing security groups.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: query
name: name
description: Name of the security group.
schema:
type: string
- in: query
name: organization
description: Security group Organization ID.
schema:
type: string
- in: query
name: project
description: Security group Project ID.
schema:
type: string
- in: query
name: tags
description: List security groups with these exact tags (to filter with several
tags, use commas to separate them).
schema:
type: string
- in: query
name: project_default
description: Filter security groups with this value for project_default.
schema:
type: boolean
- in: query
name: per_page
description: A positive integer lower or equal to 100 to select the number
of items to return.
schema:
type: integer
format: uint32
- in: query
name: page
description: A positive integer to choose the page to return.
schema:
type: integer
format: int32
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.ListSecurityGroupsResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/security_groups"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/security_groups" \
X-Auth-Token:$SCW_SECRET_KEY
post:
tags:
- Security Groups
operationId: CreateSecurityGroup
summary: Create a security group
description: Create a security group with a specified name and description.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
responses:
"201":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.CreateSecurityGroupResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the security group.
description:
type: string
description: Description of the security group.
organization:
type: string
description: Organization ID the security group belongs to.
deprecated: true
nullable: true
x-one-of: ProjectIdentifier
project:
type: string
description: Project ID the security group belong to.
nullable: true
x-one-of: ProjectIdentifier
tags:
type: array
description: Tags of the security group.
items:
type: string
organization_default:
type: boolean
description: Defines whether this security group becomes the default
security group for new Instances.
deprecated: true
nullable: true
x-one-of: DefaultIdentifier
project_default:
type: boolean
description: Whether this security group becomes the default security
group for new Instances.
nullable: true
x-one-of: DefaultIdentifier
stateful:
type: boolean
description: Whether the security group is stateful or not.
inbound_default_policy:
type: string
description: Default policy for inbound rules.
enum:
- unknown_policy
- accept
- drop
default: unknown_policy
outbound_default_policy:
type: string
description: Default policy for outbound rules.
enum:
- unknown_policy
- accept
- drop
default: unknown_policy
enable_default_security:
type: boolean
description: True to block SMTP on IPv4 and IPv6. This feature is
read only, please open a support ticket if you need to make it
configurable.
nullable: true
required:
- name
x-properties-order:
- name
- description
- organization
- project
- tags
- organization_default
- project_default
- stateful
- inbound_default_policy
- outbound_default_policy
- enable_default_security
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"description": "string",
"name": "string",
"stateful": false
}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/security_groups"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/instance/v1/zones/{zone}/security_groups" \
X-Auth-Token:$SCW_SECRET_KEY \
description="string" \
name="string" \
stateful:=false
/instance/v1/zones/{zone}/security_groups/{id}:
put:
tags:
- Security Groups
operationId: SetSecurityGroup
summary: Update a security group
description: Replace all security group properties with a security group message.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: id
description: UUID of the security group.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.SetSecurityGroupResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the security group.
tags:
type: array
description: Tags of the security group.
nullable: true
items:
type: string
creation_date:
type: string
description: Creation date of the security group (will be ignored).
(RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
modification_date:
type: string
description: Modification date of the security group (will be ignored).
(RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
description:
type: string
description: Description of the security group.
enable_default_security:
type: boolean
description: True to block SMTP on IPv4 and IPv6. This feature is
read only, please open a support ticket if you need to make it
configurable.
inbound_default_policy:
type: string
description: Default inbound policy.
enum:
- unknown_policy
- accept
- drop
default: unknown_policy
outbound_default_policy:
type: string
description: Default outbound policy.
enum:
- unknown_policy
- accept
- drop
default: unknown_policy
organization:
type: string
description: Security groups Organization ID.
project:
type: string
description: Security group Project ID.
organization_default:
type: boolean
description: Please use project_default instead.
deprecated: true
project_default:
type: boolean
description: True use this security group for future Instances created
in this project.
servers:
type: array
description: Instances attached to this security group.
items:
$ref: '#/components/schemas/scaleway.instance.v1.ServerSummary'
stateful:
type: boolean
description: True to set the security group as stateful.
x-properties-order:
- name
- tags
- creation_date
- modification_date
- description
- enable_default_security
- inbound_default_policy
- outbound_default_policy
- organization
- project
- organization_default
- project_default
- servers
- stateful
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PUT \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"description": "string",
"enable_default_security": false,
"name": "string",
"organization": "string",
"organization_default": false,
"project": "string",
"project_default": false,
"stateful": false
}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{id}"
- lang: HTTPie
source: |-
http PUT "https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{id}" \
X-Auth-Token:$SCW_SECRET_KEY \
description="string" \
enable_default_security:=false \
name="string" \
organization="string" \
organization_default:=false \
project="string" \
project_default:=false \
stateful:=false
/instance/v1/zones/{zone}/security_groups/{security_group_id}:
get:
tags:
- Security Groups
operationId: GetSecurityGroup
summary: Get a security group
description: Get the details of a security group with the specified ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: security_group_id
description: UUID of the security group you want to get.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.GetSecurityGroupResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}" \
X-Auth-Token:$SCW_SECRET_KEY
patch:
tags:
- Security Groups
operationId: UpdateSecurityGroup
summary: Update a security group
description: Update the properties of security group.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: security_group_id
description: UUID of the security group. (UUID format)
required: true
schema:
type: string
example: 6170692e-7363-616c-6577-61792e636f6d
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.UpdateSecurityGroupResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the security group.
nullable: true
description:
type: string
description: Description of the security group.
nullable: true
enable_default_security:
type: boolean
description: True to block SMTP on IPv4 and IPv6. This feature is
read only, please open a support ticket if you need to make it
configurable.
nullable: true
inbound_default_policy:
type: string
description: Default inbound policy.
enum:
- unknown_policy
- accept
- drop
default: unknown_policy
tags:
type: array
description: Tags of the security group.
nullable: true
items:
type: string
organization_default:
type: boolean
description: Please use project_default instead.
deprecated: true
nullable: true
project_default:
type: boolean
description: True use this security group for future Instances created
in this project.
nullable: true
outbound_default_policy:
type: string
description: Default outbound policy.
enum:
- unknown_policy
- accept
- drop
default: unknown_policy
stateful:
type: boolean
description: True to set the security group as stateful.
nullable: true
x-properties-order:
- name
- description
- enable_default_security
- inbound_default_policy
- tags
- organization_default
- project_default
- outbound_default_policy
- stateful
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PATCH \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}"
- lang: HTTPie
source: |-
http PATCH "https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}" \
X-Auth-Token:$SCW_SECRET_KEY
delete:
tags:
- Security Groups
operationId: DeleteSecurityGroup
summary: Delete a security group
description: Delete a security group with the specified ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: security_group_id
description: UUID of the security group you want to delete.
required: true
schema:
type: string
responses:
"204":
description: ""
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/security_groups/{security_group_id}/rules:
get:
tags:
- Security Groups
operationId: ListSecurityGroupRules
summary: List rules
description: List the rules of the a specified security group ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: security_group_id
description: UUID of the security group.
required: true
schema:
type: string
- in: query
name: per_page
description: A positive integer lower or equal to 100 to select the number
of items to return.
schema:
type: integer
format: uint32
- in: query
name: page
description: A positive integer to choose the page to return.
schema:
type: integer
format: int32
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.ListSecurityGroupRulesResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}/rules"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}/rules" \
X-Auth-Token:$SCW_SECRET_KEY
post:
tags:
- Security Groups
operationId: CreateSecurityGroupRule
summary: Create rule
description: Create a rule in the specified security group ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: security_group_id
description: UUID of the security group.
required: true
schema:
type: string
responses:
"201":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.CreateSecurityGroupRuleResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
protocol:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroupRule.Protocol'
direction:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroupRule.Direction'
action:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroupRule.Action'
ip_range:
type: string
description: (IP network)
example: 1.2.3.4/32
dest_port_from:
type: integer
description: Beginning of the range of ports to apply this rule
to (inclusive).
format: uint32
nullable: true
dest_port_to:
type: integer
description: End of the range of ports to apply this rule to (inclusive).
format: uint32
nullable: true
position:
type: integer
description: Position of this rule in the security group rules list.
format: uint32
editable:
type: boolean
description: Indicates if this rule is editable (will be ignored).
required:
- protocol
- direction
- action
- ip_range
x-properties-order:
- protocol
- direction
- action
- ip_range
- dest_port_from
- dest_port_to
- position
- editable
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": "unknown_action",
"direction": "unknown_direction",
"editable": false,
"ip_range": "1.2.3.4/32",
"position": 42,
"protocol": "unknown_protocol"
}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}/rules"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}/rules" \
X-Auth-Token:$SCW_SECRET_KEY \
action="unknown_action" \
direction="unknown_direction" \
editable:=false \
ip_range="1.2.3.4/32" \
position:=42 \
protocol="unknown_protocol"
put:
tags:
- Security Groups
operationId: SetSecurityGroupRules
summary: Update all the rules of a security group
description: Replaces the existing rules of the security group with the rules
provided. This endpoint supports the update of existing rules, creation of
new rules and deletion of existing rules when they are not passed in the request.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: security_group_id
description: UUID of the security group to update the rules on.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.SetSecurityGroupRulesResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
rules:
type: array
description: List of rules to update in the security group.
items:
$ref: '#/components/schemas/scaleway.instance.v1.SetSecurityGroupRulesRequest.Rule'
x-properties-order:
- rules
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PUT \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}/rules"
- lang: HTTPie
source: |-
http PUT "https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}/rules" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/security_groups/{security_group_id}/rules/{security_group_rule_id}:
get:
tags:
- Security Groups
operationId: GetSecurityGroupRule
summary: Get rule
description: Get details of a security group rule with the specified ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: security_group_id
required: true
schema:
type: string
- in: path
name: security_group_rule_id
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.GetSecurityGroupRuleResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}/rules/{security_group_rule_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}/rules/{security_group_rule_id}" \
X-Auth-Token:$SCW_SECRET_KEY
put:
tags:
- Security Groups
operationId: SetSecurityGroupRule
summary: Set security group rule
description: Replace all the properties of a rule from a specified security
group.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: security_group_id
required: true
schema:
type: string
- in: path
name: security_group_rule_id
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.SetSecurityGroupRuleResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
id:
type: string
protocol:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroupRule.Protocol'
direction:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroupRule.Direction'
action:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroupRule.Action'
ip_range:
type: string
description: (IP network)
example: 1.2.3.4/32
dest_port_from:
$ref: '#/components/schemas/google.protobuf.UInt32Value'
dest_port_to:
$ref: '#/components/schemas/google.protobuf.UInt32Value'
position:
type: integer
format: uint32
editable:
type: boolean
x-properties-order:
- id
- protocol
- direction
- action
- ip_range
- dest_port_from
- dest_port_to
- position
- editable
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PUT \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"editable": false,
"id": "string",
"ip_range": "1.2.3.4/32",
"position": 42
}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}/rules/{security_group_rule_id}"
- lang: HTTPie
source: |-
http PUT "https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}/rules/{security_group_rule_id}" \
X-Auth-Token:$SCW_SECRET_KEY \
editable:=false \
id="string" \
ip_range="1.2.3.4/32" \
position:=42
patch:
tags:
- Security Groups
operationId: UpdateSecurityGroupRule
summary: Update security group rule
description: Update the properties of a rule from a specified security group.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: security_group_id
description: UUID of the security group. (UUID format)
required: true
schema:
type: string
example: 6170692e-7363-616c-6577-61792e636f6d
- in: path
name: security_group_rule_id
description: UUID of the rule. (UUID format)
required: true
schema:
type: string
example: 6170692e-7363-616c-6577-61792e636f6d
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.UpdateSecurityGroupRuleResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
protocol:
type: string
description: Protocol family this rule applies to.
enum:
- unknown_protocol
- TCP
- UDP
- ICMP
- ANY
default: unknown_protocol
direction:
type: string
description: Direction the rule applies to.
enum:
- unknown_direction
- inbound
- outbound
default: unknown_direction
action:
type: string
description: Action to apply when the rule matches a packet.
enum:
- unknown_action
- accept
- drop
default: unknown_action
ip_range:
type: string
description: Range of IP addresses these rules apply to. (IP network)
example: 1.2.3.4/32
nullable: true
dest_port_from:
type: integer
description: Beginning of the range of ports this rule applies to
(inclusive). If 0 is provided, unset the parameter.
format: uint32
nullable: true
dest_port_to:
type: integer
description: End of the range of ports this rule applies to (inclusive).
If 0 is provided, unset the parameter.
format: uint32
nullable: true
position:
type: integer
description: Position of this rule in the security group rules list.
format: uint32
nullable: true
x-properties-order:
- protocol
- direction
- action
- ip_range
- dest_port_from
- dest_port_to
- position
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PATCH \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}/rules/{security_group_rule_id}"
- lang: HTTPie
source: |-
http PATCH "https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}/rules/{security_group_rule_id}" \
X-Auth-Token:$SCW_SECRET_KEY
delete:
tags:
- Security Groups
operationId: DeleteSecurityGroupRule
summary: Delete rule
description: Delete a security group rule with the specified ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: security_group_id
required: true
schema:
type: string
- in: path
name: security_group_rule_id
required: true
schema:
type: string
responses:
"204":
description: ""
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}/rules/{security_group_rule_id}"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/{security_group_id}/rules/{security_group_rule_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/security_groups/default/rules:
get:
tags:
- Security Groups
operationId: ListDefaultSecurityGroupRules
summary: Get default rules
description: Lists the default rules applied to all the security groups.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.ListSecurityGroupRulesResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/default/rules"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/security_groups/default/rules" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/servers:
get:
tags:
- Instances
operationId: ListServers
summary: List all Instances
description: List all Instances in a specified Availability Zone, e.g. `fr-par-1`.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: query
name: per_page
description: A positive integer lower or equal to 100 to select the number
of items to return.
schema:
type: integer
format: uint32
- in: query
name: page
description: A positive integer to choose the page to return.
schema:
type: integer
format: int32
- in: query
name: organization
description: List only Instances of this Organization ID.
schema:
type: string
- in: query
name: project
description: List only Instances of this Project ID.
schema:
type: string
- in: query
name: name
description: Filter Instances by name (eg. "server1" will return "server100"
and "server1" but not "foo").
schema:
type: string
- in: query
name: private_ip
description: List Instances by private_ip. (IP address)
schema:
type: string
deprecated: true
example: 1.2.3.4
- in: query
name: without_ip
description: List Instances that are not attached to a public IP.
schema:
type: boolean
- in: query
name: with_ip
description: List Instances by IP (both private_ip and public_ip are supported).
(IP address)
schema:
type: string
example: 1.2.3.4
- in: query
name: commercial_type
description: List Instances of this commercial type.
schema:
type: string
- in: query
name: state
description: List Instances in this state.
schema:
type: string
enum:
- running
- stopped
- stopped in place
- starting
- stopping
- locked
default: running
- in: query
name: tags
description: List Instances with these exact tags (to filter with several
tags, use commas to separate them).
schema:
type: string
- in: query
name: private_network
description: List Instances in this Private Network.
schema:
type: string
- in: query
name: order
description: Define the order of the returned servers.
schema:
type: string
enum:
- creation_date_desc
- creation_date_asc
- modification_date_desc
- modification_date_asc
default: creation_date_desc
- in: query
name: private_networks
description: List Instances from the given Private Networks (use commas to
separate them).
schema:
type: string
- in: query
name: private_nic_mac_address
description: List Instances associated with the given private NIC MAC address.
schema:
type: string
- in: query
name: servers
description: List Instances from these server ids (use commas to separate
them).
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.ListServersResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/servers" \
X-Auth-Token:$SCW_SECRET_KEY
post:
tags:
- Instances
operationId: CreateServer
summary: Create an Instance
description: |-
Create a new Instance of the specified commercial type in the specified zone. Pay attention to the volumes parameter, which takes an object which can be used in different ways to achieve different behaviors.
Get more information in the [Technical Information](#technical-information) section of the introduction.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
responses:
"201":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.CreateServerResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Instance name.
dynamic_ip_required:
type: boolean
description: |-
Define if a dynamic IPv4 is required for the Instance.
By default, `dynamic_ip_required` is true, a dynamic ip is attached to the instance (if no flexible ip is already attached).
nullable: true
routed_ip_enabled:
type: boolean
description: If true, configure the Instance so it uses the new
routed IP mode.
deprecated: true
nullable: true
commercial_type:
type: string
description: Define the Instance commercial type (i.e. GP1-S).
image:
type: string
description: |-
Instance image ID or label.
When an image label is used, it will be converted to the latest image available on the Marketplace.
By default, the selected local image will be the `instance_sbs` local image.
If an `l_ssd` volume is specified in the volumes argument, an `instance_local` local image will be selected instead.
volumes:
type: object
description: Volumes attached to the server.
properties:
:
type: object
description: Volumes attached to the server.
properties:
id:
type: string
description: UUID of the volume.
nullable: true
boot:
type: boolean
description: Force the Instance to boot on this volume.
nullable: true
default: false
name:
type: string
description: Name of the volume.
nullable: true
size:
type: integer
description: Disk size of the volume, must be a multiple
of 512. (in bytes)
format: uint64
nullable: true
volume_type:
type: string
description: Type of the volume.
enum:
- l_ssd
- b_ssd
- unified
- scratch
- sbs_volume
- sbs_snapshot
x-enum-descriptions:
values:
b_ssd: Deprecated
unified: Deprecated
default: l_ssd
base_snapshot:
type: string
description: ID of the snapshot on which this volume will
be based.
nullable: true
organization:
type: string
description: Organization ID of the volume.
nullable: true
project:
type: string
description: Project ID of the volume.
nullable: true
x-properties-order:
- id
- boot
- name
- size
- volume_type
- base_snapshot
- organization
- project
additionalProperties: true
enable_ipv6:
type: boolean
description: True if IPv6 is enabled on the server (deprecated and
always `False` when `routed_ip_enabled` is `True`).
deprecated: true
public_ip:
type: string
description: ID of the reserved IP to attach to the Instance.
deprecated: true
nullable: true
public_ips:
type: array
description: A list of reserved IP IDs to attach to the Instance.
nullable: true
items:
type: string
boot_type:
type: string
description: Boot type to use.
enum:
- local
- bootscript
- rescue
default: local
organization:
type: string
description: Instance Organization ID.
deprecated: true
nullable: true
x-one-of: ProjectIdentifier
project:
type: string
description: Instance Project ID.
nullable: true
x-one-of: ProjectIdentifier
tags:
type: array
description: Instance tags.
items:
type: string
security_group:
type: string
description: Security group ID.
nullable: true
placement_group:
type: string
description: Placement group ID if Instance must be part of a placement
group.
nullable: true
admin_password_encryption_ssh_key_id:
type: string
description: |-
UUID of the SSH RSA key that will be used to encrypt the initial admin password for OS requiring it. Mandatory for Windows OS.
The public_key value of this key is used to encrypt the admin password.
nullable: true
protected:
type: boolean
description: True to activate server protection option.
required:
- name
- commercial_type
x-properties-order:
- name
- dynamic_ip_required
- routed_ip_enabled
- commercial_type
- image
- volumes
- enable_ipv6
- public_ip
- public_ips
- boot_type
- organization
- project
- tags
- security_group
- placement_group
- admin_password_encryption_ssh_key_id
- protected
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"commercial_type": "string",
"enable_ipv6": false,
"name": "string",
"protected": false,
"volumes": {
"": {
"base_snapshot": "string",
"boot": false,
"id": "string",
"name": "string",
"organization": "string",
"project": "string",
"size": 42,
"volume_type": "l_ssd"
}
}
}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/instance/v1/zones/{zone}/servers" \
X-Auth-Token:$SCW_SECRET_KEY \
commercial_type="string" \
enable_ipv6:=false \
name="string" \
protected:=false \
volumes:='{
"": {
"base_snapshot": "string",
"boot": false,
"id": "string",
"name": "string",
"organization": "string",
"project": "string",
"size": 42,
"volume_type": "l_ssd"
}
}'
/instance/v1/zones/{zone}/servers/{server_id}:
get:
tags:
- Instances
operationId: GetServer
summary: Get an Instance
description: Get the details of a specified Instance.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: server_id
description: UUID of the Instance you want to get.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.GetServerResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}" \
X-Auth-Token:$SCW_SECRET_KEY
patch:
tags:
- Instances
operationId: UpdateServer
summary: Update an Instance
description: Update the Instance information, such as name, boot mode, or tags.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: server_id
description: UUID of the Instance.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.UpdateServerResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the Instance.
nullable: true
boot_type:
$ref: '#/components/schemas/scaleway.instance.v1.BootType'
tags:
type: array
description: Tags of the Instance.
nullable: true
items:
type: string
volumes:
type: object
properties:
:
$ref: '#/components/schemas/scaleway.instance.v1.VolumeServerTemplate'
additionalProperties: true
dynamic_ip_required:
$ref: '#/components/schemas/google.protobuf.BoolValue'
routed_ip_enabled:
type: boolean
description: True to configure the instance so it uses the new routed
IP mode (once this is set to True you cannot set it back to False).
deprecated: true
nullable: true
public_ips:
type: array
description: A list of reserved IP IDs to attach to the Instance.
nullable: true
items:
type: string
enable_ipv6:
deprecated: true
$ref: '#/components/schemas/google.protobuf.BoolValue'
protected:
type: boolean
description: True to activate server protection option.
nullable: true
security_group:
$ref: '#/components/schemas/scaleway.instance.v1.SecurityGroupTemplate'
placement_group:
type: string
description: Placement group ID if Instance must be part of a placement
group.
nullable: true
private_nics:
type: array
description: Instance private NICs.
nullable: true
items:
type: string
commercial_type:
type: string
description: |-
Set the commercial_type for this Instance.
Warning: This field has some restrictions:
- Cannot be changed if the Instance is not in `stopped` state.
- Cannot be changed if the Instance is in a placement group.
- Cannot be changed from/to a Windows offer to/from a Linux offer.
- Local storage requirements of the target commercial_types must be fulfilled (i.e. if an Instance has 80GB of local storage, it can be changed into a GP1-XS, which has a maximum of 150GB, but it cannot be changed into a DEV1-S, which has only 20GB).
nullable: true
admin_password_encryption_ssh_key_id:
type: string
description: |-
UUID of the SSH RSA key that will be used to encrypt the initial admin password for OS requiring it. Mandatory for Windows OS.
The public_key value of this key is used to encrypt the admin password. When set to an empty string, reset this value and admin_password_encrypted_value to an empty string so a new password may be generated.
nullable: true
x-properties-order:
- name
- boot_type
- tags
- volumes
- dynamic_ip_required
- routed_ip_enabled
- public_ips
- enable_ipv6
- protected
- security_group
- placement_group
- private_nics
- commercial_type
- admin_password_encryption_ssh_key_id
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PATCH \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"volumes":{"":""}}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}"
- lang: HTTPie
source: |-
http PATCH "https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}" \
X-Auth-Token:$SCW_SECRET_KEY \
volumes:='{"":""}'
delete:
tags:
- Instances
operationId: DeleteServer
summary: Delete an Instance
description: Delete the Instance with the specified ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: server_id
required: true
schema:
type: string
responses:
"204":
description: ""
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/servers/{server_id}/action:
get:
tags:
- Instances
operationId: ListServerActions
summary: List Instance actions
description: List all actions (e.g. power on, power off, reboot) that can currently
be performed on an Instance.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: server_id
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.ListServerActionsResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/action"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/action" \
X-Auth-Token:$SCW_SECRET_KEY
post:
tags:
- Instances
operationId: ServerAction
summary: Perform action
description: |-
Perform an action on an Instance.
Available actions are:
* `poweron`: Start a stopped Instance.
* `poweroff`: Fully stop the Instance and release the hypervisor slot.
* `stop_in_place`: Stop the Instance, but keep the slot on the hypervisor.
* `reboot`: Stop the instance and restart it.
* `backup`: Create an image with all the volumes of an Instance.
* `terminate`: Delete the Instance along with its attached local volumes.
* `enable_routed_ip`: Migrate the Instance to the new network stack.
The `terminate` action will result in the deletion of `l_ssd` and `scratch` volumes types, `sbs_volume` volumes will only be detached.
If you want to preserve your `l_ssd` volumes, you should stop your Instance, detach the volumes to be preserved, then delete your Instance.
The `backup` action can be done with:
* No `volumes` key in the body: an image is created with snapshots of all the server volumes, except for the `scratch` volumes types.
* `volumes` key in the body with a dictionary as value, in this dictionary volumes UUID as keys and empty dictionaries as values : an image is created with the snapshots of the volumes in `volumes` key. `scratch` volumes types can't be shapshotted.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: server_id
description: UUID of the Instance.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.ServerActionResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
action:
type: string
description: Action to perform on the Instance.
enum:
- poweron
- backup
- stop_in_place
- poweroff
- terminate
- reboot
- enable_routed_ip
default: poweron
name:
type: string
description: |-
Name of the backup you want to create.
Name of the backup you want to create.
This field should only be specified when performing a backup action.
nullable: true
volumes:
type: object
description: |-
For each volume UUID, the snapshot parameters of the volume.
For each volume UUID, the snapshot parameters of the volume.
This field should only be specified when performing a backup action.
properties:
:
type: object
description: |-
For each volume UUID, the snapshot parameters of the volume.
For each volume UUID, the snapshot parameters of the volume.
This field should only be specified when performing a backup action.
properties:
volume_type:
type: string
description: |-
Snapshot's volume type.
Overrides the `volume_type` of the snapshot for this volume.
If omitted, the volume type of the original volume will be used.
enum:
- unknown_volume_type
- l_ssd
- b_ssd
- unified
x-enum-descriptions:
values:
b_ssd: Deprecated
unified: Deprecated
default: unknown_volume_type
x-properties-order:
- volume_type
additionalProperties: true
disable_ipv6:
type: boolean
description: |-
Disable IPv6 on the Instance (true by default).
Disable IPv6 on the Instance while performing migration to routed IPs.
This field should only be specified when performing a enable_routed_ip action.
x-properties-order:
- action
- name
- volumes
- disable_ipv6
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"volumes":{"":{"volume_type":"unknown_volume_type"}}}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/action"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/action" \
X-Auth-Token:$SCW_SECRET_KEY \
volumes:='{"":{"volume_type":"unknown_volume_type"}}'
/instance/v1/zones/{zone}/servers/{server_id}/attach-filesystem:
post:
tags:
- Instances
operationId: AttachServerFileSystem
summary: Attach a filesystem volume to an Instance
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: server_id
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.AttachServerFileSystemResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
filesystem_id:
type: string
x-properties-order:
- filesystem_id
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"filesystem_id":"string"}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/attach-filesystem"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/attach-filesystem" \
X-Auth-Token:$SCW_SECRET_KEY \
filesystem_id="string"
/instance/v1/zones/{zone}/servers/{server_id}/attach-volume:
post:
tags:
- Instances
operationId: AttachServerVolume
summary: Attach a volume to an Instance
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: server_id
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.AttachServerVolumeResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
volume_id:
type: string
volume_type:
$ref: '#/components/schemas/scaleway.instance.v1.AttachServerVolumeRequest.VolumeType'
boot:
$ref: '#/components/schemas/google.protobuf.BoolValue'
x-properties-order:
- volume_id
- volume_type
- boot
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"volume_id":"string"}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/attach-volume"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/attach-volume" \
X-Auth-Token:$SCW_SECRET_KEY \
volume_id="string"
/instance/v1/zones/{zone}/servers/{server_id}/compatible-types:
get:
tags:
- Instances
operationId: GetServerCompatibleTypes
summary: Get Instance compatible types
description: |-
Get compatible commercial types that can be used to update the Instance. The compatibility of an Instance offer is based on:
* the CPU architecture
* the OS type
* the required l_ssd storage size
* the required scratch storage size
If the specified Instance offer is flagged as end of service, the best compatible offer is the first returned.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: server_id
description: UUID of the Instance you want to get.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.ServerCompatibleTypes'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/compatible-types"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/compatible-types" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/servers/{server_id}/detach-filesystem:
post:
tags:
- Instances
operationId: DetachServerFileSystem
summary: Detach a filesystem volume from an Instance
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: server_id
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.DetachServerFileSystemResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
filesystem_id:
type: string
x-properties-order:
- filesystem_id
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"filesystem_id":"string"}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/detach-filesystem"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/detach-filesystem" \
X-Auth-Token:$SCW_SECRET_KEY \
filesystem_id="string"
/instance/v1/zones/{zone}/servers/{server_id}/detach-volume:
post:
tags:
- Instances
operationId: DetachServerVolume
summary: Detach a volume from an Instance
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: server_id
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.DetachServerVolumeResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
volume_id:
type: string
x-properties-order:
- volume_id
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"volume_id":"string"}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/detach-volume"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/detach-volume" \
X-Auth-Token:$SCW_SECRET_KEY \
volume_id="string"
/instance/v1/zones/{zone}/servers/{server_id}/private_nics:
get:
tags:
- Private NICs
operationId: ListPrivateNICs
summary: List all private NICs
description: List all private NICs of a specified Instance.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: server_id
description: Instance to which the private NIC is attached.
required: true
schema:
type: string
- in: query
name: tags
description: Private NIC tags.
schema:
type: string
- in: query
name: per_page
description: A positive integer lower or equal to 100 to select the number
of items to return.
schema:
type: integer
format: uint32
- in: query
name: page
description: A positive integer to choose the page to return.
schema:
type: integer
format: int32
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.ListPrivateNICsResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/private_nics"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/private_nics" \
X-Auth-Token:$SCW_SECRET_KEY
post:
tags:
- Private NICs
operationId: CreatePrivateNIC
summary: Create a private NIC connecting an Instance to a Private Network
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: server_id
description: UUID of the Instance the private NIC will be attached to.
required: true
schema:
type: string
responses:
"201":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.CreatePrivateNICResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
private_network_id:
type: string
description: UUID of the private network where the private NIC will
be attached.
tags:
type: array
description: Private NIC tags.
items:
type: string
ipam_ip_ids:
type: array
description: UUID of IPAM ips, to be attached to the instance in
the requested private network. (UUID format)
example:
- 6170692e-7363-616c-6577-61792e636f6d
items:
type: string
required:
- private_network_id
x-properties-order:
- private_network_id
- tags
- ipam_ip_ids
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"private_network_id":"string"}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/private_nics"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/private_nics" \
X-Auth-Token:$SCW_SECRET_KEY \
private_network_id="string"
/instance/v1/zones/{zone}/servers/{server_id}/private_nics/{private_nic_id}:
get:
tags:
- Private NICs
operationId: GetPrivateNIC
summary: Get a private NIC
description: Get private NIC properties.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: server_id
description: Instance to which the private NIC is attached.
required: true
schema:
type: string
- in: path
name: private_nic_id
description: Private NIC unique ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.GetPrivateNICResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/private_nics/{private_nic_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/private_nics/{private_nic_id}" \
X-Auth-Token:$SCW_SECRET_KEY
patch:
tags:
- Private NICs
operationId: UpdatePrivateNIC
summary: Update a private NIC
description: Update one or more parameter(s) of a specified private NIC.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: server_id
description: UUID of the Instance the private NIC will be attached to.
required: true
schema:
type: string
- in: path
name: private_nic_id
description: Private NIC unique ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.PrivateNIC'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
tags:
type: array
description: Tags used to select private NIC/s.
nullable: true
items:
type: string
x-properties-order:
- tags
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PATCH \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/private_nics/{private_nic_id}"
- lang: HTTPie
source: |-
http PATCH "https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/private_nics/{private_nic_id}" \
X-Auth-Token:$SCW_SECRET_KEY
delete:
tags:
- Private NICs
operationId: DeletePrivateNIC
summary: Delete a private NIC
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: server_id
description: Instance to which the private NIC is attached.
required: true
schema:
type: string
- in: path
name: private_nic_id
description: Private NIC unique ID.
required: true
schema:
type: string
responses:
"204":
description: ""
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/private_nics/{private_nic_id}"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/private_nics/{private_nic_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/servers/{server_id}/user_data:
get:
tags:
- User Data
operationId: ListServerUserData
summary: List user data
description: List all user data keys registered on a specified Instance.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: server_id
description: UUID of the Instance.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.ListServerUserDataResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/user_data"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/user_data" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/servers/{server_id}/user_data/{key}:
get:
tags:
- User Data
operationId: GetServerUserData
summary: Get user data
description: Get the content of a user data with the specified key on an Instance.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: server_id
description: UUID of the Instance.
required: true
schema:
type: string
- in: path
name: key
description: Key of the user data to get.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.std.File'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/user_data/{key}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/user_data/{key}" \
X-Auth-Token:$SCW_SECRET_KEY
patch:
tags:
- User Data
operationId: SetServerUserData
summary: Add/set user data
description: Add or update a user data with the specified key on an Instance.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: server_id
description: UUID of the Instance.
required: true
schema:
type: string
- in: path
name: key
description: Key of the user data to set.
required: true
schema:
type: string
responses:
"204":
description: ""
requestBody:
required: true
content:
'*/*':
schema:
type: string
format: binary
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PATCH \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/user_data/{key}"
- lang: HTTPie
source: |-
http PATCH "https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/user_data/{key}" \
X-Auth-Token:$SCW_SECRET_KEY
delete:
tags:
- User Data
operationId: DeleteServerUserData
summary: Delete user data
description: Delete the specified key from an Instance's user data.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: server_id
description: UUID of the Instance.
required: true
schema:
type: string
- in: path
name: key
description: Key of the user data to delete.
required: true
schema:
type: string
responses:
"204":
description: ""
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/user_data/{key}"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/user_data/{key}" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/snapshots:
get:
tags:
- Snapshots
operationId: ListSnapshots
summary: List snapshots
description: List all snapshots of an Organization in a specified Availability
Zone.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: query
name: organization
description: List snapshots only for this Organization ID.
schema:
type: string
- in: query
name: project
description: List snapshots only for this Project ID.
schema:
type: string
- in: query
name: per_page
description: Number of snapshots returned per page (positive integer lower
or equal to 100).
schema:
type: integer
format: uint32
- in: query
name: page
description: Page to be returned.
schema:
type: integer
format: int32
- in: query
name: name
description: List snapshots of the requested name.
schema:
type: string
- in: query
name: tags
description: List snapshots that have the requested tag.
schema:
type: string
- in: query
name: base_volume_id
description: List snapshots originating only from this volume.
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.ListSnapshotsResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/snapshots"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/snapshots" \
X-Auth-Token:$SCW_SECRET_KEY
post:
tags:
- Snapshots
operationId: CreateSnapshot
summary: Create a snapshot from a specified volume or from a QCOW2 file
description: Create a snapshot from a specified volume or from a QCOW2 file
in a specified Availability Zone.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
responses:
"201":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.CreateSnapshotResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the snapshot.
volume_id:
type: string
description: UUID of the volume.
nullable: true
tags:
type: array
description: Tags of the snapshot.
nullable: true
items:
type: string
organization:
type: string
description: Organization ID of the snapshot.
deprecated: true
nullable: true
x-one-of: ProjectIdentifier
project:
type: string
description: Project ID of the snapshot.
nullable: true
x-one-of: ProjectIdentifier
volume_type:
type: string
description: |-
Volume type of the snapshot.
Overrides the volume_type of the snapshot.
If omitted, the volume type of the original volume will be used.
enum:
- unknown_volume_type
- l_ssd
- b_ssd
- unified
x-enum-descriptions:
values:
b_ssd: Deprecated
unified: Deprecated
default: unknown_volume_type
bucket:
type: string
description: Bucket name for snapshot imports.
nullable: true
key:
type: string
description: Object key for snapshot imports.
nullable: true
size:
type: integer
description: Imported snapshot size, must be a multiple of 512.
(in bytes)
format: uint64
nullable: true
x-properties-order:
- name
- volume_id
- tags
- organization
- project
- volume_type
- bucket
- key
- size
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"string"}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/snapshots"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/instance/v1/zones/{zone}/snapshots" \
X-Auth-Token:$SCW_SECRET_KEY \
name="string"
/instance/v1/zones/{zone}/snapshots/{snapshot_id}:
get:
tags:
- Snapshots
operationId: GetSnapshot
summary: Get a snapshot
description: Get details of a snapshot with the specified ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: snapshot_id
description: UUID of the snapshot you want to get.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.GetSnapshotResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/snapshots/{snapshot_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/snapshots/{snapshot_id}" \
X-Auth-Token:$SCW_SECRET_KEY
put:
tags:
- Snapshots
operationId: SetSnapshot
summary: Set snapshot
description: Replace all the properties of a snapshot.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: snapshot_id
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.SetSnapshotResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
id:
type: string
name:
type: string
organization:
type: string
volume_type:
$ref: '#/components/schemas/scaleway.instance.v1.Volume.VolumeType'
size:
type: integer
description: (in bytes)
format: uint64
state:
$ref: '#/components/schemas/scaleway.instance.v1.Snapshot.State'
base_volume:
$ref: '#/components/schemas/scaleway.instance.v1.Snapshot.BaseVolume'
creation_date:
type: string
description: (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
modification_date:
type: string
description: (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
project:
type: string
tags:
$ref: '#/components/schemas/scaleway.std.StringsValue'
x-properties-order:
- id
- name
- organization
- volume_type
- size
- state
- base_volume
- creation_date
- modification_date
- project
- tags
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PUT \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"id": "string",
"name": "string",
"organization": "string",
"project": "string",
"size": 42
}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/snapshots/{snapshot_id}"
- lang: HTTPie
source: |-
http PUT "https://api.scaleway.com/instance/v1/zones/{zone}/snapshots/{snapshot_id}" \
X-Auth-Token:$SCW_SECRET_KEY \
id="string" \
name="string" \
organization="string" \
project="string" \
size:=42
patch:
tags:
- Snapshots
operationId: UpdateSnapshot
summary: Update a snapshot
description: Update the properties of a snapshot.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: snapshot_id
description: UUID of the snapshot. (UUID format)
required: true
schema:
type: string
example: 6170692e-7363-616c-6577-61792e636f6d
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.UpdateSnapshotResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the snapshot.
nullable: true
tags:
type: array
description: Tags of the snapshot.
nullable: true
items:
type: string
x-properties-order:
- name
- tags
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PATCH \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/snapshots/{snapshot_id}"
- lang: HTTPie
source: |-
http PATCH "https://api.scaleway.com/instance/v1/zones/{zone}/snapshots/{snapshot_id}" \
X-Auth-Token:$SCW_SECRET_KEY
delete:
tags:
- Snapshots
operationId: DeleteSnapshot
summary: Delete a snapshot
description: Delete the snapshot with the specified ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: snapshot_id
description: UUID of the snapshot you want to delete.
required: true
schema:
type: string
responses:
"204":
description: ""
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/snapshots/{snapshot_id}"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/instance/v1/zones/{zone}/snapshots/{snapshot_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/instance/v1/zones/{zone}/snapshots/{snapshot_id}/export:
post:
tags:
- Snapshots
operationId: ExportSnapshot
summary: Export a snapshot
description: Export a snapshot to a specified Object Storage bucket in the same
region.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: snapshot_id
description: Snapshot ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.ExportSnapshotResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
bucket:
type: string
description: Object Storage bucket name.
key:
type: string
description: Object key.
x-properties-order:
- bucket
- key
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"bucket":"string","key":"string"}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/snapshots/{snapshot_id}/export"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/instance/v1/zones/{zone}/snapshots/{snapshot_id}/export" \
X-Auth-Token:$SCW_SECRET_KEY \
bucket="string" \
key="string"
/instance/v1/zones/{zone}/volumes:
get:
tags:
- Volumes
operationId: ListVolumes
summary: List volumes
description: List volumes in the specified Availability Zone. You can filter
the output by volume type.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: query
name: volume_type
description: Filter by volume type.
schema:
type: string
enum:
- l_ssd
- b_ssd
- unified
- scratch
- sbs_volume
- sbs_snapshot
x-enum-descriptions:
values:
b_ssd: Deprecated
unified: Deprecated
default: l_ssd
- in: query
name: per_page
description: A positive integer lower or equal to 100 to select the number
of items to return.
schema:
type: integer
format: uint32
- in: query
name: page
description: A positive integer to choose the page to return.
schema:
type: integer
format: int32
- in: query
name: organization
description: Filter volume by Organization ID.
schema:
type: string
- in: query
name: project
description: Filter volume by Project ID.
schema:
type: string
- in: query
name: tags
description: Filter volumes with these exact tags (to filter with several
tags, use commas to separate them).
schema:
type: string
- in: query
name: name
description: Filter volume by name (for eg. "vol" will return "myvolume" but
not "data").
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.ListVolumesResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/volumes"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/volumes" \
X-Auth-Token:$SCW_SECRET_KEY
post:
tags:
- Volumes
operationId: CreateVolume
summary: Create a volume
description: Create a volume of a specified type in an Availability Zone.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
responses:
"201":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.CreateVolumeResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Volume name.
organization:
type: string
description: Volume Organization ID.
deprecated: true
nullable: true
x-one-of: ProjectIdentifier
project:
type: string
description: Volume Project ID.
nullable: true
x-one-of: ProjectIdentifier
tags:
type: array
description: Volume tags.
items:
type: string
volume_type:
type: string
description: Volume type.
enum:
- l_ssd
- b_ssd
- unified
- scratch
- sbs_volume
- sbs_snapshot
x-enum-descriptions:
values:
b_ssd: Deprecated
unified: Deprecated
default: l_ssd
size:
type: integer
description: Volume disk size, must be a multiple of 512. (in bytes)
format: uint64
nullable: true
x-one-of: from
base_snapshot:
type: string
description: ID of the snapshot on which this volume will be based.
nullable: true
x-one-of: from
x-properties-order:
- name
- organization
- project
- tags
- volume_type
- size
- base_snapshot
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"string"}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/volumes"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/instance/v1/zones/{zone}/volumes" \
X-Auth-Token:$SCW_SECRET_KEY \
name="string"
/instance/v1/zones/{zone}/volumes/{id}:
put:
tags:
- Volumes
operationId: SetVolume
summary: Update volume
description: Replace all volume properties with a volume message.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: id
description: Unique ID of the volume.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.SetVolumeResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the volume.
tags:
type: array
description: Tags of the volume.
nullable: true
items:
type: string
export_uri:
type: string
description: NBD export URI of the Volume (deprecated, this field
is ignored).
deprecated: true
size:
type: integer
description: Volume's disk size, must be a multiple of 512. (in
bytes)
format: uint64
volume_type:
type: string
description: Volume type.
enum:
- l_ssd
- b_ssd
- unified
- scratch
- sbs_volume
- sbs_snapshot
x-enum-descriptions:
values:
b_ssd: Deprecated
unified: Deprecated
default: l_ssd
creation_date:
type: string
description: Volume creation date. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
modification_date:
type: string
description: Volume modification date. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
organization:
type: string
description: Volume Organization ID.
project:
type: string
description: Volume Project ID.
server:
type: object
description: Instance attached to the volume.
properties:
id:
type: string
name:
type: string
x-properties-order:
- id
- name
state:
type: string
description: Volume state.
enum:
- available
- snapshotting
- fetching
- saving
- attaching
- resizing
- hotsyncing
- error
default: available
x-properties-order:
- name
- tags
- export_uri
- size
- volume_type
- creation_date
- modification_date
- organization
- project
- server
- state
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PUT \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"export_uri": "string",
"name": "string",
"organization": "string",
"project": "string",
"size": 42
}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/volumes/{id}"
- lang: HTTPie
source: |-
http PUT "https://api.scaleway.com/instance/v1/zones/{zone}/volumes/{id}" \
X-Auth-Token:$SCW_SECRET_KEY \
export_uri="string" \
name="string" \
organization="string" \
project="string" \
size:=42
/instance/v1/zones/{zone}/volumes/{volume_id}:
get:
tags:
- Volumes
operationId: GetVolume
summary: Get a volume
description: Get details of a volume with the specified ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: volume_id
description: UUID of the volume you want to get.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.GetVolumeResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/volumes/{volume_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/instance/v1/zones/{zone}/volumes/{volume_id}" \
X-Auth-Token:$SCW_SECRET_KEY
patch:
tags:
- Volumes
operationId: UpdateVolume
summary: Update a volume
description: Replace the name and/or size properties of a volume specified by
its ID, with the specified value(s).
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: volume_id
description: UUID of the volume.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.instance.v1.UpdateVolumeResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Volume name.
nullable: true
tags:
type: array
description: Tags of the volume.
nullable: true
items:
type: string
size:
type: integer
description: Volume disk size, must be a multiple of 512. (in bytes)
format: uint64
nullable: true
x-properties-order:
- name
- tags
- size
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PATCH \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{}' \
"https://api.scaleway.com/instance/v1/zones/{zone}/volumes/{volume_id}"
- lang: HTTPie
source: |-
http PATCH "https://api.scaleway.com/instance/v1/zones/{zone}/volumes/{volume_id}" \
X-Auth-Token:$SCW_SECRET_KEY
delete:
tags:
- Volumes
operationId: DeleteVolume
summary: Delete a volume
description: Delete the volume with the specified ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- fr-par-3
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- it-mil-1
- in: path
name: volume_id
description: UUID of the volume you want to delete.
required: true
schema:
type: string
responses:
"204":
description: ""
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/instance/v1/zones/{zone}/volumes/{volume_id}"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/instance/v1/zones/{zone}/volumes/{volume_id}" \
X-Auth-Token:$SCW_SECRET_KEY