openapi: 3.0.0
info:
  title: Edge Services API
  description: "Edge Services allows you to easily, securely and reliably expose your
    HTTP service to the internet via a single entry point. With Edge Services, you
    can enhance performance by enabling caching on Scaleway Object Storage buckets
    (S3) or Scaleway-Load Balancers, as well as customize your endpoints with your
    own domain and SSL/TLS certificate.\n\n(switchcolumn)\n(switchcolumn)\n\n## Quickstart\n\nThis
    quickstart shows you how to set up Edge Services on a Scaleway Object Storage
    bucket (S3).\n\n1. Configure your environment variables.\n\n    <Message type=\"note\">\n
    \   This is an optional step that seeks to simplify your usage of the Edge Services
    API.\n    </Message>\n\n    ```bash\n    export SCW_SECRET_KEY=\"<API secret key>\"\n
    \   export SCW_PROJECT_ID=\"<Scaleway Project ID>\"\n    ```\n\n2. **Create a
    Pipeline**: run the following command to create an empty pipeline. This pipeline
    is the main Edge Services object and represents how an HTTP request to your Object
    Storage bucket or Load Balancer via Edge Services will be processed.\n\n    ```bash\n
    \   curl -X POST \\\n      -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n      \"https://api.scaleway.com/edge-services/v1beta1/pipelines\"
    \\\n      -d '{\n        \"project_id\":\"'$SCW_PROJECT_ID'\",\n        \"name\":\"mypipeline\",\n
    \       \"description\":\"my-pipeline\"\n      }'\n    ```\n\n3. **Create a Backend
    Stage**: run the following command to create a backend stage, which defines the
    origin service which Edge Services will point to. In this example, we point to
    a Scaleway Object Storage bucket called `my-scw-bucket`. Ensure that you replace
    `<PIPELINE_ID>` in the URL with the ID of the pipeline.\n\n    ```bash\n    curl
    -X POST \\\n      -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n      \"https://api.scaleway.com/edge-services/v1beta1/pipelines/<PIPELINE_ID>/backend-stages\"
    \\\n      -d '{\n        \"scalewayS3\":{\n            \"bucket_name\":\"my-scw-bucket\",\n
    \           \"bucket_region\":\"fr-par\",\n            \"is_website\":true\n        }\n
    \     }'\n    ```\n\n4. **Create a Cache Stage**: run the following command to
    create a cache stage, which defines the caching configuration for Edge Services
    on the previously-defined backend stage (origin). The example below sets the a
    custom TTL of 30 minutes for the cache. Ensure that you replace `<BACKEND_STAGE_ID>`
    with the ID of the previously created backend stage and that you replace `<PIPELINE_ID>`
    in the URL with the ID of the pipeline.\n\n    ```bash\n    curl -X POST \\\n
    \     -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n      \"https://api.scaleway.com/edge-services/v1beta1/pipelines/<PIPELINE_ID>/cache-stages\"
    \\\n      -d '{\n        \"fallback_ttl\":\"1800s\",\n        \"backend_stage_id\":\"<BACKEND_STAGE_ID>\"\n
    \     }'\n    ```\n\n5. **Create a TLS Stage**: run the following command to create
    a TLS stage, which defines the SSL/TLS certificate for Edge Services on the previously-defined
    backend stage (origin). In the example below, an auto-created Saleway-managed
    Let's Encrypt certificate is configured. Ensure that you replace `<CACHE_STAGE_ID>`
    with the ID of the previously created cache stage and that you replace `<PIPELINE_ID>`
    in the URL with the ID of the pipeline.\n\n    ```bash\n    curl -X POST \\\n
    \     -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n      \"https://api.scaleway.com/edge-services/v1beta1/pipelines/<PIPELINE_ID>/tls-stages\"
    \\\n      -d '{\n        \"managed_certificate\":true,\n        \"cache_stage_id\":\"<CACHE_STAGE_ID>\"\n
    \     }'\n    ```\n\n6. **Create a DNS Stage**: run the following command to create
    a DNS stage, which defines a custom domain as an endpoint for Edge Services on
    your backend stage (origin). You must already own the domain. In the example below
    we use `myendpoint.example.com`. Ensure that you replace `<TLS_STAGE_ID>` with
    the ID of the previously created TLS stage and that you replace `<PIPELINE_ID>`
    in the URL with the ID of the pipeline.\n\n    ```bash\n    curl -X POST \\\n
    \     -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n      \"https://api.scaleway.com/edge-services/v1beta1/pipelines/<PIPELINE_ID>/dns-stages\"
    \\\n      -d '{\n        \"fqdns\":[\"myendpoint.example.com\"],\n        \"tls_stage_id\":\"<TLS_STAGE_ID>\"\n
    \     }'\n    ```\n\n7. **Define the Head of the Pipeline**: run the following
    command to set the previously created DNS stage as first stage or `Head` of the
    Pipeline, to trigger the Pipeline configuration. Ensure that you replace `<PIPELINE_ID>`
    in the URL with the ID of the pipeline.\n\n    ```bash\n    curl -X POST \\\n
    \     -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n      \"https://api.scaleway.com/edge-services/v1beta1/pipelines/<PIPELINE_ID>/set-head-stage\"
    \\\n      -d '{\n        \"add_new_head_stage\":{\n          \"new_stage_id\":\"<DNS_STAGE_ID>\"\n
    \       }\n      }'\n    ```\n\n8. **Access your endpoint**: Once you have created
    a [CNAME record](https://www.scaleway.com/en/docs/network/edge-services/reference-content/cname-record/)
    pointing towards the Edge Services default endpoint, yan can run the following
    command to test your pipeline. Ensure that you customize the URL according to
    the domain you set in step 6, and that you replace `myimage.png` with an appropriate
    filename that is actually in your Object Storage bucket. You can also test the
    URL through your web browser. Edge Services will serve the requested object. Once
    your content is cached, you can inspect the HTTP header `X-Cache` and see that
    the response is `hit-fresh`.\n\n    ```bash\n    curl -i https://myendpoint.example.com/myimage.png\n
    \   ```\n\n9. **Delete your pipeline**: run the following command to delete a
    pipeline. Ensure that you replace `<PIPELINE_ID>` in the URL with the ID of the
    pipeline you want to delete. Note that it will also delete all of the associated
    stages.\n\n    ```bash\n    curl -X DELETE \\\n      -H \"X-Auth-Token: $SCW_SECRET_KEY\"
    \\\n      \"https://api.scaleway.com/edge-services/v1beta1/pipelines/<PIPELINE_ID>\"\n
    \   ```\n\n(switchcolumn)       \n<Message type=\"requirement\">\n- You have a
    [Scaleway account](https://console.scaleway.com/)\n- You have created an [API
    key](https://www.scaleway.com/en/docs/identity-and-access-management/iam/how-to/create-api-keys/)
    and that the API key has sufficient [IAM permissions](https://www.scaleway.com/en/docs/identity-and-access-management/iam/reference-content/permission-sets/)
    to perform the actions described on this page\n- You have [installed `curl`](https://curl.se/download.html)\n-
    You have created a [Scaleway Object Storage bucket](https://www.scaleway.com/en/docs/storage/object/)\n</Message>\n(switchcolumn)\n\n##
    Technical information\n\n### Availability\n\nScaleway Edge Services is currently
    available globally. Find out about [product availability in our dedicated documentation](https://www.scaleway.com/en/docs/console/account/reference-content/products-availability/).\n\nEdge
    Services is currently available for Scaleway Object Storage backends only.\n\n###
    Pipeline Stages\n\nAn Edge Services pipeline contains a set of interlinked stages.\n\nThe
    following links are possible :\n- Pipeline > DNS stage > TLS stage > Cache stage
    > Backend stage\n- Pipeline > DNS stage > TLS stage > Backend stage\n\nIf you
    wish to set up Edge Services without customizing the domain (that is, using the
    default endpoint), you can create empty TLS and DNS stages and pass them to the
    pipeline.\n- Create the TLS stage with only the `project_id` and `backend_stage_id`
    (or `cache_stage_id` if caching feature is needed) parameters.\n- Create the DNS
    stage with only the `project_id` and `tls_stage_id` parameters.\n\n## Technical
    limitations\n\n- A backend stage must point either to a Scaleway Object Storage
    bucket (`scalewayS3`) or to a Scaleway Load Balancer (`scalewayLb`)\n- Only one
    pipeline is allowed per Object Storage bucket\n- The TLS stage currently only
    supports one SSL/TLS certificate\n- The DNS stage currently only supports one
    FQDN (Fully Qualified Domain Name)\n\n\n## Going further\n\nFor more help using
    Scaleway Edge Services, check out the following resources:\n- Our [main documentation](https://www.scaleway.com/en/docs/storage/object/how-to/get-started-edge-services/)\n-
    The #edge-services channel on our [Slack Community](https://www.scaleway.com/en/docs/tutorials/scaleway-slack-community/)\n-
    Our [support ticketing system](https://www.scaleway.com/en/docs/console/my-account/how-to/open-a-support-ticket/)."
  version: v1beta1
servers:
- url: https://api.scaleway.com
tags:
- name: Pipelines
  description: The main Edge Services object. A pipeline is made up of ordered stages
    and represents how an HTTP request will be processed, from the source (client)
    to the destination (origin).
- name: DNS stages
  description: A DNS stage is part of a pipeline. It allows you to customize the domain
    of your Edge Services endpoint with a subdomain of a domain you own. This is useful
    if you do not want to use the default domain endpoint provided by Scaleway. Edge
    Services will then serve content from your customized domain. A TLS stage is also
    necessary to provide an SSL/TLS certificate so that Edge Services can serve traffic
    for your customized domain over HTTPS.
- name: TLS stages
  description: A TLS stage is part of a pipeline. It allows you to provide an SSL/TLS
    certificate for your customized domain (DNS stage) - without this, Edge Services
    cannot serve traffic for your customized domain over HTTPS. This could be a custom
    certificate stored in [Scaleway Secret Manager](https://www.scaleway.com/en/docs/identity-and-access-management/secret-manager/),
    or a Let's Encrypt certificate generated and managed by Scaleway.
- name: Cache stages
  description: A cache stage is part of a pipeline. It allows you to cache your origin's
    content, so it will be served directly to users from a cache on Edge Services'
    servers, enhancing performance. Note that including a cache stage in your pipeline
    is optional.
- name: Backend stages
  description: A backend stage is part of a pipeline. It defines the source of the
    content that Edge Services will serve to clients. It could be either a [Scaleway
    Object Storage](https://www.scaleway.com/en/docs/storage/object/) bucket ("S3")
    or a [Scaleway Load Balancer](https://www.scaleway.com/en/docs/network/load-balancer/).
- name: Purge requests
  description: A purge request allows you to remove content from the cache (if a cache
    stage has been created). You can choose to purge the entire cache, or limit the
    purge to specified assets.
components:
  schemas:
    google.protobuf.Int32Value:
      type: integer
      format: int32
      nullable: true
    google.protobuf.StringValue:
      type: string
      nullable: true
    scaleway.edge_services.v1beta1.BackendStage:
      type: object
      properties:
        id:
          type: string
          description: ID of the backend stage.
        pipeline_id:
          type: string
          description: Pipeline ID the backend stage belongs to.
        created_at:
          type: string
          description: Date the backend stage was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Date the backend stage was last updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        scaleway_s3:
          type: object
          description: Scaleway Object Storage origin bucket (S3) linked to the backend
            stage.
          properties:
            bucket_name:
              type: string
              description: Name of the Bucket.
              nullable: true
            bucket_region:
              type: string
              description: Region of the Bucket.
              nullable: true
            is_website:
              type: boolean
              description: Defines whether the bucket website feature is enabled.
              nullable: true
          nullable: true
          x-properties-order:
          - bucket_name
          - bucket_region
          - is_website
          x-one-of: backend_config
        scaleway_lb:
          type: object
          description: Scaleway Load Balancer origin linked to the backend stage.
          properties:
            lbs:
              type: array
              description: Load Balancer information.
              items:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.ScalewayLb'
          nullable: true
          x-properties-order:
          - lbs
          x-one-of: backend_config
      x-properties-order:
      - id
      - pipeline_id
      - created_at
      - updated_at
      - scaleway_s3
      - scaleway_lb
    scaleway.edge_services.v1beta1.CacheStage:
      type: object
      properties:
        id:
          type: string
          description: ID of the cache stage.
        pipeline_id:
          type: string
          description: Pipeline ID the cache stage belongs to.
        fallback_ttl:
          type: string
          description: Time To Live (TTL) in seconds. Defines how long content is
            cached. (in seconds)
          example: 2.5s
          nullable: true
        created_at:
          type: string
          description: Date the cache stage was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Date the cache stage was last updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        backend_stage_id:
          type: string
          description: Backend stage ID the cache stage is linked to. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
          nullable: true
          x-one-of: next
        waf_stage_id:
          type: string
          description: (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
          nullable: true
          x-one-of: next
        route_stage_id:
          type: string
          description: (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
          nullable: true
          x-one-of: next
      x-properties-order:
      - id
      - pipeline_id
      - fallback_ttl
      - created_at
      - updated_at
      - backend_stage_id
      - waf_stage_id
      - route_stage_id
    scaleway.edge_services.v1beta1.CheckDomainResponse:
      type: object
      properties:
        is_valid:
          type: boolean
      x-properties-order:
      - is_valid
    scaleway.edge_services.v1beta1.CheckLbOriginResponse:
      type: object
      properties:
        is_valid:
          type: boolean
        error_type:
          $ref: '#/components/schemas/scaleway.edge_services.v1beta1.LbOriginError'
      x-properties-order:
      - is_valid
      - error_type
    scaleway.edge_services.v1beta1.CheckPEMChainResponse:
      type: object
      properties:
        is_valid:
          type: boolean
      x-properties-order:
      - is_valid
    scaleway.edge_services.v1beta1.DNSStage:
      type: object
      properties:
        id:
          type: string
          description: ID of the DNS stage.
        fqdns:
          type: array
          description: List of Fully Qualified Domain Names attached to the stage.
          items:
            type: string
        type:
          type: string
          description: Type of the stage.
          enum:
          - unknown_type
          - auto
          - managed
          - custom
          x-enum-descriptions:
            values:
              unknown_type: DNS stage type unknown (default)
              auto: The DNS stage is configured with the default FQDN
              managed: Custom FQDN has been provided, managed by Scaleway Domains
                and DNS
              custom: Custom FQDN has been provided, not managed by Scaleway Domains
                and DNS
          default: unknown_type
        pipeline_id:
          type: string
          description: Pipeline ID the DNS stage belongs to.
        created_at:
          type: string
          description: Date the DNS stage was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Date the DNS stage was last updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        tls_stage_id:
          type: string
          description: TLS stage ID the DNS stage is linked to. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
          nullable: true
          x-one-of: next
        cache_stage_id:
          type: string
          description: Cache stage ID the DNS stage is linked to. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
          nullable: true
          x-one-of: next
        backend_stage_id:
          type: string
          description: Backend stage ID the DNS stage is linked to. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
          nullable: true
          x-one-of: next
      x-properties-order:
      - id
      - fqdns
      - type
      - pipeline_id
      - created_at
      - updated_at
      - tls_stage_id
      - cache_stage_id
      - backend_stage_id
    scaleway.edge_services.v1beta1.GetBillingResponse:
      type: object
      properties:
        current_plan:
          type: object
          description: Information on the currently-selected, active Edge Services
            subscription plan.
          properties:
            plan_name:
              type: string
              description: Subscription plan name.
              enum:
              - unknown_name
              - starter
              - professional
              - advanced
              default: unknown_name
            package_gb:
              type: integer
              description: Amount of egress data from cache included in subscription
                plan.
              format: uint64
            pipeline_limit:
              type: integer
              description: Number of pipelines included in subscription plan.
              format: uint32
            waf_requests:
              type: integer
              description: Number of WAF requests included in subscription plan.
              format: uint64
          x-properties-order:
          - plan_name
          - package_gb
          - pipeline_limit
          - waf_requests
        plan_cost:
          type: object
          description: Cost to date (this month) for Edge Service subscription plans.
            This comprises the pro-rata cost of the current subscription plan, and
            any previous subscription plans that were active earlier in the month.
          properties:
            currency_code:
              type: string
            units:
              type: integer
              format: int64
            nanos:
              type: integer
              format: int32
          x-properties-order:
          - currency_code
          - units
          - nanos
        pipeline_number:
          type: integer
          description: Total number of pipelines currently configured.
          format: uint32
        extra_pipelines_cost:
          type: object
          description: Cost to date (this month) of pipelines not included in the
            subscription plans.
          properties:
            currency_code:
              type: string
            units:
              type: integer
              format: int64
            nanos:
              type: integer
              format: int32
          x-properties-order:
          - currency_code
          - units
          - nanos
        current_plan_cache_usage:
          type: integer
          description: Total amount of data egressed from the cache in gigabytes from
            the beginning of the month, for the active subscription plan.
          format: uint64
        extra_cache_usage:
          type: integer
          description: Total amount of extra data egressed from cache in gigabytes
            from the beginning of the month, not included in the subscription plans.
          format: uint64
        extra_cache_cost:
          type: object
          description: Cost to date (this month) of the data egressed from the cache
            that is not included in the subscription plans.
          properties:
            currency_code:
              type: string
            units:
              type: integer
              format: int64
            nanos:
              type: integer
              format: int32
          x-properties-order:
          - currency_code
          - units
          - nanos
        current_plan_waf_usage:
          type: integer
          description: Total number of requests processed by the WAF since the beginning
            of the current month, for the active subscription plan.
          format: uint64
        extra_waf_usage:
          type: integer
          description: Total number of extra requests processed by the WAF from the
            beginning of the month, not included in the subscription plans.
          format: uint64
        extra_waf_cost:
          type: object
          description: Cost to date (this month) of the extra requests processed by
            the WAF that were not included in the subscription plans.
          properties:
            currency_code:
              type: string
            units:
              type: integer
              format: int64
            nanos:
              type: integer
              format: int32
          x-properties-order:
          - currency_code
          - units
          - nanos
        waf_add_on:
          type: object
          description: Cost of activating WAF add-on (where subscription plan does
            not include WAF).
          properties:
            currency_code:
              type: string
            units:
              type: integer
              format: int64
            nanos:
              type: integer
              format: int32
          x-properties-order:
          - currency_code
          - units
          - nanos
        plans_usage_details:
          type: object
          description: Detailed costs and usage for all Edge Services subscription
            plans that were activated during the month.
          properties:
            <plans_usage_detailKey>:
              $ref: '#/components/schemas/scaleway.edge_services.v1beta1.PlanUsageDetails'
          additionalProperties: true
        total_cost:
          type: object
          description: Total cost to date (this month) of all Edge Services resources
            including active subscription plan, previously active plans, extra pipelines
            and extra egress cache data.
          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:
      - current_plan
      - plan_cost
      - pipeline_number
      - extra_pipelines_cost
      - current_plan_cache_usage
      - extra_cache_usage
      - extra_cache_cost
      - current_plan_waf_usage
      - extra_waf_usage
      - extra_waf_cost
      - waf_add_on
      - plans_usage_details
      - total_cost
    scaleway.edge_services.v1beta1.HeadStageResponse:
      type: object
      properties:
        head_stage:
          type: object
          description: Modified or created head stage.
          properties:
            dns_stage_id:
              type: string
              description: (UUID format)
              example: 6170692e-7363-616c-6577-61792e636f6d
              nullable: true
              x-one-of: head
          x-properties-order:
          - dns_stage_id
      x-properties-order:
      - head_stage
    scaleway.edge_services.v1beta1.LbOriginError:
      type: string
      enum:
      - unknown
      - timeout
      - connection_refused
      - tls_error
      default: unknown
    scaleway.edge_services.v1beta1.ListBackendStagesResponse:
      type: object
      properties:
        stages:
          type: array
          description: Paginated list of backend stages.
          items:
            $ref: '#/components/schemas/scaleway.edge_services.v1beta1.BackendStage'
        total_count:
          type: integer
          description: Count of all backend stages matching the requested criteria.
          format: uint64
      x-properties-order:
      - stages
      - total_count
    scaleway.edge_services.v1beta1.ListCacheStagesResponse:
      type: object
      properties:
        stages:
          type: array
          description: Paginated list of cache stages.
          items:
            $ref: '#/components/schemas/scaleway.edge_services.v1beta1.CacheStage'
        total_count:
          type: integer
          description: Count of all cache stages matching the requested criteria.
          format: uint64
      x-properties-order:
      - stages
      - total_count
    scaleway.edge_services.v1beta1.ListDNSStagesResponse:
      type: object
      properties:
        stages:
          type: array
          description: Paginated list of DNS stages.
          items:
            $ref: '#/components/schemas/scaleway.edge_services.v1beta1.DNSStage'
        total_count:
          type: integer
          description: Count of all DNS stages matching the requested criteria.
          format: uint64
      x-properties-order:
      - stages
      - total_count
    scaleway.edge_services.v1beta1.ListHeadStagesResponse:
      type: object
      properties:
        head_stages:
          type: array
          description: Number of head stages to return per page.
          items:
            $ref: '#/components/schemas/scaleway.edge_services.v1beta1.ListHeadStagesResponse.HeadStage'
        total_count:
          type: integer
          description: Count of all head stages matching the requested pipeline_id.
          format: uint64
      x-properties-order:
      - head_stages
      - total_count
    scaleway.edge_services.v1beta1.ListHeadStagesResponse.HeadStage:
      type: object
      properties:
        dns_stage_id:
          type: string
          description: (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
          nullable: true
          x-one-of: head
      x-properties-order:
      - dns_stage_id
    scaleway.edge_services.v1beta1.ListPipelinesResponse:
      type: object
      properties:
        pipelines:
          type: array
          description: Paginated list of pipelines.
          items:
            $ref: '#/components/schemas/scaleway.edge_services.v1beta1.Pipeline'
        total_count:
          type: integer
          description: Count of all pipelines matching the requested criteria.
          format: uint64
      x-properties-order:
      - pipelines
      - total_count
    scaleway.edge_services.v1beta1.ListPipelinesWithStagesRequest.OrderBy:
      type: string
      enum:
      - created_at_asc
      - created_at_desc
      - name_asc
      - name_desc
      default: created_at_asc
    scaleway.edge_services.v1beta1.ListPipelinesWithStagesResponse:
      type: object
      properties:
        pipelines:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.edge_services.v1beta1.PipelineStages'
        total_count:
          type: integer
          format: uint64
      x-properties-order:
      - pipelines
      - total_count
    scaleway.edge_services.v1beta1.ListPlansResponse:
      type: object
      properties:
        total_count:
          type: integer
          format: uint64
        plans:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.edge_services.v1beta1.PlanDetails'
      x-properties-order:
      - total_count
      - plans
    scaleway.edge_services.v1beta1.ListPurgeRequestsResponse:
      type: object
      properties:
        purge_requests:
          type: array
          description: Paginated list of purge requests.
          items:
            $ref: '#/components/schemas/scaleway.edge_services.v1beta1.PurgeRequest'
        total_count:
          type: integer
          description: Count of all purge requests matching the requested criteria.
          format: uint64
      x-properties-order:
      - purge_requests
      - total_count
    scaleway.edge_services.v1beta1.ListTLSStagesResponse:
      type: object
      properties:
        stages:
          type: array
          description: Paginated list of TLS stages.
          items:
            $ref: '#/components/schemas/scaleway.edge_services.v1beta1.TLSStage'
        total_count:
          type: integer
          description: Count of all TLS stages matching the requested criteria.
          format: uint64
      x-properties-order:
      - stages
      - total_count
    scaleway.edge_services.v1beta1.Pipeline:
      type: object
      properties:
        id:
          type: string
          description: ID of the pipeline.
        name:
          type: string
          description: Name of the pipeline.
        description:
          type: string
          description: Description of the pipeline.
        status:
          type: string
          description: Status of the pipeline.
          enum:
          - unknown_status
          - ready
          - error
          - pending
          - warning
          x-enum-descriptions:
            values:
              unknown_status: Pipeline status unknown (default)
              ready: The pipeline has been created and processed
              error: An error occurred during the pipeline creation
              pending: The pipeline status is pending
              warning: An event occured and the pipeline may not work
          default: unknown_status
        errors:
          type: array
          description: Errors of the pipeline.
          items:
            $ref: '#/components/schemas/scaleway.edge_services.v1beta1.Pipeline.Error'
        project_id:
          type: string
          description: Project ID of the pipeline. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        organization_id:
          type: string
          description: Organization ID of the pipeline.
        created_at:
          type: string
          description: Date the pipeline was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Date the pipeline was last updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
      x-properties-order:
      - id
      - name
      - description
      - status
      - errors
      - project_id
      - organization_id
      - created_at
      - updated_at
    scaleway.edge_services.v1beta1.Pipeline.Error:
      type: object
      properties:
        stage:
          $ref: '#/components/schemas/scaleway.edge_services.v1beta1.Pipeline.Error.Stage'
        code:
          $ref: '#/components/schemas/scaleway.edge_services.v1beta1.Pipeline.Error.Code'
        severity:
          $ref: '#/components/schemas/scaleway.edge_services.v1beta1.Pipeline.Error.Severity'
        message:
          type: string
        type:
          $ref: '#/components/schemas/scaleway.edge_services.v1beta1.Pipeline.Error.Type'
      x-properties-order:
      - stage
      - code
      - severity
      - message
      - type
    scaleway.edge_services.v1beta1.Pipeline.Error.Code:
      type: string
      enum:
      - unknown_code
      - dns_invalid_format
      - dns_invalid_tld
      - dns_forbidden_root_domain
      - dns_forbidden_scw_cloud
      - dns_domain_dont_exist
      - dns_cname_dont_exist
      - dns_cname_resolve
      - dns_fqdn_already_exists
      - dns_fqdn_already_in_use
      - tls_cert_deleted
      - tls_cert_disabled
      - tls_cert_expired
      - tls_cert_invalid_format
      - tls_cert_missing
      - tls_chain_order
      - tls_key_invalid_format
      - tls_key_missing
      - tls_key_too_many
      - tls_managed_domain_rate_limit
      - tls_managed_internal
      - tls_pair_mismatch
      - tls_root_inconsistent
      - tls_root_incorrect
      - tls_root_missing
      - tls_san_mismatch
      - tls_self_signed
      - pipeline_invalid_workflow
      - pipeline_missing_head_stage
      default: unknown_code
    scaleway.edge_services.v1beta1.Pipeline.Error.Severity:
      type: string
      enum:
      - unknown_severity
      - warning
      - critical
      default: unknown_severity
    scaleway.edge_services.v1beta1.Pipeline.Error.Stage:
      type: string
      enum:
      - unknown_stage
      - dns
      - tls
      - cache
      - backend
      default: unknown_stage
    scaleway.edge_services.v1beta1.Pipeline.Error.Type:
      type: string
      enum:
      - unknown_type
      - runtime
      - config
      default: unknown_type
    scaleway.edge_services.v1beta1.PipelineStages:
      type: object
      properties:
        pipeline:
          $ref: '#/components/schemas/scaleway.edge_services.v1beta1.Pipeline'
        dns_stages:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.edge_services.v1beta1.DNSStage'
        tls_stages:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.edge_services.v1beta1.TLSStage'
        cache_stages:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.edge_services.v1beta1.CacheStage'
        backend_stages:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.edge_services.v1beta1.BackendStage'
        waf_stages:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.edge_services.v1beta1.WafStage'
        route_stages:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.edge_services.v1beta1.RouteStage'
      x-properties-order:
      - pipeline
      - dns_stages
      - tls_stages
      - cache_stages
      - backend_stages
      - waf_stages
      - route_stages
    scaleway.edge_services.v1beta1.Plan:
      type: object
      properties:
        plan_name:
          $ref: '#/components/schemas/scaleway.edge_services.v1beta1.Plan.Name'
      x-properties-order:
      - plan_name
    scaleway.edge_services.v1beta1.Plan.Name:
      type: string
      enum:
      - unknown_name
      - starter
      - professional
      - advanced
      default: unknown_name
    scaleway.edge_services.v1beta1.PlanDetails:
      type: object
      properties:
        plan_name:
          type: string
          description: Subscription plan name.
          enum:
          - unknown_name
          - starter
          - professional
          - advanced
          default: unknown_name
        package_gb:
          type: integer
          description: Amount of egress data from cache included in subscription plan.
          format: uint64
        pipeline_limit:
          type: integer
          description: Number of pipelines included in subscription plan.
          format: uint32
        waf_requests:
          type: integer
          description: Number of WAF requests included in subscription plan.
          format: uint64
      x-properties-order:
      - plan_name
      - package_gb
      - pipeline_limit
      - waf_requests
    scaleway.edge_services.v1beta1.PlanUsageDetails:
      type: object
      properties:
        plan_cost:
          type: object
          description: Cost to date (this month) for the corresponding Edge Services
            subscription plan.
          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:
      - plan_cost
    scaleway.edge_services.v1beta1.PurgeRequest:
      type: object
      properties:
        id:
          type: string
          description: ID of the purge request. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        pipeline_id:
          type: string
          description: Pipeline ID the purge request belongs to. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        status:
          type: string
          description: Status of the purge request.
          enum:
          - unknown_status
          - done
          - error
          - pending
          x-enum-descriptions:
            values:
              unknown_status: Purge request status unknown (default)
              done: The purge request has been processed sucessfully
              error: An error occurred during the purge request
              pending: The purge request status is pending
          default: unknown_status
        assets:
          type: array
          description: List of asserts to purge.
          nullable: true
          x-one-of: target
          items:
            type: string
        all:
          type: boolean
          description: Defines whether to purge all content.
          nullable: true
          x-one-of: target
        created_at:
          type: string
          description: Date the purge request was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Date the purge request was last updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
      x-properties-order:
      - id
      - pipeline_id
      - status
      - assets
      - all
      - created_at
      - updated_at
    scaleway.edge_services.v1beta1.RouteStage:
      type: object
      properties:
        id:
          type: string
          description: ID of the route stage.
        pipeline_id:
          type: string
          description: Pipeline ID the route stage belongs to.
        waf_stage_id:
          type: string
          description: ID of the WAF stage HTTP requests should be forwarded to when
            no rules are matched. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
          nullable: true
          x-one-of: next
        created_at:
          type: string
          description: Date the route stage was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Date the route stage was last updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
      x-properties-order:
      - id
      - pipeline_id
      - waf_stage_id
      - created_at
      - updated_at
    scaleway.edge_services.v1beta1.ScalewayLb:
      type: object
      properties:
        id:
          type: string
          description: ID of the Load Balancer. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        zone:
          type: string
          description: Zone of the Load Balancer.
        frontend_id:
          type: string
          description: ID of the frontend linked to the Load Balancer. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        is_ssl:
          type: boolean
          description: Defines whether the Load Balancer's frontend handles SSL connections.
          nullable: true
        domain_name:
          type: string
          description: Fully Qualified Domain Name (in the format subdomain.example.com)
            to use in HTTP requests sent towards your Load Balancer.
          nullable: true
      required:
      - id
      - zone
      - frontend_id
      x-properties-order:
      - id
      - zone
      - frontend_id
      - is_ssl
      - domain_name
    scaleway.edge_services.v1beta1.SearchBackendStagesRequest.OrderBy:
      type: string
      enum:
      - created_at_asc
      - created_at_desc
      default: created_at_asc
    scaleway.edge_services.v1beta1.TLSSecret:
      type: object
      properties:
        secret_id:
          type: string
          description: ID of the Secret.
        region:
          type: string
          description: Region of the Secret.
      required:
      - secret_id
      - region
      x-properties-order:
      - secret_id
      - region
    scaleway.edge_services.v1beta1.TLSStage:
      type: object
      properties:
        id:
          type: string
          description: ID of the TLS stage.
        secrets:
          type: array
          description: Secret (from Scaleway Secret Manager) containing your custom
            certificate.
          items:
            $ref: '#/components/schemas/scaleway.edge_services.v1beta1.TLSSecret'
        managed_certificate:
          type: boolean
          description: True when Scaleway generates and manages a Let's Encrypt certificate
            for the TLS stage/custom endpoint.
        pipeline_id:
          type: string
          description: Pipeline ID the TLS stage belongs to.
        certificate_expires_at:
          type: string
          description: Expiration date of the certificate. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        created_at:
          type: string
          description: Date the TLS stage was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Date the TLS stage was last updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        cache_stage_id:
          type: string
          description: Cache stage ID the TLS stage is linked to. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
          nullable: true
          x-one-of: next
        backend_stage_id:
          type: string
          description: Backend stage ID the TLS stage is linked to. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
          nullable: true
          x-one-of: next
        waf_stage_id:
          type: string
          description: (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
          nullable: true
          x-one-of: next
        route_stage_id:
          type: string
          description: (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
          nullable: true
          x-one-of: next
      x-properties-order:
      - id
      - secrets
      - managed_certificate
      - pipeline_id
      - certificate_expires_at
      - created_at
      - updated_at
      - cache_stage_id
      - backend_stage_id
      - waf_stage_id
      - route_stage_id
    scaleway.edge_services.v1beta1.WafStage:
      type: object
      properties:
        id:
          type: string
          description: ID of the WAF stage.
        pipeline_id:
          type: string
          description: Pipeline ID the WAF stage belongs to.
        mode:
          type: string
          description: Mode defining WAF behavior (`disable`/`log_only`/`enable`).
          enum:
          - unknown_mode
          - disable
          - log_only
          - enable
          x-enum-descriptions:
            values:
              unknown_mode: WAF mode unknown (default)
              disable: WAF engine is disabled and does not evaluate requests
              log_only: WAF engine is enabled and evaluates requests but does not
                block them. HTTP requests which are identified as malicious, and would
                have been blocked in `enable` mode are logged in Scaleway Cockpit
              enable: WAF engine is enabled and evaluates requests. HTTP requests
                classed as malicious according to the defined `paranoia_level` are
                blocked and logged in Scaleway Cockpit
          default: unknown_mode
        paranoia_level:
          type: integer
          description: Sensitivity level (`1`,`2`,`3`,`4`) to use when classifying
            requests as malicious. With a high level, requests are more likely to
            be classed as malicious, and false positives are expected. With a lower
            level, requests are more likely to be classed as benign.
          format: uint32
        created_at:
          type: string
          description: Date the WAF stage was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Date the WAF stage was last updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        backend_stage_id:
          type: string
          description: ID of the backend stage to forward requests to after the WAF
            stage. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
          nullable: true
          x-one-of: next
      x-properties-order:
      - id
      - pipeline_id
      - mode
      - paranoia_level
      - created_at
      - updated_at
      - backend_stage_id
  securitySchemes:
    scaleway:
      in: header
      name: X-Auth-Token
      type: apiKey
paths:
  /edge-services/v1beta1/backend-stages/{backend_stage_id}:
    get:
      tags:
      - Backend stages
      operationId: GetBackendStage
      summary: Get backend stage
      description: Retrieve information about an existing backend stage, specified
        by its `backend_stage_id`. Its full details, including `scaleway_s3` or `scaleway_lb`,
        are returned in the response object.
      parameters:
      - in: path
        name: backend_stage_id
        description: ID of the requested backend stage.
        required: true
        schema:
          type: string
          description: ID of the requested backend stage.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.BackendStage'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/backend-stages/{backend_stage_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/edge-services/v1beta1/backend-stages/{backend_stage_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Backend stages
      operationId: UpdateBackendStage
      summary: Update backend stage
      description: Update the parameters of an existing backend stage, specified by
        its `backend_stage_id`.
      parameters:
      - in: path
        name: backend_stage_id
        description: ID of the backend stage to update.
        required: true
        schema:
          type: string
          description: ID of the backend stage to update.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.BackendStage'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                scaleway_s3:
                  type: object
                  description: Scaleway Object Storage origin bucket (S3) linked to
                    the backend stage.
                  properties:
                    bucket_name:
                      type: string
                      description: Name of the Bucket.
                      nullable: true
                    bucket_region:
                      type: string
                      description: Region of the Bucket.
                      nullable: true
                    is_website:
                      type: boolean
                      description: Defines whether the bucket website feature is enabled.
                      nullable: true
                  nullable: true
                  x-properties-order:
                  - bucket_name
                  - bucket_region
                  - is_website
                  x-one-of: backend_config
                scaleway_lb:
                  type: object
                  description: Scaleway Load Balancer origin linked to the backend
                    stage.
                  properties:
                    lbs:
                      type: array
                      description: Load Balancer information.
                      items:
                        $ref: '#/components/schemas/scaleway.edge_services.v1beta1.ScalewayLb'
                  nullable: true
                  x-properties-order:
                  - lbs
                  x-one-of: backend_config
                pipeline_id:
                  type: string
                  description: Pipeline ID the Backend stage belongs to.
              x-properties-order:
              - scaleway_s3
              - scaleway_lb
              - pipeline_id
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PATCH \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"pipeline_id":"string"}' \
            "https://api.scaleway.com/edge-services/v1beta1/backend-stages/{backend_stage_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/edge-services/v1beta1/backend-stages/{backend_stage_id}" \
            X-Auth-Token:$SCW_SECRET_KEY \
            pipeline_id="string"
    delete:
      tags:
      - Backend stages
      operationId: DeleteBackendStage
      summary: Delete backend stage
      description: Delete an existing backend stage, specified by its `backend_stage_id`.
        Deleting a backend stage is permanent, and cannot be undone.
      parameters:
      - in: path
        name: backend_stage_id
        description: ID of the backend stage to delete.
        required: true
        schema:
          type: string
          description: ID of the backend stage to delete.
      responses:
        "204":
          description: ""
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/backend-stages/{backend_stage_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/edge-services/v1beta1/backend-stages/{backend_stage_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /edge-services/v1beta1/billing/{project_id}:
    get:
      operationId: GetBilling
      summary: Gives information on the currently selected Edge Services subscription
        plan, resource usage and associated billing information for this calendar
        month (including whether consumption falls within or exceeds the currently
        selected subscription plan.)
      parameters:
      - in: path
        name: project_id
        description: (UUID format)
        required: true
        schema:
          type: string
          description: (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.GetBillingResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/billing/{project_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/edge-services/v1beta1/billing/{project_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /edge-services/v1beta1/cache-stages/{cache_stage_id}:
    get:
      tags:
      - Cache stages
      operationId: GetCacheStage
      summary: Get cache stage
      description: Retrieve information about an existing cache stage, specified by
        its `cache_stage_id`. Its full details, including Time To Live (TTL), are
        returned in the response object.
      parameters:
      - in: path
        name: cache_stage_id
        description: ID of the requested cache stage.
        required: true
        schema:
          type: string
          description: ID of the requested cache stage.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.CacheStage'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/cache-stages/{cache_stage_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/edge-services/v1beta1/cache-stages/{cache_stage_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Cache stages
      operationId: UpdateCacheStage
      summary: Update cache stage
      description: Update the parameters of an existing cache stage, specified by
        its `cache_stage_id`. Parameters which can be updated include the `fallback_ttl`
        and `backend_stage_id`.
      parameters:
      - in: path
        name: cache_stage_id
        description: ID of the cache stage to update.
        required: true
        schema:
          type: string
          description: ID of the cache stage to update.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.CacheStage'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                fallback_ttl:
                  type: string
                  description: Time To Live (TTL) in seconds. Defines how long content
                    is cached. (in seconds)
                  example: 2.5s
                  nullable: true
                backend_stage_id:
                  type: string
                  description: Backend stage ID the cache stage will be linked to.
                    (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
                waf_stage_id:
                  type: string
                  description: (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
                route_stage_id:
                  type: string
                  description: (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
              x-properties-order:
              - fallback_ttl
              - backend_stage_id
              - waf_stage_id
              - route_stage_id
      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/edge-services/v1beta1/cache-stages/{cache_stage_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/edge-services/v1beta1/cache-stages/{cache_stage_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - Cache stages
      operationId: DeleteCacheStage
      summary: Delete cache stage
      description: Delete an existing cache stage, specified by its `cache_stage_id`.
        Deleting a cache stage is permanent, and cannot be undone.
      parameters:
      - in: path
        name: cache_stage_id
        description: ID of the cache stage to delete.
        required: true
        schema:
          type: string
          description: ID of the cache stage to delete.
      responses:
        "204":
          description: ""
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/cache-stages/{cache_stage_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/edge-services/v1beta1/cache-stages/{cache_stage_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /edge-services/v1beta1/check-domain:
    post:
      operationId: CheckDomain
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.CheckDomainResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: string
                  description: (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                fqdn:
                  type: string
                cname:
                  type: string
              x-properties-order:
              - project_id
              - fqdn
              - cname
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{
              "cname": "string",
              "fqdn": "string",
              "project_id": "6170692e-7363-616c-6577-61792e636f6d"
            }' \
            "https://api.scaleway.com/edge-services/v1beta1/check-domain"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/edge-services/v1beta1/check-domain" \
            X-Auth-Token:$SCW_SECRET_KEY \
            cname="string" \
            fqdn="string" \
            project_id="6170692e-7363-616c-6577-61792e636f6d"
  /edge-services/v1beta1/check-lb-origin:
    post:
      operationId: CheckLbOrigin
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.CheckLbOriginResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                lb:
                  $ref: '#/components/schemas/scaleway.edge_services.v1beta1.ScalewayLb'
              x-properties-order:
              - lb
      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/edge-services/v1beta1/check-lb-origin"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/edge-services/v1beta1/check-lb-origin" \
            X-Auth-Token:$SCW_SECRET_KEY
  /edge-services/v1beta1/check-pem-chain:
    post:
      operationId: CheckPEMChain
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.CheckPEMChainResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: string
                fqdn:
                  type: string
                secret:
                  type: object
                  properties:
                    secret_id:
                      type: string
                    secret_region:
                      type: string
                  nullable: true
                  x-properties-order:
                  - secret_id
                  - secret_region
                  x-one-of: chain
                raw:
                  type: string
                  nullable: true
                  x-one-of: chain
              x-properties-order:
              - project_id
              - fqdn
              - secret
              - raw
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"fqdn":"string","project_id":"string"}' \
            "https://api.scaleway.com/edge-services/v1beta1/check-pem-chain"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/edge-services/v1beta1/check-pem-chain" \
            X-Auth-Token:$SCW_SECRET_KEY \
            fqdn="string" \
            project_id="string"
  /edge-services/v1beta1/current-plan:
    patch:
      operationId: SelectPlan
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.Plan'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: string
                  description: (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                plan_name:
                  $ref: '#/components/schemas/scaleway.edge_services.v1beta1.Plan.Name'
              x-properties-order:
              - project_id
              - plan_name
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PATCH \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"project_id":"6170692e-7363-616c-6577-61792e636f6d"}' \
            "https://api.scaleway.com/edge-services/v1beta1/current-plan"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/edge-services/v1beta1/current-plan" \
            X-Auth-Token:$SCW_SECRET_KEY \
            project_id="6170692e-7363-616c-6577-61792e636f6d"
  /edge-services/v1beta1/current-plan/{project_id}:
    get:
      operationId: GetCurrentPlan
      parameters:
      - in: path
        name: project_id
        description: (UUID format)
        required: true
        schema:
          type: string
          description: (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.Plan'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/current-plan/{project_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/edge-services/v1beta1/current-plan/{project_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      operationId: DeleteCurrentPlan
      parameters:
      - in: path
        name: project_id
        description: (UUID format)
        required: true
        schema:
          type: string
          description: (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "204":
          description: ""
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/current-plan/{project_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/edge-services/v1beta1/current-plan/{project_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /edge-services/v1beta1/dns-stages/{dns_stage_id}:
    get:
      tags:
      - DNS stages
      operationId: GetDNSStage
      summary: Get DNS stage
      description: Retrieve information about an existing DNS stage, specified by
        its `dns_stage_id`. Its full details, including FQDNs, are returned in the
        response object.
      parameters:
      - in: path
        name: dns_stage_id
        description: ID of the requested DNS stage.
        required: true
        schema:
          type: string
          description: ID of the requested DNS stage.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.DNSStage'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/dns-stages/{dns_stage_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/edge-services/v1beta1/dns-stages/{dns_stage_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - DNS stages
      operationId: UpdateDNSStage
      summary: Update DNS stage
      description: Update the parameters of an existing DNS stage, specified by its
        `dns_stage_id`.
      parameters:
      - in: path
        name: dns_stage_id
        description: ID of the DNS stage to update.
        required: true
        schema:
          type: string
          description: ID of the DNS stage to update.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.DNSStage'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                fqdns:
                  type: array
                  description: Fully Qualified Domain Name (in the format subdomain.example.com)
                    attached to the stage.
                  nullable: true
                  items:
                    type: string
                tls_stage_id:
                  type: string
                  description: TLS stage ID the DNS stage will be linked to. (UUID
                    format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
                cache_stage_id:
                  type: string
                  description: Cache stage ID the DNS stage will be linked to. (UUID
                    format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
                backend_stage_id:
                  type: string
                  description: Backend stage ID the DNS stage will be linked to. (UUID
                    format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
              x-properties-order:
              - fqdns
              - tls_stage_id
              - cache_stage_id
              - backend_stage_id
      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/edge-services/v1beta1/dns-stages/{dns_stage_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/edge-services/v1beta1/dns-stages/{dns_stage_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - DNS stages
      operationId: DeleteDNSStage
      summary: Delete DNS stage
      description: Delete an existing DNS stage, specified by its `dns_stage_id`.
        Deleting a DNS stage is permanent, and cannot be undone.
      parameters:
      - in: path
        name: dns_stage_id
        description: ID of the DNS stage to delete.
        required: true
        schema:
          type: string
          description: ID of the DNS stage to delete.
      responses:
        "204":
          description: ""
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/dns-stages/{dns_stage_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/edge-services/v1beta1/dns-stages/{dns_stage_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /edge-services/v1beta1/pipelines:
    get:
      tags:
      - Pipelines
      operationId: ListPipelines
      summary: List pipelines
      description: List all pipelines, for a Scaleway Organization or Scaleway Project.
        By default, the pipelines returned in the list are ordered by creation date
        in ascending order, though this can be modified via the `order_by` field.
      parameters:
      - in: query
        name: order_by
        description: Sort order of pipelines in the response.
        schema:
          type: string
          description: Sort order of pipelines in the response.
          enum:
          - created_at_asc
          - created_at_desc
          - name_asc
          - name_desc
          x-enum-descriptions:
            values:
              created_at_asc: Order by creation date (ascending chronological order)
              created_at_desc: Order by creation date (descending chronological order)
              name_asc: Order by name (ascending alphabetical order)
              name_desc: Order by name (descending alphabetical order)
          default: created_at_asc
      - in: query
        name: page
        description: Page number to return, from the paginated results.
        schema:
          type: integer
          description: Page number to return, from the paginated results.
          format: int32
      - in: query
        name: page_size
        description: Number of pipelines to return per page.
        schema:
          type: integer
          description: Number of pipelines to return per page.
          format: uint32
      - in: query
        name: name
        description: Pipeline name to filter for. Only pipelines with this string
          within their name will be returned.
        schema:
          type: string
          description: Pipeline name to filter for. Only pipelines with this string
            within their name will be returned.
      - in: query
        name: organization_id
        description: Organization ID to filter for. Only pipelines from this Organization
          will be returned.
        schema:
          type: string
          description: Organization ID to filter for. Only pipelines from this Organization
            will be returned.
      - in: query
        name: project_id
        description: Project ID to filter for. Only pipelines from this Project will
          be returned.
        schema:
          type: string
          description: Project ID to filter for. Only pipelines from this Project
            will be returned.
      - in: query
        name: has_backend_stage_lb
        description: Filter on backend stage. Only pipelines with a Load Balancer
          origin will be returned.
        schema:
          type: boolean
          description: Filter on backend stage. Only pipelines with a Load Balancer
            origin will be returned.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.ListPipelinesResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/pipelines"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/edge-services/v1beta1/pipelines" \
            X-Auth-Token:$SCW_SECRET_KEY
    post:
      tags:
      - Pipelines
      operationId: CreatePipeline
      summary: Create pipeline
      description: Create a new pipeline. You must specify a `dns_stage_id` to form
        a stage-chain that goes all the way to the backend stage (origin), so the
        HTTP request will be processed according to the stages you created.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.Pipeline'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: string
                  description: Project ID in which the pipeline will be created. (UUID
                    format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                name:
                  type: string
                  description: Name of the pipeline.
                description:
                  type: string
                  description: Description of the pipeline.
              required:
              - project_id
              - name
              - description
              x-properties-order:
              - project_id
              - name
              - description
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{
              "description": "string",
              "name": "string",
              "project_id": "6170692e-7363-616c-6577-61792e636f6d"
            }' \
            "https://api.scaleway.com/edge-services/v1beta1/pipelines"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/edge-services/v1beta1/pipelines" \
            X-Auth-Token:$SCW_SECRET_KEY \
            description="string" \
            name="string" \
            project_id="6170692e-7363-616c-6577-61792e636f6d"
  /edge-services/v1beta1/pipelines-stages:
    get:
      operationId: ListPipelinesWithStages
      parameters:
      - in: query
        name: order_by
        schema:
          $ref: '#/components/schemas/scaleway.edge_services.v1beta1.ListPipelinesWithStagesRequest.OrderBy'
      - in: query
        name: page
        schema:
          $ref: '#/components/schemas/google.protobuf.Int32Value'
      - in: query
        name: page_size
        schema:
          type: integer
          format: uint32
      - in: query
        name: name
        schema:
          $ref: '#/components/schemas/google.protobuf.StringValue'
      - in: query
        name: organization_id
        schema:
          $ref: '#/components/schemas/google.protobuf.StringValue'
      - in: query
        name: project_id
        schema:
          $ref: '#/components/schemas/google.protobuf.StringValue'
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.ListPipelinesWithStagesResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/pipelines-stages"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/edge-services/v1beta1/pipelines-stages" \
            X-Auth-Token:$SCW_SECRET_KEY
  /edge-services/v1beta1/pipelines/{pipeline_id}:
    get:
      tags:
      - Pipelines
      operationId: GetPipeline
      summary: Get pipeline
      description: Retrieve information about an existing pipeline, specified by its
        `pipeline_id`. Its full details, including errors, are returned in the response
        object.
      parameters:
      - in: path
        name: pipeline_id
        description: ID of the requested pipeline.
        required: true
        schema:
          type: string
          description: ID of the requested pipeline.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.Pipeline'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Pipelines
      operationId: UpdatePipeline
      summary: Update pipeline
      description: Update the parameters of an existing pipeline, specified by its
        `pipeline_id`. Parameters which can be updated include the `name`, `description`
        and `dns_stage_id`.
      parameters:
      - in: path
        name: pipeline_id
        description: ID of the pipeline to update.
        required: true
        schema:
          type: string
          description: ID of the pipeline to update.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.Pipeline'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the pipeline.
                  nullable: true
                description:
                  type: string
                  description: Description of the pipeline.
                  nullable: true
              x-properties-order:
              - name
              - description
      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/edge-services/v1beta1/pipelines/{pipeline_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - Pipelines
      operationId: DeletePipeline
      summary: Delete pipeline
      description: Delete an existing pipeline, specified by its `pipeline_id`. Deleting
        a pipeline is permanent, and cannot be undone. Note that all stages linked
        to the pipeline are also deleted.
      parameters:
      - in: path
        name: pipeline_id
        description: ID of the pipeline to delete.
        required: true
        schema:
          type: string
          description: ID of the pipeline to delete.
      responses:
        "204":
          description: ""
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /edge-services/v1beta1/pipelines/{pipeline_id}/backend-stages:
    get:
      tags:
      - Backend stages
      operationId: ListBackendStages
      summary: List backend stages
      description: List all backend stages, for a Scaleway Organization or Scaleway
        Project. By default, the backend stages returned in the list are ordered by
        creation date in ascending order, though this can be modified via the `order_by`
        field.
      parameters:
      - in: path
        name: pipeline_id
        description: Pipeline ID to filter for. Only backend stages from this pipeline
          will be returned.
        required: true
        schema:
          type: string
          description: Pipeline ID to filter for. Only backend stages from this pipeline
            will be returned.
      - in: query
        name: order_by
        description: Sort order of backend stages in the response.
        schema:
          type: string
          description: Sort order of backend stages in the response.
          enum:
          - created_at_asc
          - created_at_desc
          x-enum-descriptions:
            values:
              created_at_asc: Order by creation date (ascending chronological order)
              created_at_desc: Order by creation date (descending chronological order)
          default: created_at_asc
      - in: query
        name: page
        description: Page number to return, from the paginated results.
        schema:
          type: integer
          description: Page number to return, from the paginated results.
          format: int32
      - in: query
        name: page_size
        description: Number of backend stages to return per page.
        schema:
          type: integer
          description: Number of backend stages to return per page.
          format: uint32
      - in: query
        name: bucket_name
        description: Bucket name to filter for. Only backend stages from this Bucket
          will be returned.
        schema:
          type: string
          description: Bucket name to filter for. Only backend stages from this Bucket
            will be returned.
      - in: query
        name: bucket_region
        description: Bucket region to filter for. Only backend stages with buckets
          in this region will be returned.
        schema:
          type: string
          description: Bucket region to filter for. Only backend stages with buckets
            in this region will be returned.
      - in: query
        name: lb_id
        description: Load Balancer ID to filter for. Only backend stages with this
          Load Balancer will be returned.
        schema:
          type: string
          description: Load Balancer ID to filter for. Only backend stages with this
            Load Balancer will be returned.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.ListBackendStagesResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}/backend-stages"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}/backend-stages" \
            X-Auth-Token:$SCW_SECRET_KEY
    post:
      tags:
      - Backend stages
      operationId: CreateBackendStage
      summary: Create backend stage
      description: Create a new backend stage. You must specify either a `scaleway_s3`
        (for a Scaleway Object Storage bucket) or `scaleway_lb` (for a Scaleway Load
        Balancer) field to configure the origin.
      parameters:
      - in: path
        name: pipeline_id
        description: Pipeline ID the Backend stage belongs to.
        required: true
        schema:
          type: string
          description: Pipeline ID the Backend stage belongs to.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.BackendStage'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                scaleway_s3:
                  type: object
                  description: Scaleway Object Storage origin bucket (S3) linked to
                    the backend stage.
                  properties:
                    bucket_name:
                      type: string
                      description: Name of the Bucket.
                      nullable: true
                    bucket_region:
                      type: string
                      description: Region of the Bucket.
                      nullable: true
                    is_website:
                      type: boolean
                      description: Defines whether the bucket website feature is enabled.
                      nullable: true
                  nullable: true
                  x-properties-order:
                  - bucket_name
                  - bucket_region
                  - is_website
                  x-one-of: backend_config
                scaleway_lb:
                  type: object
                  description: Scaleway Load Balancer origin linked to the backend
                    stage.
                  properties:
                    lbs:
                      type: array
                      description: Load Balancer information.
                      items:
                        $ref: '#/components/schemas/scaleway.edge_services.v1beta1.ScalewayLb'
                  nullable: true
                  x-properties-order:
                  - lbs
                  x-one-of: backend_config
              x-properties-order:
              - scaleway_s3
              - scaleway_lb
      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/edge-services/v1beta1/pipelines/{pipeline_id}/backend-stages"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}/backend-stages" \
            X-Auth-Token:$SCW_SECRET_KEY
  /edge-services/v1beta1/pipelines/{pipeline_id}/cache-stages:
    get:
      tags:
      - Cache stages
      operationId: ListCacheStages
      summary: List cache stages
      description: List all cache stages, for a Scaleway Organization or Scaleway
        Project. By default, the cache stages returned in the list are ordered by
        creation date in ascending order, though this can be modified via the `order_by`
        field.
      parameters:
      - in: path
        name: pipeline_id
        description: Pipeline ID to filter for. Only cache stages from this pipeline
          will be returned.
        required: true
        schema:
          type: string
          description: Pipeline ID to filter for. Only cache stages from this pipeline
            will be returned.
      - in: query
        name: order_by
        description: Sort order of cache stages in the response.
        schema:
          type: string
          description: Sort order of cache stages in the response.
          enum:
          - created_at_asc
          - created_at_desc
          x-enum-descriptions:
            values:
              created_at_asc: Order by creation date (ascending chronological order)
              created_at_desc: Order by creation date (descending chronological order)
          default: created_at_asc
      - in: query
        name: page
        description: Page number to return, from the paginated results.
        schema:
          type: integer
          description: Page number to return, from the paginated results.
          format: int32
      - in: query
        name: page_size
        description: Number of cache stages to return per page.
        schema:
          type: integer
          description: Number of cache stages to return per page.
          format: uint32
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.ListCacheStagesResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}/cache-stages"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}/cache-stages" \
            X-Auth-Token:$SCW_SECRET_KEY
    post:
      tags:
      - Cache stages
      operationId: CreateCacheStage
      summary: Create cache stage
      description: Create a new cache stage. You must specify the `fallback_ttl` field
        to customize the TTL of the cache.
      parameters:
      - in: path
        name: pipeline_id
        description: Pipeline ID the Cache stage belongs to. (UUID format)
        required: true
        schema:
          type: string
          description: Pipeline ID the Cache stage belongs to. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.CacheStage'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                fallback_ttl:
                  type: string
                  description: Time To Live (TTL) in seconds. Defines how long content
                    is cached. (in seconds)
                  example: 2.5s
                  nullable: true
                  default: 3600s
                backend_stage_id:
                  type: string
                  description: Backend stage ID the cache stage will be linked to.
                    (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
                waf_stage_id:
                  type: string
                  description: (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
                route_stage_id:
                  type: string
                  description: (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
              x-properties-order:
              - fallback_ttl
              - backend_stage_id
              - waf_stage_id
              - route_stage_id
      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/edge-services/v1beta1/pipelines/{pipeline_id}/cache-stages"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}/cache-stages" \
            X-Auth-Token:$SCW_SECRET_KEY
  /edge-services/v1beta1/pipelines/{pipeline_id}/dns-stages:
    get:
      tags:
      - DNS stages
      operationId: ListDNSStages
      summary: List DNS stages
      description: List all DNS stages, for a Scaleway Organization or Scaleway Project.
        By default, the DNS stages returned in the list are ordered by creation date
        in ascending order, though this can be modified via the `order_by` field.
      parameters:
      - in: path
        name: pipeline_id
        description: Pipeline ID to filter for. Only DNS stages from this pipeline
          will be returned.
        required: true
        schema:
          type: string
          description: Pipeline ID to filter for. Only DNS stages from this pipeline
            will be returned.
      - in: query
        name: order_by
        description: Sort order of DNS stages in the response.
        schema:
          type: string
          description: Sort order of DNS stages in the response.
          enum:
          - created_at_asc
          - created_at_desc
          x-enum-descriptions:
            values:
              created_at_asc: Order by creation date (ascending chronological order)
              created_at_desc: Order by creation date (descending chronological order)
          default: created_at_asc
      - in: query
        name: page
        description: Page number to return, from the paginated results.
        schema:
          type: integer
          description: Page number to return, from the paginated results.
          format: int32
      - in: query
        name: page_size
        description: Number of DNS stages to return per page.
        schema:
          type: integer
          description: Number of DNS stages to return per page.
          format: uint32
      - in: query
        name: fqdn
        description: Fully Qualified Domain Name to filter for (in the format subdomain.example.com).
          Only DNS stages with this FQDN will be returned.
        schema:
          type: string
          description: Fully Qualified Domain Name to filter for (in the format subdomain.example.com).
            Only DNS stages with this FQDN will be returned.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.ListDNSStagesResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}/dns-stages"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}/dns-stages" \
            X-Auth-Token:$SCW_SECRET_KEY
    post:
      tags:
      - DNS stages
      operationId: CreateDNSStage
      summary: Create DNS stage
      description: Create a new DNS stage. You must specify the `fqdns` field to customize
        the domain endpoint, using a domain you already own.
      parameters:
      - in: path
        name: pipeline_id
        description: Pipeline ID the DNS stage belongs to. (UUID format)
        required: true
        schema:
          type: string
          description: Pipeline ID the DNS stage belongs to. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.DNSStage'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                fqdns:
                  type: array
                  description: Fully Qualified Domain Name (in the format subdomain.example.com)
                    to attach to the stage.
                  nullable: true
                  items:
                    type: string
                tls_stage_id:
                  type: string
                  description: TLS stage ID the DNS stage will be linked to. (UUID
                    format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
                cache_stage_id:
                  type: string
                  description: Cache stage ID the DNS stage will be linked to. (UUID
                    format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
                backend_stage_id:
                  type: string
                  description: Backend stage ID the DNS stage will be linked to. (UUID
                    format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
              x-properties-order:
              - fqdns
              - tls_stage_id
              - cache_stage_id
              - backend_stage_id
      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/edge-services/v1beta1/pipelines/{pipeline_id}/dns-stages"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}/dns-stages" \
            X-Auth-Token:$SCW_SECRET_KEY
  /edge-services/v1beta1/pipelines/{pipeline_id}/head-stages:
    get:
      operationId: ListHeadStages
      parameters:
      - in: path
        name: pipeline_id
        description: ID of the pipeline to update. (UUID format)
        required: true
        schema:
          type: string
          description: ID of the pipeline to update. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: page
        description: Page number to return, from the paginated results.
        schema:
          type: integer
          description: Page number to return, from the paginated results.
          format: int32
      - in: query
        name: page_size
        description: Number of head stages to return per page.
        schema:
          type: integer
          description: Number of head stages to return per page.
          format: uint32
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.ListHeadStagesResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}/head-stages"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}/head-stages" \
            X-Auth-Token:$SCW_SECRET_KEY
  /edge-services/v1beta1/pipelines/{pipeline_id}/set-head-stage:
    post:
      operationId: SetHeadStage
      summary: Configure a entry point to your pipeline. You must specify a `head
        stage` to form a stage-chain that goes all the way to the backend stage (origin),
        so the HTTP request will be processed according to the stages you created.
      description: You must specify either a `add_new_head_stage` (to add a new head
        stage), `remove_head_stage` (to remove a head stage) or `swap_head_stage`
        (to replace a head stage).
      parameters:
      - in: path
        name: pipeline_id
        description: ID of the pipeline to update. (UUID format)
        required: true
        schema:
          type: string
          description: ID of the pipeline to update. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.HeadStageResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                add_new_head_stage:
                  type: object
                  description: Add a new head stage.
                  properties:
                    new_stage_id:
                      type: string
                      description: (UUID format)
                      example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-properties-order:
                  - new_stage_id
                  x-one-of: action
                remove_head_stage:
                  type: object
                  description: Remove a head stage.
                  properties:
                    remove_stage_id:
                      type: string
                      description: (UUID format)
                      example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-properties-order:
                  - remove_stage_id
                  x-one-of: action
                swap_head_stage:
                  type: object
                  description: Replace a head stage with a new one.
                  properties:
                    new_stage_id:
                      type: string
                      description: (UUID format)
                      example: 6170692e-7363-616c-6577-61792e636f6d
                    current_stage_id:
                      type: string
                      description: (UUID format)
                      example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-properties-order:
                  - new_stage_id
                  - current_stage_id
                  x-one-of: action
              x-properties-order:
              - add_new_head_stage
              - remove_head_stage
              - swap_head_stage
      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/edge-services/v1beta1/pipelines/{pipeline_id}/set-head-stage"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}/set-head-stage" \
            X-Auth-Token:$SCW_SECRET_KEY
  /edge-services/v1beta1/pipelines/{pipeline_id}/tls-stages:
    get:
      tags:
      - TLS stages
      operationId: ListTLSStages
      summary: List TLS stages
      description: List all TLS stages, for a Scaleway Organization or Scaleway Project.
        By default, the TLS stages returned in the list are ordered by creation date
        in ascending order, though this can be modified via the `order_by` field.
      parameters:
      - in: path
        name: pipeline_id
        description: Pipeline ID to filter for. Only TLS stages from this pipeline
          will be returned.
        required: true
        schema:
          type: string
          description: Pipeline ID to filter for. Only TLS stages from this pipeline
            will be returned.
      - in: query
        name: order_by
        description: Sort order of TLS stages in the response.
        schema:
          type: string
          description: Sort order of TLS stages in the response.
          enum:
          - created_at_asc
          - created_at_desc
          x-enum-descriptions:
            values:
              created_at_asc: Order by creation date (ascending chronological order)
              created_at_desc: Order by creation date (descending chronological order)
          default: created_at_asc
      - in: query
        name: page
        description: Page number to return, from the paginated results.
        schema:
          type: integer
          description: Page number to return, from the paginated results.
          format: int32
      - in: query
        name: page_size
        description: Number of TLS stages to return per page.
        schema:
          type: integer
          description: Number of TLS stages to return per page.
          format: uint32
      - in: query
        name: secret_id
        description: Secret ID to filter for. Only TLS stages with this Secret ID
          will be returned.
        schema:
          type: string
          description: Secret ID to filter for. Only TLS stages with this Secret ID
            will be returned.
      - in: query
        name: secret_region
        description: Secret region to filter for. Only TLS stages with a Secret in
          this region will be returned.
        schema:
          type: string
          description: Secret region to filter for. Only TLS stages with a Secret
            in this region will be returned.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.ListTLSStagesResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}/tls-stages"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}/tls-stages" \
            X-Auth-Token:$SCW_SECRET_KEY
    post:
      tags:
      - TLS stages
      operationId: CreateTLSStage
      summary: Create TLS stage
      description: Create a new TLS stage. You must specify either the `secrets` or
        `managed_certificate` fields to customize the SSL/TLS certificate of your
        endpoint. Choose `secrets` if you are using a pre-existing certificate held
        in Scaleway Secret Manager, or `managed_certificate` to let Scaleway generate
        and manage a Let's Encrypt certificate for your customized endpoint.
      parameters:
      - in: path
        name: pipeline_id
        description: Pipeline ID the TLS stage belongs to. (UUID format)
        required: true
        schema:
          type: string
          description: Pipeline ID the TLS stage belongs to. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.TLSStage'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                secrets:
                  type: array
                  description: Secret (from Scaleway Secret Manager) containing your
                    custom certificate.
                  items:
                    $ref: '#/components/schemas/scaleway.edge_services.v1beta1.TLSSecret'
                managed_certificate:
                  type: boolean
                  description: True when Scaleway generates and manages a Let's Encrypt
                    certificate for the TLS stage/custom endpoint.
                  nullable: true
                cache_stage_id:
                  type: string
                  description: Cache stage ID the TLS stage will be linked to. (UUID
                    format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
                backend_stage_id:
                  type: string
                  description: Backend stage ID the TLS stage will be linked to. (UUID
                    format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
                route_stage_id:
                  type: string
                  description: (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
                waf_stage_id:
                  type: string
                  description: (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
              x-properties-order:
              - secrets
              - managed_certificate
              - cache_stage_id
              - backend_stage_id
              - route_stage_id
              - waf_stage_id
      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/edge-services/v1beta1/pipelines/{pipeline_id}/tls-stages"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/edge-services/v1beta1/pipelines/{pipeline_id}/tls-stages" \
            X-Auth-Token:$SCW_SECRET_KEY
  /edge-services/v1beta1/plans:
    get:
      operationId: ListPlans
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.ListPlansResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/plans"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/edge-services/v1beta1/plans" \
            X-Auth-Token:$SCW_SECRET_KEY
  /edge-services/v1beta1/purge-requests:
    get:
      tags:
      - Purge requests
      operationId: ListPurgeRequests
      summary: List purge requests
      description: List all purge requests, for a Scaleway Organization or Scaleway
        Project. This enables you to retrieve a history of all previously-made purge
        requests. By default, the purge requests returned in the list are ordered
        by creation date in ascending order, though this can be modified via the `order_by`
        field.
      parameters:
      - in: query
        name: order_by
        description: Sort order of purge requests in the response.
        schema:
          type: string
          description: Sort order of purge requests in the response.
          enum:
          - created_at_asc
          - created_at_desc
          x-enum-descriptions:
            values:
              created_at_asc: Order by creation date (ascending chronological order)
              created_at_desc: Order by creation date (descending chronological order)
          default: created_at_asc
      - in: query
        name: page
        description: Page number to return, from the paginated results.
        schema:
          type: integer
          description: Page number to return, from the paginated results.
          format: int32
      - in: query
        name: page_size
        description: Number of purge requests to return per page.
        schema:
          type: integer
          description: Number of purge requests to return per page.
          format: uint32
      - in: query
        name: organization_id
        description: Organization ID to filter for. Only purge requests from this
          Project will be returned.
        schema:
          type: string
          description: Organization ID to filter for. Only purge requests from this
            Project will be returned.
      - in: query
        name: project_id
        description: Project ID to filter for. Only purge requests from this Project
          will be returned.
        schema:
          type: string
          description: Project ID to filter for. Only purge requests from this Project
            will be returned.
      - in: query
        name: pipeline_id
        description: Pipeline ID to filter for. Only purge requests from this pipeline
          will be returned.
        schema:
          type: string
          description: Pipeline ID to filter for. Only purge requests from this pipeline
            will be returned.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.ListPurgeRequestsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/purge-requests"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/edge-services/v1beta1/purge-requests" \
            X-Auth-Token:$SCW_SECRET_KEY
    post:
      tags:
      - Purge requests
      operationId: CreatePurgeRequest
      summary: Create purge request
      description: Create a new purge request. You must specify either the `all` field
        (to purge all content) or a list of `assets` (to define the precise assets
        to purge).
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.PurgeRequest'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                pipeline_id:
                  type: string
                  description: Pipeline ID in which the purge request will be created.
                    (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                assets:
                  type: array
                  description: List of asserts to purge.
                  nullable: true
                  x-one-of: target
                  items:
                    type: string
                all:
                  type: boolean
                  description: Defines whether to purge all content.
                  nullable: true
                  x-one-of: target
              required:
              - pipeline_id
              x-properties-order:
              - pipeline_id
              - assets
              - all
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"pipeline_id":"6170692e-7363-616c-6577-61792e636f6d"}' \
            "https://api.scaleway.com/edge-services/v1beta1/purge-requests"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/edge-services/v1beta1/purge-requests" \
            X-Auth-Token:$SCW_SECRET_KEY \
            pipeline_id="6170692e-7363-616c-6577-61792e636f6d"
  /edge-services/v1beta1/purge-requests/{purge_request_id}:
    get:
      tags:
      - Purge requests
      operationId: GetPurgeRequest
      summary: Get purge request
      description: Retrieve information about a purge request, specified by its `purge_request_id`.
        Its full details, including `status` and `target`, are returned in the response
        object.
      parameters:
      - in: path
        name: purge_request_id
        description: ID of the requested purge request. (UUID format)
        required: true
        schema:
          type: string
          description: ID of the requested purge request. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.PurgeRequest'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/purge-requests/{purge_request_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/edge-services/v1beta1/purge-requests/{purge_request_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /edge-services/v1beta1/search-backend-stages:
    get:
      operationId: SearchBackendStages
      parameters:
      - in: query
        name: order_by
        schema:
          $ref: '#/components/schemas/scaleway.edge_services.v1beta1.SearchBackendStagesRequest.OrderBy'
      - in: query
        name: page
        schema:
          $ref: '#/components/schemas/google.protobuf.Int32Value'
      - in: query
        name: page_size
        schema:
          type: integer
          format: uint32
      - in: query
        name: project_id
        description: (UUID format)
        required: true
        schema:
          type: string
          description: (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: bucket_name
        schema:
          $ref: '#/components/schemas/google.protobuf.StringValue'
      - in: query
        name: bucket_region
        schema:
          $ref: '#/components/schemas/google.protobuf.StringValue'
      - in: query
        name: lb_id
        schema:
          $ref: '#/components/schemas/google.protobuf.StringValue'
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.ListBackendStagesResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/search-backend-stages?project_id=6170692e-7363-616c-6577-61792e636f6d"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/edge-services/v1beta1/search-backend-stages" \
            X-Auth-Token:$SCW_SECRET_KEY \
            project_id==6170692e-7363-616c-6577-61792e636f6d
  /edge-services/v1beta1/tls-stages/{tls_stage_id}:
    get:
      tags:
      - TLS stages
      operationId: GetTLSStage
      summary: Get TLS stage
      description: Retrieve information about an existing TLS stage, specified by
        its `tls_stage_id`. Its full details, including secrets and certificate expiration
        date are returned in the response object.
      parameters:
      - in: path
        name: tls_stage_id
        description: ID of the requested TLS stage.
        required: true
        schema:
          type: string
          description: ID of the requested TLS stage.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.TLSStage'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/tls-stages/{tls_stage_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/edge-services/v1beta1/tls-stages/{tls_stage_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - TLS stages
      operationId: UpdateTLSStage
      summary: Update TLS stage
      description: Update the parameters of an existing TLS stage, specified by its
        `tls_stage_id`. Both `tls_secrets_config` and `managed_certificate` parameters
        can be updated.
      parameters:
      - in: path
        name: tls_stage_id
        description: ID of the TLS stage to update.
        required: true
        schema:
          type: string
          description: ID of the TLS stage to update.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.edge_services.v1beta1.TLSStage'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                tls_secrets_config:
                  type: object
                  description: Secret (from Scaleway Secret-Manager) containing your
                    custom certificate.
                  properties:
                    tls_secrets:
                      type: array
                      description: Secret information (from Secret Manager).
                      items:
                        $ref: '#/components/schemas/scaleway.edge_services.v1beta1.TLSSecret'
                  x-properties-order:
                  - tls_secrets
                managed_certificate:
                  type: boolean
                  description: True when Scaleway generates and manages a Let's Encrypt
                    certificate for the TLS stage/custom endpoint.
                  nullable: true
                cache_stage_id:
                  type: string
                  description: Cache stage ID the TLS stage will be linked to. (UUID
                    format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
                backend_stage_id:
                  type: string
                  description: Backend stage ID the TLS stage will be linked to. (UUID
                    format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
                route_stage_id:
                  type: string
                  description: (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
                waf_stage_id:
                  type: string
                  description: (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: next
              x-properties-order:
              - tls_secrets_config
              - managed_certificate
              - cache_stage_id
              - backend_stage_id
              - route_stage_id
              - waf_stage_id
      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/edge-services/v1beta1/tls-stages/{tls_stage_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/edge-services/v1beta1/tls-stages/{tls_stage_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - TLS stages
      operationId: DeleteTLSStage
      summary: Delete TLS stage
      description: Delete an existing TLS stage, specified by its `tls_stage_id`.
        Deleting a TLS stage is permanent, and cannot be undone.
      parameters:
      - in: path
        name: tls_stage_id
        description: ID of the TLS stage to delete.
        required: true
        schema:
          type: string
          description: ID of the TLS stage to delete.
      responses:
        "204":
          description: ""
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/edge-services/v1beta1/tls-stages/{tls_stage_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/edge-services/v1beta1/tls-stages/{tls_stage_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
