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

title: networkservices v1 LbRouteExtension export schema
description: A gcloud export/import command YAML validation schema.
type: object
required:
- extensionChains
- forwardingRules
- loadBalancingScheme
- name
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 resource.
    type: string
  extensionChains:
    description: |-
      A set of ordered extension chains that contain the match conditions and
      extensions to execute. Match conditions for each extension chain are
      evaluated in sequence for a given request. The first extension chain that
      has a condition that matches the request is executed. Any subsequent
      extension chains do not execute. Limited to 5 extension chains per
      resource.
    type: array
    items:
      $ref: ExtensionChain.yaml
  forwardingRules:
    description: |-
      A list of references to the forwarding rules to which this service
      extension is attached. At least one forwarding rule is required. Only
      one `LbRouteExtension` resource can be associated with a forwarding
      rule.
    type: array
    items:
      type: string
  labels:
    description: |-
      Set of labels associated with the `LbRouteExtension` resource. The
      format must comply with [the requirements for
      labels](https://cloud.google.com/compute/docs/labeling-
      resources#requirements) for Google Cloud resources.
    $ref: LabelsValue.yaml
  loadBalancingScheme:
    description: |-
      All backend services and forwarding rules referenced by this
      extension must share the same load balancing scheme. Supported
      values: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`. For more
      information, refer to [Backend services
      overview](https://cloud.google.com/load-balancing/docs/backend-
      service).
    type: string
    enum:
    - EXTERNAL_MANAGED
    - INTERNAL_MANAGED
    - LOAD_BALANCING_SCHEME_UNSPECIFIED
  metadata:
    description: |-
      The metadata provided here is included as part of the
      `metadata_context` (of type `google.protobuf.Struct`) in the
      `ProcessingRequest` message sent to the extension server. The
      metadata applies to all extensions in all extensions chains in
      this resource. The metadata is available under the key
      `com.google.lb_route_extension.`. The following variables are
      supported in the metadata: `{forwarding_rule_id}` - substituted
      with the forwarding rule's fully qualified resource name. This
      field must not be set if at least one of the extension chains
      contains plugin extensions. Setting it results in a validation
      error. You can set metadata at either the resource level or the
      extension level. The extension level metadata is recommended
      because you can pass a different set of metadata through each
      extension to the backend.
    type: object
  name:
    description: |-
      Identifier. Name of the `LbRouteExtension` resource in the
      following format:
      `projects/{project}/locations/{location}/lbRouteExtens
      ions/{lb_route_extension}`.
    type: string
