{
  "$schema": "http://json-schema.org/schema#", 
  "required": [
    "schedule", 
    "jobTemplate"
  ], 
  "type": "object", 
  "description": "CronJobSpec describes how the job execution will look like and when it will actually run.", 
  "properties": {
    "failedJobsHistoryLimit": {
      "type": "integer", 
      "description": "The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", 
      "format": "int32"
    }, 
    "concurrencyPolicy": {
      "type": [
        "string", 
        "null"
      ], 
      "description": "Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one"
    }, 
    "suspend": {
      "type": "boolean", 
      "description": "This flag tells the controller to suspend subsequent executions, it does not apply to already started executions.  Defaults to false."
    }, 
    "schedule": {
      "type": [
        "string", 
        "null"
      ], 
      "description": "The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron."
    }, 
    "startingDeadlineSeconds": {
      "type": "integer", 
      "description": "Optional deadline in seconds for starting the job if it misses scheduled time for any reason.  Missed jobs executions will be counted as failed ones.", 
      "format": "int64"
    }, 
    "successfulJobsHistoryLimit": {
      "type": "integer", 
      "description": "The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 3.", 
      "format": "int32"
    }, 
    "jobTemplate": {
      "description": "Specifies the job that will be created when executing a CronJob.", 
      "$ref": "_definitions.json#/definitions/io.k8s.api.batch.v1beta1.JobTemplateSpec"
    }
  }
}