Rust lib for Scaleway API

Overview

build / test / fmt crate publish publish Crates.io

Notes

This Scaleway API Crate is created and maintained by Qovery and used in production in the Qovery Engine.

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: ' '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

Comments
  • Create source and docs with number as i64

    Create source and docs with number as i64

    This PRs updates the openapi source files and push the generated files. Files were generated through a patched openapi-generator to cirucmvent a bug https://github.com/OpenAPITools/openapi-generator/pull/12485

    The new source code works fine with my usage of the Domain API (Some types are now with relevant name instead of InlineXX). Hope it does not break too much.

    opened by gaetronik 13
  • Change number binding to i64

    Change number binding to i64

    A the moment, openapi number type maps to f32 which leads to json sent to the api with number as 0.0 for example. The scaleway api does not work with float and throw 400 errors, at least for domain API This PR changes the binding to i64 which leads to proper output.

    I just changed the script not pushed all the changes

    opened by gaetronik 6
  • add `iot` open API specs

    add `iot` open API specs

    Seems iot open API specs is not valid from openAPI generator stand point:

    https://developers.scaleway.com/static/db0705c3936ee4c1f242eeded486d866/scaleway.iot.v1.Api.yml

    Exception in thread "main" org.openapitools.codegen.SpecValidationException: There were issues with the specification. The option can be disabled via validateSpec (Maven/Gradle) or --skip-validate-spec (CLI).
     | Error count: 4, Warning count: 0
    Errors:
            -attribute components.schemas.scaleway.std.TimeSeries.Point.items is missing
            -attribute paths.'/iot/v1/regions/{region}/devices/{device_id}/metrics'(get).parameters.[start_date].schemas.default=`hour` is not of type `date-time`
            -attribute components.schemas.scaleway.std.TimeSeries.Point.items is not of type `object`
            -attribute paths.'/iot/v1/regions/{region}/hubs/{hub_id}/metrics'(get).parameters.[start_date].schemas.default=`hour` is not of type `date-time`
    
            at org.openapitools.codegen.config.CodegenConfigurator.toContext(CodegenConfigurator.java:546)
            at org.openapitools.codegen.config.CodegenConfigurator.toClientOptInput(CodegenConfigurator.java:573)
            at org.openapitools.codegen.cmd.Generate.execute(Generate.java:433)
            at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32)
            at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66)
    
    good first issue help wanted 
    opened by benjaminch 4
  • add `rdp` open API specs

    add `rdp` open API specs

    Seems RDP API specs is not valid from openAPI generator stand point:

    https://developers.scaleway.com/static/985b639541bd9c5d8ad1d46561ca76c3/scaleway.rdb.v1.Api.yml

    Exception in thread "main" org.openapitools.codegen.SpecValidationException: There were issues with the specification. The option can be disabled via validateSpec (Maven/Gradle) or --skip-validate-spec (CLI).
     | Error count: 2, Warning count: 0
    Errors:
            -attribute components.schemas.scaleway.std.TimeSeries.Point.items is missing
            -attribute components.schemas.scaleway.std.TimeSeries.Point.items is not of type `object`
    
            at org.openapitools.codegen.config.CodegenConfigurator.toContext(CodegenConfigurator.java:546)
            at org.openapitools.codegen.config.CodegenConfigurator.toClientOptInput(CodegenConfigurator.java:573)
            at org.openapitools.codegen.cmd.Generate.execute(Generate.java:433)
            at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32)
            at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66)
    
    
    good first issue help wanted 
    opened by benjaminch 3
  • add `baremetal`open API specs

    add `baremetal`open API specs

    Seems Baremetal API specs is not valid from openAPI generator stand point:

    https://developers.scaleway.com/static/55e3f254c8c01db735e2ee27ff81ad98/scaleway.baremetal.v1.Api.yml

    Exception in thread "main" org.openapitools.codegen.SpecValidationException: There were issues with the specification. The option can be disabled via validateSpec (Maven/Gradle) or --skip-validate-spec (CLI).
     | Error count: 2, Warning count: 0
    Errors:
            -attribute components.schemas.scaleway.std.TimeSeries.Point.items is missing
            -attribute components.schemas.scaleway.std.TimeSeries.Point.items is not of type `object`
    
            at org.openapitools.codegen.config.CodegenConfigurator.toContext(CodegenConfigurator.java:546)
            at org.openapitools.codegen.config.CodegenConfigurator.toClientOptInput(CodegenConfigurator.java:573)
            at org.openapitools.codegen.cmd.Generate.execute(Generate.java:433)
            at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32)
            at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66)
    
    
    good first issue help wanted 
    opened by benjaminch 2
  • add `lb` open API specs

    add `lb` open API specs

    Seems lb API specs make openapi generator produce code which leads to rust compilation error.

    https://developers.scaleway.com/static/88c7c88370da8e5a3316e5831e230183/scaleway.lb.v1.Api.yml

       Compiling scaleway_api_rs v0.1.0 (/Users/user/Code/scaleway-api-rs)
    error[E0428]: the name `ips_api` is defined multiple times
      --> src/apis/mod.rs:78:1
       |
    77 | pub mod ips_api;
       | ---------------- previous definition of the module `ips_api` here
    78 | pub mod ips_api;
       | ^^^^^^^^^^^^^^^^ `ips_api` redefined here
       |
       = note: `ips_api` must be defined only once in the type namespace of this module
    
    error[E0599]: the method `to_string` exists for enum `std::option::Option<&str>`, but its trait bounds were not satisfied
       --> src/apis/alert_subscribers_api.rs:237:74
        |
    237 |     local_var_req_builder = local_var_req_builder.query(&[("name", &name.to_string())]);
        |                                                                          ^^^^^^^^^ method cannot be called on `std::option::Option<&str>` due to unsatisfied trait bounds
        |
       ::: /Users/user/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/option.rs:161:1
        |
    161 | pub enum Option<T> {
        | ------------------
        | |
        | doesn't satisfy `std::option::Option<&str>: ToString`
        | doesn't satisfy `std::option::Option<&str>: std::fmt::Display`
        |
        = note: the following trait bounds were not satisfied:
                `std::option::Option<&str>: std::fmt::Display`
                which is required by `std::option::Option<&str>: ToString`
    
    error: aborting due to 2 previous errors
    
    Some errors have detailed explanations: E0428, E0599.
    For more information about an error, try `rustc --explain E0428`.
    error: could not compile `scaleway_api_rs`
    
    To learn more, run the command again with --verbose.
    
    good first issue help wanted 
    opened by benjaminch 1
  • add package support for features

    add package support for features

    DOD Add package support for features so one doesn't have to load the whole lib to use only one Scaleway product. Ideally, there will be one feature per scaleway product.

    good first issue 
    opened by benjaminch 0
Owner
Qovery
Qovery - The simplest way to deploy your full-stack apps
Qovery
Sway-lib-core - Sway standard library core primitives.

lib-core This Sway project contains core operators and extremely primitive logic for use in the standard library of the Sway programming language. Usa

Fuel Labs 8 Mar 29, 2022
Modrinth API is a simple library for using, you guessed it, the Modrinth API in Rust projects

Modrinth API is a simple library for using, you guessed it, the Modrinth API in Rust projects. It uses reqwest as its HTTP(S) client and deserialises responses to typed structs using serde.

null 21 Jan 1, 2023
API wrapper for the tankerkönig api

tankerkoenig-rs API wrapper for the tankerkoenig-api written in rust. Gives you ready deserialized structs and a easy to use and strictly typed api. I

Jonathan 2 Feb 27, 2022
A repository full of manually generated hand curated JSON files, which contain the API Types that the Discord API returns.

Discord API Types A repository full of manually generated hand curated JSON files, which contain the API Types that the Discord API returns. Also did

Unofficial Discord Documentation 1 Sep 16, 2022
Notion Offical API client library for rust

Notion API client library for rust.

Jake Swenson 65 Dec 26, 2022
The official rust implementation of the SpamProtectionBot API

SpamProtection-rs Table of contents About Supported Rust version Features How to use Credits License About SpamProtection-Rust is a Rust wrapper for I

Intellivoid 0 Feb 26, 2022
An asynchronous Rust client library for the Hashicorp Vault API

vaultrs An asynchronous Rust client library for the Hashicorp Vault API The following features are currently supported: Auth AppRole JWT/OIDC Token Us

Joshua Gilman 59 Dec 29, 2022
Rust bindings for the KING OF TIME API

Rust bindings for the KING OF TIME API Example Prints if you are at work or not at work. $ cargo run --example tc -- status Record the time you start

Idein Inc. 2 Oct 11, 2021
A Rust API for D-Bus communication.

zbus A Rust API for D-Bus communication. The goal is to provide a safe and simple high- and low-level API akin to GDBus, that doesn't depend on C libr

Michael Murphy 2 Nov 6, 2021
A Discord bot for sending GeoGuessr challenge links that uses the GeoGuessr API written in rust.

GeoGuessr-bot-rs This is a simple implementation of a discord bot that send GeoGuessr-challenge links on demand. Features: Slash-commands Lightning-fa

Luukas Pörtfors 6 Nov 18, 2022
🚀 Fast and 100% API compatible postcss replacer, built in Rust

?? Fast and 100% API compatible postcss replacer, built in Rust

迷渡 472 Jan 7, 2023
A rust wrapper for the spam protection API

SpamProtection-rs Table of contents About Supported Rust version Features How to use Credits License About This repo has been shifted to the official

cyberknight777 28 Aug 5, 2022
A gui api explorer written in Rust.

Zzz - GUI Api platform Pronounced "Zees"; as in "catching some Z's". A pun on RESTful APIs. example URL: https://jsonplaceholder.typicode.com/todos/ T

Ryan Blecher 0 Nov 11, 2021
Rust bindings for the Mattermost API

mattermost_api Rust bindings for the Mattermost API Installing Add the latest version to your Cargo.toml. Using Docs link. Developing Building Require

Matt Boulanger 1 Feb 2, 2022
A Rust wrapper for the SponsorBlock API.

sponsor-block A Rust wrapper for the SponsorBlock API, which you can find complete documentation for here. Uses SponsorBlock data licensed under CC BY

Zacchary Dempsey-Plante 8 Nov 19, 2022
A powerful minecraft bedrock software written in Rust with a powerful Typescript plugin API.

Netrex A powerful minecraft bedrock software written in RustLang. Why Netrex? It's written in Rust. Unique and straight to the point. Typescript Plugi

Netrex 51 Dec 26, 2022
Wrapper library for utilizing DigitalOcean API v2 in Rust

doapi-rs Wrapper library for utilizing DigitalOcean API v2 in Rust Disclaimer This library is in alpha - it may do anything up to, and including, eati

Kevin K. 30 Nov 5, 2022
A high-level Rust crate around the Discord API, aimed to be easy and straight-forward to use.

rs-cord A high-level Rust crate around the Discord API, aimed to be easy and straight-forward to use. Documentation • Crates.io • Discord Navigation M

Jay3332 4 Sep 24, 2022
Serenity is a Rust library for the Discord API

serenity Serenity is a Rust library for the Discord API. View the examples on how to make and structure a bot. Serenity supports bot login via the use

serenity 3.3k Jan 2, 2023