openapi: 3.0.0
info:
title: Elastic Metal API
description: |-
Scaleway Elastic Metal servers are dedicated physical servers that you can order on-demand, like Instances.
You can install an OS or other images on your Elastic Metal server and connect to it via SSH to use it as you require.
You can power off the server when you are not using or delete it from your account once you have finished using it.
Elastic Metal servers are ideal for large workloads, big data, and applications that require increased security and dedicated resources.
(switchcolumn)
Check out our dedicated APIs to manage [Private Networks](https://www.scaleway.com/en/developers/api/elastic-metal/private-network-api/) and [Flexible IPs](https://www.scaleway.com/en/developers/api/elastic-metal-flexible-ip) for Elastic Metal servers.
(switchcolumn)
## Concepts
Refer to our [dedicated concepts](https://www.scaleway.com/en/docs/compute/elastic-metal/concepts/) page to find definitions of the different terms referring to Elastic Metal servers.
## Quickstart
(switchcolumn)
(switchcolumn)
1. **Configure your environment variables.**
```bash
export PROJECT_ID=""
export ACCESS_KEY=""
export SECRET_KEY=""
export ZONE=""
```
This is an optional step that seeks to simplify your usage of the Bare Metal API.
2. **Edit the POST request payload** that we will use in the next step to create an Elastic Metal server. Modify the values in the example according to your needs, using the information in the table to help.
```json
{
"offer_id": "string",
"project_id": "string",
"name": "string",
"description": "string",
"tags": [
"tag1", "tag2"
],
"install": {
"os_id": "string",
"hostname": "string",
"ssh_key_ids": [
"string"
],
"user": "string",
"password": "string",
"service_user": "string",
"service_password": "string"
},
"option_ids": [
"string"
]
}
```
| Parameter | Description |
| :--------------- | :----------------------------------------------------------------- |
| `offer_id` | **REQUIRED** UUID of the Elastic Metal offer |
| `project_id` | **REQUIRED** UUID of the project you want to create your Elastic Metal in. |
| `name` | **REQUIRED** Name of the Elastic Metal server (≠hostname) |
| `description` | **REQUIRED** A description of your server (max 255 characters) |
| `tags` | **OPTIONAL** An array of tags associated with your server |
| `os_id` | The ID of the operating system image to install on the server |
| `hostname` | Hostname of the server |
| `ssh_key_ids` | SSH key IDs authorized on the server |
| `user` | **NULLABLE** A regular user to be configured on the server |
| `password` | **NULLABLE** The password for the user account |
| `service_user` | **NULLABLE** A service user for third party services (user to login in services such as BigBlueButton) |
| `service password` | **NULLABLE** Password for the service user |
| `option_ids` | IDs of options to enable on server |
To find your Project ID you can either use the [IAM API](https://www.scaleway.com/en/developers/api/account#path-projects-list-all-projects-of-an-organization) or the [Scaleway console](https://console.scaleway.com/project/settings):
3. **Run the following command** to create an Elastic Metal server. Make sure you include the payload you edited in the previous step.
```bash
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: $SECRET_KEY" https://api.scaleway.com//baremetal/v1/zones/$ZONE/servers \
-d '{
"offer_id": "bd757ca3-a71b-4158-9ef5-39436b6db2a4",
"project_id": "cc6d123a-bc09-4e24-b5d9-3310f2104e13",
"name": "MyElasticMetal",
"description": "My_Elastic_Metal_Server",
"tags": [
"Ubuntu22", "Dedicated"
],
"install": {
"os_id": "96e5f0f2-d216-4de2-8a15-68730d877885",
"hostname": "elasticmetal.exaple.com",
"ssh_key_ids": [
"fa05e77f-66b7-43b9-bc21-4dfe3c5bb624"
],
"user": "ubuntu",
"password": "mySecretPa$$word"
"option_ids": [
"string"
]
}"
```
4. **List your Elastic Metal servers.**
```bash
curl -X GET \
-H "Content-Type: application/json" \
-H "X-Auth-Token: $SECRET_KEY" https://api.scaleway.com/baremetal/v1/zones/$ZONE/servers
```
5. **Retrieve your Elastic Metal server IP** from the response.
6. **Connect to your Elastic Metal server** using SSH
```bash
ssh root@my-elastic-metal-server-ip
```
(switchcolumn)
To perform the following steps, you must first ensure that:
- you have an account and are logged into the [Scaleway console](https://console.scaleway.com/organization)
- you have created an [API key](https://www.scaleway.com/en/docs/identity-and-access-management/iam/how-to/create-api-keys/) and that the API key has sufficient [IAM permissions](https://www.scaleway.com/en/docs/identity-and-access-management/iam/reference-content/permission-sets/) to perform the actions described on this page.
- you have [installed `curl`](https://curl.se/download.html)
(switchcolumn)
## Technical information
### Features
- Installation (Server is installed by preseed [preseed: complete install from a virtual media], you must define at least one ssh key to install your server)
- Start/Stop/Reboot
- Rescue Reboot, a rescue image is an operating system image designed to help you diagnose and fix OS experiencing failures. When your server boot on rescue, you can mount your disks and start diagnosing/fixing your image.
- Billed by the minute (billing starts when the server is delivered and stops when the server is deleted)
- IPv6, all servers are available with a /128 IPv6 subnet
- ReverseIP, You can configure your reverse IP (IPv4 and IPv6), you must register the server IP in your DNS records before calling the endpoint
- Basic monitoring with ping status
- Flexible IP is available ([documentation](https://www.scaleway.com/en/developers/api/elastic-metal-flexible-ip))
### Availability Zones
Scaleway's infrastructure is spread across different [regions and Availability Zones](https://www.scaleway.com/en/docs/console/my-account/reference-content/products-availability/).
Elastic Metal servers are available in the Paris and Amsterdam regions, with product availability in the following AZs:
- `fr-par-1`
- `fr-par-2`
- `nl-ams-1`
- `nl-ams-2`
## Technical limitations
- Failover IPs are not available in API `v1`, use the API `v1alpha1`
## Going further
For more help using Scaleway Elastic Metal servers, check out the following resources:
- Our [main documentation](https://www.scaleway.com/en/docs/compute/elastic-metal/)
- The #elastic-metal 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/console/my-account/how-to/open-a-support-ticket)
### Troubleshooting
#### How is the installation of Elastic Metal servers done?
- The installation of Elastic Metal servers is done by preseed (± 10min) (preseed: complete install from a virtual media)
#### How can I retrieve my secret key and Project ID?
You can find your [secret key](https://console.scaleway.com/iam/api-keys) and your [Project ID](https://console.scaleway.com/project/credentials) in the Scaleway console.
#### How can I add my server to a Private Network?
See [our dedicated documentation](/en/developers/api/elastic-metal-flexible-ip).
version: v1
servers:
- url: https://api.scaleway.com
tags:
- name: Servers
description: |
Elastic Metal allow you to order dedicated servers on-demand, like cloud Instances. A server refers to physical server used to provide the service.
- name: Server Actions
description: |
Server actions allows you to start, stop or reboot your servers.
- name: BMC Access
description: |
The BMC (Baseboard Management Controller) access allow you to access the series console of your Elastic Metal server.
Access to this feature is available one hour after the installation of the server.
You need first to create an Remote Access option. Find the ID and the price with a call to [`listOffers`](#path-offers-list-offers). Then you can [add the option](#path-servers-add-server-option).
Once added, [create remote access](#path-bmc-access-start-bmc-access). Use [Get Remote Access](#path-bmc-access-get-bmc-access) to retrieve the login/password. Do not forget to disable the option after use.
- name: Offers
description: Lists the IDs of the commercial offers available to deploy.
- name: Options
description: Lists the optional features available for this Elastic Metal server.
- name: OS
description: An Operating System (OS) is the underlying software installed on your
server. This command lists the IDs of the OS available for this server.
components:
schemas:
google.protobuf.StringValue:
type: string
nullable: true
scaleway.baremetal.v1.BMCAccess:
type: object
properties:
url:
type: string
description: URL to access to the server console.
login:
type: string
description: The login to use for the BMC (Baseboard Management Controller)
access authentification.
password:
type: string
description: The password to use for the BMC (Baseboard Management Controller)
access authentification.
expires_at:
type: string
description: The date after which the BMC (Baseboard Management Controller)
access will be closed. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
x-properties-order:
- url
- login
- password
- expires_at
scaleway.baremetal.v1.CPU:
type: object
properties:
name:
type: string
description: Name of the CPU.
core_count:
type: integer
description: Number of CPU cores.
format: uint32
thread_count:
type: integer
description: Number CPU threads.
format: uint32
frequency:
type: integer
description: Frequency of the CPU in MHz.
format: uint32
benchmark:
type: string
description: Benchmark of the CPU.
x-properties-order:
- name
- core_count
- thread_count
- frequency
- benchmark
scaleway.baremetal.v1.Disk:
type: object
properties:
capacity:
type: integer
description: Capacity of the disk in bytes. (in bytes)
format: uint64
type:
type: string
description: Type of the disk.
x-properties-order:
- capacity
- type
scaleway.baremetal.v1.GetServerMetricsResponse:
type: object
properties:
pings:
type: object
description: Timeseries object representing pings on the server.
properties:
name:
type: string
points:
type: array
items:
$ref: '#/components/schemas/scaleway.std.TimeSeries.Point'
metadata:
type: object
properties:
:
type: string
additionalProperties: true
x-properties-order:
- name
- points
- metadata
x-properties-order:
- pings
scaleway.baremetal.v1.IP:
type: object
properties:
id:
type: string
description: ID of the IP.
address:
type: string
description: Address of the IP. (IP address)
example: 1.2.3.4
reverse:
type: string
description: Reverse IP value.
version:
type: string
description: Version of IP (v4 or v6).
enum:
- IPv4
- IPv6
default: IPv4
reverse_status:
type: string
description: Status of the reverse.
enum:
- unknown
- pending
- active
- error
default: unknown
reverse_status_message:
type: string
description: A message related to the reverse status, e.g. in case of an
error.
x-properties-order:
- id
- address
- reverse
- version
- reverse_status
- reverse_status_message
scaleway.baremetal.v1.ListOSResponse:
type: object
properties:
total_count:
type: integer
description: Total count of matching OS.
format: uint32
os:
type: array
description: OS that match filters.
items:
$ref: '#/components/schemas/scaleway.baremetal.v1.OS'
x-properties-order:
- total_count
- os
scaleway.baremetal.v1.ListOffersResponse:
type: object
properties:
total_count:
type: integer
description: Total count of matching offers.
format: uint32
offers:
type: array
description: Offers that match filters.
items:
$ref: '#/components/schemas/scaleway.baremetal.v1.Offer'
x-properties-order:
- total_count
- offers
scaleway.baremetal.v1.ListOptionsResponse:
type: object
properties:
total_count:
type: integer
description: Total count of matching options.
format: uint32
options:
type: array
description: Options that match filters.
items:
$ref: '#/components/schemas/scaleway.baremetal.v1.Option'
x-properties-order:
- total_count
- options
scaleway.baremetal.v1.ListServerEventsResponse:
type: object
properties:
total_count:
type: integer
description: Total count of matching events.
format: uint32
events:
type: array
description: Server events that match filters.
items:
$ref: '#/components/schemas/scaleway.baremetal.v1.ServerEvent'
x-properties-order:
- total_count
- events
scaleway.baremetal.v1.ListServersResponse:
type: object
properties:
total_count:
type: integer
description: Total count of matching servers.
format: uint32
servers:
type: array
description: Array of Elastic Metal server objects matching the filters
in the request.
items:
$ref: '#/components/schemas/scaleway.baremetal.v1.Server'
x-properties-order:
- total_count
- servers
scaleway.baremetal.v1.ListSettingsResponse:
type: object
properties:
total_count:
type: integer
description: Total count of matching settings.
format: uint32
settings:
type: array
description: Settings that match filters.
items:
$ref: '#/components/schemas/scaleway.baremetal.v1.Setting'
x-properties-order:
- total_count
- settings
scaleway.baremetal.v1.Memory:
type: object
properties:
capacity:
type: integer
description: Capacity of the memory in bytes. (in bytes)
format: uint64
type:
type: string
description: Type of the memory.
frequency:
type: integer
description: Frequency of the memory in MHz.
format: uint32
is_ecc:
type: boolean
description: True if the memory is an error-correcting code memory.
x-properties-order:
- capacity
- type
- frequency
- is_ecc
scaleway.baremetal.v1.OS:
type: object
properties:
id:
type: string
description: ID of the OS.
name:
type: string
description: Name of the OS.
version:
type: string
description: Version of the OS.
logo_url:
type: string
description: URL of this OS's logo.
ssh:
type: object
description: Object defining the SSH requirements to install the OS.
properties:
editable:
type: boolean
required:
type: boolean
default_value:
$ref: '#/components/schemas/google.protobuf.StringValue'
x-properties-order:
- editable
- required
- default_value
user:
type: object
description: Object defining the username requirements to install the OS.
properties:
editable:
type: boolean
required:
type: boolean
default_value:
$ref: '#/components/schemas/google.protobuf.StringValue'
x-properties-order:
- editable
- required
- default_value
password:
type: object
description: Object defining the password requirements to install the OS.
properties:
editable:
type: boolean
required:
type: boolean
default_value:
$ref: '#/components/schemas/google.protobuf.StringValue'
x-properties-order:
- editable
- required
- default_value
service_user:
type: object
description: Object defining the username requirements to install the service.
properties:
editable:
type: boolean
required:
type: boolean
default_value:
$ref: '#/components/schemas/google.protobuf.StringValue'
x-properties-order:
- editable
- required
- default_value
service_password:
type: object
description: Object defining the password requirements to install the service.
properties:
editable:
type: boolean
required:
type: boolean
default_value:
$ref: '#/components/schemas/google.protobuf.StringValue'
x-properties-order:
- editable
- required
- default_value
enabled:
type: boolean
description: Defines if the operating system is enabled or not.
license_required:
type: boolean
description: License required (check server options for pricing details).
allowed:
type: boolean
description: Defines if a specific Organization is allowed to install this
OS type.
x-properties-order:
- id
- name
- version
- logo_url
- ssh
- user
- password
- service_user
- service_password
- enabled
- license_required
- allowed
scaleway.baremetal.v1.Offer:
type: object
properties:
id:
type: string
description: ID of the offer.
name:
type: string
description: Name of the offer.
stock:
type: string
description: Stock level.
enum:
- empty
- low
- available
default: empty
bandwidth:
type: integer
description: Public bandwidth available (in bits/s) with the offer.
format: uint64
commercial_range:
type: string
description: Commercial range of the offer.
price_per_hour:
type: object
description: Price of the offer for the next 60 minutes (a server order
at 11h32 will be payed until 12h32).
properties:
currency_code:
type: string
units:
type: integer
format: int64
nanos:
type: integer
format: int32
x-properties-order:
- currency_code
- units
- nanos
price_per_month:
type: object
description: Monthly price of the offer, if subscribing on a monthly basis.
properties:
currency_code:
type: string
units:
type: integer
format: int64
nanos:
type: integer
format: int32
x-properties-order:
- currency_code
- units
- nanos
disks:
type: array
description: Disks specifications of the offer.
items:
$ref: '#/components/schemas/scaleway.baremetal.v1.Disk'
enable:
type: boolean
description: Defines whether the offer is currently available.
cpus:
type: array
description: CPU specifications of the offer.
items:
$ref: '#/components/schemas/scaleway.baremetal.v1.CPU'
memories:
type: array
description: Memory specifications of the offer.
items:
$ref: '#/components/schemas/scaleway.baremetal.v1.Memory'
quota_name:
type: string
description: Name of the quota associated to the offer.
persistent_memories:
type: array
description: Persistent memory specifications of the offer.
items:
$ref: '#/components/schemas/scaleway.baremetal.v1.PersistentMemory'
raid_controllers:
type: array
description: Raid controller specifications of the offer.
items:
$ref: '#/components/schemas/scaleway.baremetal.v1.RaidController'
incompatible_os_ids:
type: array
description: Array of OS images IDs incompatible with the server.
items:
type: string
subscription_period:
type: string
description: Period of subscription for the offer.
enum:
- unknown_subscription_period
- hourly
- monthly
default: unknown_subscription_period
operation_path:
type: string
description: Operation path of the service.
fee:
type: object
description: One time fee invoiced by Scaleway for the setup and activation
of the server.
properties:
currency_code:
type: string
units:
type: integer
format: int64
nanos:
type: integer
format: int32
x-properties-order:
- currency_code
- units
- nanos
options:
type: array
description: Available options for customization of the server.
items:
$ref: '#/components/schemas/scaleway.baremetal.v1.Offer.OptionOffer'
private_bandwidth:
type: integer
description: Private bandwidth available in bits/s with the offer.
format: uint64
shared_bandwidth:
type: boolean
description: Defines whether the offer's bandwidth is shared or not.
tags:
type: array
description: Array of tags attached to the offer.
items:
type: string
x-properties-order:
- id
- name
- stock
- bandwidth
- commercial_range
- price_per_hour
- price_per_month
- disks
- enable
- cpus
- memories
- quota_name
- persistent_memories
- raid_controllers
- incompatible_os_ids
- subscription_period
- operation_path
- fee
- options
- private_bandwidth
- shared_bandwidth
- tags
scaleway.baremetal.v1.Offer.OptionOffer:
type: object
properties:
id:
type: string
description: ID of the option.
name:
type: string
description: Name of the option.
enabled:
type: boolean
description: |-
If true the option is enabled and included by default in the offer.
If true the option is enabled and included by default in the offer
If false the option is available for the offer but not included by default.
subscription_period:
type: string
description: Period of subscription for the offer.
enum:
- unknown_subscription_period
- hourly
- monthly
default: unknown_subscription_period
price:
type: object
description: Price of the option.
properties:
currency_code:
type: string
units:
type: integer
format: int64
nanos:
type: integer
format: int32
x-properties-order:
- currency_code
- units
- nanos
manageable:
type: boolean
description: Boolean to know if option could be managed.
os_id:
type: string
description: ID of the OS linked to the option.
nullable: true
x-properties-order:
- id
- name
- enabled
- subscription_period
- price
- manageable
- os_id
scaleway.baremetal.v1.Option:
type: object
properties:
id:
type: string
description: ID of the option.
name:
type: string
description: Name of the option.
manageable:
type: boolean
description: Defines whether the option is manageable (could be added or
removed).
x-properties-order:
- id
- name
- manageable
scaleway.baremetal.v1.PersistentMemory:
type: object
properties:
capacity:
type: integer
description: Capacity of the memory in bytes. (in bytes)
format: uint64
type:
type: string
description: Type of the memory.
frequency:
type: integer
description: Frequency of the memory in MHz.
format: uint32
x-properties-order:
- capacity
- type
- frequency
scaleway.baremetal.v1.RaidController:
type: object
properties:
model:
type: string
raid_level:
type: array
items:
type: string
x-properties-order:
- model
- raid_level
scaleway.baremetal.v1.Server:
type: object
properties:
id:
type: string
description: ID of the server.
organization_id:
type: string
description: Organization ID the server is attached to.
project_id:
type: string
description: Project ID the server is attached to.
name:
type: string
description: Name of the server.
description:
type: string
description: Description of the server.
updated_at:
type: string
description: Last modification date of the server. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
created_at:
type: string
description: Creation date of the server. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
status:
type: string
description: Status of the server.
enum:
- unknown
- delivering
- ready
- stopping
- stopped
- starting
- error
- deleting
- locked
- out_of_stock
- ordered
- resetting
default: unknown
offer_id:
type: string
description: Offer ID of the server.
offer_name:
type: string
description: Offer name of the server.
tags:
type: array
description: Array of custom tags attached to the server.
items:
type: string
ips:
type: array
description: Array of IPs attached to the server.
items:
$ref: '#/components/schemas/scaleway.baremetal.v1.IP'
domain:
type: string
description: Domain of the server.
boot_type:
type: string
description: Boot type of the server.
enum:
- unknown_boot_type
- normal
- rescue
default: unknown_boot_type
zone:
type: string
description: Zone in which is the server located.
install:
type: object
description: Configuration of the installation.
properties:
os_id:
type: string
description: ID of the OS.
hostname:
type: string
description: Host defined during the server installation.
ssh_key_ids:
type: array
description: SSH public key IDs defined during server installation.
items:
type: string
status:
type: string
description: Status of the server installation.
enum:
- unknown
- to_install
- installing
- completed
- error
default: unknown
user:
type: string
description: User defined in the server installation, or the default
user if none were specified.
service_user:
type: string
description: Service user defined in the server installation, or the
default user if none were specified.
service_url:
type: string
description: Address of the installed service.
x-properties-order:
- os_id
- hostname
- ssh_key_ids
- status
- user
- service_user
- service_url
ping_status:
type: string
description: Status of server ping.
enum:
- ping_status_unknown
- ping_status_up
- ping_status_down
default: ping_status_unknown
options:
type: array
description: Options enabled on the server.
items:
$ref: '#/components/schemas/scaleway.baremetal.v1.Server.Option'
rescue_server:
type: object
description: Configuration of rescue boot.
properties:
user:
type: string
description: Rescue user name.
password:
type: string
description: Rescue password.
x-properties-order:
- user
- password
x-properties-order:
- id
- organization_id
- project_id
- name
- description
- updated_at
- created_at
- status
- offer_id
- offer_name
- tags
- ips
- domain
- boot_type
- zone
- install
- ping_status
- options
- rescue_server
scaleway.baremetal.v1.Server.Option:
type: object
properties:
id:
type: string
description: ID of the option.
name:
type: string
description: Name of the option.
status:
type: string
description: Status of the option on this server.
enum:
- option_status_unknown
- option_status_enable
- option_status_enabling
- option_status_disabling
- option_status_error
default: option_status_unknown
manageable:
type: boolean
description: Defines whether the option can be managed (added or removed).
expires_at:
type: string
description: Auto expiration date for compatible options. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
x-properties-order:
- id
- name
- status
- manageable
- expires_at
scaleway.baremetal.v1.ServerEvent:
type: object
properties:
id:
type: string
description: ID of the server to which the action will be applied.
action:
type: string
description: The action that will be applied to the server.
updated_at:
type: string
description: Date of last modification of the action. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
created_at:
type: string
description: Date of creation of the action. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
x-properties-order:
- id
- action
- updated_at
- created_at
scaleway.baremetal.v1.Setting:
type: object
properties:
id:
type: string
description: ID of the setting.
type:
type: string
description: Type of the setting.
enum:
- unknown
- smtp
default: unknown
project_id:
type: string
description: ID of the Project ID.
enabled:
type: boolean
description: Defines whether the setting is enabled.
x-properties-order:
- id
- type
- project_id
- enabled
scaleway.std.TimeSeries.Point:
type: array
items:
oneOf:
- type: string
format: date-time
- type: number
securitySchemes:
scaleway:
in: header
name: X-Auth-Token
type: apiKey
paths:
/baremetal/v1/zones/{zone}/offers:
get:
tags:
- Offers
operationId: ListOffers
summary: List offers
description: List all available Elastic Metal server configurations.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: query
name: page
description: Page number.
schema:
type: integer
description: Page number.
format: int32
- in: query
name: page_size
description: Number of offers per page.
schema:
type: integer
description: Number of offers per page.
format: uint32
- in: query
name: subscription_period
description: Subscription period type to filter offers by.
schema:
type: string
description: Subscription period type to filter offers by.
enum:
- unknown_subscription_period
- hourly
- monthly
default: unknown_subscription_period
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.ListOffersResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/baremetal/v1/zones/{zone}/offers"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/offers" \
X-Auth-Token:$SCW_SECRET_KEY
/baremetal/v1/zones/{zone}/offers/{offer_id}:
get:
tags:
- Offers
operationId: GetOffer
summary: Get offer
description: Get details of an offer identified by its offer ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: path
name: offer_id
description: ID of the researched Offer.
required: true
schema:
type: string
description: ID of the researched Offer.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.Offer'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/baremetal/v1/zones/{zone}/offers/{offer_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/offers/{offer_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/baremetal/v1/zones/{zone}/options:
get:
tags:
- Options
operationId: ListOptions
summary: List options
description: List all options matching with filters.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: query
name: page
description: Page number.
schema:
type: integer
description: Page number.
format: int32
- in: query
name: page_size
description: Number of options per page.
schema:
type: integer
description: Number of options per page.
format: uint32
- in: query
name: offer_id
description: Offer ID to filter options for.
schema:
type: string
description: Offer ID to filter options for.
- in: query
name: name
description: Name to filter options for.
schema:
type: string
description: Name to filter options for.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.ListOptionsResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/baremetal/v1/zones/{zone}/options"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/options" \
X-Auth-Token:$SCW_SECRET_KEY
/baremetal/v1/zones/{zone}/options/{option_id}:
get:
tags:
- Options
operationId: GetOption
summary: Get option
description: Return specific option for the ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: path
name: option_id
description: ID of the option.
required: true
schema:
type: string
description: ID of the option.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.Option'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/baremetal/v1/zones/{zone}/options/{option_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/options/{option_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/baremetal/v1/zones/{zone}/os:
get:
tags:
- OS
operationId: ListOS
summary: List available OSes
description: List all OSes that are available for installation on Elastic Metal
servers.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: query
name: page
description: Page number.
schema:
type: integer
description: Page number.
format: int32
- in: query
name: page_size
description: Number of OS per page.
schema:
type: integer
description: Number of OS per page.
format: uint32
- in: query
name: offer_id
description: Offer IDs to filter OSes for.
schema:
type: string
description: Offer IDs to filter OSes for.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.ListOSResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/baremetal/v1/zones/{zone}/os"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/os" \
X-Auth-Token:$SCW_SECRET_KEY
/baremetal/v1/zones/{zone}/os/{os_id}:
get:
tags:
- OS
operationId: GetOS
summary: Get OS with an ID
description: Return the specific OS for the ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: path
name: os_id
description: ID of the OS.
required: true
schema:
type: string
description: ID of the OS.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.OS'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/baremetal/v1/zones/{zone}/os/{os_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/os/{os_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/baremetal/v1/zones/{zone}/servers:
get:
tags:
- Servers
operationId: ListServers
summary: List Elastic Metal servers for an Organization
description: List Elastic Metal servers for a specific Organization.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: query
name: page
description: Page number.
schema:
type: integer
description: Page number.
format: int32
- in: query
name: page_size
description: Number of servers per page.
schema:
type: integer
description: Number of servers per page.
format: uint32
- in: query
name: order_by
description: Order of the servers.
schema:
type: string
description: Order of the servers.
enum:
- created_at_asc
- created_at_desc
default: created_at_asc
- in: query
name: tags
description: Tags to filter for.
schema:
type: array
description: Tags to filter for.
items:
type: string
- in: query
name: status
description: Status to filter for.
schema:
type: array
description: Status to filter for.
items:
type: string
- in: query
name: name
description: Names to filter for.
schema:
type: string
description: Names to filter for.
- in: query
name: organization_id
description: Organization ID to filter for.
schema:
type: string
description: Organization ID to filter for.
- in: query
name: project_id
description: Project ID to filter for.
schema:
type: string
description: Project ID to filter for.
- in: query
name: option_id
description: Option ID to filter for.
schema:
type: string
description: Option ID to filter for.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.ListServersResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/baremetal/v1/zones/{zone}/servers"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers" \
X-Auth-Token:$SCW_SECRET_KEY
post:
tags:
- Servers
operationId: CreateServer
summary: Create an Elastic Metal server
description: Create a new Elastic Metal server. Once the server is created,
proceed with the [installation of an OS](#post-3e949e).
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.Server'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
offer_id:
type: string
description: Offer ID of the new server.
organization_id:
type: string
description: Organization ID with which the server will be created.
deprecated: true
nullable: true
x-one-of: ProjectIdentifier
project_id:
type: string
description: Project ID with which the server will be created.
nullable: true
x-one-of: ProjectIdentifier
name:
type: string
description: Name of the server (≠hostname).
description:
type: string
description: Description associated with the server, max 255 characters.
tags:
type: array
description: Tags to associate to the server.
items:
type: string
install:
type: object
description: Object describing the configuration details of the
OS installation on the server.
properties:
os_id:
type: string
description: ID of the OS to installation on the server.
hostname:
type: string
description: Hostname of the server.
ssh_key_ids:
type: array
description: SSH key IDs authorized on the server.
items:
type: string
user:
type: string
description: User for the installation.
nullable: true
password:
type: string
description: Password for the installation.
nullable: true
service_user:
type: string
description: Regular user that runs the service to be installed
on the server.
nullable: true
service_password:
type: string
description: Password used for the service to install.
nullable: true
x-properties-order:
- os_id
- hostname
- ssh_key_ids
- user
- password
- service_user
- service_password
option_ids:
type: array
description: IDs of options to enable on server.
items:
type: string
required:
- offer_id
- name
- description
x-properties-order:
- offer_id
- organization_id
- project_id
- name
- description
- tags
- install
- option_ids
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",
"offer_id": "string"
}' \
"https://api.scaleway.com/baremetal/v1/zones/{zone}/servers"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers" \
X-Auth-Token:$SCW_SECRET_KEY \
description="string" \
name="string" \
offer_id="string"
/baremetal/v1/zones/{zone}/servers/{server_id}:
get:
tags:
- Servers
operationId: GetServer
summary: Get a specific Elastic Metal server
description: Get full details of an existing Elastic Metal server associated
with the ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: path
name: server_id
description: ID of the server.
required: true
schema:
type: string
description: ID of the server.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.Server'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}" \
X-Auth-Token:$SCW_SECRET_KEY
patch:
tags:
- Servers
operationId: UpdateServer
summary: Update an Elastic Metal server
description: Update the server associated with the ID. You can update parameters
such as the server's name, tags and description. Any parameters left null
in the request body are not updated.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: path
name: server_id
description: ID of the server to update.
required: true
schema:
type: string
description: ID of the server to update.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.Server'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the server (≠hostname), not updated if null.
nullable: true
description:
type: string
description: Description associated with the server, max 255 characters,
not updated if null.
nullable: true
tags:
type: array
description: Tags associated with the server, not updated if null.
nullable: true
items:
type: string
x-properties-order:
- name
- description
- 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/baremetal/v1/zones/{zone}/servers/{server_id}"
- lang: HTTPie
source: |-
http PATCH "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}" \
X-Auth-Token:$SCW_SECRET_KEY
delete:
tags:
- Servers
operationId: DeleteServer
summary: Delete an Elastic Metal server
description: Delete the server associated with the ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: path
name: server_id
description: ID of the server to delete.
required: true
schema:
type: string
description: ID of the server to delete.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.Server'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/baremetal/v1/zones/{zone}/servers/{server_id}/bmc-access:
get:
tags:
- BMC Access
operationId: GetBMCAccess
summary: Get BMC access
description: Get the BMC (Baseboard Management Controller) access associated
with the ID, including the URL and login information needed to connect.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: path
name: server_id
description: ID of the server.
required: true
schema:
type: string
description: ID of the server.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.BMCAccess'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/bmc-access"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/bmc-access" \
X-Auth-Token:$SCW_SECRET_KEY
post:
tags:
- BMC Access
operationId: StartBMCAccess
summary: Start BMC access
description: |-
Start BMC (Baseboard Management Controller) access associated with the ID.
The BMC (Baseboard Management Controller) access is available one hour after the installation of the server.
You need first to create an option Remote Access. You will find the ID and the price with a call to listOffers (https://developers.scaleway.com/en/products/baremetal/api/#get-78db92). Then add the option https://developers.scaleway.com/en/products/baremetal/api/#post-b14abd.
After adding the BMC option, you need to Get Remote Access to get the login/password https://developers.scaleway.com/en/products/baremetal/api/#get-cefc0f. Do not forget to delete the Option after use.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: path
name: server_id
description: ID of the server.
required: true
schema:
type: string
description: ID of the server.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.BMCAccess'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
ip:
type: string
description: The IP authorized to connect to the server. (IPv4 address)
example: 1.2.3.4
required:
- ip
x-properties-order:
- ip
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"ip":"1.2.3.4"}' \
"https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/bmc-access"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/bmc-access" \
X-Auth-Token:$SCW_SECRET_KEY \
ip="1.2.3.4"
delete:
tags:
- BMC Access
operationId: StopBMCAccess
summary: Stop BMC access
description: Stop BMC (Baseboard Management Controller) access associated with
the ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: path
name: server_id
description: ID of the server.
required: true
schema:
type: string
description: ID of the server.
responses:
"204":
description: ""
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/bmc-access"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/bmc-access" \
X-Auth-Token:$SCW_SECRET_KEY
/baremetal/v1/zones/{zone}/servers/{server_id}/events:
get:
tags:
- Servers
operationId: ListServerEvents
summary: List server events
description: List event (i.e. start/stop/reboot) associated to the server ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: path
name: server_id
description: ID of the server events searched.
required: true
schema:
type: string
description: ID of the server events searched.
- in: query
name: page
description: Page number.
schema:
type: integer
description: Page number.
format: int32
- in: query
name: page_size
description: Number of server events per page.
schema:
type: integer
description: Number of server events per page.
format: uint32
- in: query
name: order_by
description: Order of the server events.
schema:
type: string
description: Order of the server events.
enum:
- created_at_asc
- created_at_desc
default: created_at_asc
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.ListServerEventsResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/events"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/events" \
X-Auth-Token:$SCW_SECRET_KEY
/baremetal/v1/zones/{zone}/servers/{server_id}/install:
post:
tags:
- Servers
operationId: InstallServer
summary: Install an Elastic Metal server
description: Install an Operating System (OS) on the Elastic Metal server with
a specific ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: path
name: server_id
description: Server ID to install.
required: true
schema:
type: string
description: Server ID to install.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.Server'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
os_id:
type: string
description: ID of the OS to installation on the server.
hostname:
type: string
description: Hostname of the server.
ssh_key_ids:
type: array
description: SSH key IDs authorized on the server.
items:
type: string
user:
type: string
description: User used for the installation.
nullable: true
password:
type: string
description: Password used for the installation.
nullable: true
service_user:
type: string
description: User used for the service to install.
nullable: true
service_password:
type: string
description: Password used for the service to install.
nullable: true
required:
- os_id
- hostname
- ssh_key_ids
x-properties-order:
- os_id
- hostname
- ssh_key_ids
- user
- password
- service_user
- service_password
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"hostname": "string",
"os_id": "string",
"ssh_key_ids": [
"string"
]
}' \
"https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/install"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/install" \
X-Auth-Token:$SCW_SECRET_KEY \
hostname="string" \
os_id="string" \
ssh_key_ids:='[
"string"
]'
/baremetal/v1/zones/{zone}/servers/{server_id}/ips/{ip_id}:
patch:
tags:
- Servers
operationId: UpdateIP
summary: Update IP
description: Configure the IP address associated with the server ID and IP ID.
You can use this method to set a reverse DNS for an IP address.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: path
name: server_id
description: ID of the server.
required: true
schema:
type: string
description: ID of the server.
- in: path
name: ip_id
description: ID of the IP to update.
required: true
schema:
type: string
description: ID of the IP to update.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.IP'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
reverse:
type: string
description: New reverse IP to update, not updated if null.
nullable: true
x-properties-order:
- reverse
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/baremetal/v1/zones/{zone}/servers/{server_id}/ips/{ip_id}"
- lang: HTTPie
source: |-
http PATCH "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/ips/{ip_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/baremetal/v1/zones/{zone}/servers/{server_id}/metrics:
get:
tags:
- Servers
operationId: GetServerMetrics
summary: Return server metrics
description: Get the ping status of the server associated with the ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: path
name: server_id
description: Server ID to get the metrics.
required: true
schema:
type: string
description: Server ID to get the metrics.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.GetServerMetricsResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/metrics"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/metrics" \
X-Auth-Token:$SCW_SECRET_KEY
/baremetal/v1/zones/{zone}/servers/{server_id}/options/{option_id}:
post:
tags:
- Servers
operationId: AddOptionServer
summary: Add server option
description: Add an option, such as Private Networks, to a specific server.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: path
name: server_id
description: ID of the server.
required: true
schema:
type: string
description: ID of the server.
- in: path
name: option_id
description: ID of the option to add.
required: true
schema:
type: string
description: ID of the option to add.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.Server'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
expires_at:
type: string
description: Auto expire the option after this date. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
x-properties-order:
- expires_at
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/baremetal/v1/zones/{zone}/servers/{server_id}/options/{option_id}"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/options/{option_id}" \
X-Auth-Token:$SCW_SECRET_KEY
delete:
tags:
- Servers
operationId: DeleteOptionServer
summary: Delete server option
description: Delete an option from a specific server.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: path
name: server_id
description: ID of the server.
required: true
schema:
type: string
description: ID of the server.
- in: path
name: option_id
description: ID of the option to delete.
required: true
schema:
type: string
description: ID of the option to delete.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.Server'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/options/{option_id}"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/options/{option_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/baremetal/v1/zones/{zone}/servers/{server_id}/reboot:
post:
tags:
- Server Actions
operationId: RebootServer
summary: Reboot an Elastic Metal server
description: Reboot the Elastic Metal server associated with the ID, use the
`boot_type` `rescue` to reboot the server in rescue mode.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: path
name: server_id
description: ID of the server to reboot.
required: true
schema:
type: string
description: ID of the server to reboot.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.Server'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
boot_type:
type: string
description: The type of boot.
enum:
- unknown_boot_type
- normal
- rescue
default: unknown_boot_type
x-properties-order:
- boot_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/baremetal/v1/zones/{zone}/servers/{server_id}/reboot"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/reboot" \
X-Auth-Token:$SCW_SECRET_KEY
/baremetal/v1/zones/{zone}/servers/{server_id}/start:
post:
tags:
- Server Actions
operationId: StartServer
summary: Start an Elastic Metal server
description: Start the server associated with the ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: path
name: server_id
description: ID of the server to start.
required: true
schema:
type: string
description: ID of the server to start.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.Server'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
boot_type:
type: string
description: The type of boot.
enum:
- unknown_boot_type
- normal
- rescue
default: unknown_boot_type
x-properties-order:
- boot_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/baremetal/v1/zones/{zone}/servers/{server_id}/start"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/start" \
X-Auth-Token:$SCW_SECRET_KEY
/baremetal/v1/zones/{zone}/servers/{server_id}/stop:
post:
tags:
- Server Actions
operationId: StopServer
summary: Stop an Elastic Metal server
description: Stop the server associated with the ID. The server remains allocated
to your account and all data remains on the local storage of the server.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: path
name: server_id
description: ID of the server to stop.
required: true
schema:
type: string
description: ID of the server to stop.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.Server'
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/baremetal/v1/zones/{zone}/servers/{server_id}/stop"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/stop" \
X-Auth-Token:$SCW_SECRET_KEY
/baremetal/v1/zones/{zone}/settings:
get:
tags:
- Options
operationId: ListSettings
summary: List all settings
description: Return all settings for a Project ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: query
name: page
description: Page number.
schema:
type: integer
description: Page number.
format: int32
- in: query
name: page_size
description: Set the maximum list size.
schema:
type: integer
description: Set the maximum list size.
format: uint32
- in: query
name: order_by
description: Sort order for items in the response.
schema:
type: string
description: Sort order for items in the response.
enum:
- created_at_asc
- created_at_desc
default: created_at_asc
- in: query
name: project_id
description: ID of the Project. (UUID format)
schema:
type: string
description: ID of the Project. (UUID format)
example: 6170692e-7363-616c-6577-61792e636f6d
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.ListSettingsResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/baremetal/v1/zones/{zone}/settings?project_id=6170692e-7363-616c-6577-61792e636f6d"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/settings" \
X-Auth-Token:$SCW_SECRET_KEY \
project_id==6170692e-7363-616c-6577-61792e636f6d
/baremetal/v1/zones/{zone}/settings/{setting_id}:
patch:
tags:
- Options
operationId: UpdateSetting
summary: Update setting
description: Update a setting for a Project ID (enable or disable).
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
description: The zone you want to target
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- in: path
name: setting_id
description: ID of the setting.
required: true
schema:
type: string
description: ID of the setting.
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.baremetal.v1.Setting'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
enabled:
type: boolean
description: Defines whether the setting is enabled.
nullable: true
x-properties-order:
- enabled
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/baremetal/v1/zones/{zone}/settings/{setting_id}"
- lang: HTTPie
source: |-
http PATCH "https://api.scaleway.com/baremetal/v1/zones/{zone}/settings/{setting_id}" \
X-Auth-Token:$SCW_SECRET_KEY