{
  "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",
        "null"
      ]
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client 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",
        "null"
      ]
    },
    "metadata": {
      "type": [
        "object",
        "null"
      ]
    },
    "scopes": {
      "items": {
        "type": "string"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "spec": {
      "additionalProperties": false,
      "properties": {
        "policies": {
          "additionalProperties": false,
          "properties": {
            "circuitBreakers": {
              "additionalProperties": {
                "additionalProperties": false,
                "properties": {
                  "interval": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "maxRequests": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "timeout": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "trip": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "type": "object"
              },
              "type": [
                "object",
                "null"
              ]
            },
            "retries": {
              "additionalProperties": {
                "additionalProperties": false,
                "properties": {
                  "duration": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "maxInterval": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "maxRetries": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "policy": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "type": "object"
              },
              "type": [
                "object",
                "null"
              ]
            },
            "timeouts": {
              "additionalProperties": {
                "type": "string"
              },
              "type": [
                "object",
                "null"
              ]
            }
          },
          "type": "object"
        },
        "targets": {
          "additionalProperties": false,
          "properties": {
            "actors": {
              "additionalProperties": {
                "additionalProperties": false,
                "properties": {
                  "circuitBreaker": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "circuitBreakerCacheSize": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "circuitBreakerScope": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "retry": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "timeout": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "type": "object"
              },
              "type": [
                "object",
                "null"
              ]
            },
            "apps": {
              "additionalProperties": {
                "additionalProperties": false,
                "properties": {
                  "circuitBreaker": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "circuitBreakerCacheSize": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "retry": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "timeout": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "type": "object"
              },
              "type": [
                "object",
                "null"
              ]
            },
            "components": {
              "additionalProperties": {
                "additionalProperties": false,
                "properties": {
                  "inbound": {
                    "additionalProperties": false,
                    "properties": {
                      "circuitBreaker": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "retry": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "timeout": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "type": [
                      "object",
                      "null"
                    ]
                  },
                  "outbound": {
                    "additionalProperties": false,
                    "properties": {
                      "circuitBreaker": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "retry": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "timeout": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "type": [
                      "object",
                      "null"
                    ]
                  }
                },
                "type": "object"
              },
              "type": [
                "object",
                "null"
              ]
            }
          },
          "type": "object"
        }
      },
      "required": [
        "policies",
        "targets"
      ],
      "type": [
        "object",
        "null"
      ]
    }
  },
  "type": "object"
}