$schema: "http://json-schema.org/draft-06/schema#"

title: networkservices v1 RouteRule export schema
description: A gcloud export/import command YAML validation schema.
type: object
required:
- matchRules
- priority
additionalProperties: false
properties:
  COMMENT:
    type: object
    description: User specified info ignored by gcloud import.
    additionalProperties: false
    properties:
      template-id:
        type: string
      region:
        type: string
      description:
        type: string
      date:
        type: string
      version:
        type: string
  UNKNOWN:
    type: array
    description: Unknown API fields that cannot be imported.
    items:
      type: string
  description:
    description: A human-readable description of the `RouteRule`.
    type: string
  headerAction:
    description: |-
      The header actions, including adding and removing headers, for requests
      that match this route.
    $ref: HeaderAction.yaml
  matchRules:
    description: |-
      The list of criteria for matching attributes of a request to this
      `RouteRule`. This list has `OR` semantics: the request matches this
      `RouteRule` when any of the MatchRules are satisfied. However, predicates
      within a given `MatchRule` have `AND` semantics. All predicates within a
      `MatchRule` must match for the request to match the rule. You can specify
      up to five match rules.
    type: array
    items:
      $ref: MatchRule.yaml
  origin:
    description: |-
      An alternate EdgeCacheOrigin resource that this route responds with
      when a matching response is not in the cache. The following are both
      valid paths to an `EdgeCacheOrigin` resource: * `projects/my-
      project/locations/global/edgeCacheOrigins/my-origin` * `my- origin`
      Only one of `origin` or url_redirect can be set.
    type: string
  priority:
    description: |-
      The priority of this route rule, where `1` is the highest priority.
      You cannot configure two or more `RouteRules` with the same priority.
      Priority for each rule must be set to a number between 1 and 999
      inclusive. Priority numbers can have gaps, which enable you to add or
      remove rules in the future without affecting the rest of the rules.
      For example, `1, 2, 3, 4, 5, 9, 12, 16` is a valid series of priority
      numbers to which you could add rules numbered from 6 to 8, 10 to 11,
      and 13 to 15 in the future without any impact on existing rules.
    type: integer
  routeAction:
    description: |-
      In response to a matching path, the RouteAction performs advanced
      routing actions like URL rewrites, header transformations, and so
      forth prior to forwarding the request to the selected origin.
    $ref: RouteAction.yaml
  routeMethods:
    description: |-
      Allow overriding the set of methods that are allowed for this route.
      When not set, Media CDN allows only `GET`, `HEAD`, and `OPTIONS`.
    $ref: RouteRuleRouteMethods.yaml
  urlRedirect:
    description: |-
      The URL redirect configuration for requests that match this route.
      Only one of origin or `url_redirect` can be set.
    $ref: UrlRedirect.yaml
