openapi: 3.1.0
info:
  title: Product Catalog API
  description: |-
    The Product Catalog API provides methods to retrieve Scaleway's catalog of products and features.




    ## Quickstart

    <Message type="note">
    This API does not require authentication to be used.
    </Message>

    Run the request below to list all available Scaleway products:

      ```bash
      curl -X GET "https://api.scaleway.com/product-catalog/v2alpha1/public-catalog/products?page_size=5"
      ```

      You can add the following parameters to your endpoint:

      | Parameter        | Description                                   |
      | :--------------- | :--------------------------------------       |
      | `page`           | Number of the page. Value must be greater or equal to 1. |
      | `page_size`| The number of products per page. Value must be greater or equal to 1. |

      In the example above, we specify a `page_size` of 5 products per page.

    If the request was successful you will see a response like the following:

      ```json
      {
        "products": [
          {
            "sku": "/compute/pop2_hc_2c_4g/run_fr-par-2",
            "service_category": "Compute",
            "product": "POP2-HC-2C-4G Instance",
            "variant": "Compute POP2-HC-2C-4G Instance - fr-par-2",
            "description": "Compute POP2-HC-2C-4G Instance - fr-par-2 (0.0532€ per hour)",
            "locality": {
              "zone": "fr-par-2"
            },
            "price": {
              "retail_price": {
                "currency_code": "EUR",
                "units": 0,
                "nanos": 53200000
              }
            },
            "properties": {
              "hardware": {
                "cpu": {
                  "description": "AMD EPYC™ 7543 (2.8 GHz), x64, vCPUs: 2",
                  "arch": "x64",
                  "type": "AMD EPYC™ 7543 (2.8 GHz)",
                  "virtual": {
                    "count": 2
                  },
                  "threads": 2
                },
                "ram": {
                  "description": "4 GiB",
                  "size": 4294967296,
                  "type": ""
                },
                "storage": {
                  "description": "Block",
                  "total": 0
                },
                "network": {
                  "description": "Internal: 400 Mb/s, Public: 400 Mb/s",
                  "internal_bandwidth": 400000000,
                  "public_bandwidth": 400000000,
                  "max_public_bandwidth": 400000000
                }
              },
              "instance": {
                "range": "Workload-Optimized"
              }
            },
            "environmental_impact_estimation": {
              "kg_co2_equivalent": 0.00080852455,
              "m3_water_usage": 1.9658212e-7
            },
            "unit_of_measure": {
              "unit": "hour",
              "size": 1
            }
          },
          {
            "sku": "/apple-silicon/m4-s/run_par1",
            "service_category": "Bare Metal",
            "product": "Mac Mini M4 - S",
            "variant": "Mac Mini M4 - S - Hourly - fr-par-1",
            "description": "Mac Mini M4 - S - Hourly - fr-par-1 (0.22€ per hour)",
            "locality": {
              "zone": "fr-par-1"
            },
            "price": {
              "retail_price": {
                "currency_code": "EUR",
                "units": 0,
                "nanos": 220000000
              }
            },
            "properties": {
              "hardware": {
                "cpu": {
                  "description": "Apple M4, apple_silicon, Sockets: 1, Cores per socket: 10, Threads per core: 1, Frequency: 4.4 GHz",
                  "arch": "apple_silicon",
                  "type": "Apple M4",
                  "physical": {
                    "sockets": 1,
                    "cores_per_socket": 10,
                    "threads_per_core": 1,
                    "frequency": 4400000000,
                    "benchmark": 0
                  },
                  "threads": 10
                },
                "ram": {
                  "description": "16 GiB LPDDR5X",
                  "size": 17179869184,
                  "type": "LPDDR5X"
                },
                "storage": {
                  "description": "Fixed local: 1 x 256 GB SSD",
                  "total": 256000000000
                },
                "network": {
                  "description": "Internal: 1 Gb/s, Public: 1 Gb/s",
                  "internal_bandwidth": 1000000000,
                  "public_bandwidth": 1000000000,
                  "max_public_bandwidth": 1000000000
                },
                "gpu": {
                  "description": "10 x Apple M4",
                  "count": 10,
                  "type": "Apple M4"
                }
              },
              "apple_silicon": {
                "range": "M4"
              }
            },
            "environmental_impact_estimation": {
              "kg_co2_equivalent": 0.012052304,
              "m3_water_usage": 0.0000010851885
            },
            "unit_of_measure": {
              "unit": "hour",
              "size": 1
            }
          },
          {
            "sku": "/storage/block/ssd/storage/fr-par1",
            "service_category": "Storage",
            "product": "Performance Block storage - SSD",
            "variant": "Block Storage - fr-par-1",
            "description": "Block Storage - fr-par-1 (0.000118€ per GB)",
            "locality": {
              "zone": "fr-par-1"
            },
            "price": {
              "retail_price": {
                "currency_code": "EUR",
                "units": 0,
                "nanos": 118000
              }
            },
            "unit_of_measure": {
              "unit": "gigabyte",
              "size": 1
            }
          },
          {
            "sku": "/network/domain/domains/fr/register",
            "service_category": "Network",
            "product": "Domain Register",
            "variant": "Domains - Register .fr",
            "description": "Domains - Register .fr (5.99€ per year)",
            "locality": {
              "global": true
            },
            "price": {
              "retail_price": {
                "currency_code": "EUR",
                "units": 5,
                "nanos": 990000000
              }
            },
            "unit_of_measure": {
              "unit": "year",
              "size": 1
            }
          }
        ]
      }
      ```

    The response show you the total number of products in the catalog, and provides you with the following information about each product:

    <Message type="note">
      The information displayed in the response varies according to the product. Not all elements listed below apply to every product.
    </Message>

    - **Basic information** - product name, description, category
    - **Locality** - availability per region or zone, or global
    - **Price** - retail price of each product
    - **Additional information** - hardware specifications, ranges

    <Message type="tip">
      Refer to the response description of the [List all available products](#path-product-catalog-list-all-available-scaleway-products) method to find an extensive list of all possible response attributes.
    </Message>


    <Message type="requirement">
      To perform the following steps, you must first ensure that:<br /><br />
        - you have [installed `curl`](https://curl.se/download.html)
    </Message>
  version: v2alpha1
servers:
- url: https://api.scaleway.com
tags:
- name: Product catalog
  description: |
    Scaleway's Product Catalog is an extensive list of the Scaleway products.
    The catalog includes details about each product including: description,
    locations, prices and properties.
components:
  schemas:
    scaleway.product_catalog.v2alpha1.ListPublicCatalogProductsRequest.ProductType:
      type: string
      enum:
      - unknown_product_type
      - instance
      - apple_silicon
      - elastic_metal
      - dedibox
      - block_storage
      - object_storage
      - managed_inference
      - generative_apis
      - load_balancer
      - secret_manager
      - key_manager
      - managed_redis_database
      - kubernetes
      - managed_relational_database
      - managed_mongodb
      x-enum-descriptions:
        values:
          unknown_product_type: Unknown product type.
          instance: Include the Instance information in the response.
          apple_silicon: Include the Apple Silicon information in the response.
          elastic_metal: Include the Elastic Metal information in the response.
          dedibox: Include the Dedibox information in the response.
          block_storage: Include the Block Storage information in the response.
          object_storage: Include the Object Storage information in the response.
          managed_inference: Include the Managed Inference information in the response.
          generative_apis: Include the Generative APIs information in the response.
          load_balancer: Include the Load Balancer information in the response.
          secret_manager: Include the Secret Manager information in the response.
          key_manager: Include the Key Manager information in the response.
          managed_redis_database: Include the Managed Redis Database information in
            the response.
          kubernetes: Include the Kubernetes information in the response.
          managed_relational_database: Include the Managed Relational Database information
            in the response
          managed_mongodb: Include the Managed MongoDB information in the response.
      default: unknown_product_type
    scaleway.product_catalog.v2alpha1.ListPublicCatalogProductsRequest.Status:
      type: string
      enum:
      - unknown_status
      - public_beta
      - preview
      - general_availability
      - end_of_new_features
      - end_of_growth
      - end_of_deployment
      - end_of_support
      - end_of_sale
      - end_of_life
      - retired
      x-enum-descriptions:
        values:
          unknown_status: Unknown status.
          public_beta: The product is available in Public Beta.
          preview: The product is available in Preview mode.
          general_availability: The product is generally available.
          end_of_new_features: The product is available but no new features will be
            added. Only bug fixes and security updates provided.
          end_of_growth: The product is no longer available to new customers. Existing
            resources continue to run and be supported.
          end_of_deployment: The product must not be used for new deployments. Deprecated.
          end_of_support: There is no longer any commercial support for this product.
            Deprecated.
          end_of_sale: The product is not sold anymore but is still in use.
          end_of_life: The product is no longer supported or maintained.
          retired: The product is deprecated and is no longer accessible.
      default: unknown_status
    scaleway.product_catalog.v2alpha1.ListPublicCatalogProductsResponse:
      type: object
      properties:
        products:
          type: array
          description: The list of products.
          items:
            $ref: '#/components/schemas/scaleway.product_catalog.v2alpha1.PublicCatalogProduct'
        total_count:
          type: integer
          description: The total number of products in the catalog.
          format: uint64
      x-properties-order:
      - products
      - total_count
    scaleway.product_catalog.v2alpha1.PublicCatalogProduct:
      type: object
      properties:
        sku:
          type: string
          description: The unique identifier of the product.
        service_category:
          type: string
          description: The category of the product.
        product_category:
          type: string
          description: The product category of the product.
        product:
          type: string
          description: The product name.
        variant:
          type: string
          description: The product variant.
        description:
          type: string
          description: The product description.
        locality:
          type: object
          description: The locality of the product.
          properties:
            global:
              type: boolean
              description: Whether or not the product is global.
              nullable: true
              x-one-of: locality
            region:
              type: string
              description: The region of the product.
              nullable: true
              x-one-of: locality
            zone:
              type: string
              description: The zone of the product.
              nullable: true
              x-one-of: locality
            datacenter:
              type: string
              description: The datacenter of the product.
              nullable: true
              x-one-of: locality
          x-properties-order:
          - global
          - region
          - zone
          - datacenter
        price:
          type: object
          description: The price of the product.
          properties:
            retail_price:
              type: object
              description: The retail price of the product.
              properties:
                currency_code:
                  type: string
                units:
                  type: integer
                  format: int64
                nanos:
                  type: integer
                  format: int32
              x-properties-order:
              - currency_code
              - units
              - nanos
          x-properties-order:
          - retail_price
        properties:
          type: object
          description: The properties of the product.
          properties:
            hardware:
              type: object
              description: The hardware properties of the product (if supported).
              properties:
                cpu:
                  type: object
                  description: The CPU hardware properties.
                  properties:
                    description:
                      type: string
                      description: A human readable description of the CPU.
                    arch:
                      type: string
                      description: The architecture of the CPU.
                      enum:
                      - unknown_arch
                      - x64
                      - arm64
                      - riscv
                      - apple_silicon
                      x-enum-descriptions:
                        values:
                          unknown_arch: Unknown architecture.
                          x64: X64.
                          arm64: ARM64.
                          riscv: RISC-V.
                          apple_silicon: Apple Silicon.
                      default: unknown_arch
                    type:
                      type: string
                      description: The type of the CPU.
                    virtual:
                      type: object
                      description: Properties if the CPU is virtual.
                      properties:
                        count:
                          type: integer
                          description: The number of vCPUs.
                          format: uint32
                      nullable: true
                      x-properties-order:
                      - count
                      x-one-of: compute_unit
                    physical:
                      type: object
                      description: Properties if the CPU is physical.
                      properties:
                        sockets:
                          type: integer
                          description: The number of sockets of the CPU.
                          format: uint32
                        cores_per_socket:
                          type: integer
                          description: The number of cores per socket.
                          format: uint32
                        threads_per_core:
                          type: integer
                          description: The number of threads per core.
                          format: uint32
                        frequency:
                          type: integer
                          description: The frequency of the CPU in Hertz.
                          format: uint64
                        benchmark:
                          type: integer
                          description: The benchmark score of the CPU.
                          format: uint32
                      nullable: true
                      x-properties-order:
                      - sockets
                      - cores_per_socket
                      - threads_per_core
                      - frequency
                      - benchmark
                      x-one-of: compute_unit
                    threads:
                      type: integer
                      description: The total number of threads.
                      format: uint32
                  x-properties-order:
                  - description
                  - arch
                  - type
                  - virtual
                  - physical
                  - threads
                ram:
                  type: object
                  description: The RAM hardware properties.
                  properties:
                    description:
                      type: string
                      description: A human-readable description of the RAM.
                    size:
                      type: integer
                      description: The size of the RAM in bytes. (in bytes)
                      format: uint64
                    type:
                      type: string
                      description: The type of the RAM.
                  x-properties-order:
                  - description
                  - size
                  - type
                storage:
                  type: object
                  description: The storage hardware properties.
                  properties:
                    description:
                      type: string
                      description: A human-readable description of the storage.
                    total:
                      type: integer
                      description: The total size of the storage in bytes. (in bytes)
                      format: uint64
                  x-properties-order:
                  - description
                  - total
                network:
                  type: object
                  description: The network hardware properties.
                  properties:
                    description:
                      type: string
                      description: A human-readable description of the network.
                    internal_bandwidth:
                      type: integer
                      description: The internal bandwidth in bits per second.
                      format: uint64
                    public_bandwidth:
                      type: integer
                      description: The default public bandwidth in bits per second.
                      format: uint64
                    max_public_bandwidth:
                      type: integer
                      description: The maximum public bandwidth in bits per second
                        (may require subscription to options).
                      format: uint64
                  x-properties-order:
                  - description
                  - internal_bandwidth
                  - public_bandwidth
                  - max_public_bandwidth
                gpu:
                  type: object
                  description: The GPU hardware properties.
                  properties:
                    description:
                      type: string
                      description: A human-readable description of the GPU.
                    count:
                      type: integer
                      description: The number of GPUs.
                      format: uint32
                    type:
                      type: string
                      description: The type of the GPU.
                  x-properties-order:
                  - description
                  - count
                  - type
              x-properties-order:
              - cpu
              - ram
              - storage
              - network
              - gpu
            dedibox:
              type: object
              description: The properties of Dedibox products.
              properties:
                range:
                  type: string
                  description: The range of the Dedibox server.
                offer_id:
                  type: integer
                  description: The offer ID of the Dedibox server.
                  format: int64
              nullable: true
              x-properties-order:
              - range
              - offer_id
              x-one-of: properties
            elastic_metal:
              type: object
              description: The properties of Elastic Metal products.
              properties:
                range:
                  type: string
                  description: The range of the Elastic Metal server.
                offer_id:
                  type: string
                  description: The offer ID of the Elastic Metal server.
              nullable: true
              x-properties-order:
              - range
              - offer_id
              x-one-of: properties
            apple_silicon:
              type: object
              description: The properties of Apple Silicon products.
              properties:
                range:
                  type: string
                  description: The range of the Apple Silicon server.
                server_type:
                  type: string
                  description: The server type of the Apple Silicon server.
              nullable: true
              x-properties-order:
              - range
              - server_type
              x-one-of: properties
            instance:
              type: object
              description: The properties of Instance products.
              properties:
                range:
                  type: string
                  description: The range of the Instance server.
                offer_id:
                  type: string
                  description: The offer ID of the Instance server.
                recommended_replacement_offer_ids:
                  type: array
                  description: The recommended replacement offer IDs of the Instance
                    server.
                  items:
                    type: string
              nullable: true
              x-properties-order:
              - range
              - offer_id
              - recommended_replacement_offer_ids
              x-one-of: properties
            block_storage:
              type: object
              description: The properties of Block Storage products.
              properties:
                min_volume_size:
                  type: integer
                  description: The minimum size of storage volume for this product
                    in bytes. Deprecated. (in bytes)
                  deprecated: true
                  format: uint64
                max_volume_size:
                  type: integer
                  description: The maximum size of storage volume for this product
                    in bytes. Deprecated. (in bytes)
                  deprecated: true
                  format: uint64
              nullable: true
              x-properties-order:
              - min_volume_size
              - max_volume_size
              x-one-of: properties
            object_storage:
              type: object
              description: The properties of Object Storage products.
              properties:
                class:
                  type: object
                  description: The properties related to Object Storage class.
                  properties:
                    storage_class:
                      type: string
                      description: The storage class.
                      enum:
                      - unknown_storage_class
                      - standard
                      - glacier
                      - onezone_ia
                      x-enum-descriptions:
                        values:
                          unknown_storage_class: Unknown storage class.
                          standard: Standard storage class.
                          glacier: Glacier storage class.
                          onezone_ia: One Zone Infrequent Access storage class.
                      default: unknown_storage_class
                  nullable: true
                  x-properties-order:
                  - storage_class
                  x-one-of: type
                restore:
                  type: object
                  description: The properties related to Object Storage restore operations.
                  properties:
                    restore_type:
                      type: string
                      description: The type of restore.
                      enum:
                      - unknown_restore_type
                      - standard
                      x-enum-descriptions:
                        values:
                          unknown_restore_type: Unknown restore type.
                          standard: Standard restore type.
                      default: unknown_restore_type
                  nullable: true
                  x-properties-order:
                  - restore_type
                  x-one-of: type
                internet_traffic:
                  type: object
                  description: The properties related to Object Storage internet traffic.
                  properties:
                    traffic_type:
                      type: string
                      description: The type of internet traffic.
                      enum:
                      - unknown_traffic_type
                      - ingress
                      - egress
                      x-enum-descriptions:
                        values:
                          unknown_traffic_type: Unknown traffic type.
                          ingress: Ingress traffic type.
                          egress: Egress traffic type.
                      default: unknown_traffic_type
                  nullable: true
                  x-properties-order:
                  - traffic_type
                  x-one-of: type
                region_traffic:
                  type: object
                  description: The properties related to Object Storage region traffic.
                  properties:
                    region_destination:
                      type: string
                      description: The destination region for the region traffic.
                  nullable: true
                  x-properties-order:
                  - region_destination
                  x-one-of: type
              nullable: true
              x-properties-order:
              - class
              - restore
              - internet_traffic
              - region_traffic
              x-one-of: properties
            managed_inference:
              type: object
              description: The properties of Managed Inference products.
              properties:
                instance_gpu_name:
                  type: string
                  description: The name of the associated instance GPU to this node
                    type.
              nullable: true
              x-properties-order:
              - instance_gpu_name
              x-one-of: properties
            generative_apis:
              type: object
              description: The properties of Generative APIs products.
              properties:
                reasoning:
                  type: boolean
                supported_apis:
                  type: array
                  items:
                    type: string
                consumption_mode:
                  $ref: '#/components/schemas/scaleway.product_catalog.v2alpha1.PublicCatalogProduct.Properties.GenerativeApis.ConsumptionMode'
              nullable: true
              x-properties-order:
              - reasoning
              - supported_apis
              - consumption_mode
              x-one-of: properties
            load_balancer:
              type: object
              description: The properties of Load Balancer products.
              properties:
                node:
                  type: object
                  description: The properties related to Load Balancer nodes.
                  properties:
                    offer_id:
                      type: string
                      description: The offer ID of the Load Balancer product.
                    multi_cloud_provider:
                      type: boolean
                      description: Whether the Load Balancer product is available
                        for multi-cloud providers.
                    bandwidth:
                      type: integer
                      description: The bandwidth of the Load Balancer product in bits
                        per second.
                      format: uint64
                  nullable: true
                  x-properties-order:
                  - offer_id
                  - multi_cloud_provider
                  - bandwidth
                  x-one-of: type
                ipv4:
                  type: object
                  description: The properties related to Load Balancer IPv4.
                  nullable: true
                  x-one-of: type
              nullable: true
              x-properties-order:
              - node
              - ipv4
              x-one-of: properties
            secret_manager:
              type: object
              nullable: true
              x-one-of: properties
            managed_redis_database:
              type: object
              description: The properties of Managed Redis Database products.
              nullable: true
              x-one-of: properties
            key_manager:
              type: object
              nullable: true
              x-one-of: properties
            kubernetes:
              type: object
              description: The properties of Kubernetes products.
              properties:
                kapsule_control_plane:
                  type: object
                  description: The properties related to Kapsule Control Plane products.
                  nullable: true
                  x-one-of: type
                kosmos_control_plane:
                  type: object
                  description: The properties related to Kosmos Control Plane products.
                  nullable: true
                  x-one-of: type
                kosmos_node:
                  type: object
                  description: The properties related to Kosmos nodes.
                  nullable: true
                  x-one-of: type
              nullable: true
              x-properties-order:
              - kapsule_control_plane
              - kosmos_control_plane
              - kosmos_node
              x-one-of: properties
            managed_relational_database:
              type: object
              description: The properties of Managed Relational Database products.
              properties:
                management:
                  type: object
                  description: The properties related to Relational Database Management
                    type.
                  nullable: true
                  x-one-of: type
                node:
                  type: object
                  description: The properties related to Relational Database Nodes.
                  nullable: true
                  x-one-of: type
                storage:
                  type: object
                  description: The properties related to Relational Database Storage
                    type.
                  properties:
                    storage_class:
                      type: string
                      description: The type of Storage class.
                      enum:
                      - unknown_storage_class
                      - block_ssd
                      - block_ssd_snapshot
                      - local_ssd
                      - sbs_5k
                      - sbs_5k_snapshot
                      - sbs_15k
                      - sbs_15k_snapshot
                      - backup
                      x-enum-descriptions:
                        values:
                          unknown_storage_class: Unknown storage class.
                          block_ssd: Block SSD type.
                          block_ssd_snapshot: Block SSD Snapshot type.
                          local_ssd: Local SSD type.
                          sbs_5k: Block SBS 5k type.
                          sbs_5k_snapshot: Block SBS 5k Snapshot type.
                          sbs_15k: Block SBS 15k type.
                          sbs_15k_snapshot: Block SBS 15k Snapshot type.
                          backup: Backup type.
                      default: unknown_storage_class
                  nullable: true
                  x-properties-order:
                  - storage_class
                  x-one-of: type
                multi_az:
                  type: object
                  description: The properties related to Relational Database Multi
                    AZ type.
                  nullable: true
                  x-one-of: type
              nullable: true
              x-properties-order:
              - management
              - node
              - storage
              - multi_az
              x-one-of: properties
            managed_mongodb:
              type: object
              properties:
                management:
                  type: object
                  description: The properties related to MongoDB Management type.
                  nullable: true
                  x-one-of: type
                node:
                  type: object
                  description: The properties related to MongoDB Node type.
                  nullable: true
                  x-one-of: type
                storage:
                  type: object
                  description: The properties related to MongoDB Storage type.
                  properties:
                    storage_class:
                      type: string
                      description: The type of Storage class.
                      enum:
                      - unknown_storage_class
                      - sbs_5k
                      - sbs_5k_snapshot
                      - sbs_15k
                      - sbs_15k_snapshot
                      x-enum-descriptions:
                        values:
                          unknown_storage_class: Unknown storage class.
                          sbs_5k: Block SBS 5k type.
                          sbs_5k_snapshot: Block SBS 5k Snapshot type.
                          sbs_15k: Block SBS 15k type.
                          sbs_15k_snapshot: Block SBS 15k Snapshot type.
                      default: unknown_storage_class
                  nullable: true
                  x-properties-order:
                  - storage_class
                  x-one-of: type
              nullable: true
              x-properties-order:
              - management
              - node
              - storage
              x-one-of: properties
          x-properties-order:
          - hardware
          - dedibox
          - elastic_metal
          - apple_silicon
          - instance
          - block_storage
          - object_storage
          - managed_inference
          - generative_apis
          - load_balancer
          - secret_manager
          - managed_redis_database
          - key_manager
          - kubernetes
          - managed_relational_database
          - managed_mongodb
        environmental_impact_estimation:
          type: object
          description: The environmental impact estimation of the product.
          properties:
            kg_co2_equivalent:
              type: number
              format: float
              nullable: true
            m3_water_usage:
              type: number
              format: float
              nullable: true
          x-properties-order:
          - kg_co2_equivalent
          - m3_water_usage
        unit_of_measure:
          type: object
          description: The unit of measure of the product.
          properties:
            unit:
              $ref: '#/components/schemas/scaleway.product_catalog.v2alpha1.PublicCatalogProduct.UnitOfMeasure.CountableUnit'
            size:
              type: integer
              format: uint64
          x-properties-order:
          - unit
          - size
        status:
          type: string
          description: The status of the product.
          enum:
          - unknown_status
          - public_beta
          - preview
          - general_availability
          - end_of_new_features
          - end_of_growth
          - end_of_deployment
          - end_of_support
          - end_of_sale
          - end_of_life
          - retired
          x-enum-descriptions:
            values:
              unknown_status: Unknown status.
              public_beta: The product is available in Public Beta.
              preview: The product is available in Preview mode.
              general_availability: The product is generally available.
              end_of_deployment: The product must not be used for new deployments.
              end_of_support: There is no longer any commercial support for this product.
              end_of_sale: The product is not sold anymore but is still in use.
              end_of_life: The product is at its end of life.
              retired: The product is retired.
          default: unknown_status
        end_of_life_at:
          type: string
          description: The end of life date of the product. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        end_of_growth_at:
          type: string
          description: The end of growth date of the product. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        end_of_sale_at:
          type: string
          description: The end of sale date of the product. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        badges:
          type: array
          description: Different badges that can be associated with the product.
          items:
            $ref: '#/components/schemas/scaleway.product_catalog.v2alpha1.PublicCatalogProduct.ProductBadge'
      x-properties-order:
      - sku
      - service_category
      - product_category
      - product
      - variant
      - description
      - locality
      - price
      - properties
      - environmental_impact_estimation
      - unit_of_measure
      - status
      - end_of_life_at
      - end_of_growth_at
      - end_of_sale_at
      - badges
    scaleway.product_catalog.v2alpha1.PublicCatalogProduct.ProductBadge:
      type: string
      enum:
      - unknown_product_badge
      - new_product
      - best_seller
      - best_value
      - popular
      default: unknown_product_badge
    scaleway.product_catalog.v2alpha1.PublicCatalogProduct.Properties.GenerativeApis.ConsumptionMode:
      type: string
      enum:
      - unknown_consumption_mode
      - realtime
      - batch
      default: unknown_consumption_mode
    scaleway.product_catalog.v2alpha1.PublicCatalogProduct.UnitOfMeasure.CountableUnit:
      type: string
      enum:
      - unknown_countable_unit
      - chunk
      - core
      - currency
      - device
      - domain
      - email
      - gb_s
      - gigabyte
      - hour
      - iops_gigabyte
      - ip
      - month
      - node
      - plan
      - query
      - request
      - session
      - vcpu_s
      - version
      - year
      - key
      - token
      - minute
      - setup
      - day
      - second
      - sample_day
      - gigabyte_day
      - mvcpu
      x-enum-descriptions:
        values:
          unknown_countable_unit: Unknown countable unit.
          chunk: Chunk.
          core: Core.
          currency: Currency.
          device: Device.
          domain: Domain.
          email: Email.
          gb_s: GB/s.
          gigabyte: Gigabyte.
          hour: Hour.
          iops_gigabyte: IOPS gigabyte.
          ip: IP.
          month: Month.
          node: Node.
          plan: Plan.
          query: Query.
          request: Request.
          session: Session.
          vcpu_s: VCPU/s.
          version: Version.
          year: Year.
          key: Key.
          token: Token.
          minute: Minute.
          setup: The installation of a resource (software or hardware).
          day: Day.
          second: Second.
          sample_day: Sample per day.
          gigabyte_day: Gigabyte per day.
      default: unknown_countable_unit
  securitySchemes:
    scaleway:
      in: header
      name: X-Auth-Token
      type: apiKey
paths:
  /product-catalog/v2alpha1/public-catalog/products:
    get:
      tags:
      - Product catalog
      operationId: ListPublicCatalogProducts
      summary: List all available products
      description: List all available products in the Scaleway catalog. Returns a
        complete list of products with their corresponding description, locations,
        prices and properties. You can define the `page` number and `page_size` for
        your query in the request.
      parameters:
      - in: query
        name: page
        description: Number of the page. Value must be greater or equal to 1.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: The number of products per page. Value must be greater or equal
          to 1.
        schema:
          type: integer
          format: uint32
      - in: query
        name: product_types
        description: The list of filtered product categories.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.product_catalog.v2alpha1.ListPublicCatalogProductsRequest.ProductType'
      - in: query
        name: status
        description: The lists of filtered product status, if empty only products
          with status public_beta, general_availability, preview, end_of_new_features,
          end_of_growth, end_of_deployment, end_of_support, end_of_sale, end_of_life
          or retired will be returned.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.product_catalog.v2alpha1.ListPublicCatalogProductsRequest.Status'
      - in: query
        name: api_ids
        description: 'Filter products by API IDs. Each ID is matched against product-specific
          identifiers: `dedibox.offer_id` (converted to string), `elastic_metal.offer_id`,
          `apple_silicon.server_type`, `instance.offer_id`, and `load_balancer.node.offer_id`.
          Products that do not support API ID filtering are excluded from the results.
          If empty, no filtering is applied.'
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.product_catalog.v2alpha1.ListPublicCatalogProductsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/product-catalog/v2alpha1/public-catalog/products"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/product-catalog/v2alpha1/public-catalog/products" \
            X-Auth-Token:$SCW_SECRET_KEY
