> ## Documentation Index
> Fetch the complete documentation index at: https://gcore.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create CDN resource



## OpenAPI

````yaml /api-reference/services_documented/cdn_api.yaml post /cdn/resources
openapi: 3.1.0
info:
  title: Gcore OpenAPI – CDN API
  description: >-
    This OpenAPI is an aggregated OpenAPI specification that unifies all Gcore
    products into a single file. It covers Cloud, CDN, DNS, WAAP, DDoS
    Protection, Object Storage, Streaming, and FastEdge services.
  version: '2026-05-14T07:00:22.640261+00:00'
servers:
  - url: https://api.gcore.com
security:
  - APIKey: []
tags:
  - name: CDN service
    description: Information about the current state of the CDN service in your account.
    x-displayName: CDN service
  - name: CDN resources
    x-displayName: CDN resources
  - name: Origins
    x-displayName: Origins
  - name: Rules
    description: >-
      Rules allow to set up custom settings for certain file types or paths.

      By default, the rule inherits all options values from the related CDN
      resource.


      Each option in rule settings can be in one of the following states:

      - **Inherit** - Option is not added to the rule. Option inherits its value
      from the CDN resource settings. In this case, the option value is
      **null**.

      - **ON** - Option is added to the rule and enabled. Option values
      configured in the rule will override values from the CDN resource
      settings.

      - **OFF** - Option is added to the rule and disabled. Option will be
      turned off.
    x-displayName: Rules
  - name: Rule templates
    x-displayName: Rule templates
  - name: SSL certificates
    x-displayName: SSL certificates
  - name: Let's Encrypt certificates
    x-displayName: Let's Encrypt certificates
  - name: CA certificates
    x-displayName: CA certificates
  - name: CDN activity logs
    description: |-
      Get the history of users requests to CDN.
      It contains requests made both via the API and via the control panel.

      The following methods are not tracked in the activity logs:
      - HEAD
      - OPTIONS
    x-displayName: CDN activity logs
  - name: Log viewer
    description: >-
      Log viewer provides you with general information about CDN operation. This
      information does not contain all possible

      sets of fields and restricted by time. To receive full data, use Logs
      Uploader.
    x-displayName: Log viewer
  - name: Logs uploader
    description: >-
      Logs uploader allows you to upload logs with desired format to desired
      storages.


      Consists of three main parts:

      - **Policies** - rules that define which logs are uploaded and how they
      are uploaded.

      - **Targets** - destinations where logs are uploaded.

      - **Configs** - combinations of logs uploader policies, targets and
      resources to which they are applied.
    x-displayName: Logs uploader
  - name: Tools
    x-displayName: Tools
  - name: CDN Statistics
    description: >-
      Consumption statistics is updated in near real-time as a standard
      practice.

      However, the frequency of updates can vary, but they are typically
      available within a 24-hour period.

      Exceptions, such as maintenance periods, may delay data beyond 24 hours
      until servers resume and fill in the missing statistics.
    x-displayName: Statistics
  - name: Advanced analytics
    description: >-
      Advanced analytics allows to get statistics about unique visitors,
      traffic, and requests for countries, directories, browsers, devices, and
      operation systems for up to 90 days starting from today.


      Advanced analytics API is based on the [GraphQL
      framework](https://graphql.org/).


      Advanced analytics API has one single endpoint:

       https://api.gcore.com/cdn/advanced/v2/query

      You can pass the query parameters as a JSON object in the payload of a
      POST request to this endpoint.

      You can use curl to make requests to the Advanced analytics API.
      Alternatively, you can use a GraphQL client

      to construct queries and pass requests to the Advanced analytics API.


      You can write queries in GraphQL much like in SQL: specify the data set
      (CDN resource), the metrics

      to retrieve (such as unique visitors and traffic), and filter or group by
      dimensions (for example, a country).
    x-displayName: Advanced analytics
  - name: Origin shielding
    x-displayName: Origin shielding
  - name: IP addresses list
    x-displayName: IP addresses list
  - name: Purge history
    x-displayName: Purge history
paths:
  /cdn/resources:
    post:
      tags:
        - CDN resources
      summary: Create CDN resource
      operationId: create-cdn-resource
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateResource'
      responses:
        '201':
          description: Successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceResponse'
        '400':
          description: Failed to create the CDN resource.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/CnameAlreadyExistsError'
                  - $ref: '#/components/schemas/SecondaryCnameAlreadyExistsError'
                  - $ref: '#/components/schemas/JSONParseError'
                  - $ref: '#/components/schemas/CommonValidationError'
      x-codeSamples:
        - lang: Python
          source: |-
            import os
            from gcore import Gcore

            client = Gcore(
                api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
            )
            cdn_resource = client.cdn.cdn_resources.create(
                cname="cdn.site.com",
            )
            print(cdn_resource.id)
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/G-Core/gcore-go\"\n\t\"github.com/G-Core/gcore-go/cdn\"\n\t\"github.com/G-Core/gcore-go/option\"\n)\n\nfunc main() {\n\tclient := gcore.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\tcdnResource, err := client.CDN.CDNResources.New(context.TODO(), cdn.CDNResourceNewParams{\n\t\tCname: \"cdn.site.com\",\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", cdnResource.ID)\n}\n"
components:
  schemas:
    CreateResource:
      type: object
      properties:
        cname:
          $ref: '#/components/schemas/cname'
        originGroup:
          $ref: '#/components/schemas/originGroup_create'
          x-stainless-terraform-configurability: computed_optional
        origin:
          $ref: '#/components/schemas/origin'
          x-stainless-terraform-configurability: computed_optional
        active:
          $ref: '#/components/schemas/active'
        originProtocol:
          $ref: '#/components/schemas/originProtocol'
        name:
          $ref: '#/components/schemas/schemas-name'
          x-stainless-terraform-configurability: computed_optional
        description:
          $ref: '#/components/schemas/description'
          x-stainless-terraform-configurability: computed_optional
        secondaryHostnames:
          $ref: '#/components/schemas/secondaryHostnames'
          x-stainless-terraform-configurability: computed_optional
          x-stainless-collection-type: set
        sslEnabled:
          $ref: '#/components/schemas/sslEnabled'
        sslData:
          $ref: '#/components/schemas/sslData'
          x-stainless-terraform-configurability: computed_optional
        proxy_ssl_enabled:
          $ref: '#/components/schemas/proxy_ssl_enabled'
        proxy_ssl_ca:
          $ref: '#/components/schemas/proxy_ssl_ca'
          x-stainless-terraform-configurability: computed_optional
        proxy_ssl_data:
          $ref: '#/components/schemas/proxy_ssl_data'
          x-stainless-terraform-configurability: computed_optional
        primary_resource:
          $ref: '#/components/schemas/primary_resource'
        waap_api_domain_enabled:
          $ref: '#/components/schemas/waap_api_domain_enabled'
        options:
          $ref: '#/components/schemas/resource_options'
          type: object
      required:
        - cname
    ResourceResponse:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/schemas-id'
        cname:
          $ref: '#/components/schemas/cname'
        active:
          $ref: '#/components/schemas/active'
        enabled:
          $ref: '#/components/schemas/schemas-enabled'
        status:
          $ref: '#/components/schemas/status'
        deleted:
          $ref: '#/components/schemas/deleted'
        client:
          $ref: '#/components/schemas/cdn_client'
        name:
          $ref: '#/components/schemas/schemas-name'
        description:
          $ref: '#/components/schemas/description'
        created:
          $ref: '#/components/schemas/created'
        updated:
          $ref: '#/components/schemas/updated'
        originGroup:
          $ref: '#/components/schemas/originGroup'
        originGroup_name:
          $ref: '#/components/schemas/originGroup_name'
        originProtocol:
          $ref: '#/components/schemas/originProtocol'
        secondaryHostnames:
          $ref: '#/components/schemas/secondaryHostnames'
        shielded:
          $ref: '#/components/schemas/shielded'
        shield_dc:
          $ref: '#/components/schemas/shield_dc'
        shield_enabled:
          $ref: '#/components/schemas/shield_enabled'
        shield_routing_map:
          $ref: '#/components/schemas/shield_routing_map'
        sslEnabled:
          $ref: '#/components/schemas/sslEnabled'
        sslData:
          $ref: '#/components/schemas/sslData'
        proxy_ssl_enabled:
          $ref: '#/components/schemas/proxy_ssl_enabled'
        proxy_ssl_ca:
          $ref: '#/components/schemas/proxy_ssl_ca'
        proxy_ssl_data:
          $ref: '#/components/schemas/proxy_ssl_data'
        preset_applied:
          $ref: '#/components/schemas/preset_applied'
        vp_enabled:
          $ref: '#/components/schemas/vp_enabled'
        full_custom_enabled:
          $ref: '#/components/schemas/full_custom_enabled'
        can_purge_by_urls:
          $ref: '#/components/schemas/can_purge_by_urls'
        suspend_date:
          $ref: '#/components/schemas/suspend_date'
        suspended:
          $ref: '#/components/schemas/suspended'
        primary_resource:
          $ref: '#/components/schemas/primary_resource'
        is_primary:
          $ref: '#/components/schemas/is_primary'
        waap_domain_id:
          $ref: '#/components/schemas/waap_domain_id'
        rules:
          type: array
          readOnly: true
          items:
            type: object
            format: Rule
          description: Rules configured for the CDN resource.
          example: []
        options:
          $ref: '#/components/schemas/resource_options'
          type: object
    CnameAlreadyExistsError:
      title: CNAME already exists
      type: object
      properties:
        errors:
          type: object
          properties:
            cname:
              type: array
              description: >-
                The specified CNAME is already used by another resource in our
                system. Try another CNAME or contact support.
              items:
                type: string
              example:
                - >-
                  CNAME cdn.example.com already exists. Try another CNAME or
                  contact support.
    SecondaryCnameAlreadyExistsError:
      title: Hostname already exists
      type: object
      properties:
        errors:
          type: object
          properties:
            secondaryHostnames:
              type: string
              description: >-
                The additional CNAME is already used by another resource in our
                system. Try another additional CNAME or contact support.
          example:
            secondaryHostnames: Hostname cdn1.example.com already exists.
    JSONParseError:
      title: Invalid request JSON schema
      type: object
      properties:
        message:
          type: string
          description: >-
            This message describes error if json schema from your request is
            invalid.
          example: >
            JSON parse error - Expecting ',' delimiter: line 3 column 33 (char
            77)
    CommonValidationError:
      title: Other Errors
      type: object
      properties:
        errors:
          type: object
          description: This object contains error descriptions per field from your request.
          properties:
            field_name:
              type: array
              description: Error list for specific field.
              items:
                type: string
                description: Error description
              example:
                - Error description.
    cname:
      type: string
      description: |-
        Delivery domains that will be used for content delivery through a CDN.

        Delivery domains should be added to your DNS settings.
      example: cdn.site.com
    originGroup_create:
      type: integer
      description: >-
        Origin group ID with which the CDN resource is associated.


        Exactly one of `origin` or `originGroup` must be provided during
        resource creation.
      example: 132
    origin:
      type: string
      description: >-
        IP address or domain name of the origin and the port, if custom port is
        used.


        Exactly one of `origin` or `originGroup` must be provided during
        resource creation.
      example: example.com
    active:
      type: boolean
      default: true
      description: >-
        Enables or disables a CDN resource.


        Possible values:

        - **true** - CDN resource is active. Content is being delivered.

        - **false** - CDN resource is deactivated. Content is not being
        delivered.
      example: true
    originProtocol:
      type: string
      enum:
        - HTTP
        - HTTPS
        - MATCH
      default: HTTP
      description: >-
        Protocol used by CDN servers to request content from an origin source.


        Possible values:

        - **HTTPS** - CDN servers will connect to the origin via HTTPS.

        - **HTTP** - CDN servers will connect to the origin via HTTP.

        - **MATCH** - connection protocol will be chosen automatically (content
        on the origin source should be available for the CDN both through HTTP
        and HTTPS).


        If protocol is not specified, HTTP is used to connect to an origin
        server.
      example: HTTPS
    schemas-name:
      type: string
      nullable: true
      description: CDN resource name.
      example: Resource for images
    description:
      type: string
      description: Optional comment describing the CDN resource.
      example: My resource
    secondaryHostnames:
      type: array
      description: >-
        Additional delivery domains (CNAMEs) that will be used to deliver
        content via the CDN.


        Up to ten additional CNAMEs are possible.
      items:
        type: string
        format: domain
      example:
        - first.example.com
        - second.example.com
    sslEnabled:
      type: boolean
      default: false
      description: |-
        Defines whether the HTTPS protocol enabled for content delivery.

        Possible values:
        - **true** - HTTPS is enabled.
        - **false** - HTTPS is disabled.
      example: false
    sslData:
      type: integer
      nullable: true
      default: null
      description: |-
        ID of the SSL certificate linked to the CDN resource.

        Can be used only with `"sslEnabled": true`.
      example: 192
    proxy_ssl_enabled:
      type: boolean
      default: false
      description: >-
        Enables or disables SSL certificate validation of the origin server
        before completing any connection.


        Possible values:

        - **true** - Origin SSL certificate validation is enabled.

        - **false** - Origin SSL certificate validation is disabled.
      example: false
    proxy_ssl_ca:
      type: integer
      nullable: true
      description: |-
        ID of the trusted CA certificate used to verify an origin.

        It can be used only with `"proxy_ssl_enabled": true`.
      example: null
    proxy_ssl_data:
      type: integer
      nullable: true
      description: |-
        ID of the SSL certificate used to verify an origin.

        It can be used only with `"proxy_ssl_enabled": true`.
      example: null
    primary_resource:
      type: integer
      nullable: true
      description: >-
        ID of the main CDN resource which has a shared caching zone with a
        reserve CDN resource.


        If the parameter is not empty, then the current CDN resource is the
        reserve.

        You cannot change some options, create rules, set up origin shielding,
        or use the reserve CDN resource for Streaming.
      example: null
    waap_api_domain_enabled:
      type: boolean
      writeOnly: true
      description: >-
        Defines whether the associated WAAP Domain is identified as an API
        Domain.


        Possible values:

        - **true** - The associated WAAP Domain is designated as an API Domain.

        - **false** - The associated WAAP Domain is not designated as an API
        Domain.
    resource_options:
      type: object
      description: |-
        List of options that can be configured for the CDN resource.

        In case of `null` value the option is not added to the CDN resource.
        Option may inherit its value from the global account settings.
      properties:
        allowedHttpMethods:
          $ref: '#/components/schemas/allowedHttpMethods'
          x-stainless-terraform-configurability: computed_optional
        brotli_compression:
          $ref: '#/components/schemas/brotli_compression'
          x-stainless-terraform-configurability: computed_optional
        browser_cache_settings:
          $ref: '#/components/schemas/browser_cache_settings'
          x-stainless-terraform-configurability: computed_optional
        cache_http_headers:
          $ref: '#/components/schemas/cache_http_headers'
        cors:
          $ref: '#/components/schemas/cors'
        country_acl:
          $ref: '#/components/schemas/country_acl'
          x-stainless-terraform-configurability: computed_optional
        disable_cache:
          $ref: '#/components/schemas/disable_cache'
        disable_proxy_force_ranges:
          $ref: '#/components/schemas/disable_proxy_force_ranges'
          x-stainless-terraform-configurability: computed_optional
        edge_cache_settings:
          $ref: '#/components/schemas/edge_cache_settings'
          x-stainless-terraform-configurability: computed_optional
        fastedge:
          $ref: '#/components/schemas/fastedge'
        fetch_compressed:
          $ref: '#/components/schemas/fetch_compressed'
          x-stainless-terraform-configurability: computed_optional
        follow_origin_redirect:
          $ref: '#/components/schemas/follow_origin_redirect'
          x-stainless-terraform-configurability: computed_optional
        force_return:
          $ref: '#/components/schemas/force_return'
        forward_host_header:
          $ref: '#/components/schemas/forward_host_header'
          x-stainless-terraform-configurability: computed_optional
        grpc_passthrough:
          $ref: '#/components/schemas/grpc_passthrough'
          x-stainless-terraform-configurability: computed_optional
        gzipOn:
          $ref: '#/components/schemas/gzipOn'
          x-stainless-terraform-configurability: computed_optional
        hostHeader:
          $ref: '#/components/schemas/hostHeader'
          x-stainless-terraform-configurability: computed_optional
        http3_enabled:
          $ref: '#/components/schemas/http3_enabled'
          x-stainless-terraform-configurability: computed_optional
        ignore_cookie:
          $ref: '#/components/schemas/ignore_cookie'
          x-stainless-terraform-configurability: computed_optional
        ignoreQueryString:
          $ref: '#/components/schemas/ignoreQueryString'
          x-stainless-terraform-configurability: computed_optional
        image_stack:
          $ref: '#/components/schemas/image_stack'
        ip_address_acl:
          $ref: '#/components/schemas/ip_address_acl'
          x-stainless-terraform-configurability: computed_optional
        limit_bandwidth:
          $ref: '#/components/schemas/limit_bandwidth'
          x-stainless-terraform-configurability: computed_optional
        proxy_cache_key:
          $ref: '#/components/schemas/proxy_cache_key'
          x-stainless-terraform-configurability: computed_optional
        proxy_cache_methods_set:
          $ref: '#/components/schemas/proxy_cache_methods_set'
          x-stainless-terraform-configurability: computed_optional
        proxy_connect_timeout:
          $ref: '#/components/schemas/proxy_connect_timeout'
          x-stainless-terraform-configurability: computed_optional
        proxy_read_timeout:
          $ref: '#/components/schemas/proxy_read_timeout'
          x-stainless-terraform-configurability: computed_optional
        query_params_blacklist:
          $ref: '#/components/schemas/query_params_blacklist'
          x-stainless-terraform-configurability: computed_optional
        query_params_whitelist:
          $ref: '#/components/schemas/query_params_whitelist'
          x-stainless-terraform-configurability: computed_optional
        query_string_forwarding:
          $ref: '#/components/schemas/query_string_forwarding'
          x-stainless-terraform-configurability: computed_optional
        redirect_http_to_https:
          $ref: '#/components/schemas/redirect_http_to_https'
          x-stainless-terraform-configurability: computed_optional
        redirect_https_to_http:
          $ref: '#/components/schemas/redirect_https_to_http'
          x-stainless-terraform-configurability: computed_optional
        referrer_acl:
          $ref: '#/components/schemas/referrer_acl'
          x-stainless-terraform-configurability: computed_optional
        response_headers_hiding_policy:
          $ref: '#/components/schemas/response_headers_hiding_policy'
          x-stainless-terraform-configurability: computed_optional
        rewrite:
          $ref: '#/components/schemas/rewrite'
        secure_key:
          $ref: '#/components/schemas/secure_key'
        slice:
          $ref: '#/components/schemas/slice'
          x-stainless-terraform-configurability: computed_optional
        sni:
          $ref: '#/components/schemas/sni'
        stale:
          $ref: '#/components/schemas/stale'
          x-stainless-terraform-configurability: computed_optional
        static_response_headers:
          $ref: '#/components/schemas/static_response_headers'
          x-stainless-terraform-configurability: computed_optional
        staticHeaders:
          $ref: '#/components/schemas/staticHeaders'
        staticRequestHeaders:
          $ref: '#/components/schemas/staticRequestHeaders'
          x-stainless-terraform-configurability: computed_optional
        tls_versions:
          $ref: '#/components/schemas/tls_versions'
          x-stainless-terraform-configurability: computed_optional
        use_default_le_chain:
          $ref: '#/components/schemas/use_default_le_chain'
          x-stainless-terraform-configurability: computed_optional
        use_dns01_le_challenge:
          $ref: '#/components/schemas/use_dns01_le_challenge'
          x-stainless-terraform-configurability: computed_optional
        use_rsa_le_cert:
          $ref: '#/components/schemas/use_rsa_le_cert'
          x-stainless-terraform-configurability: computed_optional
        user_agent_acl:
          $ref: '#/components/schemas/user_agent_acl'
          x-stainless-terraform-configurability: computed_optional
        waap:
          $ref: '#/components/schemas/waap'
          x-stainless-terraform-configurability: computed_optional
        websockets:
          $ref: '#/components/schemas/websockets'
          x-stainless-terraform-configurability: computed_optional
    schemas-id:
      type: integer
      readOnly: true
      description: CDN resource ID.
      example: 220
    schemas-enabled:
      type: boolean
      readOnly: true
      description: >-
        Enables or disables a CDN resource change by a user.


        Possible values:

        - **true** - CDN resource is enabled and can be changed. Content can be
        delivered.

        - **false** - CDN resource is disabled and cannot be changed. Content
        can not be delivered.
      example: true
    status:
      type: string
      enum:
        - active
        - suspended
        - processed
        - deleted
      readOnly: true
      description: >-
        CDN resource status.


        Possible values:

        - **active** - CDN resource is active. Content is available to users.

        - **suspended** - CDN resource is suspended. Content is not available to
        users.

        - **processed** - CDN resource has recently been created and is
        currently being processed. It will take about fifteen minutes to
        propagate it to all locations.

        - **deleted** - CDN resource is deleted.
      example: active
    deleted:
      type: boolean
      readOnly: true
      description: |-
        Defines whether CDN resource has been deleted.

        Possible values:
        - **true** - CDN resource is deleted.
        - **false** - CDN resource is not deleted.
      example: false
    cdn_client:
      type: integer
      readOnly: true
      description: ID of an account to which the CDN resource belongs.
      example: 170
    created:
      type: string
      readOnly: true
      description: Date of CDN resource creation.
      example: '2017-06-10T10:30:04.954354Z'
    updated:
      type: string
      readOnly: true
      description: Date of the last CDN resource update.
      example: '2017-06-14T05:05:42.065221Z'
    originGroup:
      type: integer
      description: Origin group ID with which the CDN resource is associated.
      example: 132
    originGroup_name:
      type: string
      readOnly: true
      description: Origin group name.
      example: Resource origin group
    shielded:
      type: boolean
      readOnly: true
      description: |-
        Defines whether origin shielding feature is enabled for the resource.

        Possible values:
        - **true** - Origin shielding is enabled.
        - **false** - Origin shielding is disabled.
      example: false
    shield_dc:
      type: string
      nullable: true
      readOnly: true
      description: |-
        Name of the origin shielding location data center.

        Parameter returns **null** if origin shielding is disabled.
      example: null
    shield_enabled:
      type: boolean
      readOnly: true
      description: >-
        Defines whether origin shield is active and working for the CDN
        resource.


        Possible values:

        - **true** - Origin shield is active.

        - **false** - Origin shield is not active.
      example: false
    shield_routing_map:
      type: integer
      readOnly: true
      nullable: true
      description: >-
        Defines whether the origin shield with a dynamic location is enabled for
        the CDN resource.


        To manage origin shielding, you must contact customer support.
      example: null
    preset_applied:
      type: boolean
      readOnly: true
      description: >-
        Defines whether the CDN resource has a preset applied.


        Possible values:

        - **true** - CDN resource has a preset applied. CDN resource options
        included in the preset cannot be edited.

        - **false** - CDN resource does not have a preset applied.
      example: false
    vp_enabled:
      type: boolean
      readOnly: true
      description: >-
        Defines whether the CDN resource is integrated with the Streaming
        Platform.


        Possible values:

        - **true** - CDN resource is configured for Streaming Platform. Changing
        resource settings can affect its operation.

        - **false** - CDN resource is not configured for Streaming Platform.
      example: false
    full_custom_enabled:
      type: boolean
      readOnly: true
      description: >-
        Defines whether the CDN resource has a custom configuration.


        Possible values:

        - **true** - CDN resource has a custom configuration. You cannot change
        resource settings, except for the SSL certificate. To change other
        settings, contact technical support.

        - **false** - CDN resource has a regular configuration. You can change
        CDN resource settings.
      example: false
    can_purge_by_urls:
      type: boolean
      readOnly: true
      description: >-
        Defines whether the CDN resource can be used for purge by URLs feature.


        It's available only in case the CDN resource has enabled
        `ignore_vary_header` option.
      example: false
    suspend_date:
      type: string
      readOnly: true
      nullable: true
      description: >-
        Date when the CDN resource was suspended automatically if there is no
        traffic on it for 90 days.


        Not specified if the resource was not stopped due to lack of traffic.
      example: null
    suspended:
      type: boolean
      readOnly: true
      description: >-
        Defines whether the CDN resource has been automatically suspended
        because there was no traffic on it for 90 days.


        Possible values:

        - **true** - CDN resource is currently automatically suspended.

        - **false** - CDN resource is not automatically suspended.


        You can enable CDN resource using the `active` field. If there is no
        traffic on the CDN resource within seven days following activation, it
        will be suspended again.


        To avoid CDN resource suspension due to no traffic, contact technical
        support.
      example: false
    is_primary:
      type: boolean
      readOnly: true
      nullable: true
      description: >-
        Defines whether a CDN resource has a cache zone shared with other CDN
        resources.


        Possible values:

        - **true** - CDN resource is main and has a shared caching zone with
        other CDN resources, which are called reserve.

        - **false** - CDN resource is reserve and it has a shared caching zone
        with the main CDN resource. You cannot change some options, create
        rules, set up origin shielding and use the reserve resource for
        Streaming.

        - **null** - CDN resource does not have a shared cache zone.


        The main CDN resource is specified in the `primary_resource` field. It
        cannot be suspended unless all related reserve CDN resources are
        suspended.
      example: null
    waap_domain_id:
      type: string
      readOnly: true
      nullable: true
      description: The ID of the associated WAAP domain.
      example: '123'
    allowedHttpMethods:
      type: object
      nullable: true
      description: HTTP methods allowed for content requests from the CDN.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: array
          uniqueItems: true
          items:
            type: string
            enum:
              - GET
              - HEAD
              - POST
              - PUT
              - PATCH
              - DELETE
              - OPTIONS
          x-stainless-collection-type: set
      required:
        - enabled
        - value
      example:
        enabled: true
        value:
          - GET
          - POST
    brotli_compression:
      type: object
      nullable: true
      description: >-
        Compresses content with Brotli on the CDN side. CDN servers will request
        only uncompressed content from the origin.


        Notes:


        1. CDN only supports "Brotli compression" when the "origin shielding"
        feature is activated.

        2. If a precache server is not active for a CDN resource, no compression
        occurs, even if the option is enabled.

        3. `brotli_compression` is not supported with `fetch_compressed` or
        `slice` options enabled.

        4. `fetch_compressed` option in CDN resource settings overrides
        `brotli_compression` in rules. If you enabled `fetch_compressed` in CDN
        resource and want to enable `brotli_compression` in a rule, you must
        specify `fetch_compressed:false` in the rule.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: array
          description: |-
            Allows to select the content types you want to compress.

            `text/html` is a mandatory content type.
          uniqueItems: true
          items:
            type: string
            enum:
              - application/javascript
              - application/json
              - application/vnd.ms-fontobject
              - application/wasm
              - application/x-font-ttf
              - application/x-javascript
              - application/xml
              - application/xml+rss
              - image/svg+xml
              - image/x-icon
              - text/css
              - text/html
              - text/javascript
              - text/plain
              - text/xml
          x-stainless-collection-type: set
      required:
        - enabled
        - value
      example:
        enabled: true
        value:
          - text/html
          - text/plain
    browser_cache_settings:
      type: object
      nullable: true
      description: >-
        Cache expiration time for users browsers in seconds.


        Cache expiration time is applied to the following response codes: 200,
        201, 204, 206, 301, 302, 303, 304, 307, 308.


        Responses with other codes will not be cached.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: string
          description: |-
            Set the cache expiration time to '0s' to disable caching.

            The maximum duration is any equivalent to `1y`.
          format: nginx time
          pattern: ^\d+(ms|s|m|h|d|w|M|y)?$
      required:
        - enabled
        - value
      example:
        enabled: true
        value: 3600s
    cache_http_headers:
      type: object
      nullable: true
      deprecated: true
      description: >-
        **Legacy option**. Use the `response_headers_hiding_policy` option
        instead.


        HTTP Headers that must be included in the response.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: array
          uniqueItems: true
          items:
            type: string
            maxLength: 1024
      required:
        - enabled
        - value
      example:
        enabled: false
        value:
          - vary
          - content-length
          - last-modified
          - connection
          - accept-ranges
          - content-type
          - content-encoding
          - etag
          - cache-control
          - expires
          - keep-alive
          - server
    cors:
      type: object
      nullable: true
      description: >-
        Enables or disables CORS (Cross-Origin Resource Sharing) header support.


        CORS header support allows the CDN to add the
        Access-Control-Allow-Origin header to a response to a browser.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: array
          items:
            type: string
          description: >-
            Value of the Access-Control-Allow-Origin header.


            Possible values:

            - **Adds * as the Access-Control-Allow-Origin header value** -
            Content will be uploaded for requests from any domain.

            `"value": ["*"]`

            - **Adds "$http_origin" as the Access-Control-Allow-Origin header
            value if the origin matches one of the listed domains** - Content
            will be uploaded only for requests from the domains specified in the
            field.

            `"value": ["domain.com", "second.dom.com"]`

            - **Adds "$http_origin" as the Access-Control-Allow-Origin header
            value** - Content will be uploaded for requests from any domain, and
            the domain from which the request was sent will be added to the
            "Access-Control-Allow-Origin" header in the response.

            `"value": ["$http_origin"]`
          x-stainless-collection-type: set
        always:
          type: boolean
          default: false
          description: >-
            Defines whether the Access-Control-Allow-Origin header should be
            added to a response from CDN regardless of response code.


            Possible values:

            - **true** - Header will be added to a response regardless of
            response code.

            - **false** - Header will only be added to responses with codes:
            200, 201, 204, 206, 301, 302, 303, 304, 307, 308.
      required:
        - enabled
        - value
      example:
        enabled: true
        value:
          - domain.com
          - domain2.com
        always: true
    country_acl:
      type: object
      nullable: true
      description: Enables control access to content for specified countries.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        policy_type:
          type: string
          enum:
            - allow
            - deny
          description: >-
            Defines the type of CDN resource access policy.


            Possible values:

            - **allow** - Access is allowed for all the countries except for
            those specified in `excepted_values` field.

            - **deny** - Access is denied for all the countries except for those
            specified in `excepted_values` field.
        excepted_values:
          type: array
          uniqueItems: true
          maxItems: 600
          items:
            type: string
            maxLength: 255
            format: country-code
          description: |-
            List of countries according to ISO-3166-1.

            The meaning of the parameter depends on `policy_type` value:
            - **allow** - List of countries for which access is prohibited.
            - **deny** - List of countries for which access is allowed.
          x-stainless-collection-type: set
      required:
        - enabled
        - policy_type
        - excepted_values
      example:
        enabled: true
        policy_type: allow
        excepted_values:
          - GB
          - DE
    disable_cache:
      type: object
      nullable: true
      deprecated: true
      description: |-
        **Legacy option**. Use the `edge_cache_settings` option instead.

        Allows the complete disabling of content caching.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: boolean
          description: |-
            Possible values:
            - **true** - content caching is disabled.
            - **false** - content caching is enabled.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: false
    disable_proxy_force_ranges:
      type: object
      nullable: true
      description: Allows 206 responses regardless of the settings of an origin source.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: boolean
          description: |-
            Possible values:
            - **true** - Option is enabled.
            - **false** - Option is disabled.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: true
    edge_cache_settings:
      type: object
      nullable: true
      description: |-
        Cache expiration time for CDN servers.

        `value` and `default` fields cannot be used simultaneously.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: string
          description: >-
            Caching time.


            The value is applied to the following response codes: 200, 206, 301,
            302.

            Responses with codes 4xx, 5xx will not be cached.


            Use `0s` to disable caching.


            The maximum duration is any equivalent to `1y`.
          format: nginx time
          pattern: ^\d+(ms|s|m|h|d|w|M|y)?$
        custom_values:
          type: object
          additionalProperties:
            type: string
            format: nginx time
            pattern: ^\d+(ms|s|m|h|d|w|M|y)?$
          description: >-
            A MAP object representing the caching time in seconds for a response
            with a specific response code.


            These settings have a higher priority than the `value` field.


            - Use `any` key to specify caching time for all response codes.

            - Use `0s` value to disable caching for a specific response code.
          format: '{status_code or any}: {nginx time}'
          x-stainless-terraform-configurability: computed_optional
        default:
          type: string
          description: >-
            Enables content caching according to the origin cache settings.


            The value is applied to the following response codes 200, 201, 204,
            206, 301, 302, 303, 304, 307, 308, if an origin server does not have
            caching HTTP headers.


            Responses with other codes will not be cached.


            The maximum duration is any equivalent to `1y`.
          format: nginx time
          pattern: ^\d+(ms|s|m|h|d|w|M|y)?$
      required:
        - enabled
      example:
        enabled: true
        value: 43200s
        custom_values:
          '100': 43200s
    fastedge:
      type: object
      nullable: true
      description: >-
        Allows to configure FastEdge app to be called on different
        request/response phases.


        Note: At least one of `on_request_headers`, `on_request_body`,
        `on_response_headers`, or `on_response_body` must be specified.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        on_request_headers:
          allOf:
            - $ref: '#/components/schemas/FastEdgeTriggerSettings'
            - description: >-
                Allows to configure FastEdge application that will be called to
                handle request headers as soon as CDN receives incoming HTTP
                request, **before cache**.
        on_request_body:
          allOf:
            - $ref: '#/components/schemas/FastEdgeTriggerSettings'
            - description: >-
                Allows to configure FastEdge application that will be called to
                handle request body as soon as CDN receives incoming HTTP
                request.
        on_response_headers:
          allOf:
            - $ref: '#/components/schemas/FastEdgeTriggerSettings'
            - description: >-
                Allows to configure FastEdge application that will be called to
                handle response headers before CDN sends the HTTP response.
        on_response_body:
          allOf:
            - $ref: '#/components/schemas/FastEdgeTriggerSettings'
            - description: >-
                Allows to configure FastEdge application that will be called to
                handle response body before CDN sends the HTTP response.
      required:
        - enabled
      example:
        enabled: true
        on_request_headers:
          enabled: true
          app_id: '1001'
          interrupt_on_error: true
    fetch_compressed:
      type: object
      nullable: true
      description: >-
        Makes the CDN request compressed content from the origin.


        The origin server should support compression. CDN servers will not
        decompress your content even if a user browser does not accept
        compression.


        Notes:


        1. `fetch_compressed` is not supported with `gzipON` or
        `brotli_compression` or `slice` options enabled.

        2. `fetch_compressed` overrides `gzipON` and `brotli_compression` in
        rule. If you enable it in CDN resource and want to use `gzipON` and
        `brotli_compression` in a rule, you have to specify `"fetch_compressed":
        false` in the rule.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: boolean
          description: |-
            Possible values:
            - **true** - Option is enabled.
            - **false** - Option is disabled.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: false
    follow_origin_redirect:
      type: object
      nullable: true
      description: >-
        Enables redirection from origin.

        If the origin server returns a redirect, the option allows the CDN to
        pull the requested content from the origin server that was returned in
        the redirect.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        codes:
          type: array
          uniqueItems: true
          minItems: 1
          items:
            type: integer
            enum:
              - 301
              - 302
              - 303
              - 307
              - 308
          description: >-
            Redirect status code that the origin server returns.


            To serve up to date content to end users, you will need to purge the
            cache after managing the option.
          x-stainless-collection-type: set
      required:
        - enabled
        - codes
      example:
        enabled: true
        codes:
          - 302
          - 308
    force_return:
      type: object
      nullable: true
      description: >-
        Applies custom HTTP response codes for CDN content.


        The following codes are reserved by our system and cannot be specified
        in this option: 408, 444, 477, 494, 495, 496, 497, 499.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        code:
          type: integer
          minimum: 100
          maximum: 599
          description: Status code value.
        body:
          type: string
          maxLength: 255
          description: URL for redirection or text.
        time_interval:
          type: object
          nullable: true
          description: >-
            Controls the time at which a custom HTTP response code should be
            applied. By default, a custom HTTP response code is applied at any
            time.
          required:
            - start_time
            - end_time
          properties:
            start_time:
              type: string
              example: '06:00'
              description: >-
                Time from which a custom HTTP response code should be applied.
                Indicated in 24-hour format.
            end_time:
              type: string
              example: '18:00'
              description: >-
                Time until which a custom HTTP response code should be applied.
                Indicated in 24-hour format.
            time_zone:
              type: string
              format: timezone
              default: UTC
              example: Europe/Luxembourg
              description: Time zone used to calculate time.
      required:
        - enabled
        - code
        - body
      example:
        enabled: true
        code: 301
        body: http://example.com/redirect_address
        time_interval:
          start_time: '09:00'
          end_time: '20:00'
          time_zone: CET
    forward_host_header:
      type: object
      nullable: true
      description: >-
        Forwards the Host header from a end-user request to an origin server.


        `hostHeader` and `forward_host_header` options cannot be enabled
        simultaneously.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: boolean
          description: |-
            Possible values:
            - **true** - Option is enabled.
            - **false** - Option is disabled.
      required:
        - enabled
        - value
      example:
        enabled: false
        value: false
    grpc_passthrough:
      type: object
      nullable: true
      description: Enables gRPC pass-through for the CDN resource.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: boolean
          description: |-
            Possible values:
            - **true** - Option is enabled.
            - **false** - Option is disabled.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: true
    gzipOn:
      type: object
      nullable: true
      description: >-
        Compresses content with gzip on the CDN end. CDN servers will request
        only uncompressed content from the origin.


        Notes:


        1. Compression with gzip is not supported with `fetch_compressed` or
        `slice` options enabled.

        2. `fetch_compressed` option in CDN resource settings overrides `gzipON`
        in rules. If you enable `fetch_compressed` in CDN resource and want to
        enable `gzipON` in rules, you need to specify `"fetch_compressed":false`
        for rules.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: boolean
          description: |-
            Possible values:
            - **true** - Option is enabled.
            - **false** - Option is disabled.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: true
    hostHeader:
      type: object
      nullable: true
      description: >-
        Sets the Host header that CDN servers use when request content from an
        origin server.

        Your server must be able to process requests with the chosen header.


        If the option is `null`, the Host Header value is equal to first CNAME.


        `hostHeader` and `forward_host_header` options cannot be enabled
        simultaneously.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: string
          maxLength: 2048
          pattern: ^[a-z0-9.\-_:]*$
          description: Host Header value.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: host.com
    http3_enabled:
      type: object
      nullable: true
      description: |-
        Enables HTTP/3 protocol for content delivery.

        `http3_enabled` option works only with `"sslEnabled": true`.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: boolean
          description: |-
            Possible values:
            - **true** - Option is enabled.
            - **false** - Option is disabled.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: true
    ignore_cookie:
      type: object
      nullable: true
      description: >-
        Defines whether the files with the Set-Cookies header are cached as one
        file or as different ones.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: boolean
          description: >-
            Possible values:

            - **true** - Option is enabled, files with cookies are cached as one
            file.

            - **false** - Option is disabled, files with cookies are cached as
            different files.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: true
    ignoreQueryString:
      type: object
      nullable: true
      description: >-
        How a file with different query strings is cached: either as one object
        (option is enabled) or as different objects (option is disabled.)


        `ignoreQueryString`, `query_params_whitelist` and
        `query_params_blacklist` options cannot be enabled simultaneously.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: boolean
          description: |-
            Possible values:
            - **true** - Option is enabled.
            - **false** - Option is disabled.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: false
    image_stack:
      type: object
      nullable: true
      description: >-
        Transforms JPG and PNG images (for example, resize or crop) and
        automatically converts them to WebP or AVIF format.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        avif_enabled:
          type: boolean
          default: false
          description: >-
            Enables or disables automatic conversion of JPEG and PNG images to
            AVI format.
        webp_enabled:
          type: boolean
          default: false
          description: >-
            Enables or disables automatic conversion of JPEG and PNG images to
            WebP format.
        quality:
          type: integer
          maximum: 100
          minimum: 1
          default: 95
          description: >-
            Defines quality settings for JPG and PNG images. The higher the
            value, the better the image quality, and the larger the file size
            after conversion.
        png_lossless:
          type: boolean
          default: false
          description: Enables or disables compression without quality loss for PNG format.
      required:
        - enabled
      example:
        enabled: true
        avif_enabled: true
        webp_enabled: false
        quality: 80
        png_lossless: true
    ip_address_acl:
      type: object
      nullable: true
      description: >-
        Controls access to the CDN resource content for specific IP addresses.


        If you want to use IPs from our CDN servers IP list for IP ACL
        configuration, you have to independently monitor their relevance.


        We recommend you use a script for automatically update IP ACL. [Read
        more.](/docs/api-reference/cdn/ip-addresses-list/get-cdn-servers-ip-addresses)
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        policy_type:
          type: string
          enum:
            - allow
            - deny
          description: >-
            IP access policy type.


            Possible values:

            - **allow** - Allow access to all IPs except IPs specified in
            "excepted_values" field.

            - **deny** - Deny access to all IPs except IPs specified in
            "excepted_values" field.
        excepted_values:
          type: array
          uniqueItems: true
          maxItems: 600
          items:
            type: string
            maxLength: 255
            format: ipv4net or ipv6net
          description: |-
            List of IP addresses with a subnet mask.

            The meaning of the parameter depends on `policy_type` value:
            - **allow** - List of IP addresses for which access is prohibited.
            - **deny** - List of IP addresses for which access is allowed.

            Examples:
            - `192.168.3.2/32`
            - `2a03:d000:2980:7::8/128`
          x-stainless-collection-type: set
      required:
        - enabled
        - excepted_values
        - policy_type
      example:
        enabled: true
        policy_type: deny
        excepted_values:
          - 192.168.1.100/32
    limit_bandwidth:
      type: object
      nullable: true
      description: Allows to control the download speed per connection.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        limit_type:
          type: string
          enum:
            - static
            - dynamic
          description: >-
            Method of controlling the download speed per connection.


            Possible values:

            - **static** - Use speed and buffer fields to set the download speed
            limit.

            - **dynamic** - Use query strings **speed** and **buffer** to set
            the download speed limit.


            For example, when requesting content at the link


            ```

            http://cdn.example.com/video.mp4?speed=50k&buffer=500k

            ```


            the download speed will be limited to 50kB/s after 500 kB.
        speed:
          type: integer
          minimum: 1
          maximum: 1000000000
          description: Maximum download speed per connection.
        buffer:
          type: integer
          minimum: 0
          maximum: 1000000000
          description: Amount of downloaded data after which the user will be rate limited.
      required:
        - enabled
        - limit_type
      example:
        enabled: true
        limit_type: static
        speed: 100
        buffer: 200
    proxy_cache_key:
      type: object
      nullable: true
      description: >-
        Allows you to modify your cache key. If omitted, the default value is
        `$request_uri`.


        Combine the specified variables to create a key for caching.

        - **$`request_uri`**

        - **$scheme**

        - **$uri**


        **Warning**: Enabling and changing this option can invalidate your
        current cache and affect the cache hit ratio. Furthermore, the "Purge by
        pattern" option will not work.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: string
          maxLength: 255
          description: Key for caching.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: $scheme$uri
    proxy_cache_methods_set:
      type: object
      nullable: true
      description: Caching for POST requests along with default GET and HEAD.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: boolean
          description: |-
            Possible values:
            - **true** - Option is enabled.
            - **false** - Option is disabled.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: false
    proxy_connect_timeout:
      type: object
      nullable: true
      description: The time limit for establishing a connection with the origin.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: string
          description: |-
            Timeout value in seconds.

            Supported range: **1s - 5s**.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: 4s
    proxy_read_timeout:
      type: object
      nullable: true
      description: >-
        The time limit for receiving a partial response from the origin.

        If no response is received within this time, the connection will be
        closed.


        **Note:**

        When used with a WebSocket connection, this option supports values only
        in the range 1–20 seconds (instead of the usual 1–30 seconds).
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: string
          description: |-
            Timeout value in seconds.

            Supported range: **1s - 30s**.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: 10s
    query_params_blacklist:
      type: object
      nullable: true
      description: >-
        Files with the specified query parameters are cached as one object,
        files with other parameters are cached as different objects.


        `ignoreQueryString`, `query_params_whitelist` and
        `query_params_blacklist` options cannot be enabled simultaneously.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: array
          items:
            type: string
          description: List of query parameters.
          x-stainless-collection-type: set
      required:
        - enabled
        - value
      example:
        enabled: true
        value:
          - some
          - blacklisted
          - query
    query_params_whitelist:
      type: object
      nullable: true
      description: >-
        Files with the specified query parameters are cached as different
        objects, files with other parameters are cached as one object.


        `ignoreQueryString`, `query_params_whitelist` and
        `query_params_blacklist` options cannot be enabled simultaneously.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: array
          items:
            type: string
          description: List of query parameters.
          x-stainless-collection-type: set
      required:
        - enabled
        - value
      example:
        enabled: true
        value:
          - some
          - whitelisted
          - query
    query_string_forwarding:
      type: object
      nullable: true
      description: >-
        The Query String Forwarding feature allows for the seamless transfer of
        parameters embedded in playlist files to the corresponding media chunk
        files.

        This functionality ensures that specific attributes, such as
        authentication tokens or tracking information, are consistently passed
        along from the playlist manifest to the individual media segments.

        This is particularly useful for maintaining continuity in security,
        analytics, and any other parameter-based operations across the entire
        media delivery workflow.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        forward_from_file_types:
          type: array
          items:
            type: string
          description: >-
            The `forward_from_files_types` field specifies the types of playlist
            files from which parameters will be extracted and forwarded.

            This typically includes formats that list multiple media chunk
            references, such as HLS and DASH playlists.

            Parameters associated with these playlist files (like query strings
            or headers) will be propagated to the chunks they reference.
          x-stainless-collection-type: set
        forward_to_file_types:
          type: array
          items:
            type: string
          description: >-
            The field specifies the types of media chunk files to which
            parameters, extracted from playlist files, will be forwarded.

            These refer to the actual segments of media content that are
            delivered to viewers.

            Ensuring the correct parameters are forwarded to these files is
            crucial for maintaining the integrity of the streaming session.
          x-stainless-collection-type: set
        forward_only_keys:
          type: array
          items:
            type: string
          description: >-
            The `forward_only_keys` field allows for granular control over which
            specific parameters are forwarded from playlist files to media chunk
            files.

            By specifying certain keys, only those parameters will be
            propagated, ensuring that only relevant information is passed along.

            This is particularly useful for security and performance
            optimization, as it prevents unnecessary or sensitive data from
            being included in requests for media chunks.
          x-stainless-collection-type: set
        forward_except_keys:
          type: array
          items:
            type: string
          description: >-
            The `forward_except_keys` field provides a mechanism to exclude
            specific parameters from being forwarded from playlist files to
            media chunk files.

            By listing certain keys in this field, you can ensure that these
            parameters are omitted during the forwarding process.

            This is particularly useful for preventing sensitive or irrelevant
            information from being included in requests for media chunks,
            thereby enhancing security and optimizing performance.
          x-stainless-collection-type: set
      required:
        - enabled
        - forward_from_file_types
        - forward_to_file_types
      example:
        enabled: true
        forward_from_file_types:
          - m3u8
          - mpd
        forward_to_file_types:
          - ts
          - mp4
        forward_only_keys:
          - auth_token
          - session_id
        forward_except_keys:
          - debug_info
    redirect_http_to_https:
      type: object
      nullable: true
      description: >-
        Enables redirect from HTTP to HTTPS.


        `redirect_http_to_https` and `redirect_https_to_http` options cannot be
        enabled simultaneously.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: boolean
          description: |-
            Possible values:
            - **true** - Option is enabled.
            - **false** - Option is disabled.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: true
    redirect_https_to_http:
      type: object
      nullable: true
      description: >-
        Enables redirect from HTTPS to HTTP.


        `redirect_http_to_https` and `redirect_https_to_http` options cannot be
        enabled simultaneously.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: boolean
          description: |-
            Possible values:
            - **true** - Option is enabled.
            - **false** - Option is disabled.
      required:
        - enabled
        - value
      example:
        enabled: false
        value: true
    referrer_acl:
      type: object
      nullable: true
      description: Controls access to the CDN resource content for specified domain names.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        policy_type:
          type: string
          enum:
            - allow
            - deny
          description: >-
            Policy type.


            Possible values:

            - **allow** - Allow access to all domain names except the domain
            names specified in `excepted_values` field.

            - **deny** - Deny access to all domain names except the domain names
            specified in `excepted_values` field.
        excepted_values:
          type: array
          uniqueItems: true
          maxItems: 600
          items:
            type: string
            maxLength: 255
            format: domain or wildcard
          description: >-
            List of domain names or wildcard domains (without protocol:
            `http://` or `https://`.)


            The meaning of the parameter depends on `policy_type` value:

            - **allow** - List of domain names for which access is prohibited.

            - **deny** - List of IP domain names for which access is allowed.


            Examples:

            - `example.com`

            - `*.example.com`
          x-stainless-collection-type: set
      required:
        - enabled
        - excepted_values
        - policy_type
      example:
        enabled: true
        policy_type: deny
        excepted_values:
          - example.com
          - '*.example.net'
    response_headers_hiding_policy:
      type: object
      nullable: true
      description: Hides HTTP headers from an origin server in the CDN response.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        mode:
          type: string
          enum:
            - hide
            - show
          description: >-
            How HTTP headers are hidden from the response.


            Possible values:

            - **show** - Hide only HTTP headers listed in the `excepted` field.

            - **hide** - Hide all HTTP headers except headers listed in the
            "excepted" field.
        excepted:
          type: array
          uniqueItems: true
          maxItems: 256
          items:
            type: string
            maxLength: 128
            format: http_header
          description: >-
            List of HTTP headers.


            Parameter meaning depends on the value of the `mode` field:

            - **show** - List of HTTP headers to hide from response.

            - **hide** - List of HTTP headers to include in response. Other HTTP
            headers will be hidden.


            The following headers are required and cannot be hidden from
            response:

            - `Connection`

            - `Content-Length`

            - `Content-Type`

            - `Date`

            - `Server`
          x-stainless-terraform-configurability: computed_optional
          x-stainless-collection-type: set
      required:
        - enabled
        - mode
        - excepted
      example:
        enabled: true
        mode: hide
        excepted:
          - my-header
    rewrite:
      type: object
      nullable: true
      description: >-
        Changes and redirects requests from the CDN to the origin. It operates
        according to the
        [Nginx](https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite)
        configuration.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        flag:
          type: string
          enum:
            - break
            - last
            - redirect
            - permanent
          default: break
          description: >-
            Flag for the Rewrite option.


            Possible values:

            - **last** - Stop processing the current set of
            `ngx_http_rewrite_module` directives and start a search for a new
            location matching changed URI.

            - **break** - Stop processing the current set of the Rewrite option.

            - **redirect** - Return a temporary redirect with the 302 code; used
            when a replacement string does not start with `http://`, `https://`,
            or `$scheme`.

            - **permanent** - Return a permanent redirect with the 301 code.
        body:
          type: string
          maxLength: 255
          description: |-
            Path for the Rewrite option.

            Example:
            - `/(.*) /media/$1`
      required:
        - enabled
        - body
      example:
        enabled: true
        body: /(.*) /additional_path/$1
        flag: break
    secure_key:
      type: object
      nullable: true
      description: >-
        Configures access with tokenized URLs. This makes impossible to access
        content without a valid (unexpired) token.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        key:
          type: string
          nullable: true
          maxLength: 255
          description: Key generated on your side that will be used for URL signing.
        type:
          type: integer
          enum:
            - 0
            - 2
          default: 0
          description: |-
            Type of URL signing.

            Possible types:
            - **Type 0** - Includes end user IP to secure token generation.
            - **Type 2** - Excludes end user IP from secure token generation.
      required:
        - enabled
        - key
      example:
        enabled: true
        key: secretkey
        type: 2
    slice:
      type: object
      nullable: true
      description: >-
        Requests and caches files larger than 10 MB in parts (no larger than 10
        MB per part.) This reduces time to first byte.


        The option is based on the
        [Slice](https://nginx.org/en/docs/http/ngx_http_slice_module.html)
        module.


        Notes:


        1. Origin must support HTTP Range requests.

        2. Not supported with `gzipON`, `brotli_compression` or
        `fetch_compressed` options enabled.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: boolean
          description: |-
            Possible values:
            - **true** - Option is enabled.
            - **false** - Option is disabled.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: true
    sni:
      type: object
      nullable: true
      description: >-
        The hostname that is added to SNI requests from CDN servers to the
        origin server via HTTPS.


        SNI is generally only required if your origin uses shared hosting or
        does not have a dedicated IP address.

        If the origin server presents multiple certificates, SNI allows the
        origin server to know which certificate to use for the connection.


        The option works only if `originProtocol` parameter is `HTTPS` or
        `MATCH`.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        sni_type:
          type: string
          enum:
            - dynamic
            - custom
          default: dynamic
          description: >-
            SNI (Server Name Indication) type.


            Possible values:

            - **dynamic** - SNI hostname depends on `hostHeader` and
            `forward_host_header` options.

            It has several possible combinations:

            - If the `hostHeader` option is enabled and specified, SNI hostname
            matches the Host header.

            - If the `forward_host_header` option is enabled and has true value,
            SNI hostname matches the Host header used in the request made to a
            CDN.

            - If the `hostHeader` and `forward_host_header` options are
            disabled, SNI hostname matches the primary CNAME.

            - **custom** - custom SNI hostname is in use.
        custom_hostname:
          type: string
          maxLength: 255
          format: domain
          description: |-
            Custom SNI hostname.

            It is required if `sni_type` is set to custom.
      required:
        - custom_hostname
        - enabled
      example:
        enabled: true
        sni_type: custom
        custom_hostname: custom.example.com
    stale:
      type: object
      nullable: true
      description: Serves stale cached content in case of origin unavailability.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: array
          uniqueItems: true
          items:
            type: string
            enum:
              - error
              - http_403
              - http_404
              - http_429
              - http_500
              - http_502
              - http_503
              - http_504
              - invalid_header
              - timeout
              - updating
          description: Defines list of errors for which "Always online" option is applied.
          x-stainless-collection-type: set
      required:
        - enabled
        - value
      example:
        enabled: true
        value:
          - http_404
          - http_500
    static_response_headers:
      type: object
      nullable: true
      description: Custom HTTP Headers that a CDN server adds to a response.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: array
          maxItems: 50
          items:
            type: object
            properties:
              name:
                type: string
                maxLength: 128
                pattern: ^[A-Za-z0-9]+([_\-]*[A-Za-z0-9]+)*$
                description: >-
                  HTTP Header name.


                  Restrictions:

                  - Maximum 128 symbols.

                  - Latin letters (A-Z, a-z,) numbers (0-9,) dashes, and
                  underscores only.
              value:
                type: array
                uniqueItems: true
                maxLength: 512
                items:
                  type: string
                description: >-
                  Header value.


                  Restrictions:

                  - Maximum 512 symbols.

                  - Letters (a-z), numbers (0-9), spaces, and symbols
                  (`~!@#%%^&*()-_=+ /|\";:?.,><{}[]).

                  - Must start with a letter, number, asterisk or {.

                  - Multiple values can be added.
              always:
                type: boolean
                default: false
                description: >-
                  Defines whether the header will be added to a response from
                  CDN regardless of response code.


                  Possible values:

                  - **true** - Header will be added to a response from CDN
                  regardless of response code.

                  - **false** - Header will be added only to the following
                  response codes: 200, 201, 204, 206, 301, 302, 303, 304, 307,
                  308.
            required:
              - name
              - value
      required:
        - enabled
        - value
      example:
        enabled: true
        value:
          - name: X-Example
            value:
              - Value_1
            always: true
          - name: X-Example-Multiple
            value:
              - Value_1
              - Value_2
              - Value_3
            always: false
    staticHeaders:
      type: object
      nullable: true
      deprecated: true
      description: >-
        **Legacy option**. Use the `static_response_headers` option instead.


        Custom HTTP Headers that a CDN server adds to response. Up to fifty
        custom HTTP Headers can be specified. May contain a header with multiple
        values.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: object
          description: >-
            A MAP for static headers in a format of `header_name: header_value`.


            Restrictions:

            - **Header name** - Maximum 128 symbols, may contain Latin letters
            (A-Z, a-z), numbers (0-9), dashes, and underscores.

            - **Header value** - Maximum 512 symbols, may contain letters (a-z),
            numbers (0-9), spaces, and symbols (`~!@#%%^&*()-_=+
            /|\";:?.,><{}[]). Must start with a letter, number, asterisk or {.
      required:
        - enabled
        - value
      example:
        enabled: true
        value:
          X-Example: Value_1
          X-Example-Multiple:
            - Value_2
            - Value_3
    staticRequestHeaders:
      type: object
      nullable: true
      description: >-
        Custom HTTP Headers for a CDN server to add to request. Up to fifty
        custom HTTP Headers can be specified.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: object
          description: >-
            A MAP for static headers in a format of `header_name: header_value`.


            Restrictions:

            - **Header name** - Maximum 255 symbols, may contain Latin letters
            (A-Z, a-z), numbers (0-9), dashes, and underscores.

            - **Header value** - Maximum 512 symbols, may contain letters (a-z),
            numbers (0-9), spaces, and symbols (`~!@#%%^&*()-_=+
            /|\";:?.,><{}[]). Must start with a letter, number, asterisk or {.
          additionalProperties:
            type: string
      required:
        - enabled
        - value
      example:
        enabled: true
        value:
          Header-One: Value 1
          Header-Two: Value 2
    tls_versions:
      type: object
      nullable: true
      description: >-
        List of SSL/TLS protocol versions allowed for HTTPS connections from end
        users to the domain.


        When the option is disabled, all protocols versions are allowed.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: array
          uniqueItems: true
          items:
            type: string
            enum:
              - SSLv3
              - TLSv1
              - TLSv1.1
              - TLSv1.2
              - TLSv1.3
          description: List of SSL/TLS protocol versions (case sensitive).
          x-stainless-collection-type: set
      required:
        - enabled
        - value
      example:
        enabled: true
        value:
          - SSLv3
          - TLSv1.3
    use_default_le_chain:
      type: object
      nullable: true
      description: >-
        Let's Encrypt certificate chain.


        The specified chain will be used during the next Let's Encrypt
        certificate issue or renewal.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: boolean
          description: >-
            Possible values:

            - **true** - Default Let's Encrypt certificate chain. This is a
            deprecated version, use it only for compatibilities with Android
            devices 7.1.1 or lower.

            - **false** - Alternative Let's Encrypt certificate chain.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: true
    use_dns01_le_challenge:
      type: object
      nullable: true
      description: |-
        DNS-01 challenge to issue a Let's Encrypt certificate for the resource.

        DNS service should be activated to enable this option.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: boolean
          description: >-
            Possible values:

            - **true** - DNS-01 challenge is used to issue Let's Encrypt
            certificate.

            - **false** - HTTP-01 challenge is used to issue Let's Encrypt
            certificate.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: true
    use_rsa_le_cert:
      type: object
      nullable: true
      description: >-
        RSA Let's Encrypt certificate type for the CDN resource.


        The specified value will be used during the next Let's Encrypt
        certificate issue or renewal.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: boolean
          description: |-
            Possible values:
            - **true** - RSA Let's Encrypt certificate.
            - **false** - ECDSA Let's Encrypt certificate.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: true
    user_agent_acl:
      type: object
      nullable: true
      description: Controls access to the content for specified User-Agents.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        policy_type:
          type: string
          enum:
            - allow
            - deny
          description: >-
            User-Agents policy type.


            Possible values:

            - **allow** - Allow access for all User-Agents except specified in
            `excepted_values` field.

            - **deny** - Deny access for all User-Agents except specified in
            `excepted_values` field.
        excepted_values:
          type: array
          uniqueItems: true
          maxItems: 600
          items:
            type: string
            maxLength: 255
            format: user_agent
          description: >-
            List of User-Agents that will be allowed/denied.


            The meaning of the parameter depends on `policy_type`:

            - **allow** - List of User-Agents for which access is prohibited.

            - **deny** - List of User-Agents for which access is allowed.


            You can provide exact User-Agent strings or regular expressions.
            Regular expressions must start

            with `~` (case-sensitive) or `~*` (case-insensitive).


            Use an empty string `""` to allow/deny access when the User-Agent
            header is empty.
          x-stainless-collection-type: set
      required:
        - enabled
        - excepted_values
        - policy_type
      example:
        enabled: true
        policy_type: allow
        excepted_values:
          - UserAgent Value
          - ~*.*bot.*
          - ''
    waap:
      type: object
      nullable: true
      description: Allows to enable WAAP (Web Application and API Protection).
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: boolean
          description: |-
            Possible values:
            - **true** - Option is enabled.
            - **false** - Option is disabled.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: true
    websockets:
      type: object
      nullable: true
      description: Enables or disables WebSockets connections to an origin server.
      properties:
        enabled:
          $ref: '#/components/schemas/parameters-enabled'
        value:
          type: boolean
          description: |-
            Possible values:
            - **true** - Option is enabled.
            - **false** - Option is disabled.
      required:
        - enabled
        - value
      example:
        enabled: true
        value: true
    parameters-enabled:
      type: boolean
      description: |-
        Controls the option state.

        Possible values:
        - **true** - Option is enabled.
        - **false** - Option is disabled.
    FastEdgeTriggerSettings:
      type: object
      properties:
        enabled:
          type: boolean
          example: true
          default: true
          description: >-
            Determines if the FastEdge application should be called whenever
            HTTP request headers are received.
        app_id:
          type: string
          example: '1001'
          description: The ID of the application in FastEdge.
        interrupt_on_error:
          type: boolean
          default: true
          example: true
          description: >-
            Determines if the request execution should be interrupted when an
            error occurs.
        execute_on_edge:
          type: boolean
          default: true
          example: true
          description: Determines if the request should be executed at the edge nodes.
        execute_on_shield:
          type: boolean
          default: false
          example: false
          description: Determines if the request should be executed at the shield nodes.
      required:
        - app_id
  securitySchemes:
    APIKey:
      description: >-
        API key for authentication. Make sure to include the word `apikey`,
        followed by a single space and then your token.

        Example: `apikey 1234$abcdef`
      type: apiKey
      in: header
      name: Authorization

````