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

title: compute alpha HttpHeaderMatch export schema
description: A gcloud export/import command YAML validation schema.
type: object
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
  exactMatch:
    description: |-
      The value should exactly match contents of exactMatch. Only one of
      exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or
      rangeMatch must be set.
    type: string
  headerName:
    description: |-
      The name of the HTTP header to match. For matching against the HTTP
      request's authority, use a headerMatch with the header name ":authority".
      For matching a request's method, use the headerName ":method". When the
      URL map is bound to a target gRPC proxy that has the validateForProxyless
      field set to true, only non-binary user-specified custom metadata and the
      `content-type` header are supported. The following transport-level headers
      cannot be used in header matching
    type: string
  invertMatch:
    description: |-
      If set to false, the headerMatch is considered a match if the preceding
      match criteria are met. If set to true, the headerMatch is considered a
      match if the preceding match criteria are NOT met. The default setting is
      false.
    type: boolean
  prefixMatch:
    description: |-
      The value of the header must start with the contents of prefixMatch. Only
      one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or
      rangeMatch must be set.
    type: string
  presentMatch:
    description: |-
      A header with the contents of headerName must exist. The match takes place
      whether or not the request's header has a value. Only one of exactMatch,
      prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be
      set.
    type: boolean
  rangeMatch:
    description: |-
      The header value must be an integer and its value must be in the range
      specified in rangeMatch. If the header does not contain an integer, number
      or is empty, the match fails. For example for a range [-5, 0] - -3 will
      match. - 0 will not match. - 0.25 will not match. - -3someString will not
      match. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
      presentMatch or rangeMatch must be set. rangeMatch is not supported for
      load balancers that have loadBalancingScheme set to EXTERNAL.
    $ref: Int64RangeMatch.yaml
  regexMatch:
    description: |-
      The value of the header must match the regular expression specified in
      regexMatch. For more information about regular expression syntax, see
      Syntax. For matching against a port specified in the HTTP request, use a
      headerMatch with headerName set to PORT and a regular expression that
      satisfies the RFC2616 Host header's port specifier. Only one of
      exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or
      rangeMatch must be set. regexMatch only applies to load balancers that
      have loadBalancingScheme set to INTERNAL_SELF_MANAGED.
    type: string
  suffixMatch:
    description: |-
      The value of the header must end with the contents of suffixMatch. Only
      one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or
      rangeMatch must be set.
    type: string
