{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/BackoffPlan",
  "title": "BackoffPlan",
  "type": "object",
  "properties": {
    "type": {
      "type": "object",
      "description": "This is the type of backoff plan to use. Defaults to fixed.\n\n@default fixed",
      "enum": [
        "fixed",
        "exponential"
      ],
      "example": "fixed"
    },
    "maxRetries": {
      "type": "number",
      "description": "This is the maximum number of retries to attempt if the request fails. Defaults to 0 (no retries).\n\n@default 0",
      "minimum": 0,
      "maximum": 10,
      "example": 0
    },
    "baseDelaySeconds": {
      "type": "number",
      "description": "This is the base delay in seconds. For linear backoff, this is the delay between each retry. For exponential backoff, this is the initial delay.",
      "minimum": 0,
      "maximum": 10,
      "example": 1
    },
    "excludedStatusCodes": {
      "description": "This is the excluded status codes. If the response status code is in this list, the request will not be retried.\nBy default, the request will be retried for any non-2xx status code.",
      "example": [
        400,
        401,
        403,
        404
      ],
      "type": "array",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "type",
    "maxRetries",
    "baseDelaySeconds"
  ]
}