{
  "description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.",
  "properties": {
    "postStart": {
      "description": "LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.",
      "properties": {
        "exec": {
          "description": "ExecAction describes a \"run in container\" action.",
          "properties": {
            "command": {
              "description": "Command is the command line to execute inside the container, the working directory for the command  is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.",
              "items": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "type": [
                "array",
                "null"
              ],
              "x-kubernetes-list-type": "atomic"
            }
          },
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": false
        },
        "httpGet": {
          "description": "HTTPGetAction describes an action based on HTTP Get requests.",
          "properties": {
            "host": {
              "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead.",
              "type": [
                "string",
                "null"
              ]
            },
            "httpHeaders": {
              "description": "Custom headers to set in the request. HTTP allows repeated headers.",
              "items": {
                "description": "HTTPHeader describes a custom header to be used in HTTP probes",
                "properties": {
                  "name": {
                    "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.",
                    "type": "string"
                  },
                  "value": {
                    "description": "The header field value",
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "type": [
                  "object",
                  "null"
                ],
                "additionalProperties": false
              },
              "type": [
                "array",
                "null"
              ],
              "x-kubernetes-list-type": "atomic"
            },
            "path": {
              "description": "Path to access on the HTTP server.",
              "type": [
                "string",
                "null"
              ]
            },
            "port": {
              "oneOf": [
                {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                {
                  "type": [
                    "integer",
                    "null"
                  ]
                }
              ]
            },
            "scheme": {
              "description": "Scheme to use for connecting to the host. Defaults to HTTP.",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "port"
          ],
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": false
        },
        "sleep": {
          "description": "SleepAction describes a \"sleep\" action.",
          "properties": {
            "seconds": {
              "description": "Seconds is the number of seconds to sleep.",
              "format": "int64",
              "type": "integer"
            }
          },
          "required": [
            "seconds"
          ],
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": false
        },
        "tcpSocket": {
          "description": "TCPSocketAction describes an action based on opening a socket",
          "properties": {
            "host": {
              "description": "Optional: Host name to connect to, defaults to the pod IP.",
              "type": [
                "string",
                "null"
              ]
            },
            "port": {
              "oneOf": [
                {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                {
                  "type": [
                    "integer",
                    "null"
                  ]
                }
              ]
            }
          },
          "required": [
            "port"
          ],
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": false
        }
      },
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": false
    },
    "preStop": {
      "description": "LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.",
      "properties": {
        "exec": {
          "description": "ExecAction describes a \"run in container\" action.",
          "properties": {
            "command": {
              "description": "Command is the command line to execute inside the container, the working directory for the command  is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.",
              "items": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "type": [
                "array",
                "null"
              ],
              "x-kubernetes-list-type": "atomic"
            }
          },
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": false
        },
        "httpGet": {
          "description": "HTTPGetAction describes an action based on HTTP Get requests.",
          "properties": {
            "host": {
              "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead.",
              "type": [
                "string",
                "null"
              ]
            },
            "httpHeaders": {
              "description": "Custom headers to set in the request. HTTP allows repeated headers.",
              "items": {
                "description": "HTTPHeader describes a custom header to be used in HTTP probes",
                "properties": {
                  "name": {
                    "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.",
                    "type": "string"
                  },
                  "value": {
                    "description": "The header field value",
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "type": [
                  "object",
                  "null"
                ],
                "additionalProperties": false
              },
              "type": [
                "array",
                "null"
              ],
              "x-kubernetes-list-type": "atomic"
            },
            "path": {
              "description": "Path to access on the HTTP server.",
              "type": [
                "string",
                "null"
              ]
            },
            "port": {
              "oneOf": [
                {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                {
                  "type": [
                    "integer",
                    "null"
                  ]
                }
              ]
            },
            "scheme": {
              "description": "Scheme to use for connecting to the host. Defaults to HTTP.",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "port"
          ],
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": false
        },
        "sleep": {
          "description": "SleepAction describes a \"sleep\" action.",
          "properties": {
            "seconds": {
              "description": "Seconds is the number of seconds to sleep.",
              "format": "int64",
              "type": "integer"
            }
          },
          "required": [
            "seconds"
          ],
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": false
        },
        "tcpSocket": {
          "description": "TCPSocketAction describes an action based on opening a socket",
          "properties": {
            "host": {
              "description": "Optional: Host name to connect to, defaults to the pod IP.",
              "type": [
                "string",
                "null"
              ]
            },
            "port": {
              "oneOf": [
                {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                {
                  "type": [
                    "integer",
                    "null"
                  ]
                }
              ]
            }
          },
          "required": [
            "port"
          ],
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": false
        }
      },
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": false
    },
    "stopSignal": {
      "description": "StopSignal defines which signal will be sent to a container when it is being stopped. If not specified, the default is defined by the container runtime in use. StopSignal can only be set for Pods with a non-empty .spec.os.name",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "type": "object",
  "additionalProperties": false,
  "$schema": "http://json-schema.org/schema#"
}