# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.11.3
  creationTimestamp: null
  name: tagroutes.dubbo.apache.org
spec:
  group: dubbo.apache.org
  names:
    kind: TagRoute
    listKind: TagRouteList
    plural: tagroutes
    shortNames:
    - tg
    singular: tagroute
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: TagRoute is the Schema for the tagroutes API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the clientgen
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: TagRouteSpec defines the desired state of TagRoute
            properties:
              configVersion:
                description: The version of the tag rule definition, currently available
                  version is v3.0
                enum:
                - v3.0
                type: string
              enabled:
                default: true
                description: Whether enable this rule or not, set enabled:false to
                  disable this rule.
                type: boolean
              force:
                default: true
                description: The behaviour when the instance subset is empty after
                  after routing. true means return no provider exception while false
                  means ignore this rule.
                type: boolean
              key:
                description: The identifier of the target application that this rule
                  is about to control
                type: string
              priority:
                maximum: 2147483647
                minimum: -2147483648
                type: integer
              runtime:
                default: true
                description: Whether run routing rule for every rpc invocation or
                  use routing cache if available.
                type: boolean
              tags:
                description: The tag definition of this rule.
                items:
                  properties:
                    addresses:
                      items:
                        type: string
                      type: array
                    match:
                      description: A set of criterion to be met for instances to be
                        classified as member of this tag.
                      items:
                        properties:
                          key:
                            description: The name of the key in the Dubbo url address.
                            type: string
                          value:
                            description: The matching condition for the value in the
                              Dubbo url address.
                            properties:
                              empty:
                                type: string
                              exact:
                                type: string
                              noempty:
                                type: string
                              prefix:
                                type: string
                              regex:
                                type: string
                              wildcard:
                                type: string
                            type: object
                        type: object
                      type: array
                    name:
                      description: The name of the tag used to match the dubbo.tag
                        value in the request context.
                      type: string
                  type: object
                type: array
            type: object
        type: object
    served: true
    storage: true
