This project relies on OpenAPI Generator, refers to UPDATE.md to update generated code.
Scaleway instance API can be reach on
https://api.scaleway.com/instance/v1/zones/fr-par-1
https://api.scaleway.com/instance/v1/zones/fr-par-2
https://api.scaleway.com/instance/v1/zones/nl-ams-1
https://api.scaleway.com/instance/v1/zones/pl-waw-1
Older endpoints are still reachable but should not be used for new projects
https://cp-par1.scaleway.com
https://cp-ams1.scaleway.com
The following code is an example request to retrieve detailed information about a volume:
``` % curl -H 'X-Auth-Token: xxxxxxxx-xxxx-xxxxx-xxxx-xxxxxxxxxxxxx' -H 'Content-Type: application/json' https://api.scaleway.com/instance/v1/zones/fr-par-1/volumes/f929fe39-63f8-4be8-a80e-1e9c8ae22a76 -i
HTTP/1.1 200 OK Server: nginx Date: Thu, 22 May 2014 07:55:00 GMT Content-Type: application/json Content-Length: 1345 Connection: keep-alive Strict-Transport-Security: max-age=86400
{ \"volumes\": [ { \"exporturi\": null, \"id\": \"f929fe39-63f8-4be8-a80e-1e9c8ae22a76\", \"name\": \"volume-0-1\", \"organization\": \"000a115d-2852-4b0a-9ce8-47f1134ba95a\", \"server\": null, \"size\": 10000000000, \"volumetype\": \"lssd\" }, { \"exporturi\": null, \"id\": \"0facb6b5-b117-441a-81c1-f28b1d723779\", \"name\": \"volume-0-2\", \"organization\": \"000a115d-2852-4b0a-9ce8-47f1134ba95a\", \"server\": null, \"size\": 20000000000, \"volumetype\": \"lssd\" } ] } ```
Most of listing requests receive a paginated response.
Paginated request
Requests against paginated endpoints accept two query
arguments:
page
, a positive integer to choose the page to return.per_page
, an positive integer lower or equal to 100 to select the number of
items to return. The default value is 50
.Paginated endpoints usually also accept filters to search and sort results. These filters are documented along each endpoint documentation.
Paginated response
bash
% curl -H 'X-Auth-Token: <token>' 'https://api.scaleway.com/instance/v1/zones/fr-par-1/images/?page=2&per_page=10' -i
HTTP/1.0 200 OK
[...]
X-Total-Count: 209
[...]
The X-Total-Count
header contains the total number of items for the resource.
This API client was generated by the OpenAPI Generator project. By using the openapi-spec from a remote server, you can easily generate an API client.
Put the package under your project folder and add the following to Cargo.toml
under [dependencies]
:
openapi = { path = "./generated" }
All URIs are relative to https://api.scaleway.com
Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- BootscriptsApi | getbootscript | get /instance/v1/zones/{zone}/bootscripts/{bootscriptid} | Get bootscripts BootscriptsApi | listbootscripts | get /instance/v1/zones/{zone}/bootscripts | List bootscripts *ClustersApi* | createcluster | post /k8s/v1/regions/{region}/clusters | Create a new cluster ClustersApi | deletecluster | delete /k8s/v1/regions/{region}/clusters/{clusterid} | Delete a cluster ClustersApi | getcluster | get /k8s/v1/regions/{region}/clusters/{clusterid} | Get a cluster ClustersApi | getclusterkubeconfig | get /k8s/v1/regions/{region}/clusters/{clusterid}/kubeconfig | Download the kubeconfig for a cluster ClustersApi | listclusteravailableversions | get /k8s/v1/regions/{region}/clusters/{clusterid}/available-versions | List available versions for a cluster ClustersApi | listclusters | get /k8s/v1/regions/{region}/clusters | List all the clusters *ClustersApi* | resetclusteradmintoken | post /k8s/v1/regions/{region}/clusters/{clusterid}/reset-admin-token | Reset the admin token of a cluster *ClustersApi* | updatecluster | patch /k8s/v1/regions/{region}/clusters/{clusterid} | Update a cluster *ClustersApi* | upgradecluster | post /k8s/v1/regions/{region}/clusters/{clusterid}/upgrade | Upgrade a cluster *DNSZonesApi* | clonednszone | post /domain/v2beta1/dns-zones/{dnszone}/clone | Clone a DNS zone DNSZonesApi | creatednszone | post /domain/v2beta1/dns-zones | Create a DNS zone DNSZonesApi | createsslcertificate | post /domain/v2beta1/ssl-certificates | Create or return the zone TLS certificate DNSZonesApi | deletednszone | delete /domain/v2beta1/dns-zones/{dnszone} | Delete DNS zone *DNSZonesApi* | deletednszonetsigkey | delete /domain/v2beta1/dns-zones/{dnszone}/tsig-key | Delete the DNS zone TSIG Key DNSZonesApi | deletesslcertificate | delete /domain/v2beta1/ssl-certificates/{dnszone} | Delete an TLS certificate *DNSZonesApi* | getdnszonetsigkey | get /domain/v2beta1/dns-zones/{dnszone}/tsig-key | Get the DNS zone TSIG Key DNSZonesApi | getsslcertificate | get /domain/v2beta1/ssl-certificates/{dnszone} | Get the zone TLS certificate if it exists *DNSZonesApi* | listdnszones | get /domain/v2beta1/dns-zones | List DNS zones *DNSZonesApi* | listsslcertificates | get /domain/v2beta1/ssl-certificates | List all user TLS certificates *DNSZonesApi* | refreshdnszone | post /domain/v2beta1/dns-zones/{dnszone}/refresh | Refresh DNS zone DNSZonesApi | updatednszone | patch /domain/v2beta1/dns-zones/{dnszone} | Update a DNS zone *DefaultApi* | getdashboard | get /instance/v1/zones/{zone}/dashboard | DefaultApi | getserviceinfo | get /apple-silicon/v1alpha1/zones/{zone} | DefaultApi | movemacaddr | post /flexible-ip/v1alpha1/zones/{zone}/fips/{fipid}/mac/move | *FlexibleIPApi* | attachflexibleip | post /flexible-ip/v1alpha1/zones/{zone}/fips/attach | Attach a Flexible IP to a server *FlexibleIPApi* | createflexibleip | post /flexible-ip/v1alpha1/zones/{zone}/fips | Create a Flexible IP *FlexibleIPApi* | deleteflexibleip | delete /flexible-ip/v1alpha1/zones/{zone}/fips/{fipid} | Delete a Flexible IP FlexibleIPApi | deletemacaddr | delete /flexible-ip/v1alpha1/zones/{zone}/fips/{fipid}/mac | Remove a virtual MAC from a Flexible IP *FlexibleIPApi* | detachflexibleip | post /flexible-ip/v1alpha1/zones/{zone}/fips/detach | Detach a Flexible IP from a server *FlexibleIPApi* | duplicatemacaddr | post /flexible-ip/v1alpha1/zones/{zone}/fips/{fipid}/mac/duplicate | Duplicate a Virtual MAC FlexibleIPApi | generatemacaddr | post /flexible-ip/v1alpha1/zones/{zone}/fips/{fipid}/mac | Generate a virtual MAC on a given Flexible IP *FlexibleIPApi* | getflexibleip | get /flexible-ip/v1alpha1/zones/{zone}/fips/{fipid} | Get a Flexible IP FlexibleIPApi | listflexibleips | get /flexible-ip/v1alpha1/zones/{zone}/fips | List Flexible IPs FlexibleIPApi | updateflexibleip | patch /flexible-ip/v1alpha1/zones/{zone}/fips/{fipid} | Update a Flexible IP *IPsApi* | createip | post /instance/v1/zones/{zone}/ips | Reserve a flexible IP IPsApi | deleteip | delete /instance/v1/zones/{zone}/ips/{ip} | Delete a flexible IP *IPsApi* | getip | get /instance/v1/zones/{zone}/ips/{ip} | Get a flexible IP IPsApi | listips | get /instance/v1/zones/{zone}/ips | List all flexible IPs *IPsApi* | updateip | patch /instance/v1/zones/{zone}/ips/{ip} | Update a flexible IP ImagesApi | createimage | post /instance/v1/zones/{zone}/images | Create an instance image *ImagesApi* | deleteimage | delete /instance/v1/zones/{zone}/images/{imageid} | Delete an instance image *ImagesApi* | deleteimage1 | delete /registry/v1/regions/{region}/images/{imageid} | Delete an image *ImagesApi* | getimage | get /instance/v1/zones/{zone}/images/{imageid} | Get an instance image *ImagesApi* | getimage1 | get /registry/v1/regions/{region}/images/{imageid} | Get a image *ImagesApi* | listimages | get /instance/v1/zones/{zone}/images | List instance images ImagesApi | listimages1 | get /registry/v1/regions/{region}/images | List all your images *ImagesApi* | setimage | put /instance/v1/zones/{zone}/images/{id} | Update image ImagesApi | updateimage | patch /registry/v1/regions/{region}/images/{imageid} | Update an existing image ImportsExportsApi | exportrawdnszone | get /domain/v2beta1/dns-zones/{dnszone}/raw | Export raw DNS zone ImportsExportsApi | importproviderdnszone | post /domain/v2beta1/dns-zones/{dnszone}/import-provider | Import provider DNS zone ImportsExportsApi | importrawdnszone | post /domain/v2beta1/dns-zones/{dnszone}/raw | Import raw DNS zone NamespacesApi | createnamespace | post /registry/v1/regions/{region}/namespaces | Create a new namespace *NamespacesApi* | deletenamespace | delete /registry/v1/regions/{region}/namespaces/{namespaceid} | Delete an existing namespace *NamespacesApi* | getnamespace | get /registry/v1/regions/{region}/namespaces/{namespaceid} | Get a namespace *NamespacesApi* | listnamespaces | get /registry/v1/regions/{region}/namespaces | List all your namespaces NamespacesApi | updatenamespace | patch /registry/v1/regions/{region}/namespaces/{namespaceid} | Update an existing namespace NodesApi | getnode | get /k8s/v1/regions/{region}/nodes/{nodeid} | Get a node in a cluster NodesApi | listnodes | get /k8s/v1/regions/{region}/clusters/{clusterid}/nodes | List all the nodes in a cluster NodesApi | rebootnode | post /k8s/v1/regions/{region}/nodes/{nodeid}/reboot | Reboot a node in a cluster NodesApi | replacenode | post /k8s/v1/regions/{region}/nodes/{nodeid}/replace | Replace a node in a cluster OsApi | getos | get /apple-silicon/v1alpha1/zones/{zone}/os/{osid} | Get an Operating System (OS) OsApi | listos | get /apple-silicon/v1alpha1/zones/{zone}/os | List all Operating System (OS) *PlacementGroupsApi* | createplacementgroup | post /instance/v1/zones/{zone}/placementgroups | Create a placement group PlacementGroupsApi | deleteplacementgroup | delete /instance/v1/zones/{zone}/placementgroups/{placementgroupid} | Delete the given placement group *PlacementGroupsApi* | getplacementgroup | get /instance/v1/zones/{zone}/placementgroups/{placementgroupid} | Get a placement group PlacementGroupsApi | getplacementgroupservers | get /instance/v1/zones/{zone}/placementgroups/{placementgroupid}/servers | Get placement group servers PlacementGroupsApi | listplacementgroups | get /instance/v1/zones/{zone}/placementgroups | List placement groups *PlacementGroupsApi* | setplacementgroup | put /instance/v1/zones/{zone}/placementgroups/{placementgroupid} | Set placement group PlacementGroupsApi | setplacementgroupservers | put /instance/v1/zones/{zone}/placementgroups/{placementgroupid}/servers | Set placement group servers PlacementGroupsApi | updateplacementgroup | patch /instance/v1/zones/{zone}/placementgroups/{placementgroupid} | Update a placement group *PlacementGroupsApi* | updateplacementgroupservers | patch /instance/v1/zones/{zone}/placementgroups/{placementgroupid}/servers | Update placement group servers *PoolsApi* | createpool | post /k8s/v1/regions/{region}/clusters/{clusterid}/pools | Create a new pool in a cluster *PoolsApi* | deletepool | delete /k8s/v1/regions/{region}/pools/{poolid} | Delete a pool in a cluster *PoolsApi* | getpool | get /k8s/v1/regions/{region}/pools/{poolid} | Get a pool in a cluster *PoolsApi* | listpools | get /k8s/v1/regions/{region}/clusters/{clusterid}/pools | List all the pools in a cluster *PoolsApi* | updatepool | patch /k8s/v1/regions/{region}/pools/{poolid} | Update a pool in a cluster *PoolsApi* | upgradepool | post /k8s/v1/regions/{region}/pools/{poolid}/upgrade | Upgrade a pool in a cluster *PrivateNICsApi* | createprivatenic | post /instance/v1/zones/{zone}/servers/{serverid}/privatenics | Create a private NIC connecting a server to a private network *PrivateNICsApi* | deleteprivatenic | delete /instance/v1/zones/{zone}/servers/{serverid}/privatenics/{privatenicid} | Delete a private NIC *PrivateNICsApi* | getprivatenic | get /instance/v1/zones/{zone}/servers/{serverid}/privatenics/{privatenicid} | Get a private NIC *PrivateNICsApi* | listprivatenics | get /instance/v1/zones/{zone}/servers/{serverid}/privatenics | List all private NICs *PrivateNetworksApi* | createprivatenetwork | post /vpc/v1/zones/{zone}/private-networks | Create a private network *PrivateNetworksApi* | deleteprivatenetwork | delete /vpc/v1/zones/{zone}/private-networks/{privatenetworkid} | Delete a private network *PrivateNetworksApi* | getprivatenetwork | get /vpc/v1/zones/{zone}/private-networks/{privatenetworkid} | Get a private network *PrivateNetworksApi* | listprivatenetworks | get /vpc/v1/zones/{zone}/private-networks | List private networks *PrivateNetworksApi* | updateprivatenetwork | patch /vpc/v1/zones/{zone}/private-networks/{privatenetworkid} | Update private network *RecordsApi* | cleardnszonerecords | delete /domain/v2beta1/dns-zones/{dnszone}/records | Clear DNS zone records *RecordsApi* | listdnszonenameservers | get /domain/v2beta1/dns-zones/{dnszone}/nameservers | List DNS zone nameservers *RecordsApi* | listdnszonerecords | get /domain/v2beta1/dns-zones/{dnszone}/records | List DNS zone records *RecordsApi* | updatednszonenameservers | put /domain/v2beta1/dns-zones/{dnszone}/nameservers | Update DNS zone nameservers *RecordsApi* | updatednszonerecords | patch /domain/v2beta1/dns-zones/{dnszone}/records | Update DNS zone records *SecurityGroupsApi* | createsecuritygroup | post /instance/v1/zones/{zone}/securitygroups | Create a security group SecurityGroupsApi | createsecuritygrouprule | post /instance/v1/zones/{zone}/securitygroups/{securitygroupid}/rules | Create rule SecurityGroupsApi | deletesecuritygroup | delete /instance/v1/zones/{zone}/securitygroups/{securitygroupid} | Delete a security group *SecurityGroupsApi* | deletesecuritygrouprule | delete /instance/v1/zones/{zone}/securitygroups/{securitygroupid}/rules/{securitygroupruleid} | Delete rule SecurityGroupsApi | getsecuritygroup | get /instance/v1/zones/{zone}/securitygroups/{securitygroupid} | Get a security group *SecurityGroupsApi* | getsecuritygrouprule | get /instance/v1/zones/{zone}/securitygroups/{securitygroupid}/rules/{securitygroupruleid} | Get rule SecurityGroupsApi | listsecuritygrouprules | get /instance/v1/zones/{zone}/securitygroups/{securitygroupid}/rules | List rules SecurityGroupsApi | listsecuritygroups | get /instance/v1/zones/{zone}/securitygroups | List security groups *SecurityGroupsApi* | setsecuritygroup | put /instance/v1/zones/{zone}/securitygroups/{id} | Update a security group SecurityGroupsApi | setsecuritygrouprule | put /instance/v1/zones/{zone}/securitygroups/{securitygroupid}/rules/{securitygroupruleid} | Update security group rule *ServerTypesApi* | getservertype | get /apple-silicon/v1alpha1/zones/{zone}/server-type/{servertype} | Get a server type ServerTypesApi | getservertypesavailability | get /instance/v1/zones/{zone}/products/servers/availability | Get availability *ServerTypesApi* | listservertypes | get /apple-silicon/v1alpha1/zones/{zone}/server-types | List server types *ServerTypesApi* | listserverstypes | get /instance/v1/zones/{zone}/products/servers | List server types *ServersApi* | createserver | post /instance/v1/zones/{zone}/servers | Create a server ServersApi | createserver1 | post /apple-silicon/v1alpha1/zones/{zone}/servers | Create a server *ServersApi* | deleteserver | delete /instance/v1/zones/{zone}/servers/{serverid} | Delete a server *ServersApi* | deleteserver1 | delete /apple-silicon/v1alpha1/zones/{zone}/servers/{serverid} | Delete a server *ServersApi* | getserver | get /instance/v1/zones/{zone}/servers/{serverid} | Get a server *ServersApi* | getserver1 | get /apple-silicon/v1alpha1/zones/{zone}/servers/{serverid} | Get a server *ServersApi* | listserveractions | get /instance/v1/zones/{zone}/servers/{serverid}/action | List server actions ServersApi | listservers | get /instance/v1/zones/{zone}/servers | List all servers *ServersApi* | listservers1 | get /apple-silicon/v1alpha1/zones/{zone}/servers | List all servers ServersApi | rebootserver | post /apple-silicon/v1alpha1/zones/{zone}/servers/{serverid}/reboot | Reboot a server ServersApi | reinstallserver | post /apple-silicon/v1alpha1/zones/{zone}/servers/{serverid}/reinstall | Reinstall a server ServersApi | serveraction | post /instance/v1/zones/{zone}/servers/{serverid}/action | Perform action ServersApi | updateserver | patch /instance/v1/zones/{zone}/servers/{serverid} | Update a server ServersApi | updateserver1 | patch /apple-silicon/v1alpha1/zones/{zone}/servers/{serverid} | Update a server SnapshotsApi | createsnapshot | post /instance/v1/zones/{zone}/snapshots | Create a snapshot from a given volume *SnapshotsApi* | deletesnapshot | delete /instance/v1/zones/{zone}/snapshots/{snapshotid} | Delete a snapshot *SnapshotsApi* | getsnapshot | get /instance/v1/zones/{zone}/snapshots/{snapshotid} | Get a snapshot *SnapshotsApi* | listsnapshots | get /instance/v1/zones/{zone}/snapshots | List snapshots SnapshotsApi | setsnapshot | put /instance/v1/zones/{zone}/snapshots/{snapshotid} | Update snapshot TagsApi | deletetag | delete /registry/v1/regions/{region}/tags/{tagid} | Delete a tag TagsApi | gettag | get /registry/v1/regions/{region}/tags/{tagid} | Get a tag TagsApi | listtags | get /registry/v1/regions/{region}/images/{imageid}/tags | List all your tags UserDataApi | deleteserveruserdata | delete /instance/v1/zones/{zone}/servers/{serverid}/userdata/{key} | Delete user data *UserDataApi* | getserveruserdata | get /instance/v1/zones/{zone}/servers/{serverid}/userdata/{key} | Get user data UserDataApi | listserveruserdata | get /instance/v1/zones/{zone}/servers/{serverid}/userdata | List user data *UserDataApi* | setserveruserdata | patch /instance/v1/zones/{zone}/servers/{serverid}/userdata/{key} | Add/Set user data VersionsApi | getdnszoneversiondiff | get /domain/v2beta1/dns-zones/version/{dnszoneversionid}/diff | Get DNS zone version diff *VersionsApi* | getversion | get /k8s/v1/regions/{region}/versions/{versionname} | Get details about a specific version *VersionsApi* | listdnszoneversionrecords | get /domain/v2beta1/dns-zones/version/{dnszoneversionid} | List DNS zone version records VersionsApi | listdnszoneversions | get /domain/v2beta1/dns-zones/{dnszone}/versions | List DNS zone versions VersionsApi | listversions | get /k8s/v1/regions/{region}/versions | List all available versions *VersionsApi* | restorednszoneversion | post /domain/v2beta1/dns-zones/version/{dnszoneversionid}/restore | Restore DNS zone version *VolumeTypesApi* | listvolumestypes | get /instance/v1/zones/{zone}/products/volumes | List volumes types *VolumesApi* | createvolume | post /instance/v1/zones/{zone}/volumes | Create a volume VolumesApi | deletevolume | delete /instance/v1/zones/{zone}/volumes/{volumeid} | Delete a volume VolumesApi | getvolume | get /instance/v1/zones/{zone}/volumes/{volumeid} | Get a volume VolumesApi | listvolumes | get /instance/v1/zones/{zone}/volumes | List volumes *VolumesApi* | setvolume | put /instance/v1/zones/{zone}/volumes/{id} | Update volume VolumesApi | updatevolume | patch /instance/v1/zones/{zone}/volumes/{volumeid} | Update a volume
To get access to the crate's generated documentation, use:
cargo doc --open