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

title: networkservices v1alpha1 HttpRoute export schema
description: A gcloud export/import command YAML validation schema.
type: object
required:
- hostnames
- name
- rules
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 free-text description of the resource. Max length 1024 characters.
    type: string
  gateways:
    description: |-
      Gateways defines a list of gateways this HttpRoute is attached to, as one
      of the routing rules to route the requests served by the gateway. Each
      gateway reference should match the pattern:
      `projects/*/locations/global/gateways/`
    type: array
    items:
      type: string
  hostnames:
    description: |-
      Hostnames define a set of hosts that should match against the HTTP
      host header to select a HttpRoute to process the request. Hostname is
      the fully qualified domain name of a network host, as defined by RFC
      1123 with the exception that: - IPs are not allowed. - A hostname may
      be prefixed with a wildcard label (`*.`). The wildcard label must
      appear by itself as the first label. Hostname can be "precise" which
      is a domain name without the terminating dot of a network host (e.g.
      `foo.example.com`) or "wildcard", which is a domain name prefixed with
      a single wildcard label (e.g. `*.example.com`). Note that as per
      RFC1035 and RFC1123, a label must consist of lower case alphanumeric
      characters or '-', and must start and end with an alphanumeric
      character. No other punctuation is allowed. The routes associated with
      a Mesh or Gateways must have unique hostnames. If you attempt to
      attach multiple routes with conflicting hostnames, the configuration
      will be rejected. For example, while it is acceptable for routes for
      the hostnames `*.foo.bar.com` and `*.bar.com` to be associated with
      the same Mesh (or Gateways under the same scope), it is not possible
      to associate two routes both with `*.bar.com` or both with `bar.com`.
    type: array
    items:
      type: string
  labels:
    description: |-
      Set of label tags associated with the HttpRoute resource.
    $ref: LabelsValue.yaml
  meshes:
    description: |-
      Meshes defines a list of meshes this HttpRoute is attached to, as
      one of the routing rules to route the requests served by the mesh.
      Each mesh reference should match the pattern:
      `projects/*/locations/global/meshes/` The attached Mesh should be
      of a type SIDECAR
    type: array
    items:
      type: string
  name:
    description: |-
      Name of the HttpRoute resource. It matches pattern
      `projects/*/locations/global/httpRoutes/http_route_name>`.
    type: string
  rules:
    description: |-
      Rules that define how traffic is routed and handled. Rules
      will be matched sequentially based on the RouteMatch specified
      for the rule.
    type: array
    items:
      $ref: HttpRouteRouteRule.yaml
