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

title: networkservices v1 EndpointMatcherMetadataLabelMatcher 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
  metadataLabelMatchCriteria:
    description: |-
      Specifies how matching should be done.
      Supported values are:
      MATCH_ANY: At least one of the Labels specified in the
        matcher should match the metadata presented by xDS client.
      MATCH_ALL: The metadata presented by the xDS client should
        contain all of the labels specified here.
      The selection is determined based on the best match. For
      example, suppose there are three EndpointPolicy
      resources P1, P2 and P3 and if P1 has a the matcher as
      MATCH_ANY <A:1, B:1>, P2 has MATCH_ALL <A:1,B:1>, and P3 has
      MATCH_ALL <A:1,B:1,C:1>.
      If a client with label <A:1> connects, the config from P1
      will be selected.
      If a client with label <A:1,B:1> connects, the config from P2
      will be selected.
      If a client with label <A:1,B:1,C:1> connects, the config
      from P3 will be selected.
      If there is more than one best match, (for example, if a
      config P4 with selector <A:1,D:1> exists and if a client with
      label <A:1,B:1,D:1> connects), an error will be thrown.
    type: string
    enum:
    - MATCH_ALL
    - MATCH_ANY
    - METADATA_LABEL_MATCH_CRITERIA_UNSPECIFIED
  metadataLabels:
    description: |-
      The list of label value pairs that must match labels in the provided
      metadata based on filterMatchCriteria This list can have at most 64
      entries. The list can be empty if the match criteria is MATCH_ANY, to
      specify a wildcard match (i.e this matches any client).
    type: array
    items:
      $ref: EndpointMatcherMetadataLabelMatcherMetadataLabels.yaml
