scaleway_api_rs 0.1.0

Generated library to interact with Scaleway API.
Documentation

Build / Test / Fmt

Notes

This project relies on OpenAPI Generator, refers to UPDATE.md to update generated code.

Rust API client for scaleway_api_rs

Introduction

Endpoints

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\": [
    {
      \"export_uri\": null,
      \"id\": \"f929fe39-63f8-4be8-a80e-1e9c8ae22a76\",
      \"name\": \"volume-0-1\",
      \"organization\": \"000a115d-2852-4b0a-9ce8-47f1134ba95a\",
      \"server\": null,
      \"size\": 10000000000,
      \"volume_type\": \"l_ssd\"
    },
    {
      \"export_uri\": null,
      \"id\": \"0facb6b5-b117-441a-81c1-f28b1d723779\",
      \"name\": \"volume-0-2\",
      \"organization\": \"000a115d-2852-4b0a-9ce8-47f1134ba95a\",
      \"server\": null,
      \"size\": 20000000000,
      \"volume_type\": \"l_ssd\"
    }
  ]
}

Pagination

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

% 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.

Overview

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.

  • API version: v1
  • Package version: 0.1.0
  • Build package: org.openapitools.codegen.languages.RustClientCodegen

Installation

Put the package under your project folder and add the following to Cargo.toml under [dependencies]:

    openapi = { path = "./generated" }

Documentation for API Endpoints

All URIs are relative to https://api.scaleway.com

