## ---------------------------------------------------------------------------
## 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.
## ---------------------------------------------------------------------------

servicecomb:
  matchGroup:
    demo-allOperation: |
      matches:
        - apiPath:
            prefix: "/"
    demo-rateLimiting: |
      matches:
        - apiPath:
            exact: "/hello"
    demo-rateLimiting-servicename: |
      matches:
        - apiPath:
            exact: "/helloServiceName"
          serviceName: "srcService"
    wrong-name-inogred: |
      wrong: some
    demo-retry: |
      matches:
        - apiPath:
            exact: "/retry"
    demo-circuitBreaker: |
      matches:
        - apiPath:
            exact: "/circuitBreaker"
    demo-bulkhead: |
      matches:
        - name: matchPath
          apiPath:
            exact: "/bulkhead"
        - name: matchHeader
          headers:
            x-token:
              exact: token
    demo-bulkhead-priority: |
      matches:
        - apiPath:
          exact: "/bulkhead"
    demo-bulkhead-other: |
      matches:
        - apiPath:
          exact: "/bulkhead"
      services: other:1.0
    demo-faultInjectDelay: |
      matches:
        - apiPath:
            contains: "/faultInjectDelay"
    demo-faultInjectAbort: |
      matches:
        - apiPath:
            contains: "/faultInjectAbort"
  rateLimiting:
    demo-rateLimiting: |
      rate: 1
    demo-rateLimiting-servicename: |
      rate: 1
    wrongIngored: |
      rate: 0
  retry:
    demo-retry: |
      maxAttempts: 3
    wrongIngored: |
      maxAttempts: -1
  circuitBreaker:
    demo-circuitBreaker: |
      minimumNumberOfCalls: 2
      slidingWindowSize: 2
      slidingWindowType: COUNT_BASED
      services: myself:1.0,other
    wrongIngored: |
      rules:
        match: demo-circuitBreaker.xx
      minimumNumberOfCalls: -1
  bulkhead:
    demo-bulkhead: |
      order: 1
      maxConcurrentCalls: 1
      maxWaitDuration: 3000
      services: myself:1.0
    demo-bulkhead-priority: |
      order: 0
      maxConcurrentCalls: 1
      maxWaitDuration: 3000
      services: myself:1.0
    demo-bulkhead-other: |
      maxConcurrentCalls: 1
      maxWaitDuration: 3000
      services: other:1.0
    wrongIngored: |
      rules:
        match: demo-bulkhead.xx
      maxWaitDuration: -1
  instanceIsolation:
    demo-allOperation: |
      minimumNumberOfCalls: 2
      slidingWindowSize: 2
      slidingWindowType: COUNT_BASED
      waitDurationInOpenState: 1000
  faultInjection:
    demo-faultInjectDelay: |
      delayTime: 2S
      type: delay
      percentage: 100
    demo-faultInjectAbort: |
      type: abort
      percentage: 50
      errorCode: 500
    wrongIngored: |
      delayTime: -1
      type: ERROR
