{
  "model": {
    "kind": "model",
    "name": "resilience4jConfiguration",
    "title": "Resilience4j Configuration",
    "description": "Resilience4j Circuit Breaker EIP configuration",
    "deprecated": false,
    "label": "eip,routing,circuitbreaker",
    "javaType": "org.apache.camel.model.Resilience4jConfigurationDefinition",
    "input": false,
    "output": false
  },
  "properties": {
    "circuitBreakerRef": { "kind": "attribute", "displayName": "Circuit Breaker Ref", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Refers to an existing io.github.resilience4j.circuitbreaker.CircuitBreaker instance to lookup and use from the registry. When using this, then any other circuit breaker options are not in use." },
    "configRef": { "kind": "attribute", "displayName": "Config Ref", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Refers to an existing io.github.resilience4j.circuitbreaker.CircuitBreakerConfig instance to lookup and use from the registry." },
    "failureRateThreshold": { "kind": "attribute", "displayName": "Failure Rate Threshold", "required": false, "type": "number", "javaType": "java.lang.Float", "deprecated": false, "secret": false, "defaultValue": "50", "description": "Configures the failure rate threshold in percentage. If the failure rate is equal or greater than the threshold the CircuitBreaker transitions to open and starts short-circuiting calls. The threshold must be greater than 0 and not greater than 100. Default value is 50 percentage." },
    "permittedNumberOfCallsInHalfOpenState": { "kind": "attribute", "displayName": "Permitted Number Of Calls In Half Open State", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "10", "description": "Configures the number of permitted calls when the CircuitBreaker is half open. The size must be greater than 0. Default size is 10." },
    "slidingWindowSize": { "kind": "attribute", "displayName": "Sliding Window Size", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "100", "description": "Configures the size of the sliding window which is used to record the outcome of calls when the CircuitBreaker is closed. slidingWindowSize configures the size of the sliding window. Sliding window can either be count-based or time-based. If slidingWindowType is COUNT_BASED, the last slidingWindowSize calls are recorded and aggregated. If slidingWindowType is TIME_BASED, the calls of the last slidingWindowSize seconds are recorded and aggregated. The slidingWindowSize must be greater than 0. The minimumNumberOfCalls must be greater than 0. If the slidingWindowType is COUNT_BASED, the minimumNumberOfCalls cannot be greater than slidingWindowSize . If the slidingWindowType is TIME_BASED, you can pick whatever you want. Default slidingWindowSize is 100." },
    "slidingWindowType": { "kind": "attribute", "displayName": "Sliding Window Type", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "COUNT_BASED", "TIME_BASED" ], "deprecated": false, "secret": false, "defaultValue": "COUNT_BASED", "description": "Configures the type of the sliding window which is used to record the outcome of calls when the CircuitBreaker is closed. Sliding window can either be count-based or time-based. If slidingWindowType is COUNT_BASED, the last slidingWindowSize calls are recorded and aggregated. If slidingWindowType is TIME_BASED, the calls of the last slidingWindowSize seconds are recorded and aggregated. Default slidingWindowType is COUNT_BASED." },
    "minimumNumberOfCalls": { "kind": "attribute", "displayName": "Minimum Number Of Calls", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "100", "description": "Configures configures the minimum number of calls which are required (per sliding window period) before the CircuitBreaker can calculate the error rate. For example, if minimumNumberOfCalls is 10, then at least 10 calls must be recorded, before the failure rate can be calculated. If only 9 calls have been recorded the CircuitBreaker will not transition to open even if all 9 calls have failed. Default minimumNumberOfCalls is 100" },
    "writableStackTraceEnabled": { "kind": "attribute", "displayName": "Writable Stack Trace Enabled", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": true, "description": "Enables writable stack traces. When set to false, Exception.getStackTrace returns a zero length array. This may be used to reduce log spam when the circuit breaker is open as the cause of the exceptions is already known (the circuit breaker is short-circuiting calls)." },
    "waitDurationInOpenState": { "kind": "attribute", "displayName": "Wait Duration In Open State", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "60", "description": "Configures the wait duration (in seconds) which specifies how long the CircuitBreaker should stay open, before it switches to half open. Default value is 60 seconds." },
    "automaticTransitionFromOpenToHalfOpenEnabled": { "kind": "attribute", "displayName": "Automatic Transition From Open To Half Open Enabled", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Enables automatic transition from OPEN to HALF_OPEN state once the waitDurationInOpenState has passed." },
    "slowCallRateThreshold": { "kind": "attribute", "displayName": "Slow Call Rate Threshold", "required": false, "type": "number", "javaType": "java.lang.Float", "deprecated": false, "secret": false, "defaultValue": "100", "description": "Configures a threshold in percentage. The CircuitBreaker considers a call as slow when the call duration is greater than slowCallDurationThreshold(Duration. When the percentage of slow calls is equal or greater the threshold, the CircuitBreaker transitions to open and starts short-circuiting calls. The threshold must be greater than 0 and not greater than 100. Default value is 100 percentage which means that all recorded calls must be slower than slowCallDurationThreshold." },
    "slowCallDurationThreshold": { "kind": "attribute", "displayName": "Slow Call Duration Threshold", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "60", "description": "Configures the duration threshold (seconds) above which calls are considered as slow and increase the slow calls percentage. Default value is 60 seconds." },
    "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The id of this node" }
  }
}