Class Method HTTP request Description
BootscriptsApi get_bootscript get /instance/v1/zones/{zone}/bootscripts/{bootscript_id} Get bootscripts
BootscriptsApi list_bootscripts get /instance/v1/zones/{zone}/bootscripts List bootscripts
ClustersApi create_cluster post /k8s/v1/regions/{region}/clusters Create a new cluster
ClustersApi delete_cluster delete /k8s/v1/regions/{region}/clusters/{cluster_id} Delete a cluster
ClustersApi get_cluster get /k8s/v1/regions/{region}/clusters/{cluster_id} Get a cluster
ClustersApi get_cluster_kube_config get /k8s/v1/regions/{region}/clusters/{cluster_id}/kubeconfig Download the kubeconfig for a cluster
ClustersApi list_cluster_available_versions get /k8s/v1/regions/{region}/clusters/{cluster_id}/available-versions List available versions for a cluster
ClustersApi list_clusters get /k8s/v1/regions/{region}/clusters List all the clusters
ClustersApi reset_cluster_admin_token post /k8s/v1/regions/{region}/clusters/{cluster_id}/reset-admin-token Reset the admin token of a cluster
ClustersApi update_cluster patch /k8s/v1/regions/{region}/clusters/{cluster_id} Update a cluster
ClustersApi upgrade_cluster post /k8s/v1/regions/{region}/clusters/{cluster_id}/upgrade Upgrade a cluster
DNSZonesApi clone_dns_zone post /domain/v2beta1/dns-zones/{dns_zone}/clone Clone a DNS zone
DNSZonesApi create_dns_zone post /domain/v2beta1/dns-zones Create a DNS zone
DNSZonesApi create_ssl_certificate post /domain/v2beta1/ssl-certificates Create or return the zone TLS certificate
DNSZonesApi delete_dns_zone delete /domain/v2beta1/dns-zones/{dns_zone} Delete DNS zone
DNSZonesApi delete_dns_zone_tsig_key delete /domain/v2beta1/dns-zones/{dns_zone}/tsig-key Delete the DNS zone TSIG Key
DNSZonesApi delete_ssl_certificate delete /domain/v2beta1/ssl-certificates/{dns_zone} Delete an TLS certificate
DNSZonesApi get_dns_zone_tsig_key get /domain/v2beta1/dns-zones/{dns_zone}/tsig-key Get the DNS zone TSIG Key
DNSZonesApi get_ssl_certificate get /domain/v2beta1/ssl-certificates/{dns_zone} Get the zone TLS certificate if it exists
DNSZonesApi list_dns_zones get /domain/v2beta1/dns-zones List DNS zones
DNSZonesApi list_ssl_certificates get /domain/v2beta1/ssl-certificates List all user TLS certificates
DNSZonesApi refresh_dns_zone post /domain/v2beta1/dns-zones/{dns_zone}/refresh Refresh DNS zone
DNSZonesApi update_dns_zone patch /domain/v2beta1/dns-zones/{dns_zone} Update a DNS zone
DefaultApi get_dashboard get /instance/v1/zones/{zone}/dashboard
DefaultApi get_service_info get /apple-silicon/v1alpha1/zones/{zone}
DefaultApi move_mac_addr post /flexible-ip/v1alpha1/zones/{zone}/fips/{fip_id}/mac/move
FlexibleIPApi attach_flexible_ip post /flexible-ip/v1alpha1/zones/{zone}/fips/attach Attach a Flexible IP to a server
FlexibleIPApi create_flexible_ip post /flexible-ip/v1alpha1/zones/{zone}/fips Create a Flexible IP
FlexibleIPApi delete_flexible_ip delete /flexible-ip/v1alpha1/zones/{zone}/fips/{fip_id} Delete a Flexible IP
FlexibleIPApi delete_mac_addr delete /flexible-ip/v1alpha1/zones/{zone}/fips/{fip_id}/mac Remove a virtual MAC from a Flexible IP
FlexibleIPApi detach_flexible_ip post /flexible-ip/v1alpha1/zones/{zone}/fips/detach Detach a Flexible IP from a server
FlexibleIPApi duplicate_mac_addr post /flexible-ip/v1alpha1/zones/{zone}/fips/{fip_id}/mac/duplicate Duplicate a Virtual MAC
FlexibleIPApi generate_mac_addr post /flexible-ip/v1alpha1/zones/{zone}/fips/{fip_id}/mac Generate a virtual MAC on a given Flexible IP
FlexibleIPApi get_flexible_ip get /flexible-ip/v1alpha1/zones/{zone}/fips/{fip_id} Get a Flexible IP
FlexibleIPApi list_flexible_ips get /flexible-ip/v1alpha1/zones/{zone}/fips List Flexible IPs
FlexibleIPApi update_flexible_ip patch /flexible-ip/v1alpha1/zones/{zone}/fips/{fip_id} Update a Flexible IP
IPsApi create_ip post /instance/v1/zones/{zone}/ips Reserve a flexible IP
IPsApi delete_ip delete /instance/v1/zones/{zone}/ips/{ip} Delete a flexible IP
IPsApi get_ip get /instance/v1/zones/{zone}/ips/{ip} Get a flexible IP
IPsApi list_ips get /instance/v1/zones/{zone}/ips List all flexible IPs
IPsApi update_ip patch /instance/v1/zones/{zone}/ips/{ip} Update a flexible IP
ImagesApi create_image post /instance/v1/zones/{zone}/images Create an instance image
ImagesApi delete_image delete /instance/v1/zones/{zone}/images/{image_id} Delete an instance image
ImagesApi delete_image1 delete /registry/v1/regions/{region}/images/{image_id} Delete an image
ImagesApi get_image get /instance/v1/zones/{zone}/images/{image_id} Get an instance image
ImagesApi get_image1 get /registry/v1/regions/{region}/images/{image_id} Get a image
ImagesApi list_images get /instance/v1/zones/{zone}/images List instance images
ImagesApi list_images1 get /registry/v1/regions/{region}/images List all your images
ImagesApi set_image put /instance/v1/zones/{zone}/images/{id} Update image
ImagesApi update_image patch /registry/v1/regions/{region}/images/{image_id} Update an existing image
ImportsExportsApi export_raw_dns_zone get /domain/v2beta1/dns-zones/{dns_zone}/raw Export raw DNS zone
ImportsExportsApi import_provider_dns_zone post /domain/v2beta1/dns-zones/{dns_zone}/import-provider Import provider DNS zone
ImportsExportsApi import_raw_dns_zone post /domain/v2beta1/dns-zones/{dns_zone}/raw Import raw DNS zone
NamespacesApi create_namespace post /registry/v1/regions/{region}/namespaces Create a new namespace
NamespacesApi delete_namespace delete /registry/v1/regions/{region}/namespaces/{namespace_id} Delete an existing namespace
NamespacesApi get_namespace get /registry/v1/regions/{region}/namespaces/{namespace_id} Get a namespace
NamespacesApi list_namespaces get /registry/v1/regions/{region}/namespaces List all your namespaces
NamespacesApi update_namespace patch /registry/v1/regions/{region}/namespaces/{namespace_id} Update an existing namespace
NodesApi get_node get /k8s/v1/regions/{region}/nodes/{node_id} Get a node in a cluster
NodesApi list_nodes get /k8s/v1/regions/{region}/clusters/{cluster_id}/nodes List all the nodes in a cluster
NodesApi reboot_node post /k8s/v1/regions/{region}/nodes/{node_id}/reboot Reboot a node in a cluster
NodesApi replace_node post /k8s/v1/regions/{region}/nodes/{node_id}/replace Replace a node in a cluster
OsApi get_os get /apple-silicon/v1alpha1/zones/{zone}/os/{os_id} Get an Operating System (OS)
OsApi list_os get /apple-silicon/v1alpha1/zones/{zone}/os List all Operating System (OS)
PlacementGroupsApi create_placement_group post /instance/v1/zones/{zone}/placement_groups Create a placement group
PlacementGroupsApi delete_placement_group delete /instance/v1/zones/{zone}/placement_groups/{placement_group_id} Delete the given placement group
PlacementGroupsApi get_placement_group get /instance/v1/zones/{zone}/placement_groups/{placement_group_id} Get a placement group
PlacementGroupsApi get_placement_group_servers get /instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers Get placement group servers
PlacementGroupsApi list_placement_groups get /instance/v1/zones/{zone}/placement_groups List placement groups
PlacementGroupsApi set_placement_group put /instance/v1/zones/{zone}/placement_groups/{placement_group_id} Set placement group
PlacementGroupsApi set_placement_group_servers put /instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers Set placement group servers
PlacementGroupsApi update_placement_group patch /instance/v1/zones/{zone}/placement_groups/{placement_group_id} Update a placement group
PlacementGroupsApi update_placement_group_servers patch /instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers Update placement group servers
PoolsApi create_pool post /k8s/v1/regions/{region}/clusters/{cluster_id}/pools Create a new pool in a cluster
PoolsApi delete_pool delete /k8s/v1/regions/{region}/pools/{pool_id} Delete a pool in a cluster
PoolsApi get_pool get /k8s/v1/regions/{region}/pools/{pool_id} Get a pool in a cluster
PoolsApi list_pools get /k8s/v1/regions/{region}/clusters/{cluster_id}/pools List all the pools in a cluster
PoolsApi update_pool patch /k8s/v1/regions/{region}/pools/{pool_id} Update a pool in a cluster
PoolsApi upgrade_pool post /k8s/v1/regions/{region}/pools/{pool_id}/upgrade Upgrade a pool in a cluster
PrivateNICsApi create_private_nic post /instance/v1/zones/{zone}/servers/{server_id}/private_nics Create a private NIC connecting a server to a private network
PrivateNICsApi delete_private_nic delete /instance/v1/zones/{zone}/servers/{server_id}/private_nics/{private_nic_id} Delete a private NIC
PrivateNICsApi get_private_nic get /instance/v1/zones/{zone}/servers/{server_id}/private_nics/{private_nic_id} Get a private NIC
PrivateNICsApi list_private_nics get /instance/v1/zones/{zone}/servers/{server_id}/private_nics List all private NICs
PrivateNetworksApi create_private_network post /vpc/v1/zones/{zone}/private-networks Create a private network
PrivateNetworksApi delete_private_network delete /vpc/v1/zones/{zone}/private-networks/{private_network_id} Delete a private network
PrivateNetworksApi get_private_network get /vpc/v1/zones/{zone}/private-networks/{private_network_id} Get a private network
PrivateNetworksApi list_private_networks get /vpc/v1/zones/{zone}/private-networks List private networks
PrivateNetworksApi update_private_network patch /vpc/v1/zones/{zone}/private-networks/{private_network_id} Update private network
RecordsApi clear_dns_zone_records delete /domain/v2beta1/dns-zones/{dns_zone}/records Clear DNS zone records
RecordsApi list_dns_zone_nameservers get /domain/v2beta1/dns-zones/{dns_zone}/nameservers List DNS zone nameservers
RecordsApi list_dns_zone_records get /domain/v2beta1/dns-zones/{dns_zone}/records List DNS zone records
RecordsApi update_dns_zone_nameservers put /domain/v2beta1/dns-zones/{dns_zone}/nameservers Update DNS zone nameservers
RecordsApi update_dns_zone_records patch /domain/v2beta1/dns-zones/{dns_zone}/records Update DNS zone records
SecurityGroupsApi create_security_group post /instance/v1/zones/{zone}/security_groups Create a security group
SecurityGroupsApi create_security_group_rule post /instance/v1/zones/{zone}/security_groups/{security_group_id}/rules Create rule
SecurityGroupsApi delete_security_group delete /instance/v1/zones/{zone}/security_groups/{security_group_id} Delete a security group
SecurityGroupsApi delete_security_group_rule delete /instance/v1/zones/{zone}/security_groups/{security_group_id}/rules/{security_group_rule_id} Delete rule
SecurityGroupsApi get_security_group get /instance/v1/zones/{zone}/security_groups/{security_group_id} Get a security group
SecurityGroupsApi get_security_group_rule get /instance/v1/zones/{zone}/security_groups/{security_group_id}/rules/{security_group_rule_id} Get rule
SecurityGroupsApi list_security_group_rules get /instance/v1/zones/{zone}/security_groups/{security_group_id}/rules List rules
SecurityGroupsApi list_security_groups get /instance/v1/zones/{zone}/security_groups List security groups
SecurityGroupsApi set_security_group put /instance/v1/zones/{zone}/security_groups/{id} Update a security group
SecurityGroupsApi set_security_group_rule put /instance/v1/zones/{zone}/security_groups/{security_group_id}/rules/{security_group_rule_id} Update security group rule
ServerTypesApi get_server_type get /apple-silicon/v1alpha1/zones/{zone}/server-type/{server_type} Get a server type
ServerTypesApi get_server_types_availability get /instance/v1/zones/{zone}/products/servers/availability Get availability
ServerTypesApi list_server_types get /apple-silicon/v1alpha1/zones/{zone}/server-types List server types
ServerTypesApi list_servers_types get /instance/v1/zones/{zone}/products/servers List server types
ServersApi create_server post /instance/v1/zones/{zone}/servers Create a server
ServersApi create_server1 post /apple-silicon/v1alpha1/zones/{zone}/servers Create a server
ServersApi delete_server delete /instance/v1/zones/{zone}/servers/{server_id} Delete a server
ServersApi delete_server1 delete /apple-silicon/v1alpha1/zones/{zone}/servers/{server_id} Delete a server
ServersApi get_server get /instance/v1/zones/{zone}/servers/{server_id} Get a server
ServersApi get_server1 get /apple-silicon/v1alpha1/zones/{zone}/servers/{server_id} Get a server
ServersApi list_server_actions get /instance/v1/zones/{zone}/servers/{server_id}/action List server actions
ServersApi list_servers get /instance/v1/zones/{zone}/servers List all servers
ServersApi list_servers1 get /apple-silicon/v1alpha1/zones/{zone}/servers List all servers
ServersApi reboot_server post /apple-silicon/v1alpha1/zones/{zone}/servers/{server_id}/reboot Reboot a server
ServersApi reinstall_server post /apple-silicon/v1alpha1/zones/{zone}/servers/{server_id}/reinstall Reinstall a server
ServersApi server_action post /instance/v1/zones/{zone}/servers/{server_id}/action Perform action
ServersApi update_server patch /instance/v1/zones/{zone}/servers/{server_id} Update a server
ServersApi update_server1 patch /apple-silicon/v1alpha1/zones/{zone}/servers/{server_id} Update a server
SnapshotsApi create_snapshot post /instance/v1/zones/{zone}/snapshots Create a snapshot from a given volume
SnapshotsApi delete_snapshot delete /instance/v1/zones/{zone}/snapshots/{snapshot_id} Delete a snapshot
SnapshotsApi get_snapshot get /instance/v1/zones/{zone}/snapshots/{snapshot_id} Get a snapshot
SnapshotsApi list_snapshots get /instance/v1/zones/{zone}/snapshots List snapshots
SnapshotsApi set_snapshot put /instance/v1/zones/{zone}/snapshots/{snapshot_id} Update snapshot
TagsApi delete_tag delete /registry/v1/regions/{region}/tags/{tag_id} Delete a tag
TagsApi get_tag get /registry/v1/regions/{region}/tags/{tag_id} Get a tag
TagsApi list_tags get /registry/v1/regions/{region}/images/{image_id}/tags List all your tags
UserDataApi delete_server_user_data delete /instance/v1/zones/{zone}/servers/{server_id}/user_data/{key} Delete user data
UserDataApi get_server_user_data get /instance/v1/zones/{zone}/servers/{server_id}/user_data/{key} Get user data
UserDataApi list_server_user_data get /instance/v1/zones/{zone}/servers/{server_id}/user_data List user data
UserDataApi set_server_user_data patch /instance/v1/zones/{zone}/servers/{server_id}/user_data/{key} Add/Set user data
VersionsApi get_dns_zone_version_diff get /domain/v2beta1/dns-zones/version/{dns_zone_version_id}/diff Get DNS zone version diff
VersionsApi get_version get /k8s/v1/regions/{region}/versions/{version_name} Get details about a specific version
VersionsApi list_dns_zone_version_records get /domain/v2beta1/dns-zones/version/{dns_zone_version_id} List DNS zone version records
VersionsApi list_dns_zone_versions get /domain/v2beta1/dns-zones/{dns_zone}/versions List DNS zone versions
VersionsApi list_versions get /k8s/v1/regions/{region}/versions List all available versions
VersionsApi restore_dns_zone_version post /domain/v2beta1/dns-zones/version/{dns_zone_version_id}/restore Restore DNS zone version
VolumeTypesApi list_volumes_types get /instance/v1/zones/{zone}/products/volumes List volumes types
VolumesApi create_volume post /instance/v1/zones/{zone}/volumes Create a volume
VolumesApi delete_volume delete /instance/v1/zones/{zone}/volumes/{volume_id} Delete a volume
VolumesApi get_volume get /instance/v1/zones/{zone}/volumes/{volume_id} Get a volume
VolumesApi list_volumes get /instance/v1/zones/{zone}/volumes List volumes
VolumesApi set_volume put /instance/v1/zones/{zone}/volumes/{id} Update volume
VolumesApi update_volume patch /instance/v1/zones/{zone}/volumes/{volume_id} Update a volume

Documentation For Models

To get access to the crate's generated documentation, use:

cargo doc --open

Author