openapi: 3.1.0
info:
  title: Kubernetes API
  description: |-
    Kubernetes is an open-source platform that enables developers to manage their containerized applications. Scaleway Kubernetes Kapsule and Kosmos are powerful tools to help you manage your containerized workloads and services.

    They both provide a managed environment for creating, configuring, and running clusters of pre-configured machines.

    The primary difference between Kapsule and Kosmos is that Kapsule clusters are composed solely of Scaleway Instances. In contrast, Kosmos is a managed Multi-Cloud Kubernetes Engine that allows you to connect Instances and virtual or dedicated servers from any cloud provider to a single managed Control-Plane.

    ## Concepts

    Refer to our [dedicated concepts page](https://www.scaleway.com/en/docs/kubernetes/concepts/) to find definitions of all Kubetnetes-related terminology.

    ## Quickstart

    1. Configure your environment variables. Note: This is an optional step that seeks to simplify your usage of the Kapsule and Kosmos API.

        ```bash
        export SCW_ACCESS_KEY="<API access key>"
        export SCW_SECRET_KEY="<API secret key>"
        export SCW_REGION="<Scaleway service region>"
        export SCW_PROJECT_ID="<Scaleway Project ID>"
        export SCW_PRIVATE_NETWORK_ID="<Scaleway Private Network ID>"
        ```

    2. Edit the POST request payload you will use to create your Kubernetes cluster. Replace the parameters in the following example:

        ```json
        {
          "project_id": "$SCW_PROJECT_ID",
          "private_network_id": "$SCW_PRIVATE_NETWORK_ID",
          "type": "string",
          "name": "string",
          "description": "string",
          "tags": [
            "string"
          ],
          "version": "string",
          "cni": "unknown_cni",
          "pools": [
            {
              "name": "string",
              "node_type": "string",
              "size": "integer",
              "tags": [
                "string"
              ],
              "zone": "string",
              "root_volume_type": "default_volume_type",
              "root_volume_size": "integer"
            }
          ]
        }
        ```

       | Parameter                | Description                                                        |
       | :----------------------- | :----------------------------------------------------------------- |
       | `project_id`             | The ID of the Project you want to create your Kubernetes cluster in. To find your Project ID you can consult the [Scaleway console](https://console.scaleway.com/project/settings). |
       | `type`                   | The type of the cluster (possible values are `kapsule`, `multicloud`, `kapsule-dedicated-X`, `multicloud-dedicated-X` - `X` can be `4`, `8` or `16`). |
       | `name`                   | **REQUIRED** Name of the cluster. |
       | `description`            | Description of the cluster. |
       | `tags`                   | Tags associated with the cluster. |
       | `version`                | **REQUIRED** Kubernetes version of the cluster. |
       | `cni`                    | **REQUIRED** Container Network Interface (CNI) plugin that will run on the cluster. The default value is `unknown_cni`. (possible values are `cilium`, `cilium_native`, `calico` for `kapsule` and `kilo` for `multicloud`) |
       | `pools`                  | Pools to be created along with the cluster. |
       | `pools.name`             | **REQUIRED** Name of the pool. |
       | `pools.node-type`        | **REQUIRED** The node type of the Scaleway Instance wanted for the pool. |
       | `pools.size`             | **REQUIRED** The number of nodes in the pool. |
       | `pools.tags`             | Tags associated with the pool. See [managing tags](https://www.scaleway.com/en/docs/kubernetes/api-cli/managing-tags). |
       | `pools.zone`             | Availability zone in which the pools will be deployed in. |
       | `pools.root_volume_type` | The root volume type. The default value is `default_volume_type`. |
       | `pools.root_volume_size` | The system volume disk size in bytes. |
       | `private_network_id`     | Private network ID for internal cluster communication. |

    3. Create a Kapsule cluster and node pool by running the following command. Make sure you include the payload you edited in the previous step.

        ```bash
        curl -X POST \
          -H "X-Auth-Token: $SCW_SECRET_KEY" \
          "Content-Type: application/json" \
          "https://api.scaleway.com/k8s/v1/regions/$SCW_REGION/clusters" \
          -d "{
                \"project_id\": \"$SCW_PROJECT_ID\",
                \"private_network_id\": \"$SCW_PRIVATE_NETWORK_ID\",
                \"type\": \"kapsule\",
                \"name\": \"MyFirstKapsuleCluster\",
                \"description\": \"My first Kapsule Cluster\",
                \"tags\": [
                  \"kapsule\",
                  \"kubernetes\"
                ],
                \"version\": \"1.31.2\",
                \"cni\": \"unknown_cni\",
                \"pools\": [
                  {
                    \"name\": \"MyFirstKapsulePool\",
                    \"node_type\": \"PLAY2-MICRO\",
                    \"size\": \"2\",
                    \"tags\": [
                      \"pool\"
                    ],
                    \"zone\": \"fr-par-1\",
                    \"root_volume_type\": \"default_volume_type\",
                    \"root_volume_size\": \"20000000000\"
                  }
                ]
              }"
        ```

    4. List your Kapsule clusters.

        ```bash
        curl -X GET \
          -H "Content-Type: application/json" \
          -H "X-Auth-Token: $SCW_SECRET_KEY" \
          https://api.scaleway.com/k8s/v1/regions/$SCW_REGION/clusters
        ```

       You will see detailed information about your clusters.

    5. Download the kubeconfig file for your cluster.

        ```bash
        curl -X GET \
          -H "Content-Type: application/json" \
          -H "X-Auth-Token: $SCW_SECRET_KEY" \
          https://api.scaleway.com/k8s/v1/regions/$SCW_REGION/clusters/$SCW_CLUSTER_ID/kubeconfig
        ```

       <Message type="tip">
       Add `?dl=1` at the end of the URL to directly get the `base64`-decoded kubeconfig. If not, the kubeconfig will be `base64`-encoded.
       </Message>

    6. [Connect to your cluster](https://www.scaleway.com/en/docs/kubernetes/how-to/connect-cluster-kubectl) using kubectl.

    7. Delete your cluster.

        ```bash
        curl -X GET -H "Content-Type: application/json" \
          -H "X-Auth-Token: $SCW_SECRET_KEY" https://api.scaleway.com/k8s/v1/regions/$SCW_REGION/clusters/$SCW_CLUSTER_ID
        ```

    <Message type="requirement">
    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/iam/how-to/create-api-keys/) and that the API key has sufficient [IAM permissions](https://www.scaleway.com/en/docs/iam/reference-content/permission-sets/) to perform the actions described on this page.
      - you have [installed `curl`](https://curl.se/download.html)
    </Message>

    ## Technical information

    Kubernetes Kapsule provides features such as:

    - Persistent Volume Claims (PVC) are available through Scaleway Block Volumes.
    - Pool autoscaling and autohealing is available.
    - Kubernetes auto upgrades features is available.

    ### Regions

    Scaleway's infrastructure is spread across different [regions and Availability Zones](https://www.scaleway.com/en/docs/account/reference-content/products-availability/).

    Kubernetes Kapsule and Kosmos are available in the Paris, Amsterdam and Warsaw regions, which are represented by the following path parameters:

    - `fr-par`
    - `nl-ams`
    - `pl-waw`

    ### Versions

    Kubernetes Kosmos and Kapsule supports at least the latest version of the last 3 major Kubernetes releases.

    ## Technical limitations

    The following limitations should be taken into account when using the Kubernetes API:

    - The maximum number of pods per node is 110, as per the official k8s project recommendation (configurable).
    - The maximum number of volumes (PVC) per node is 15.
    - The maximum number of nodes per cluster varies from 150 to up to 500 (depending on the control plane tier).
    - [VPC Limitations](https://www.scaleway.com/en/docs/vpc/troubleshooting/vpc-limitations/) may restrict the number of nodes and loadbalancers.
    - Private network must not conflict with the 198.18.0.0/15 subnet.
    - Users cannot expose port 53 (DNS) to `hostPort` or in `hostNetwork` mode.
    - Security groups set to drop all inbound must have stateful group enabled.
    - Security groups must have ports `80` and `443` left open in outbound.
    - For Kosmos clusters **or** if ACLs are not activated (no network tab in console), ports `8132` and `6443` must also be opened.
    - Kilo CNI (kosmos nodes) also needs UDP port `51820` to be open.

    The following limitations should be acknowledged, while Scaleway is actively working on planned solutions to address them:

    - Dual Stack IPv4/IPv6 is not (yet) available.
    - Read Write Many / Read Only Many are not (yet) available.
    - Kubernetes control plane network access is managed by a Load Balancer located on `ZONE-1`. In the event of a global failure for this AZ, the Control Plane will be unreachable.

    The following limitations should be taken into account when setting custom settings for Pod & Service CIDRs and DNS IP:

    - Setting these may reduce the number of nodes and pods per nodes the cluster can handle.
    - The Pod and Service CIDRs must not conflict between them.
    - The Pod & Service CIDRs must not conflict with the Private Networks' subnets of the VPC attached to the cluster.
    - The Pod & Service CIDRs must not conflict with the routes set in the VPC attached to the cluster.
    - The Pod & Service CIDRs subnets must be part of the RFC 1918 and RFC 6598 (subnet included in: 10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16 or 100.64.0.0/10).
    - Mask /16 minimum for the Pod CIDR (not above 16)
    - Mask /24 minimum for the Service CIDR (not above 24)
    - The Service DNS IP must be included in the Service CIDR

    ## Going further

    For more help using Kubernetes Kapsule and Kosmos, check out the following resources:

    - Our [main documentation](https://www.scaleway.com/en/docs/kubernetes/)
    - The `#k8s` channel on our [Slack Community](https://www.scaleway.com/en/docs/tutorials/scaleway-slack-community/)
    - Our [support ticketing system](https://www.scaleway.com/en/docs/account/how-to/open-a-support-ticket/).
  version: v1
servers:
- url: https://api.scaleway.com
tags:
- name: Clusters
  description: |
    A cluster is a fully managed Kubernetes cluster
    It is composed of different pools, each pool containing the same kind of nodes.
- name: Pools
  description: |
    A pool is a set of identical nodes
    A pool has a name, a size (its desired number of nodes), node number limits (min, max), and a Scaleway Instance type. Changing those limits increases/decreases the size of a pool. As a result and depending on its load, the pool will grow or shrink within those limits when autoscaling is enabled.
- name: Nodes
  description: |
    A node (short for worker node) is an abstraction for a Scaleway Instance
    A node is always part of a pool. Each of them has the Kubernetes software automatically installed and configured by Scaleway.
- name: Versions
  description: |
    A version is a vanilla Kubernetes version like `x.y.z`
    It comprises a major version `x`, a minor version `y`, and a patch version `z`. At the minimum, Kapsule (Scaleway's managed Kubernetes), will support the last patch version for the past three minor releases. Also, each version has a different set of CNIs, eventually container runtimes, feature gates, and admission plugins available. See our [Version Support Policy](https://www.scaleway.com/en/docs/kubernetes/reference-content/version-support-policy/).
- name: Cluster types
  description: |
    All cluster types available in a specified region
    A cluster type represents the different commercial types of clusters offered by Scaleway.
- name: Access Control List
  description: |
    Network Access Control Lists (ACLs) allow you to manage inbound network traffic by setting up ACL rules
- name: User data
  description: |
    User data allow to attach user complementary content to a pool.
    A special use case of these data are cloud-init configuration.
components:
  schemas:
    google.protobuf.FloatValue:
      type: object
      properties:
        value:
          type: number
          format: float
      x-properties-order:
      - value
    scaleway.k8s.v1.ACLRule:
      type: object
      properties:
        id:
          type: string
          description: ID of the ACL rule. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        ip:
          type:
          - string
          - "null"
          description: IP subnet to allow. (IP network)
          example: 1.2.3.4/32
          x-one-of: allowed
        scaleway_ranges:
          type:
          - boolean
          - "null"
          description: |-
            Allow access to cluster from all Scaleway ranges as defined in https://www.scaleway.com/en/docs/console/account/reference-content/scaleway-network-information/#ip-ranges-used-by-scaleway.
            Only one rule with this field set to true can be added.
          x-one-of: allowed
        description:
          type: string
          description: Description of the ACL.
        region:
          type: string
          description: Region of the ACL rule.
      x-properties-order:
      - id
      - ip
      - scaleway_ranges
      - description
      - region
    scaleway.k8s.v1.ACLRuleRequest:
      type: object
      properties:
        ip:
          type:
          - string
          - "null"
          description: IP subnet to allow. (IP network)
          example: 1.2.3.4/32
          x-one-of: allowed
        scaleway_ranges:
          type:
          - boolean
          - "null"
          description: |-
            Allow access to cluster from all Scaleway ranges as defined in https://www.scaleway.com/en/docs/console/account/reference-content/scaleway-network-information/#ip-ranges-used-by-scaleway.
            Only one rule with this field set to true can be added.
          x-one-of: allowed
        description:
          type: string
          description: Description of the ACL.
      x-properties-order:
      - ip
      - scaleway_ranges
      - description
    scaleway.k8s.v1.AddClusterACLRulesResponse:
      type: object
      properties:
        rules:
          type: array
          description: ACLs that were added.
          items:
            $ref: '#/components/schemas/scaleway.k8s.v1.ACLRule'
      x-properties-order:
      - rules
    scaleway.k8s.v1.AutoscalerEstimator:
      type: string
      enum:
      - unknown_estimator
      - binpacking
      default: unknown_estimator
    scaleway.k8s.v1.AutoscalerExpander:
      type: string
      enum:
      - unknown_expander
      - random
      - most_pods
      - least_waste
      - priority
      - price
      default: unknown_expander
    scaleway.k8s.v1.CNI:
      type: string
      enum:
      - unknown_cni
      - cilium
      - calico
      - kilo
      - none
      - cilium_native
      x-enum-descriptions:
        values:
          cilium: Cilium CNI will be configured (https://github.com/cilium/cilium)
          calico: Calico CNI will be configured (https://github.com/projectcalico/calico)
          kilo: Kilo CNI will be configured (https://github.com/squat/kilo/). Note
            that this CNI is only available for Kosmos clusters
          none: Does not install any CNI. This feature is only available through a
            ticket and is not covered by support.
          cilium_native: Cilium CNI will be configured in native routing mode (https://docs.cilium.io/en/stable/network/concepts/routing/#native-routing)
      default: unknown_cni
    scaleway.k8s.v1.Cluster:
      type: object
      properties:
        id:
          type: string
          description: Cluster ID.
        type:
          type: string
          description: Cluster type.
        name:
          type: string
          description: Cluster name.
        status:
          description: Status of the cluster.
          $ref: '#/components/schemas/scaleway.k8s.v1.Cluster.Status'
        version:
          type: string
          description: Kubernetes version of the cluster.
        region:
          type: string
          description: Region in which the cluster is deployed.
        organization_id:
          type: string
          description: ID of the Organization owning the cluster.
        project_id:
          type: string
          description: ID of the Project owning the cluster.
        tags:
          type: array
          description: Tags associated with the cluster.
          items:
            type: string
        cni:
          description: Container Network Interface (CNI) plugin running in the cluster.
          $ref: '#/components/schemas/scaleway.k8s.v1.CNI'
        description:
          type: string
          description: Cluster description.
        cluster_url:
          type: string
          description: Kubernetes API server URL of the cluster.
        dns_wildcard:
          type: string
          description: Wildcard DNS resolving all the ready cluster nodes.
        created_at:
          type:
          - string
          - "null"
          description: Date on which the cluster was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Date on which the cluster was last updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        autoscaler_config:
          description: Autoscaler configuration for the cluster, see https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md
            for details.
          $ref: '#/components/schemas/scaleway.k8s.v1.Cluster.AutoscalerConfig'
        auto_upgrade:
          description: Auto upgrade Kubernetes version of the cluster.
          $ref: '#/components/schemas/scaleway.k8s.v1.Cluster.AutoUpgrade'
        upgrade_available:
          type: boolean
          description: Defines whether a new Kubernetes version is available.
        feature_gates:
          type: array
          description: List of enabled feature gates.
          items:
            type: string
        admission_plugins:
          type: array
          description: List of enabled admission plugins.
          items:
            type: string
        open_id_connect_config:
          description: This configuration enables to update the OpenID Connect configuration
            of the Kubernetes API server.
          $ref: '#/components/schemas/scaleway.k8s.v1.Cluster.OpenIDConnectConfig'
        apiserver_cert_sans:
          type: array
          description: Additional Subject Alternative Names for the Kubernetes API
            server certificate.
          items:
            type: string
        private_network_id:
          type:
          - string
          - "null"
          description: Private network ID for internal cluster communication.
        commitment_ends_at:
          type:
          - string
          - "null"
          description: Date on which it will be possible to switch to a smaller offer.
            (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        acl_available:
          type: boolean
          description: Defines whether ACL is available on the cluster.
          deprecated: true
        iam_nodes_group_id:
          type: string
          description: IAM group that nodes are members of (this field might be empty
            during early stage of cluster creation).
        pod_cidr:
          type: string
          description: Subnet used for the Pod CIDR. (IP network)
          example: 1.2.3.4/32
        service_cidr:
          type: string
          description: Subnet used for the Service CIDR. (IP network)
          example: 1.2.3.4/32
        service_dns_ip:
          type: string
          description: IP used for the DNS Service. (IPv4 address)
          example: 1.2.3.4
      x-properties-order:
      - id
      - type
      - name
      - status
      - version
      - region
      - organization_id
      - project_id
      - tags
      - cni
      - description
      - cluster_url
      - dns_wildcard
      - created_at
      - updated_at
      - autoscaler_config
      - auto_upgrade
      - upgrade_available
      - feature_gates
      - admission_plugins
      - open_id_connect_config
      - apiserver_cert_sans
      - private_network_id
      - commitment_ends_at
      - acl_available
      - iam_nodes_group_id
      - pod_cidr
      - service_cidr
      - service_dns_ip
    scaleway.k8s.v1.Cluster.AutoUpgrade:
      type: object
      properties:
        enabled:
          type: boolean
          description: Defines whether auto upgrade is enabled for the cluster.
        maintenance_window:
          description: Maintenance window of the cluster auto upgrades.
          $ref: '#/components/schemas/scaleway.k8s.v1.MaintenanceWindow'
      x-properties-order:
      - enabled
      - maintenance_window
    scaleway.k8s.v1.Cluster.AutoscalerConfig:
      type: object
      properties:
        scale_down_disabled:
          type: boolean
          description: Forbid cluster autoscaler to scale down the cluster, defaults
            to false.
        scale_down_delay_after_add:
          type: string
          description: How long after scale up the scale down evaluation resumes.
        estimator:
          description: Type of resource estimator to be used in scale up.
          $ref: '#/components/schemas/scaleway.k8s.v1.AutoscalerEstimator'
        expander:
          description: Kubernetes autoscaler strategy to fit pods into nodes, see
            https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expanders
            for details.
          $ref: '#/components/schemas/scaleway.k8s.v1.AutoscalerExpander'
        ignore_daemonsets_utilization:
          type: boolean
          description: Ignore DaemonSet pods when calculating resource utilization
            for scaling down, defaults to false.
        balance_similar_node_groups:
          type: boolean
          description: Detect similar node groups and balance the number of nodes
            between them, defaults to false.
        expendable_pods_priority_cutoff:
          type: integer
          description: Pods with priority below cutoff will be expendable. They can
            be killed without any consideration during scale down and they won't cause
            scale up. Pods with null priority (PodPriority disabled) are non expendable.
          format: int32
        scale_down_unneeded_time:
          type: string
          description: How long a node should be unneeded before it is eligible for
            scale down, defaults to 10 minutes.
        scale_down_utilization_threshold:
          type: number
          description: Node utilization level, defined as a sum of requested resources
            divided by allocatable capacity, below which a node can be considered
            for scale down.
          format: float
        max_graceful_termination_sec:
          type: integer
          description: Maximum number of seconds the cluster autoscaler waits for
            pod termination when trying to scale down a node, defaults to 600 (10
            minutes).
          format: uint32
        skip_nodes_with_local_storage:
          type: boolean
          description: Cluster autoscaler will never delete nodes with pods with local
            storage, e.g. EmptyDir or HostPath, defaults to true.
        log_level:
          type: integer
          description: Cluster autoscaler logging level expressed from 0 to 4 (4 being
            the more verbose), defaults to 2. see https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#how-can-i-increase-the-information-that-the-ca-is-logging
            for details.
          format: int32
      x-properties-order:
      - scale_down_disabled
      - scale_down_delay_after_add
      - estimator
      - expander
      - ignore_daemonsets_utilization
      - balance_similar_node_groups
      - expendable_pods_priority_cutoff
      - scale_down_unneeded_time
      - scale_down_utilization_threshold
      - max_graceful_termination_sec
      - skip_nodes_with_local_storage
      - log_level
    scaleway.k8s.v1.Cluster.OpenIDConnectConfig:
      type: object
      properties:
        issuer_url:
          type: string
          description: URL of the provider which allows the API server to discover
            public signing keys. Only URLs using the `https://` scheme are accepted.
            This is typically the provider's discovery URL without a path, for example
            "https://accounts.google.com" or "https://login.salesforce.com".
        client_id:
          type: string
          description: A client ID that all tokens must be issued for.
        username_claim:
          type: string
          description: JWT claim to use as the user name. The default is `sub`, which
            is expected to be the end user's unique identifier. Admins can choose
            other claims, such as `email` or `name`, depending on their provider.
            However, claims other than `email` will be prefixed with the issuer URL
            to prevent name collision.
        username_prefix:
          type: string
          description: Prefix prepended to username claims to prevent name collision
            (such as `system:` users). For example, the value `oidc:` will create
            usernames like `oidc:jane.doe`. If this flag is not provided and `username_claim`
            is a value other than `email`, the prefix defaults to `( Issuer URL )#`
            where `( Issuer URL )` is the value of `issuer_url`. The value `-` can
            be used to disable all prefixing.
        groups_claim:
          type: array
          description: JWT claim to use as the user's group.
          items:
            type: string
        groups_prefix:
          type: string
          description: Prefix prepended to group claims to prevent name collision
            (such as `system:` groups). For example, the value `oidc:` will create
            group names like `oidc:engineering` and `oidc:infra`.
        required_claim:
          type: array
          description: Multiple key=value pairs describing a required claim in the
            ID token. If set, the claims are verified to be present in the ID token
            with a matching value.
          items:
            type: string
      x-properties-order:
      - issuer_url
      - client_id
      - username_claim
      - username_prefix
      - groups_claim
      - groups_prefix
      - required_claim
    scaleway.k8s.v1.Cluster.Status:
      type: string
      enum:
      - unknown
      - creating
      - ready
      - deleting
      - deleted
      - updating
      - locked
      - pool_required
      x-enum-descriptions:
        values:
          creating: Cluster is provisioning
          ready: Cluster is ready to use
          deleting: Cluster is waiting to be processed for deletion
          updating: Cluster is updating its own configuration, it can be a version
            upgrade too
          locked: Cluster is locked because an abuse has been detected or reported
          pool_required: Cluster has no associated pool and has been shutdown
      default: unknown
    scaleway.k8s.v1.ClusterType:
      type: object
      properties:
        name:
          type: string
          description: Cluster type name.
        availability:
          description: Cluster type availability.
          $ref: '#/components/schemas/scaleway.k8s.v1.ClusterType.Availability'
        max_nodes:
          type: integer
          description: Maximum number of nodes supported by the offer.
          format: uint32
        commitment_delay:
          type:
          - string
          - "null"
          description: Time period during which you can no longer switch to a lower
            offer. (in seconds)
          example: 2.5s
        sla:
          type: number
          description: Value of the Service Level Agreement of the offer.
          format: float
        resiliency:
          description: Resiliency offered by the offer.
          $ref: '#/components/schemas/scaleway.k8s.v1.ClusterType.Resiliency'
        memory:
          type: integer
          description: Max RAM allowed for the control plane. (in bytes)
          format: uint64
        dedicated:
          type: boolean
          description: Returns information if this offer uses dedicated resources.
        audit_logs_supported:
          type: boolean
          description: True if the offer allows activation of the audit log functionality.
            Please note that audit logs are sent to Cockpit.
        region:
          type: string
          description: The region of the cluster type.
      x-properties-order:
      - name
      - availability
      - max_nodes
      - commitment_delay
      - sla
      - resiliency
      - memory
      - dedicated
      - audit_logs_supported
      - region
    scaleway.k8s.v1.ClusterType.Availability:
      type: string
      enum:
      - available
      - scarce
      - shortage
      x-enum-descriptions:
        values:
          available: Type is available in quantity
          scarce: Limited availability
          shortage: Out of stock
      default: available
    scaleway.k8s.v1.ClusterType.Resiliency:
      type: string
      enum:
      - unknown_resiliency
      - standard
      - high_availability
      x-enum-descriptions:
        values:
          standard: The control plane is rescheduled on other machines in case of
            failure of a lower layer
          high_availability: The control plane has replicas to ensure service continuity
            in case of failure of a lower layer.
      default: unknown_resiliency
    scaleway.k8s.v1.ComponentInfo:
      type: object
      properties:
        version:
          type: string
      x-properties-order:
      - version
    scaleway.k8s.v1.CoreV1Taint:
      type: object
      properties:
        key:
          type: string
          description: The taint key to be applied to a node.
        value:
          type: string
          description: The taint value corresponding to the taint key.
        effect:
          description: Effect defines the effects of Taint.
          $ref: '#/components/schemas/scaleway.k8s.v1.CoreV1Taint.Effect'
      x-properties-order:
      - key
      - value
      - effect
    scaleway.k8s.v1.CoreV1Taint.Effect:
      type: string
      enum:
      - NoSchedule
      - PreferNoSchedule
      - NoExecute
      x-enum-descriptions:
        values:
          NoSchedule: Do not allow new pods to schedule onto the node unless they
            tolerate the taint
          PreferNoSchedule: Like TaintEffectNoSchedule, but the scheduler tries not
            to schedule new pods onto the node, rather than prohibiting new pods from
            scheduling onto the node entirely
          NoExecute: Evict any already-running pods that do not tolerate the taint
            (Currently enforced by NodeController)
      default: NoSchedule
    scaleway.k8s.v1.CreateClusterRequest.AutoUpgrade:
      type: object
      properties:
        enable:
          type: boolean
          description: Defines whether auto upgrade is enabled for the cluster.
        maintenance_window:
          description: Maintenance window of the cluster auto upgrades.
          $ref: '#/components/schemas/scaleway.k8s.v1.MaintenanceWindow'
      x-properties-order:
      - enable
      - maintenance_window
    scaleway.k8s.v1.CreateClusterRequest.AutoscalerConfig:
      type: object
      properties:
        scale_down_disabled:
          type:
          - boolean
          - "null"
          description: Forbid cluster autoscaler to scale down the cluster, defaults
            to false.
        scale_down_delay_after_add:
          type:
          - string
          - "null"
          description: How long after scale up the scale down evaluation resumes.
        estimator:
          description: Type of resource estimator to be used in scale up.
          $ref: '#/components/schemas/scaleway.k8s.v1.AutoscalerEstimator'
        expander:
          description: Kubernetes autoscaler strategy to fit pods into nodes, see
            https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expanders
            for details.
          $ref: '#/components/schemas/scaleway.k8s.v1.AutoscalerExpander'
        ignore_daemonsets_utilization:
          type:
          - boolean
          - "null"
          description: Ignore DaemonSet pods when calculating resource utilization
            for scaling down, defaults to false.
        balance_similar_node_groups:
          type:
          - boolean
          - "null"
          description: Detect similar node groups and balance the number of nodes
            between them, defaults to false.
        expendable_pods_priority_cutoff:
          type:
          - integer
          - "null"
          description: Pods with priority below cutoff will be expendable. They can
            be killed without any consideration during scale down and they won't cause
            scale up. Pods with null priority (PodPriority disabled) are non expendable.
          format: int32
        scale_down_unneeded_time:
          type:
          - string
          - "null"
          description: How long a node should be unneeded before it is eligible for
            scale down, defaults to 10 minutes.
        scale_down_utilization_threshold:
          description: Node utilization level, defined as a sum of requested resources
            divided by allocatable capacity, below which a node can be considered
            for scale down.
          $ref: '#/components/schemas/google.protobuf.FloatValue'
        max_graceful_termination_sec:
          type:
          - integer
          - "null"
          description: Maximum number of seconds the cluster autoscaler waits for
            pod termination when trying to scale down a node, defaults to 600 (10
            minutes).
          format: uint32
        skip_nodes_with_local_storage:
          type:
          - boolean
          - "null"
          description: Cluster autoscaler will never delete nodes with pods with local
            storage, e.g. EmptyDir or HostPath, defaults to true.
        log_level:
          type:
          - integer
          - "null"
          description: Cluster autoscaler logging level expressed from 0 to 4 (4 being
            the more verbose), defaults to 2. see https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#how-can-i-increase-the-information-that-the-ca-is-logging
            for details.
          format: int32
      x-properties-order:
      - scale_down_disabled
      - scale_down_delay_after_add
      - estimator
      - expander
      - ignore_daemonsets_utilization
      - balance_similar_node_groups
      - expendable_pods_priority_cutoff
      - scale_down_unneeded_time
      - scale_down_utilization_threshold
      - max_graceful_termination_sec
      - skip_nodes_with_local_storage
      - log_level
    scaleway.k8s.v1.CreateClusterRequest.OpenIDConnectConfig:
      type: object
      properties:
        issuer_url:
          type: string
          description: URL of the provider which allows the API server to discover
            public signing keys. Only URLs using the `https://` scheme are accepted.
            This is typically the provider's discovery URL without a path, for example
            "https://accounts.google.com" or "https://login.salesforce.com".
        client_id:
          type: string
          description: A client ID that all tokens must be issued for.
        username_claim:
          type:
          - string
          - "null"
          description: JWT claim to use as the user name. The default is `sub`, which
            is expected to be the end user's unique identifier. Admins can choose
            other claims, such as `email` or `name`, depending on their provider.
            However, claims other than `email` will be prefixed with the issuer URL
            to prevent name collision.
        username_prefix:
          type:
          - string
          - "null"
          description: Prefix prepended to username claims to prevent name collision
            (such as `system:` users). For example, the value `oidc:` will create
            usernames like `oidc:jane.doe`. If this flag is not provided and `username_claim`
            is a value other than `email`, the prefix defaults to `( Issuer URL )#`
            where `( Issuer URL )` is the value of `issuer_url`. The value `-` can
            be used to disable all prefixing.
        groups_claim:
          type:
          - array
          - "null"
          description: JWT claim to use as the user's group.
        groups_prefix:
          type:
          - string
          - "null"
          description: Prefix prepended to group claims to prevent name collision
            (such as `system:` groups). For example, the value `oidc:` will create
            group names like `oidc:engineering` and `oidc:infra`.
        required_claim:
          type:
          - array
          - "null"
          description: Multiple key=value pairs describing a required claim in the
            ID token. If set, the claims are verified to be present in the ID token
            with a matching value.
      x-properties-order:
      - issuer_url
      - client_id
      - username_claim
      - username_prefix
      - groups_claim
      - groups_prefix
      - required_claim
    scaleway.k8s.v1.CreateClusterRequest.PoolConfig:
      type: object
      properties:
        name:
          type: string
          description: Name of the pool.
        node_type:
          type: string
          description: Node type is the type of Scaleway Instance wanted for the pool.
            Nodes with insufficient memory are not eligible (DEV1-S, PLAY2-PICO, STARDUST).
            'external' is a special node type used to provision instances from other
            cloud providers in a Kosmos Cluster.
        placement_group_id:
          type:
          - string
          - "null"
          description: Placement group ID in which all the nodes of the pool will
            be created, placement groups are limited to 20 instances.
        autoscaling:
          type: boolean
          description: Defines whether the autoscaling feature is enabled for the
            pool.
        size:
          type: integer
          description: Size (number of nodes) of the pool.
          format: uint32
        min_size:
          type:
          - integer
          - "null"
          description: Defines the minimum size of the pool. Note that this field
            is only used when autoscaling is enabled on the pool.
          format: uint32
        max_size:
          type:
          - integer
          - "null"
          description: Defines the maximum size of the pool. Note that this field
            is only used when autoscaling is enabled on the pool.
          format: uint32
        container_runtime:
          description: Customization of the container runtime is available for each
            pool.
          $ref: '#/components/schemas/scaleway.k8s.v1.Runtime'
        autohealing:
          type: boolean
          description: Defines whether the autohealing feature is enabled for the
            pool.
        tags:
          type: array
          description: Tags associated with the pool, see [managing tags](https://www.scaleway.com/en/docs/kubernetes/api-cli/managing-tags).
          items:
            type: string
        kubelet_args:
          type: object
          description: Kubelet arguments to be used by this pool. Note that this feature
            is experimental.
          properties:
            <kubelet_argKey>:
              type: string
              description: Kubelet arguments to be used by this pool. Note that this
                feature is experimental.
          additionalProperties: true
        upgrade_policy:
          description: Defines how node provisioning should behave during pool version
            upgrade.
          $ref: '#/components/schemas/scaleway.k8s.v1.CreateClusterRequest.PoolConfig.UpgradePolicy'
        zone:
          type: string
          description: Zone in which the pool's nodes will be spawned.
        root_volume_type:
          description: |-
            Defines the system volume disk type. Several types of volume (`volume_type`) are provided:.
            * `l_ssd` is a local block storage which means your system is stored locally on your node's hypervisor. This type is not available for all node types
            * `sbs_5k` is a remote block storage which means your system is stored on a centralized and resilient cluster with 5k IOPS limits
            * `sbs_15k` is a faster remote block storage which means your system is stored on a centralized and resilient cluster with 15k IOPS limits
            * `b_ssd` is the legacy remote block storage which means your system is stored on a centralized and resilient cluster. Not available for new pools, use `sbs_5k` or `sbs_15k` instead.
          $ref: '#/components/schemas/scaleway.k8s.v1.Pool.VolumeType'
        root_volume_size:
          type:
          - integer
          - "null"
          description: System volume disk size. (in bytes)
          format: uint64
        public_ip_disabled:
          type: boolean
          description: Defines if the public IP should be removed from Nodes. To use
            this feature, your Cluster must have an attached Private Network set up
            with a Public Gateway.
        security_group_id:
          type:
          - string
          - "null"
          description: Security group ID in which all the nodes of the pool will be
            created. If unset, the pool will use default Kapsule security group in
            current zone.
        labels:
          type: object
          description: Kubernetes labels applied and reconciled on the nodes.
          properties:
            <labelKey>:
              type: string
              description: Kubernetes labels applied and reconciled on the nodes.
          additionalProperties: true
        taints:
          type: array
          description: Kubernetes taints applied and reconciled on the nodes.
          items:
            $ref: '#/components/schemas/scaleway.k8s.v1.CoreV1Taint'
        startup_taints:
          type: array
          description: Kubernetes taints applied at node creation but not reconciled
            afterwards.
          items:
            $ref: '#/components/schemas/scaleway.k8s.v1.CoreV1Taint'
        max_termination_grace_period:
          type:
          - string
          - "null"
          description: Maximum amount of time before the API forces the drain and
            deletion of a `deleting` node. It overrides pods `PodDisruptionBudget`
            and `terminationGracePeriodSeconds`. Defaults to 15 minutes, up to 1 hour.
            (in seconds)
          example: 2.5s
        user_data:
          type: object
          description: User data applied and reconciled with the pool.
          properties:
            <user_dataKey>:
              type: string
              description: User data applied and reconciled with the pool.
          additionalProperties: true
      required:
      - name
      - node_type
      - size
      x-properties-order:
      - name
      - node_type
      - placement_group_id
      - autoscaling
      - size
      - min_size
      - max_size
      - container_runtime
      - autohealing
      - tags
      - kubelet_args
      - upgrade_policy
      - zone
      - root_volume_type
      - root_volume_size
      - public_ip_disabled
      - security_group_id
      - labels
      - taints
      - startup_taints
      - max_termination_grace_period
      - user_data
    scaleway.k8s.v1.CreateClusterRequest.PoolConfig.UpgradePolicy:
      type: object
      properties:
        max_unavailable:
          type:
          - integer
          - "null"
          description: The maximum number of nodes that can be `upgrading` at the
            same time.
          format: uint32
        max_surge:
          type:
          - integer
          - "null"
          description: The maximum number of nodes to be created during the upgrade,
            e.g. the pool will scale up to reach `size`+`max_surge` before downscaling
            to `size` after node upgrades.
          format: uint32
      x-properties-order:
      - max_unavailable
      - max_surge
    scaleway.k8s.v1.CreatePoolRequest.UpgradePolicy:
      type: object
      properties:
        max_unavailable:
          type:
          - integer
          - "null"
          description: The maximum number of nodes that can be `upgrading` at the
            same time.
          format: uint32
        max_surge:
          type:
          - integer
          - "null"
          description: The maximum number of nodes to be created during the upgrade,
            e.g. the pool will scale up to reach `size`+`max_surge` before downscaling
            to `size` after node upgrades.
          format: uint32
      x-properties-order:
      - max_unavailable
      - max_surge
    scaleway.k8s.v1.ListClusterACLRulesResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total number of ACLs that exist for the cluster.
          format: uint64
        rules:
          type: array
          description: Paginated returned ACLs.
          items:
            $ref: '#/components/schemas/scaleway.k8s.v1.ACLRule'
      x-properties-order:
      - total_count
      - rules
    scaleway.k8s.v1.ListClusterAvailableTypesResponse:
      type: object
      properties:
        cluster_types:
          type: array
          description: Available cluster types for the cluster.
          items:
            $ref: '#/components/schemas/scaleway.k8s.v1.ClusterType'
        total_count:
          type: integer
          description: Total number of types.
          format: uint64
      x-properties-order:
      - cluster_types
      - total_count
    scaleway.k8s.v1.ListClusterAvailableVersionsResponse:
      type: object
      properties:
        versions:
          type: array
          description: Available Kubernetes versions for the cluster.
          items:
            $ref: '#/components/schemas/scaleway.k8s.v1.Version'
      x-properties-order:
      - versions
    scaleway.k8s.v1.ListClusterTypesResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total number of cluster-types.
          format: uint64
        cluster_types:
          type: array
          description: Paginated returned cluster-types.
          items:
            $ref: '#/components/schemas/scaleway.k8s.v1.ClusterType'
      x-properties-order:
      - total_count
      - cluster_types
    scaleway.k8s.v1.ListClustersRequest.OrderBy:
      type: string
      enum:
      - created_at_asc
      - created_at_desc
      - updated_at_asc
      - updated_at_desc
      - name_asc
      - name_desc
      - status_asc
      - status_desc
      - version_asc
      - version_desc
      default: created_at_asc
    scaleway.k8s.v1.ListClustersResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total number of clusters.
          format: uint64
        clusters:
          type: array
          description: Paginated returned clusters.
          items:
            $ref: '#/components/schemas/scaleway.k8s.v1.Cluster'
      x-properties-order:
      - total_count
      - clusters
    scaleway.k8s.v1.ListNodesRequest.OrderBy:
      type: string
      enum:
      - created_at_asc
      - created_at_desc
      - updated_at_asc
      - updated_at_desc
      - name_asc
      - name_desc
      - status_asc
      - status_desc
      - version_asc
      - version_desc
      default: created_at_asc
    scaleway.k8s.v1.ListNodesResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total number of nodes.
          format: uint64
        nodes:
          type: array
          description: Paginated returned nodes.
          items:
            $ref: '#/components/schemas/scaleway.k8s.v1.Node'
      x-properties-order:
      - total_count
      - nodes
    scaleway.k8s.v1.ListPoolsRequest.OrderBy:
      type: string
      enum:
      - created_at_asc
      - created_at_desc
      - updated_at_asc
      - updated_at_desc
      - name_asc
      - name_desc
      - status_asc
      - status_desc
      - version_asc
      - version_desc
      default: created_at_asc
    scaleway.k8s.v1.ListPoolsResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total number of pools that exists for the cluster.
          format: uint64
        pools:
          type: array
          description: Paginated returned pools.
          items:
            $ref: '#/components/schemas/scaleway.k8s.v1.Pool'
      x-properties-order:
      - total_count
      - pools
    scaleway.k8s.v1.ListUserDataResponse:
      type: object
      properties:
        user_data:
          type: array
          description: User data information.
          items:
            $ref: '#/components/schemas/scaleway.k8s.v1.UserDataSummary'
      x-properties-order:
      - user_data
    scaleway.k8s.v1.ListVersionsResponse:
      type: object
      properties:
        versions:
          type: array
          description: Available Kubernetes versions.
          items:
            $ref: '#/components/schemas/scaleway.k8s.v1.Version'
      x-properties-order:
      - versions
    scaleway.k8s.v1.MaintenanceWindow:
      type: object
      properties:
        start_hour:
          type: integer
          description: Start time of the two-hour maintenance window.
          format: uint32
        day:
          description: Day of the week for the maintenance window.
          $ref: '#/components/schemas/scaleway.k8s.v1.MaintenanceWindow.DayOfTheWeek'
      x-properties-order:
      - start_hour
      - day
    scaleway.k8s.v1.MaintenanceWindow.DayOfTheWeek:
      type: string
      enum:
      - any
      - monday
      - tuesday
      - wednesday
      - thursday
      - friday
      - saturday
      - sunday
      default: any
    scaleway.k8s.v1.Node:
      type: object
      properties:
        id:
          type: string
          description: Node ID.
        pool_id:
          type: string
          description: Pool ID of the node.
        cluster_id:
          type: string
          description: Cluster ID of the node.
        provider_id:
          type: string
          description: Underlying instance ID. It is prefixed by instance type and
            location information (see https://pkg.go.dev/k8s.io/api/core/v1#NodeSpec.ProviderID).
        region:
          type: string
          description: Cluster region of the node.
        name:
          type: string
          description: Name of the node.
        status:
          description: Status of the node.
          $ref: '#/components/schemas/scaleway.k8s.v1.Node.Status'
        error_message:
          type:
          - string
          - "null"
          description: Details of the error, if any occurred when managing the node.
        created_at:
          type:
          - string
          - "null"
          description: Date on which the node was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Date on which the node was last updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
      x-properties-order:
      - id
      - pool_id
      - cluster_id
      - provider_id
      - region
      - name
      - status
      - error_message
      - created_at
      - updated_at
    scaleway.k8s.v1.Node.Status:
      type: string
      enum:
      - unknown
      - creating
      - not_ready
      - ready
      - deleting
      - deleted
      - locked
      - rebooting
      - creation_error
      - upgrading
      - starting
      - registering
      x-enum-descriptions:
        values:
          creating: Node is provisioning
          not_ready: Node is unable to connect to apiserver
          ready: Node is ready to execute workload (marked schedulable by k8s scheduler)
          deleting: Node is waiting to be processed for deletion
          locked: Node is locked because an abuse has been detected or reported
          rebooting: Node is rebooting
      default: unknown
    scaleway.k8s.v1.Pool:
      type: object
      properties:
        id:
          type: string
          description: Pool ID. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        cluster_id:
          type: string
          description: Cluster ID of the pool. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        created_at:
          type:
          - string
          - "null"
          description: Date on which the pool was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Date on which the pool was last updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        name:
          type: string
          description: Pool name.
        status:
          description: Pool status.
          $ref: '#/components/schemas/scaleway.k8s.v1.Pool.Status'
        version:
          type: string
          description: Pool version.
        node_type:
          type: string
          description: Node type is the type of Scaleway Instance wanted for the pool.
            Nodes with insufficient memory are not eligible (DEV1-S, PLAY2-PICO, STARDUST).
            'external' is a special node type used to provision instances from other
            cloud providers in a Kosmos Cluster.
        autoscaling:
          type: boolean
          description: Defines whether the autoscaling feature is enabled for the
            pool.
        size:
          type: integer
          description: Size (number of nodes) of the pool.
          format: uint32
        min_size:
          type: integer
          description: Defines the minimum size of the pool. Note that this field
            is only used when autoscaling is enabled on the pool.
          format: uint32
        max_size:
          type: integer
          description: Defines the maximum size of the pool. Note that this field
            is only used when autoscaling is enabled on the pool.
          format: uint32
        container_runtime:
          description: Customization of the container runtime is available for each
            pool.
          $ref: '#/components/schemas/scaleway.k8s.v1.Runtime'
        autohealing:
          type: boolean
          description: Defines whether the autohealing feature is enabled for the
            pool.
        tags:
          type: array
          description: Tags associated with the pool, see [managing tags](https://www.scaleway.com/en/docs/kubernetes/api-cli/managing-tags).
          items:
            type: string
        placement_group_id:
          type:
          - string
          - "null"
          description: Placement group ID in which all the nodes of the pool will
            be created, placement groups are limited to 20 instances. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        kubelet_args:
          type: object
          description: Kubelet arguments to be used by this pool. Note that this feature
            is experimental.
          properties:
            <kubelet_argKey>:
              type: string
              description: Kubelet arguments to be used by this pool. Note that this
                feature is experimental.
          additionalProperties: true
        upgrade_policy:
          description: Defines how node provisioning should behave during pool version
            upgrade.
          $ref: '#/components/schemas/scaleway.k8s.v1.Pool.UpgradePolicy'
        zone:
          type: string
          description: Zone in which the pool's nodes will be spawned.
        root_volume_type:
          description: |-
            Defines the system volume disk type. Several types of volume (`volume_type`) are provided:.
            * `l_ssd` is a local block storage which means your system is stored locally on your node's hypervisor. This type is not available for all node types
            * `sbs_5k` is a remote block storage which means your system is stored on a centralized and resilient cluster with 5k IOPS limits
            * `sbs_15k` is a faster remote block storage which means your system is stored on a centralized and resilient cluster with 15k IOPS limits
            * `b_ssd` is the legacy remote block storage which means your system is stored on a centralized and resilient cluster. Not available for new pools, use `sbs_5k` or `sbs_15k` instead.
          $ref: '#/components/schemas/scaleway.k8s.v1.Pool.VolumeType'
        root_volume_size:
          type:
          - integer
          - "null"
          description: System volume disk size. (in bytes)
          format: uint64
        public_ip_disabled:
          type: boolean
          description: Defines if the public IP should be removed from Nodes. To use
            this feature, your Cluster must have an attached Private Network set up
            with a Public Gateway.
        security_group_id:
          type: string
          description: Security group ID in which all the nodes of the pool will be
            created. If unset, the pool will use default Kapsule security group in
            current zone. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        labels:
          type: object
          description: Kubernetes labels applied and reconciled on the nodes.
          properties:
            <labelKey>:
              type: string
              description: Kubernetes labels applied and reconciled on the nodes.
          additionalProperties: true
        taints:
          type: array
          description: Kubernetes taints applied and reconciled on the nodes.
          items:
            $ref: '#/components/schemas/scaleway.k8s.v1.CoreV1Taint'
        startup_taints:
          type: array
          description: Kubernetes taints applied at node creation but not reconciled
            afterwards.
          items:
            $ref: '#/components/schemas/scaleway.k8s.v1.CoreV1Taint'
        error_message:
          type:
          - string
          - "null"
          description: Details of the error, if any occurred when managing the pool.
        max_termination_grace_period:
          type:
          - string
          - "null"
          description: Maximum amount of time before the API forces the drain and
            deletion of a `deleting` node. It overrides pods `PodDisruptionBudget`
            and `terminationGracePeriodSeconds`. Defaults to 15 minutes, up to 1 hour.
            (in seconds)
          example: 2.5s
        region:
          type: string
          description: Cluster region of the pool.
      required:
      - node_type
      - size
      x-properties-order:
      - id
      - cluster_id
      - created_at
      - updated_at
      - name
      - status
      - version
      - node_type
      - autoscaling
      - size
      - min_size
      - max_size
      - container_runtime
      - autohealing
      - tags
      - placement_group_id
      - kubelet_args
      - upgrade_policy
      - zone
      - root_volume_type
      - root_volume_size
      - public_ip_disabled
      - security_group_id
      - labels
      - taints
      - startup_taints
      - error_message
      - max_termination_grace_period
      - region
    scaleway.k8s.v1.Pool.Status:
      type: string
      enum:
      - unknown
      - ready
      - deleting
      - deleted
      - scaling
      - warning
      - locked
      - upgrading
      x-enum-descriptions:
        values:
          ready: Pool has the right amount of nodes and is ready to process the workload
          deleting: Pool is waiting to be processed for deletion
          scaling: Pool is growing or shrinking
          warning: Pool has some issues, check nodes
          locked: Pool is locked because an abuse has been detected or reported
          upgrading: Pool is upgrading its Kubernetes version
      default: unknown
    scaleway.k8s.v1.Pool.UpgradePolicy:
      type: object
      properties:
        max_unavailable:
          type: integer
          description: The maximum number of nodes that can be `upgrading` at the
            same time.
          format: uint32
        max_surge:
          type: integer
          description: The maximum number of nodes to be created during the upgrade,
            e.g. the pool will scale up to reach `size`+`max_surge` before downscaling
            to `size` after node upgrades.
          format: uint32
      x-properties-order:
      - max_unavailable
      - max_surge
    scaleway.k8s.v1.Pool.VolumeType:
      type: string
      enum:
      - default_volume_type
      - l_ssd
      - b_ssd
      - sbs_5k
      - sbs_15k
      x-enum-descriptions:
        values:
          l_ssd: 'Local Block Storage: your system is stored locally on your node
            hypervisor'
          b_ssd: 'Remote Block Storage: your system is stored on a centralized and
            resilient cluster (deprecated: will use sbs_5k instead)'
          sbs_5k: 'Remote Block Storage: your system is stored on a centralized and
            resilient cluster with up to 5k IOPS'
          sbs_15k: 'Remote Block Storage: your system is stored on a centralized and
            resilient cluster with up to 15k IOPS'
      default: default_volume_type
    scaleway.k8s.v1.Runtime:
      type: string
      enum:
      - unknown_runtime
      - containerd
      x-enum-descriptions:
        values:
          containerd: Containerd Runtime will be configured (https://github.com/containerd/containerd)
      default: unknown_runtime
    scaleway.k8s.v1.SetClusterACLRulesResponse:
      type: object
      properties:
        rules:
          type: array
          description: ACLs that were set.
          items:
            $ref: '#/components/schemas/scaleway.k8s.v1.ACLRule'
      x-properties-order:
      - rules
    scaleway.k8s.v1.UpdateClusterRequest.AutoUpgrade:
      type: object
      properties:
        enable:
          type:
          - boolean
          - "null"
          description: Defines whether auto upgrade is enabled for the cluster.
        maintenance_window:
          description: Maintenance window of the cluster auto upgrades.
          $ref: '#/components/schemas/scaleway.k8s.v1.MaintenanceWindow'
      x-properties-order:
      - enable
      - maintenance_window
    scaleway.k8s.v1.UpdateClusterRequest.AutoscalerConfig:
      type: object
      properties:
        scale_down_disabled:
          type:
          - boolean
          - "null"
          description: Forbid cluster autoscaler to scale down the cluster, defaults
            to false.
        scale_down_delay_after_add:
          type:
          - string
          - "null"
          description: How long after scale up the scale down evaluation resumes.
        estimator:
          description: Type of resource estimator to be used in scale up.
          $ref: '#/components/schemas/scaleway.k8s.v1.AutoscalerEstimator'
        expander:
          description: Kubernetes autoscaler strategy to fit pods into nodes, see
            https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expanders
            for details.
          $ref: '#/components/schemas/scaleway.k8s.v1.AutoscalerExpander'
        ignore_daemonsets_utilization:
          type:
          - boolean
          - "null"
          description: Ignore DaemonSet pods when calculating resource utilization
            for scaling down, defaults to false.
        balance_similar_node_groups:
          type:
          - boolean
          - "null"
          description: Detect similar node groups and balance the number of nodes
            between them, defaults to false.
        expendable_pods_priority_cutoff:
          type:
          - integer
          - "null"
          description: Pods with priority below cutoff will be expendable. They can
            be killed without any consideration during scale down and they won't cause
            scale up. Pods with null priority (PodPriority disabled) are non expendable.
          format: int32
        scale_down_unneeded_time:
          type:
          - string
          - "null"
          description: How long a node should be unneeded before it is eligible for
            scale down, defaults to 10 minutes.
        scale_down_utilization_threshold:
          description: Node utilization level, defined as a sum of requested resources
            divided by allocatable capacity, below which a node can be considered
            for scale down.
          $ref: '#/components/schemas/google.protobuf.FloatValue'
        max_graceful_termination_sec:
          type:
          - integer
          - "null"
          description: Maximum number of seconds the cluster autoscaler waits for
            pod termination when trying to scale down a node, defaults to 600 (10
            minutes).
          format: uint32
        skip_nodes_with_local_storage:
          type:
          - boolean
          - "null"
          description: Cluster autoscaler will never delete nodes with pods with local
            storage, e.g. EmptyDir or HostPath, defaults to true.
        log_level:
          type:
          - integer
          - "null"
          description: Cluster autoscaler logging level expressed from 0 to 4 (4 being
            the more verbose), defaults to 2. see https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#how-can-i-increase-the-information-that-the-ca-is-logging
            for details.
          format: int32
      x-properties-order:
      - scale_down_disabled
      - scale_down_delay_after_add
      - estimator
      - expander
      - ignore_daemonsets_utilization
      - balance_similar_node_groups
      - expendable_pods_priority_cutoff
      - scale_down_unneeded_time
      - scale_down_utilization_threshold
      - max_graceful_termination_sec
      - skip_nodes_with_local_storage
      - log_level
    scaleway.k8s.v1.UpdateClusterRequest.OpenIDConnectConfig:
      type: object
      properties:
        issuer_url:
          type:
          - string
          - "null"
          description: URL of the provider which allows the API server to discover
            public signing keys. Only URLs using the `https://` scheme are accepted.
            This is typically the provider's discovery URL without a path, for example
            "https://accounts.google.com" or "https://login.salesforce.com".
        client_id:
          type:
          - string
          - "null"
          description: A client ID that all tokens must be issued for.
        username_claim:
          type:
          - string
          - "null"
          description: JWT claim to use as the user name. The default is `sub`, which
            is expected to be the end user's unique identifier. Admins can choose
            other claims, such as `email` or `name`, depending on their provider.
            However, claims other than `email` will be prefixed with the issuer URL
            to prevent name collision.
        username_prefix:
          type:
          - string
          - "null"
          description: Prefix prepended to username claims to prevent name collision
            (such as `system:` users). For example, the value `oidc:` will create
            usernames like `oidc:jane.doe`. If this flag is not provided and `username_claim`
            is a value other than `email`, the prefix defaults to `( Issuer URL )#`
            where `( Issuer URL )` is the value of `issuer_url`. The value `-` can
            be used to disable all prefixing.
        groups_claim:
          type:
          - array
          - "null"
          description: JWT claim to use as the user's group.
        groups_prefix:
          type:
          - string
          - "null"
          description: Prefix prepended to group claims to prevent name collision
            (such as `system:` groups). For example, the value `oidc:` will create
            group names like `oidc:engineering` and `oidc:infra`.
        required_claim:
          type:
          - array
          - "null"
          description: Multiple key=value pairs describing a required claim in the
            ID token. If set, the claims are verified to be present in the ID token
            with a matching value.
      x-properties-order:
      - issuer_url
      - client_id
      - username_claim
      - username_prefix
      - groups_claim
      - groups_prefix
      - required_claim
    scaleway.k8s.v1.UpdatePoolRequest.UpgradePolicy:
      type: object
      properties:
        max_unavailable:
          type:
          - integer
          - "null"
          description: New maximum number of nodes that can be `upgrading` at the
            same time.
          format: uint32
        max_surge:
          type:
          - integer
          - "null"
          description: New maximum number of nodes to be created during the upgrade.
          format: uint32
      x-properties-order:
      - max_unavailable
      - max_surge
    scaleway.k8s.v1.UserDataSummary:
      type: object
      properties:
        key:
          type: string
          description: Key name of a given user data.
      x-properties-order:
      - key
    scaleway.k8s.v1.Version:
      type: object
      properties:
        name:
          type: string
          description: Name of the Kubernetes version.
        label:
          type: string
          description: Label of the Kubernetes version.
        region:
          type: string
          description: Region in which this version is available.
        available_cnis:
          type: array
          description: Supported Container Network Interface (CNI) plugins for this
            version.
          items:
            $ref: '#/components/schemas/scaleway.k8s.v1.CNI'
        available_container_runtimes:
          type: array
          description: Supported container runtimes for this version.
          deprecated: true
          items:
            $ref: '#/components/schemas/scaleway.k8s.v1.Runtime'
        available_feature_gates:
          type: array
          description: Supported feature gates for this version.
          items:
            type: string
        available_admission_plugins:
          type: array
          description: Supported admission plugins for this version.
          items:
            type: string
        available_kubelet_args:
          type: object
          description: Supported kubelet arguments for this version.
          properties:
            <available_kubelet_argKey>:
              type: string
              description: Supported kubelet arguments for this version.
          additionalProperties: true
        deprecated_at:
          type:
          - string
          - "null"
          description: Date from which this version will no longer be available for
            provisioning. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        end_of_life_at:
          type:
          - string
          - "null"
          description: Date from which any remaining clusters on this version will
            begin to be forcibly upgraded to the next minor version. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        released_at:
          type:
          - string
          - "null"
          description: Date at which this version was made available by Kapsule product.
            (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        additional_components:
          type: object
          description: Map containing every sub-component version shipped with this
            Kapsule version.
          properties:
            <additional_componentKey>:
              description: Map containing every sub-component version shipped with
                this Kapsule version.
              $ref: '#/components/schemas/scaleway.k8s.v1.ComponentInfo'
          additionalProperties: true
      x-properties-order:
      - name
      - label
      - region
      - available_cnis
      - available_container_runtimes
      - available_feature_gates
      - available_admission_plugins
      - available_kubelet_args
      - deprecated_at
      - end_of_life_at
      - released_at
      - additional_components
    scaleway.std.File:
      type: object
      properties:
        name:
          type: string
        content_type:
          type: string
        content:
          type: string
      x-properties-order:
      - name
      - content_type
      - content
  securitySchemes:
    scaleway:
      in: header
      name: X-Auth-Token
      type: apiKey
paths:
  /k8s/v1/regions/{region}/acls/{acl_id}:
    delete:
      tags:
      - Access Control List
      operationId: DeleteACLRule
      summary: Delete an existing ACL
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: acl_id
        description: ID of the ACL rule to delete.
        required: true
        schema:
          type: string
      responses:
        "204":
          description: ""
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/k8s/v1/regions/{region}/acls/{acl_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/k8s/v1/regions/{region}/acls/{acl_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /k8s/v1/regions/{region}/cluster-types:
    get:
      tags:
      - Cluster types
      operationId: ListClusterTypes
      summary: List cluster types
      description: List available cluster types and their technical details.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: query
        name: page
        description: Page number, from the paginated results, to return for cluster-types.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of clusters per page.
        schema:
          type: integer
          format: uint32
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.ListClusterTypesResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/k8s/v1/regions/{region}/cluster-types"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/k8s/v1/regions/{region}/cluster-types" \
            X-Auth-Token:$SCW_SECRET_KEY
  /k8s/v1/regions/{region}/clusters:
    get:
      tags:
      - Clusters
      operationId: ListClusters
      summary: List Clusters
      description: List all existing Kubernetes clusters in a specific region.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: query
        name: organization_id
        description: Organization ID on which to filter the returned clusters.
        schema:
          type: string
      - in: query
        name: project_id
        description: Project ID on which to filter the returned clusters.
        schema:
          type: string
      - in: query
        name: order_by
        description: Sort order of returned clusters.
        schema:
          $ref: '#/components/schemas/scaleway.k8s.v1.ListClustersRequest.OrderBy'
      - in: query
        name: page
        description: Page number to return for clusters, from the paginated results.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of clusters per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: name
        description: Name to filter on, only clusters containing this substring in
          their name will be returned.
        schema:
          type: string
      - in: query
        name: status
        description: Status to filter on, only clusters with this status will be returned.
        schema:
          $ref: '#/components/schemas/scaleway.k8s.v1.Cluster.Status'
      - in: query
        name: type
        description: Type to filter on, only clusters with this type will be returned.
        schema:
          type: string
      - in: query
        name: private_network_id
        description: Private Network ID to filter on, only clusters within this Private
          Network will be returned.
        schema:
          type: string
      - in: query
        name: version
        description: Version to filter on, only cluster matching this prefix version
          will be returned.
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.ListClustersResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/k8s/v1/regions/{region}/clusters"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/k8s/v1/regions/{region}/clusters" \
            X-Auth-Token:$SCW_SECRET_KEY
    post:
      tags:
      - Clusters
      operationId: CreateCluster
      summary: Create a new Cluster
      description: Create a new Kubernetes cluster in a Scaleway region.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Cluster'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                organization_id:
                  type:
                  - string
                  - "null"
                  description: Organization ID in which the cluster will be created.
                  deprecated: true
                  x-one-of: ProjectIdentifier
                project_id:
                  type:
                  - string
                  - "null"
                  description: Project ID in which the cluster will be created.
                  x-one-of: ProjectIdentifier
                type:
                  type: string
                  description: Type of the cluster. See [list available cluster types](#list-available-cluster-types-for-a-cluster)
                    for a list of valid types.
                name:
                  type: string
                  description: Cluster name.
                description:
                  type: string
                  description: Cluster description.
                tags:
                  type: array
                  description: Tags associated with the cluster.
                  items:
                    type: string
                version:
                  type: string
                  description: Kubernetes version of the cluster.
                cni:
                  description: Container Network Interface (CNI) plugin running in
                    the cluster.
                  $ref: '#/components/schemas/scaleway.k8s.v1.CNI'
                pools:
                  type: array
                  description: Pools created along with the cluster.
                  items:
                    $ref: '#/components/schemas/scaleway.k8s.v1.CreateClusterRequest.PoolConfig'
                autoscaler_config:
                  description: Autoscaler configuration for the cluster. It allows
                    you to set (to an extent) your preferred autoscaler configuration,
                    which is an implementation of the cluster-autoscaler (https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler/).
                  $ref: '#/components/schemas/scaleway.k8s.v1.CreateClusterRequest.AutoscalerConfig'
                auto_upgrade:
                  description: Auto upgrade configuration of the cluster. This configuration
                    enables to set a specific 2-hour time window in which the cluster
                    can be automatically updated to the latest patch version.
                  $ref: '#/components/schemas/scaleway.k8s.v1.CreateClusterRequest.AutoUpgrade'
                feature_gates:
                  type: array
                  description: List of feature gates to enable.
                  items:
                    type: string
                admission_plugins:
                  type: array
                  description: List of admission plugins to enable.
                  items:
                    type: string
                open_id_connect_config:
                  description: OpenID Connect configuration of the cluster. This configuration
                    enables to update the OpenID Connect configuration of the Kubernetes
                    API server.
                  $ref: '#/components/schemas/scaleway.k8s.v1.CreateClusterRequest.OpenIDConnectConfig'
                apiserver_cert_sans:
                  type: array
                  description: Additional Subject Alternative Names for the Kubernetes
                    API server certificate.
                  items:
                    type: string
                private_network_id:
                  type:
                  - string
                  - "null"
                  description: Private network ID for internal cluster communication
                    (cannot be changed later).
                pod_cidr:
                  type:
                  - string
                  - "null"
                  description: Subnet used for the Pod CIDR (cannot be changed later).
                    (IP network)
                  example: 1.2.3.4/32
                service_cidr:
                  type:
                  - string
                  - "null"
                  description: Subnet used for the Service CIDR (cannot be changed
                    later). (IP network)
                  example: 1.2.3.4/32
                service_dns_ip:
                  type:
                  - string
                  - "null"
                  description: IP used for the DNS Service (cannot be changes later).
                    If unset, default to Service CIDR's network + 10. (IPv4 address)
                  example: 1.2.3.4
              required:
              - name
              - version
              - cni
              x-properties-order:
              - organization_id
              - project_id
              - type
              - name
              - description
              - tags
              - version
              - cni
              - pools
              - autoscaler_config
              - auto_upgrade
              - feature_gates
              - admission_plugins
              - open_id_connect_config
              - apiserver_cert_sans
              - private_network_id
              - pod_cidr
              - service_cidr
              - service_dns_ip
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{
              "cni": "unknown_cni",
              "description": "string",
              "name": "string",
              "type": "string",
              "version": "string"
            }' \
            "https://api.scaleway.com/k8s/v1/regions/{region}/clusters"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/k8s/v1/regions/{region}/clusters" \
            X-Auth-Token:$SCW_SECRET_KEY \
            cni="unknown_cni" \
            description="string" \
            name="string" \
            type="string" \
            version="string"
  /k8s/v1/regions/{region}/clusters/{cluster_id}:
    get:
      tags:
      - Clusters
      operationId: GetCluster
      summary: Get a Cluster
      description: Retrieve information about a specific Kubernetes cluster.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: cluster_id
        description: ID of the requested cluster.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Cluster'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Clusters
      operationId: UpdateCluster
      summary: Update a Cluster
      description: Update information on a specific Kubernetes cluster. You can update
        details such as its name, description, tags and configuration. To upgrade
        a cluster, you will need to use the dedicated endpoint.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: cluster_id
        description: ID of the cluster to update.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Cluster'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type:
                  - string
                  - "null"
                  description: New external name for the cluster.
                description:
                  type:
                  - string
                  - "null"
                  description: New description for the cluster.
                tags:
                  type:
                  - array
                  - "null"
                  description: New tags associated with the cluster.
                autoscaler_config:
                  description: New autoscaler config for the cluster.
                  $ref: '#/components/schemas/scaleway.k8s.v1.UpdateClusterRequest.AutoscalerConfig'
                auto_upgrade:
                  description: New auto upgrade configuration for the cluster. Note
                    that all fields needs to be set.
                  $ref: '#/components/schemas/scaleway.k8s.v1.UpdateClusterRequest.AutoUpgrade'
                feature_gates:
                  type:
                  - array
                  - "null"
                  description: List of feature gates to enable.
                admission_plugins:
                  type:
                  - array
                  - "null"
                  description: List of admission plugins to enable.
                open_id_connect_config:
                  description: OpenID Connect configuration of the cluster. This configuration
                    enables to update the OpenID Connect configuration of the Kubernetes
                    API server.
                  $ref: '#/components/schemas/scaleway.k8s.v1.UpdateClusterRequest.OpenIDConnectConfig'
                apiserver_cert_sans:
                  type:
                  - array
                  - "null"
                  description: Additional Subject Alternative Names for the Kubernetes
                    API server certificate.
              x-properties-order:
              - name
              - description
              - tags
              - autoscaler_config
              - auto_upgrade
              - feature_gates
              - admission_plugins
              - open_id_connect_config
              - apiserver_cert_sans
      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/k8s/v1/regions/{region}/clusters/{cluster_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - Clusters
      operationId: DeleteCluster
      summary: Delete a Cluster
      description: Delete a specific Kubernetes cluster and all its associated pools
        and nodes, and possibly its associated Load Balancers or Block Volumes.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: cluster_id
        description: ID of the cluster to delete.
        required: true
        schema:
          type: string
      - in: query
        name: with_additional_resources
        description: Defines whether all volumes (including retain volume type), empty
          Private Networks and Load Balancers with a name starting with the cluster
          ID will also be deleted.
        required: true
        schema:
          type: boolean
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Cluster'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}?with_additional_resources=false"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}" \
            X-Auth-Token:$SCW_SECRET_KEY \
            with_additional_resources==false
  /k8s/v1/regions/{region}/clusters/{cluster_id}/acls:
    get:
      tags:
      - Access Control List
      operationId: ListClusterACLRules
      summary: List ACLs
      description: List ACLs for a specific cluster.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: cluster_id
        description: ID of the cluster whose ACLs will be listed.
        required: true
        schema:
          type: string
      - in: query
        name: page
        description: Page number for the returned ACLs.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of ACLs per page.
        schema:
          type: integer
          format: uint32
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.ListClusterACLRulesResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/acls"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/acls" \
            X-Auth-Token:$SCW_SECRET_KEY
    post:
      tags:
      - Access Control List
      operationId: AddClusterACLRules
      summary: Add new ACLs
      description: Add new ACL rules for a specific cluster.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: cluster_id
        description: ID of the cluster whose ACLs will be added.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.AddClusterACLRulesResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                acls:
                  type: array
                  description: ACLs to add.
                  items:
                    $ref: '#/components/schemas/scaleway.k8s.v1.ACLRuleRequest'
              x-properties-order:
              - acls
      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/k8s/v1/regions/{region}/clusters/{cluster_id}/acls"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/acls" \
            X-Auth-Token:$SCW_SECRET_KEY
    put:
      tags:
      - Access Control List
      operationId: SetClusterACLRules
      summary: Set new ACLs
      description: Set new ACL rules for a specific cluster.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: cluster_id
        description: ID of the cluster whose ACLs will be set.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.SetClusterACLRulesResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                acls:
                  type: array
                  description: ACLs to set.
                  items:
                    $ref: '#/components/schemas/scaleway.k8s.v1.ACLRuleRequest'
              x-properties-order:
              - acls
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PUT \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{}' \
            "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/acls"
      - lang: HTTPie
        source: |-
          http PUT "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/acls" \
            X-Auth-Token:$SCW_SECRET_KEY
  /k8s/v1/regions/{region}/clusters/{cluster_id}/available-types:
    get:
      tags:
      - Clusters
      operationId: ListClusterAvailableTypes
      summary: List available cluster types for a cluster
      description: List the cluster types that a specific Kubernetes cluster is allowed
        to switch to.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: cluster_id
        description: Cluster ID for which the available Kubernetes types will be listed.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.ListClusterAvailableTypesResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/available-types"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/available-types" \
            X-Auth-Token:$SCW_SECRET_KEY
  /k8s/v1/regions/{region}/clusters/{cluster_id}/available-versions:
    get:
      tags:
      - Clusters
      operationId: ListClusterAvailableVersions
      summary: List available versions for a Cluster
      description: List the versions that a specific Kubernetes cluster is allowed
        to upgrade to. Results will include every patch version greater than the current
        patch, as well as one minor version ahead of the current version. Any upgrade
        skipping a minor version will not work.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: cluster_id
        description: Cluster ID for which the available Kubernetes versions will be
          listed.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.ListClusterAvailableVersionsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/available-versions"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/available-versions" \
            X-Auth-Token:$SCW_SECRET_KEY
  /k8s/v1/regions/{region}/clusters/{cluster_id}/kubeconfig:
    get:
      tags:
      - Clusters
      operationId: GetClusterKubeConfig
      summary: Download the kubeconfig for a Cluster
      description: |-
        Download the Kubernetes cluster config file (also known as `kubeconfig`) for a specific cluster to use it with `kubectl`.
        Tip: add `?dl=1` at the end of the URL to directly retrieve the base64 decoded kubeconfig. If you choose not to, the kubeconfig will be base64 encoded.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: cluster_id
        description: Cluster ID for which to download the kubeconfig.
        required: true
        schema:
          type: string
      - in: query
        name: redacted
        description: Hide the legacy token from the kubeconfig.
        schema:
          type: boolean
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.std.File'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/kubeconfig"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/kubeconfig" \
            X-Auth-Token:$SCW_SECRET_KEY
  /k8s/v1/regions/{region}/clusters/{cluster_id}/nodes:
    get:
      tags:
      - Nodes
      operationId: ListNodes
      summary: List Nodes in a Cluster
      description: List all the existing nodes for a specific Kubernetes cluster.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: cluster_id
        description: Cluster ID from which the nodes will be listed from.
        required: true
        schema:
          type: string
      - in: query
        name: pool_id
        description: Pool ID on which to filter the returned nodes.
        schema:
          type: string
      - in: query
        name: order_by
        description: Sort order of the returned nodes.
        schema:
          $ref: '#/components/schemas/scaleway.k8s.v1.ListNodesRequest.OrderBy'
      - in: query
        name: page
        description: Page number for the returned nodes.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of nodes per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: name
        description: Name to filter on, only nodes containing this substring in their
          name will be returned.
        schema:
          type: string
      - in: query
        name: status
        description: Status to filter on, only nodes with this status will be returned.
        schema:
          $ref: '#/components/schemas/scaleway.k8s.v1.Node.Status'
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.ListNodesResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/nodes"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/nodes" \
            X-Auth-Token:$SCW_SECRET_KEY
  /k8s/v1/regions/{region}/clusters/{cluster_id}/pools:
    get:
      tags:
      - Pools
      operationId: ListPools
      summary: List Pools in a Cluster
      description: List all the existing pools for a specific Kubernetes cluster.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: cluster_id
        description: ID of the cluster whose pools will be listed.
        required: true
        schema:
          type: string
      - in: query
        name: order_by
        description: Sort order of returned pools.
        schema:
          $ref: '#/components/schemas/scaleway.k8s.v1.ListPoolsRequest.OrderBy'
      - in: query
        name: page
        description: Page number for the returned pools.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of pools per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: name
        description: Name to filter on, only pools containing this substring in their
          name will be returned.
        schema:
          type: string
      - in: query
        name: status
        description: Status to filter on, only pools with this status will be returned.
        schema:
          $ref: '#/components/schemas/scaleway.k8s.v1.Pool.Status'
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.ListPoolsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/pools"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/pools" \
            X-Auth-Token:$SCW_SECRET_KEY
    post:
      tags:
      - Pools
      operationId: CreatePool
      summary: Create a new Pool in a Cluster
      description: Create a new pool in a specific Kubernetes cluster.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: cluster_id
        description: Cluster ID to which the pool will be attached.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Pool'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Pool name.
                node_type:
                  type: string
                  description: Node type is the type of Scaleway Instance wanted for
                    the pool. Nodes with insufficient memory are not eligible (DEV1-S,
                    PLAY2-PICO, STARDUST). 'external' is a special node type used
                    to provision instances from other cloud providers in a Kosmos
                    Cluster.
                placement_group_id:
                  type:
                  - string
                  - "null"
                  description: Placement group ID in which all the nodes of the pool
                    will be created, placement groups are limited to 20 instances.
                autoscaling:
                  type: boolean
                  description: Defines whether the autoscaling feature is enabled
                    for the pool.
                size:
                  type: integer
                  description: Size (number of nodes) of the pool.
                  format: uint32
                min_size:
                  type:
                  - integer
                  - "null"
                  description: Defines the minimum size of the pool. Note that this
                    field is only used when autoscaling is enabled on the pool.
                  format: uint32
                max_size:
                  type:
                  - integer
                  - "null"
                  description: Defines the maximum size of the pool. Note that this
                    field is only used when autoscaling is enabled on the pool.
                  format: uint32
                container_runtime:
                  description: Customization of the container runtime is available
                    for each pool.
                  $ref: '#/components/schemas/scaleway.k8s.v1.Runtime'
                autohealing:
                  type: boolean
                  description: Defines whether the autohealing feature is enabled
                    for the pool.
                tags:
                  type: array
                  description: Tags associated with the pool, see [managing tags](https://www.scaleway.com/en/docs/kubernetes/api-cli/managing-tags).
                  items:
                    type: string
                kubelet_args:
                  type: object
                  description: Kubelet arguments to be used by this pool. Note that
                    this feature is experimental.
                  properties:
                    <kubelet_argKey>:
                      type: string
                      description: Kubelet arguments to be used by this pool. Note
                        that this feature is experimental.
                  additionalProperties: true
                upgrade_policy:
                  description: Defines how node provisioning should behave during
                    pool version upgrade.
                  $ref: '#/components/schemas/scaleway.k8s.v1.CreatePoolRequest.UpgradePolicy'
                zone:
                  type: string
                  description: Zone in which the pool's nodes will be spawned.
                root_volume_type:
                  description: |-
                    Defines the system volume disk type. Several types of volume (`volume_type`) are provided:.
                    * `l_ssd` is a local block storage which means your system is stored locally on your node's hypervisor. This type is not available for all node types
                    * `sbs_5k` is a remote block storage which means your system is stored on a centralized and resilient cluster with 5k IOPS limits
                    * `sbs_15k` is a faster remote block storage which means your system is stored on a centralized and resilient cluster with 15k IOPS limits
                    * `b_ssd` is the legacy remote block storage which means your system is stored on a centralized and resilient cluster. Not available for new pools, use `sbs_5k` or `sbs_15k` instead.
                  $ref: '#/components/schemas/scaleway.k8s.v1.Pool.VolumeType'
                root_volume_size:
                  type:
                  - integer
                  - "null"
                  description: System volume disk size. (in bytes)
                  format: uint64
                public_ip_disabled:
                  type: boolean
                  description: Defines if the public IP should be removed from Nodes.
                    To use this feature, your Cluster must have an attached Private
                    Network set up with a Public Gateway.
                security_group_id:
                  type:
                  - string
                  - "null"
                  description: Security group ID in which all the nodes of the pool
                    will be created. If unset, the pool will use default Kapsule security
                    group in current zone.
                labels:
                  type: object
                  description: Kubernetes labels applied and reconciled on the nodes.
                  properties:
                    <labelKey>:
                      type: string
                      description: Kubernetes labels applied and reconciled on the
                        nodes.
                  additionalProperties: true
                taints:
                  type: array
                  description: Kubernetes taints applied and reconciled on the nodes.
                  items:
                    $ref: '#/components/schemas/scaleway.k8s.v1.CoreV1Taint'
                startup_taints:
                  type: array
                  description: Kubernetes taints applied at node creation but not
                    reconciled afterwards.
                  items:
                    $ref: '#/components/schemas/scaleway.k8s.v1.CoreV1Taint'
                user_data:
                  type: object
                  description: User data applied and reconciled with the pool.
                  properties:
                    <user_dataKey>:
                      type: string
                      description: User data applied and reconciled with the pool.
                  additionalProperties: true
                max_termination_grace_period:
                  type:
                  - string
                  - "null"
                  description: Maximum amount of time before the API forces the drain
                    and deletion of a `deleting` node. It overrides pods `PodDisruptionBudget`
                    and `terminationGracePeriodSeconds`. Defaults to 15 minutes, up
                    to 1 hour. (in seconds)
                  example: 2.5s
              required:
              - name
              - node_type
              - size
              x-properties-order:
              - name
              - node_type
              - placement_group_id
              - autoscaling
              - size
              - min_size
              - max_size
              - container_runtime
              - autohealing
              - tags
              - kubelet_args
              - upgrade_policy
              - zone
              - root_volume_type
              - root_volume_size
              - public_ip_disabled
              - security_group_id
              - labels
              - taints
              - startup_taints
              - user_data
              - max_termination_grace_period
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{
              "autohealing": false,
              "autoscaling": false,
              "kubelet_args": {
                  "<kubelet_argKey>": "string"
              },
              "labels": {
                  "<labelKey>": "string"
              },
              "name": "string",
              "node_type": "string",
              "public_ip_disabled": false,
              "size": 42,
              "user_data": {
                  "<user_dataKey>": "string"
              },
              "zone": "string"
            }' \
            "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/pools"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/pools" \
            X-Auth-Token:$SCW_SECRET_KEY \
            autohealing:=false \
            autoscaling:=false \
            kubelet_args:='{
              "<kubelet_argKey>": "string"
            }' \
            labels:='{
              "<labelKey>": "string"
            }' \
            name="string" \
            node_type="string" \
            public_ip_disabled:=false \
            size:=42 \
            user_data:='{
              "<user_dataKey>": "string"
            }' \
            zone="string"
  /k8s/v1/regions/{region}/clusters/{cluster_id}/reset-admin-token:
    post:
      tags:
      - Clusters
      operationId: ResetClusterAdminToken
      summary: Reset the admin token of a Cluster
      description: Reset the admin token for a specific Kubernetes cluster. This will
        revoke the old admin token (which will not be usable afterwards) and create
        a new one. Note that you will need to download the kubeconfig again to keep
        interacting with the cluster.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: cluster_id
        description: Cluster ID on which the admin token will be renewed.
        required: true
        schema:
          type: string
      responses:
        "204":
          description: ""
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{}' \
            "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/reset-admin-token"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/reset-admin-token" \
            X-Auth-Token:$SCW_SECRET_KEY
  /k8s/v1/regions/{region}/clusters/{cluster_id}/set-type:
    post:
      tags:
      - Clusters
      operationId: SetClusterType
      summary: Change the Cluster type
      description: Change the type of a specific Kubernetes cluster. To see the possible
        values you can enter for the `type` field, [list available cluster types](#list-available-cluster-types-for-a-cluster).
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: cluster_id
        description: ID of the cluster to migrate from one type to another.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Cluster'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  description: Type of the cluster. Note that some migrations are
                    not possible (please refer to product documentation).
              required:
              - type
              x-properties-order:
              - type
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"type":"string"}' \
            "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/set-type"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/set-type" \
            X-Auth-Token:$SCW_SECRET_KEY \
            type="string"
  /k8s/v1/regions/{region}/clusters/{cluster_id}/upgrade:
    post:
      tags:
      - Clusters
      operationId: UpgradeCluster
      summary: Upgrade a Cluster
      description: Upgrade a specific Kubernetes cluster and possibly its associated
        pools to a specific and supported Kubernetes version.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: cluster_id
        description: ID of the cluster to upgrade.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Cluster'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                version:
                  type: string
                  description: New Kubernetes version of the cluster. Note that the
                    version should either be a higher patch version of the same minor
                    version or the direct minor version after the current one.
                upgrade_pools:
                  type: boolean
                  description: Defines whether pools will also be upgraded once the
                    control plane is upgraded.
              required:
              - version
              x-properties-order:
              - version
              - upgrade_pools
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"upgrade_pools":false,"version":"string"}' \
            "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/upgrade"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/upgrade" \
            X-Auth-Token:$SCW_SECRET_KEY \
            upgrade_pools:=false \
            version="string"
  /k8s/v1/regions/{region}/nodes/{node_id}:
    get:
      tags:
      - Nodes
      operationId: GetNode
      summary: Get a Node in a Cluster
      description: Retrieve details about a specific Kubernetes Node.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: node_id
        description: ID of the requested node.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Node'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/k8s/v1/regions/{region}/nodes/{node_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/k8s/v1/regions/{region}/nodes/{node_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - Nodes
      operationId: DeleteNode
      summary: Delete a Node in a Cluster
      description: Delete a specific Node. Pool size is reduced by 1. The node will
        first be drained and pods will be rescheduled onto another node. Note that
        when there is not enough space to reschedule all the pods (such as in a one-node
        cluster, or with specific constraints), disruption of your applications may
        occur.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: node_id
        description: ID of the node to replace.
        required: true
        schema:
          type: string
      - in: query
        name: skip_drain
        description: 'Skip draining node from its workload (Note: this parameter is
          currently inactive).'
        required: true
        schema:
          type: boolean
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Node'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/k8s/v1/regions/{region}/nodes/{node_id}?skip_drain=false"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/k8s/v1/regions/{region}/nodes/{node_id}" \
            X-Auth-Token:$SCW_SECRET_KEY \
            skip_drain==false
  /k8s/v1/regions/{region}/nodes/{node_id}/reboot:
    post:
      tags:
      - Nodes
      operationId: RebootNode
      summary: Reboot a Node in a Cluster
      description: Reboot a specific Node. The node will first be drained and pods
        will be rescheduled onto another node. Note that when there is not enough
        space to reschedule all the pods (such as in a one-node cluster, or with specific
        constraints), disruption of your applications may occur.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: node_id
        description: ID of the node to reboot.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Node'
      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/k8s/v1/regions/{region}/nodes/{node_id}/reboot"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/k8s/v1/regions/{region}/nodes/{node_id}/reboot" \
            X-Auth-Token:$SCW_SECRET_KEY
  /k8s/v1/regions/{region}/nodes/{node_id}/replace:
    post:
      tags:
      - Nodes
      operationId: ReplaceNode
      summary: Replace a Node in a Cluster
      description: Replace a specific Node. The node will first be drained and pods
        will be rescheduled onto another node. Note that when there is not enough
        space to reschedule all the pods (such as in a one-node cluster, or with specific
        constraints), disruption of your applications may occur.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: node_id
        description: ID of the node to replace.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Node'
      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/k8s/v1/regions/{region}/nodes/{node_id}/replace"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/k8s/v1/regions/{region}/nodes/{node_id}/replace" \
            X-Auth-Token:$SCW_SECRET_KEY
  /k8s/v1/regions/{region}/pools/{pool_id}:
    get:
      tags:
      - Pools
      operationId: GetPool
      summary: Get a Pool in a Cluster
      description: Retrieve details about a specific pool in a Kubernetes cluster.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: pool_id
        description: ID of the requested pool.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Pool'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/k8s/v1/regions/{region}/pools/{pool_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/k8s/v1/regions/{region}/pools/{pool_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Pools
      operationId: UpdatePool
      summary: Update a Pool in a Cluster
      description: Update the attributes of a specific pool, such as its desired size,
        autoscaling settings, and tags. To upgrade a pool, you will need to use the
        dedicated endpoint.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: pool_id
        description: ID of the pool to update.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Pool'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                autoscaling:
                  type:
                  - boolean
                  - "null"
                  description: New value for the pool autoscaling enablement.
                size:
                  type:
                  - integer
                  - "null"
                  description: New desired pool size.
                  format: uint32
                min_size:
                  type:
                  - integer
                  - "null"
                  description: New minimum size for the pool.
                  format: uint32
                max_size:
                  type:
                  - integer
                  - "null"
                  description: New maximum size for the pool.
                  format: uint32
                autohealing:
                  type:
                  - boolean
                  - "null"
                  description: New value for the pool autohealing enablement.
                tags:
                  type:
                  - array
                  - "null"
                  description: New tags associated with the pool.
                kubelet_args:
                  type:
                  - object
                  - "null"
                  description: New Kubelet arguments to be used by this pool. Note
                    that this feature is experimental.
                  properties:
                    <key>:
                      type: string
                upgrade_policy:
                  description: New upgrade policy for the pool.
                  $ref: '#/components/schemas/scaleway.k8s.v1.UpdatePoolRequest.UpgradePolicy'
                security_group_id:
                  type:
                  - string
                  - "null"
                  description: Security group ID in which all the nodes of the pool
                    will be moved.
                max_termination_grace_period:
                  type:
                  - string
                  - "null"
                  description: New maximum amount of time before the API forces the
                    drain and deletion of a `deleting` node. (in seconds)
                  example: 2.5s
              x-properties-order:
              - autoscaling
              - size
              - min_size
              - max_size
              - autohealing
              - tags
              - kubelet_args
              - upgrade_policy
              - security_group_id
              - max_termination_grace_period
      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/k8s/v1/regions/{region}/pools/{pool_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/k8s/v1/regions/{region}/pools/{pool_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - Pools
      operationId: DeletePool
      summary: Delete a Pool in a Cluster
      description: Delete a specific pool from a cluster. Note that all the pool's
        nodes will also be deleted.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: pool_id
        description: ID of the pool to delete.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Pool'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/k8s/v1/regions/{region}/pools/{pool_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/k8s/v1/regions/{region}/pools/{pool_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /k8s/v1/regions/{region}/pools/{pool_id}/set-labels:
    put:
      tags:
      - Pools
      operationId: SetPoolLabels
      summary: Set a list of labels for a specific pool
      description: Apply a list of taints to all nodes of the pool (only apply to
        labels which was set through scaleway api).
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: pool_id
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Pool'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                labels:
                  type: object
                  properties:
                    <labelKey>:
                      type: string
                  additionalProperties: true
              x-properties-order:
              - labels
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PUT \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"labels":{"<labelKey>":"string"}}' \
            "https://api.scaleway.com/k8s/v1/regions/{region}/pools/{pool_id}/set-labels"
      - lang: HTTPie
        source: |-
          http PUT "https://api.scaleway.com/k8s/v1/regions/{region}/pools/{pool_id}/set-labels" \
            X-Auth-Token:$SCW_SECRET_KEY \
            labels:='{"<labelKey>":"string"}'
  /k8s/v1/regions/{region}/pools/{pool_id}/set-startup-taints:
    put:
      tags:
      - Pools
      operationId: SetPoolStartupTaints
      summary: Set a list of startup taints for a specific pool
      description: Apply a list of taints to new nodes of the pool which would not
        be reconciled by scaleway.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: pool_id
        description: ID of the pool to update.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Pool'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                startup_taints:
                  type: array
                  description: List of startup taints to set.
                  items:
                    $ref: '#/components/schemas/scaleway.k8s.v1.CoreV1Taint'
              x-properties-order:
              - startup_taints
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PUT \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{}' \
            "https://api.scaleway.com/k8s/v1/regions/{region}/pools/{pool_id}/set-startup-taints"
      - lang: HTTPie
        source: |-
          http PUT "https://api.scaleway.com/k8s/v1/regions/{region}/pools/{pool_id}/set-startup-taints" \
            X-Auth-Token:$SCW_SECRET_KEY
  /k8s/v1/regions/{region}/pools/{pool_id}/set-taints:
    put:
      tags:
      - Pools
      operationId: SetPoolTaints
      summary: Set a list of taints for a specific pool
      description: Apply a list of taints to all nodes of the pool which will be periodically
        reconciled by scaleway.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: pool_id
        description: ID of the pool to update.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Pool'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                taints:
                  type: array
                  description: List of taints to set.
                  items:
                    $ref: '#/components/schemas/scaleway.k8s.v1.CoreV1Taint'
              x-properties-order:
              - taints
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PUT \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{}' \
            "https://api.scaleway.com/k8s/v1/regions/{region}/pools/{pool_id}/set-taints"
      - lang: HTTPie
        source: |-
          http PUT "https://api.scaleway.com/k8s/v1/regions/{region}/pools/{pool_id}/set-taints" \
            X-Auth-Token:$SCW_SECRET_KEY
  /k8s/v1/regions/{region}/pools/{pool_id}/upgrade:
    post:
      tags:
      - Pools
      operationId: UpgradePool
      summary: Upgrade a Pool in a Cluster
      description: |-
        Upgrade the Kubernetes version of a specific pool. Note that it only works if the targeted version matches the cluster's version.
        This will drain and replace the nodes in that pool.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: pool_id
        description: ID of the pool to upgrade.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Pool'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                version:
                  type: string
                  description: New Kubernetes version for the pool.
              required:
              - version
              x-properties-order:
              - version
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"version":"string"}' \
            "https://api.scaleway.com/k8s/v1/regions/{region}/pools/{pool_id}/upgrade"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/k8s/v1/regions/{region}/pools/{pool_id}/upgrade" \
            X-Auth-Token:$SCW_SECRET_KEY \
            version="string"
  /k8s/v1/regions/{region}/pools/{pool_id}/user-data:
    get:
      tags:
      - User data
      operationId: ListUserData
      summary: List all user data related to a given pool.
      description: This list only the user data key and not the content.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: pool_id
        description: Pool the user data are associated to.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.ListUserDataResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/k8s/v1/regions/{region}/pools/{pool_id}/user-data"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/k8s/v1/regions/{region}/pools/{pool_id}/user-data" \
            X-Auth-Token:$SCW_SECRET_KEY
  /k8s/v1/regions/{region}/pools/{pool_id}/user-data/{key}:
    get:
      tags:
      - User data
      operationId: GetUserData
      summary: Get a pool related user data
      description: |-
        Retrieve specific user data content for a given pool.
        Tip: add `?dl=1` at the end of the URL to directly retrieve the base64 decoded content of your user data.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: pool_id
        description: Pool the user data are associated to.
        required: true
        schema:
          type: string
      - in: path
        name: key
        description: User data key to retrieved.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.std.File'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/k8s/v1/regions/{region}/pools/{pool_id}/user-data/{key}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/k8s/v1/regions/{region}/pools/{pool_id}/user-data/{key}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /k8s/v1/regions/{region}/versions:
    get:
      tags:
      - Versions
      operationId: ListVersions
      summary: List all available Versions
      description: List all available versions for the creation of a new Kubernetes
        cluster.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.ListVersionsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/k8s/v1/regions/{region}/versions"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/k8s/v1/regions/{region}/versions" \
            X-Auth-Token:$SCW_SECRET_KEY
  /k8s/v1/regions/{region}/versions/{version_name}:
    get:
      tags:
      - Versions
      operationId: GetVersion
      summary: Get a Version
      description: Retrieve a specific Kubernetes version and its details.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
          - it-mil
      - in: path
        name: version_name
        description: Requested version name.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Version'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/k8s/v1/regions/{region}/versions/{version_name}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/k8s/v1/regions/{region}/versions/{version_name}" \
            X-Auth-Token:$SCW_SECRET_KEY
