apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.3.0
  creationTimestamp: null
  name: restores.velero.io
spec:
  group: velero.io
  names:
    kind: Restore
    listKind: RestoreList
    plural: restores
    singular: restore
  preserveUnknownFields: false
  scope: Namespaced
  validation:
    openAPIV3Schema:
      description: Restore is a Velero resource that represents the application of
        resources from a Velero backup to a target Kubernetes cluster.
      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
        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
        metadata:
          type: object
        spec:
          description: RestoreSpec defines the specification for a Velero restore.
          properties:
            backupName:
              description: BackupName is the unique name of the Velero backup to restore
                from.
              type: string
            excludedNamespaces:
              description: ExcludedNamespaces contains a list of namespaces that are
                not included in the restore.
              items:
                type: string
              nullable: true
              type: array
            excludedResources:
              description: ExcludedResources is a slice of resource names that are
                not included in the restore.
              items:
                type: string
              nullable: true
              type: array
            hooks:
              description: Hooks represent custom behaviors that should be executed
                during or post restore.
              properties:
                resources:
                  items:
                    description: RestoreResourceHookSpec defines one or more RestoreResrouceHooks
                      that should be executed based on the rules defined for namespaces,
                      resources, and label selector.
                    properties:
                      excludedNamespaces:
                        description: ExcludedNamespaces specifies the namespaces to
                          which this hook spec does not apply.
                        items:
                          type: string
                        nullable: true
                        type: array
                      excludedResources:
                        description: ExcludedResources specifies the resources to
                          which this hook spec does not apply.
                        items:
                          type: string
                        nullable: true
                        type: array
                      includedNamespaces:
                        description: IncludedNamespaces specifies the namespaces to
                          which this hook spec applies. If empty, it applies to all
                          namespaces.
                        items:
                          type: string
                        nullable: true
                        type: array
                      includedResources:
                        description: IncludedResources specifies the resources to
                          which this hook spec applies. If empty, it applies to all
                          resources.
                        items:
                          type: string
                        nullable: true
                        type: array
                      labelSelector:
                        description: LabelSelector, if specified, filters the resources
                          to which this hook spec applies.
                        nullable: true
                        properties:
                          matchExpressions:
                            description: matchExpressions is a list of label selector
                              requirements. The requirements are ANDed.
                            items:
                              description: A label selector requirement is a selector
                                that contains values, a key, and an operator that
                                relates the key and values.
                              properties:
                                key:
                                  description: key is the label key that the selector
                                    applies to.
                                  type: string
                                operator:
                                  description: operator represents a key's relationship
                                    to a set of values. Valid operators are In, NotIn,
                                    Exists and DoesNotExist.
                                  type: string
                                values:
                                  description: values is an array of string values.
                                    If the operator is In or NotIn, the values array
                                    must be non-empty. If the operator is Exists or
                                    DoesNotExist, the values array must be empty.
                                    This array is replaced during a strategic merge
                                    patch.
                                  items:
                                    type: string
                                  type: array
                              required:
                              - key
                              - operator
                              type: object
                            type: array
                          matchLabels:
                            additionalProperties:
                              type: string
                            description: matchLabels is a map of {key,value} pairs.
                              A single {key,value} in the matchLabels map is equivalent
                              to an element of matchExpressions, whose key field is
                              "key", the operator is "In", and the values array contains
                              only "value". The requirements are ANDed.
                            type: object
                        type: object
                      name:
                        description: Name is the name of this hook.
                        type: string
                      postHooks:
                        description: PostHooks is a list of RestoreResourceHooks to
                          execute during and after restoring a resource.
                        items:
                          description: RestoreResourceHook defines a restore hook
                            for a resource.
                          properties:
                            exec:
                              description: Exec defines an exec restore hook.
                              properties:
                                command:
                                  description: Command is the command and arguments
                                    to execute from within a container after a pod
                                    has been restored.
                                  items:
                                    type: string
                                  minItems: 1
                                  type: array
                                container:
                                  description: Container is the container in the pod
                                    where the command should be executed. If not specified,
                                    the pod's first container is used.
                                  type: string
                                execTimeout:
                                  description: ExecTimeout defines the maximum amount
                                    of time Velero should wait for the hook to complete
                                    before considering the execution a failure.
                                  type: string
                                onError:
                                  description: OnError specifies how Velero should
                                    behave if it encounters an error executing this
                                    hook.
                                  enum:
                                  - Continue
                                  - Fail
                                  type: string
                                waitTimeout:
                                  description: WaitTimeout defines the maximum amount
                                    of time Velero should wait for the container to
                                    be Ready before attempting to run the command.
                                  type: string
                              required:
                              - command
                              type: object
                            init:
                              description: Init defines an init restore hook.
                              properties:
                                initContainers:
                                  description: InitContainers is list of init containers
                                    to be added to a pod during its restore.
                                  items:
                                    description: A single application container that
                                      you want to run within a pod.
                                    properties:
                                      args:
                                        description: 'Arguments to the entrypoint.
                                          The docker image''s CMD is used if this
                                          is not provided. Variable references $(VAR_NAME)
                                          are expanded using the container''s environment.
                                          If a variable cannot be resolved, the reference
                                          in the input string will be unchanged. Double
                                          $$ are reduced to a single $, which allows
                                          for escaping the $(VAR_NAME) syntax: i.e.
                                          "$$(VAR_NAME)" will produce the string literal
                                          "$(VAR_NAME)". Escaped references will never
                                          be expanded, regardless of whether the variable
                                          exists or not. Cannot be updated. More info:
                                          https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                                        items:
                                          type: string
                                        type: array
                                      command:
                                        description: 'Entrypoint array. Not executed
                                          within a shell. The docker image''s ENTRYPOINT
                                          is used if this is not provided. Variable
                                          references $(VAR_NAME) are expanded using
                                          the container''s environment. If a variable
                                          cannot be resolved, the reference in the
                                          input string will be unchanged. Double $$
                                          are reduced to a single $, which allows
                                          for escaping the $(VAR_NAME) syntax: i.e.
                                          "$$(VAR_NAME)" will produce the string literal
                                          "$(VAR_NAME)". Escaped references will never
                                          be expanded, regardless of whether the variable
                                          exists or not. Cannot be updated. More info:
                                          https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                                        items:
                                          type: string
                                        type: array
                                      env:
                                        description: List of environment variables
                                          to set in the container. Cannot be updated.
                                        items:
                                          description: EnvVar represents an environment
                                            variable present in a Container.
                                          properties:
                                            name:
                                              description: Name of the environment
                                                variable. Must be a C_IDENTIFIER.
                                              type: string
                                            value:
                                              description: 'Variable references $(VAR_NAME)
                                                are expanded using the previously
                                                defined environment variables in the
                                                container and any service environment
                                                variables. If a variable cannot be
                                                resolved, the reference in the input
                                                string will be unchanged. Double $$
                                                are reduced to a single $, which allows
                                                for escaping the $(VAR_NAME) syntax:
                                                i.e. "$$(VAR_NAME)" will produce the
                                                string literal "$(VAR_NAME)". Escaped
                                                references will never be expanded,
                                                regardless of whether the variable
                                                exists or not. Defaults to "".'
                                              type: string
                                            valueFrom:
                                              description: Source for the environment
                                                variable's value. Cannot be used if
                                                value is not empty.
                                              properties:
                                                configMapKeyRef:
                                                  description: Selects a key of a
                                                    ConfigMap.
                                                  properties:
                                                    key:
                                                      description: The key to select.
                                                      type: string
                                                    name:
                                                      description: 'Name of the referent.
                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                                        TODO: Add other useful fields.
                                                        apiVersion, kind, uid?'
                                                      type: string
                                                    optional:
                                                      description: Specify whether
                                                        the ConfigMap or its key must
                                                        be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                fieldRef:
                                                  description: 'Selects a field of
                                                    the pod: supports metadata.name,
                                                    metadata.namespace, `metadata.labels[''<KEY>'']`,
                                                    `metadata.annotations[''<KEY>'']`,
                                                    spec.nodeName, spec.serviceAccountName,
                                                    status.hostIP, status.podIP, status.podIPs.'
                                                  properties:
                                                    apiVersion:
                                                      description: Version of the
                                                        schema the FieldPath is written
                                                        in terms of, defaults to "v1".
                                                      type: string
                                                    fieldPath:
                                                      description: Path of the field
                                                        to select in the specified
                                                        API version.
                                                      type: string
                                                  required:
                                                  - fieldPath
                                                  type: object
                                                resourceFieldRef:
                                                  description: 'Selects a resource
                                                    of the container: only resources
                                                    limits and requests (limits.cpu,
                                                    limits.memory, limits.ephemeral-storage,
                                                    requests.cpu, requests.memory
                                                    and requests.ephemeral-storage)
                                                    are currently supported.'
                                                  properties:
                                                    containerName:
                                                      description: 'Container name:
                                                        required for volumes, optional
                                                        for env vars'
                                                      type: string
                                                    divisor:
                                                      anyOf:
                                                      - type: integer
                                                      - type: string
                                                      description: Specifies the output
                                                        format of the exposed resources,
                                                        defaults to "1"
                                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                      x-kubernetes-int-or-string: true
                                                    resource:
                                                      description: 'Required: resource
                                                        to select'
                                                      type: string
                                                  required:
                                                  - resource
                                                  type: object
                                                secretKeyRef:
                                                  description: Selects a key of a
                                                    secret in the pod's namespace
                                                  properties:
                                                    key:
                                                      description: The key of the
                                                        secret to select from.  Must
                                                        be a valid secret key.
                                                      type: string
                                                    name:
                                                      description: 'Name of the referent.
                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                                        TODO: Add other useful fields.
                                                        apiVersion, kind, uid?'
                                                      type: string
                                                    optional:
                                                      description: Specify whether
                                                        the Secret or its key must
                                                        be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                              type: object
                                          required:
                                          - name
                                          type: object
                                        type: array
                                      envFrom:
                                        description: List of sources to populate environment
                                          variables in the container. The keys defined
                                          within a source must be a C_IDENTIFIER.
                                          All invalid keys will be reported as an
                                          event when the container is starting. When
                                          a key exists in multiple sources, the value
                                          associated with the last source will take
                                          precedence. Values defined by an Env with
                                          a duplicate key will take precedence. Cannot
                                          be updated.
                                        items:
                                          description: EnvFromSource represents the
                                            source of a set of ConfigMaps
                                          properties:
                                            configMapRef:
                                              description: The ConfigMap to select
                                                from
                                              properties:
                                                name:
                                                  description: 'Name of the referent.
                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                                    TODO: Add other useful fields.
                                                    apiVersion, kind, uid?'
                                                  type: string
                                                optional:
                                                  description: Specify whether the
                                                    ConfigMap must be defined
                                                  type: boolean
                                              type: object
                                            prefix:
                                              description: An optional identifier
                                                to prepend to each key in the ConfigMap.
                                                Must be a C_IDENTIFIER.
                                              type: string
                                            secretRef:
                                              description: The Secret to select from
                                              properties:
                                                name:
                                                  description: 'Name of the referent.
                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                                    TODO: Add other useful fields.
                                                    apiVersion, kind, uid?'
                                                  type: string
                                                optional:
                                                  description: Specify whether the
                                                    Secret must be defined
                                                  type: boolean
                                              type: object
                                          type: object
                                        type: array
                                      image:
                                        description: 'Docker image name. More info:
                                          https://kubernetes.io/docs/concepts/containers/images
                                          This field is optional to allow higher level
                                          config management to default or override
                                          container images in workload controllers
                                          like Deployments and StatefulSets.'
                                        type: string
                                      imagePullPolicy:
                                        description: 'Image pull policy. One of Always,
                                          Never, IfNotPresent. Defaults to Always
                                          if :latest tag is specified, or IfNotPresent
                                          otherwise. Cannot be updated. More info:
                                          https://kubernetes.io/docs/concepts/containers/images#updating-images'
                                        type: string
                                      lifecycle:
                                        description: Actions that the management system
                                          should take in response to container lifecycle
                                          events. Cannot be updated.
                                        properties:
                                          postStart:
                                            description: 'PostStart is called immediately
                                              after a container is created. If the
                                              handler fails, the container is terminated
                                              and restarted according to its restart
                                              policy. Other management of the container
                                              blocks until the hook completes. More
                                              info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                            properties:
                                              exec:
                                                description: One and only one of the
                                                  following should be specified. Exec
                                                  specifies the action to take.
                                                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
                                                    type: array
                                                type: object
                                              httpGet:
                                                description: HTTPGet specifies the
                                                  http request to perform.
                                                properties:
                                                  host:
                                                    description: Host name to connect
                                                      to, defaults to the pod IP.
                                                      You probably want to set "Host"
                                                      in httpHeaders instead.
                                                    type: string
                                                  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
                                                          type: string
                                                        value:
                                                          description: The header
                                                            field value
                                                          type: string
                                                      required:
                                                      - name
                                                      - value
                                                      type: object
                                                    type: array
                                                  path:
                                                    description: Path to access on
                                                      the HTTP server.
                                                    type: string
                                                  port:
                                                    anyOf:
                                                    - type: integer
                                                    - type: string
                                                    description: Name or number of
                                                      the port to access on the container.
                                                      Number must be in the range
                                                      1 to 65535. Name must be an
                                                      IANA_SVC_NAME.
                                                    x-kubernetes-int-or-string: true
                                                  scheme:
                                                    description: Scheme to use for
                                                      connecting to the host. Defaults
                                                      to HTTP.
                                                    type: string
                                                required:
                                                - port
                                                type: object
                                              tcpSocket:
                                                description: 'TCPSocket specifies
                                                  an action involving a TCP port.
                                                  TCP hooks not yet supported TODO:
                                                  implement a realistic TCP lifecycle
                                                  hook'
                                                properties:
                                                  host:
                                                    description: 'Optional: Host name
                                                      to connect to, defaults to the
                                                      pod IP.'
                                                    type: string
                                                  port:
                                                    anyOf:
                                                    - type: integer
                                                    - type: string
                                                    description: Number or name of
                                                      the port to access on the container.
                                                      Number must be in the range
                                                      1 to 65535. Name must be an
                                                      IANA_SVC_NAME.
                                                    x-kubernetes-int-or-string: true
                                                required:
                                                - port
                                                type: object
                                            type: object
                                          preStop:
                                            description: 'PreStop is called immediately
                                              before a container is terminated due
                                              to an API request or management event
                                              such as liveness/startup probe failure,
                                              preemption, resource contention, etc.
                                              The handler is not called if the container
                                              crashes or exits. The reason for termination
                                              is passed to the handler. The Pod''s
                                              termination grace period countdown begins
                                              before the PreStop hooked is executed.
                                              Regardless of the outcome of the handler,
                                              the container will eventually terminate
                                              within the Pod''s termination grace
                                              period. Other management of the container
                                              blocks until the hook completes or until
                                              the termination grace period is reached.
                                              More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                            properties:
                                              exec:
                                                description: One and only one of the
                                                  following should be specified. Exec
                                                  specifies the action to take.
                                                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
                                                    type: array
                                                type: object
                                              httpGet:
                                                description: HTTPGet specifies the
                                                  http request to perform.
                                                properties:
                                                  host:
                                                    description: Host name to connect
                                                      to, defaults to the pod IP.
                                                      You probably want to set "Host"
                                                      in httpHeaders instead.
                                                    type: string
                                                  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
                                                          type: string
                                                        value:
                                                          description: The header
                                                            field value
                                                          type: string
                                                      required:
                                                      - name
                                                      - value
                                                      type: object
                                                    type: array
                                                  path:
                                                    description: Path to access on
                                                      the HTTP server.
                                                    type: string
                                                  port:
                                                    anyOf:
                                                    - type: integer
                                                    - type: string
                                                    description: Name or number of
                                                      the port to access on the container.
                                                      Number must be in the range
                                                      1 to 65535. Name must be an
                                                      IANA_SVC_NAME.
                                                    x-kubernetes-int-or-string: true
                                                  scheme:
                                                    description: Scheme to use for
                                                      connecting to the host. Defaults
                                                      to HTTP.
                                                    type: string
                                                required:
                                                - port
                                                type: object
                                              tcpSocket:
                                                description: 'TCPSocket specifies
                                                  an action involving a TCP port.
                                                  TCP hooks not yet supported TODO:
                                                  implement a realistic TCP lifecycle
                                                  hook'
                                                properties:
                                                  host:
                                                    description: 'Optional: Host name
                                                      to connect to, defaults to the
                                                      pod IP.'
                                                    type: string
                                                  port:
                                                    anyOf:
                                                    - type: integer
                                                    - type: string
                                                    description: Number or name of
                                                      the port to access on the container.
                                                      Number must be in the range
                                                      1 to 65535. Name must be an
                                                      IANA_SVC_NAME.
                                                    x-kubernetes-int-or-string: true
                                                required:
                                                - port
                                                type: object
                                            type: object
                                        type: object
                                      livenessProbe:
                                        description: 'Periodic probe of container
                                          liveness. Container will be restarted if
                                          the probe fails. Cannot be updated. More
                                          info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                        properties:
                                          exec:
                                            description: One and only one of the following
                                              should be specified. Exec specifies
                                              the action to take.
                                            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
                                                type: array
                                            type: object
                                          failureThreshold:
                                            description: Minimum consecutive failures
                                              for the probe to be considered failed
                                              after having succeeded. Defaults to
                                              3. Minimum value is 1.
                                            format: int32
                                            type: integer
                                          httpGet:
                                            description: HTTPGet specifies the http
                                              request to perform.
                                            properties:
                                              host:
                                                description: Host name to connect
                                                  to, defaults to the pod IP. You
                                                  probably want to set "Host" in httpHeaders
                                                  instead.
                                                type: string
                                              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
                                                      type: string
                                                    value:
                                                      description: The header field
                                                        value
                                                      type: string
                                                  required:
                                                  - name
                                                  - value
                                                  type: object
                                                type: array
                                              path:
                                                description: Path to access on the
                                                  HTTP server.
                                                type: string
                                              port:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: Name or number of the
                                                  port to access on the container.
                                                  Number must be in the range 1 to
                                                  65535. Name must be an IANA_SVC_NAME.
                                                x-kubernetes-int-or-string: true
                                              scheme:
                                                description: Scheme to use for connecting
                                                  to the host. Defaults to HTTP.
                                                type: string
                                            required:
                                            - port
                                            type: object
                                          initialDelaySeconds:
                                            description: 'Number of seconds after
                                              the container has started before liveness
                                              probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                            format: int32
                                            type: integer
                                          periodSeconds:
                                            description: How often (in seconds) to
                                              perform the probe. Default to 10 seconds.
                                              Minimum value is 1.
                                            format: int32
                                            type: integer
                                          successThreshold:
                                            description: Minimum consecutive successes
                                              for the probe to be considered successful
                                              after having failed. Defaults to 1.
                                              Must be 1 for liveness and startup.
                                              Minimum value is 1.
                                            format: int32
                                            type: integer
                                          tcpSocket:
                                            description: 'TCPSocket specifies an action
                                              involving a TCP port. TCP hooks not
                                              yet supported TODO: implement a realistic
                                              TCP lifecycle hook'
                                            properties:
                                              host:
                                                description: 'Optional: Host name
                                                  to connect to, defaults to the pod
                                                  IP.'
                                                type: string
                                              port:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: Number or name of the
                                                  port to access on the container.
                                                  Number must be in the range 1 to
                                                  65535. Name must be an IANA_SVC_NAME.
                                                x-kubernetes-int-or-string: true
                                            required:
                                            - port
                                            type: object
                                          terminationGracePeriodSeconds:
                                            description: Optional duration in seconds
                                              the pod needs to terminate gracefully
                                              upon probe failure. The grace period
                                              is the duration in seconds after the
                                              processes running in the pod are sent
                                              a termination signal and the time when
                                              the processes are forcibly halted with
                                              a kill signal. Set this value longer
                                              than the expected cleanup time for your
                                              process. If this value is nil, the pod's
                                              terminationGracePeriodSeconds will be
                                              used. Otherwise, this value overrides
                                              the value provided by the pod spec.
                                              Value must be non-negative integer.
                                              The value zero indicates stop immediately
                                              via the kill signal (no opportunity
                                              to shut down). This is a beta field
                                              and requires enabling ProbeTerminationGracePeriod
                                              feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds
                                              is used if unset.
                                            format: int64
                                            type: integer
                                          timeoutSeconds:
                                            description: 'Number of seconds after
                                              which the probe times out. Defaults
                                              to 1 second. Minimum value is 1. More
                                              info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                            format: int32
                                            type: integer
                                        type: object
                                      name:
                                        description: Name of the container specified
                                          as a DNS_LABEL. Each container in a pod
                                          must have a unique name (DNS_LABEL). Cannot
                                          be updated.
                                        type: string
                                      ports:
                                        description: List of ports to expose from
                                          the container. Exposing a port here gives
                                          the system additional information about
                                          the network connections a container uses,
                                          but is primarily informational. Not specifying
                                          a port here DOES NOT prevent that port from
                                          being exposed. Any port which is listening
                                          on the default "0.0.0.0" address inside
                                          a container will be accessible from the
                                          network. Cannot be updated.
                                        items:
                                          description: ContainerPort represents a
                                            network port in a single container.
                                          properties:
                                            containerPort:
                                              description: Number of port to expose
                                                on the pod's IP address. This must
                                                be a valid port number, 0 < x < 65536.
                                              format: int32
                                              type: integer
                                            hostIP:
                                              description: What host IP to bind the
                                                external port to.
                                              type: string
                                            hostPort:
                                              description: Number of port to expose
                                                on the host. If specified, this must
                                                be a valid port number, 0 < x < 65536.
                                                If HostNetwork is specified, this
                                                must match ContainerPort. Most containers
                                                do not need this.
                                              format: int32
                                              type: integer
                                            name:
                                              description: If specified, this must
                                                be an IANA_SVC_NAME and unique within
                                                the pod. Each named port in a pod
                                                must have a unique name. Name for
                                                the port that can be referred to by
                                                services.
                                              type: string
                                            protocol:
                                              description: Protocol for port. Must
                                                be UDP, TCP, or SCTP. Defaults to
                                                "TCP".
                                              type: string
                                          required:
                                          - containerPort
                                          - protocol
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - containerPort
                                        - protocol
                                        x-kubernetes-list-type: map
                                      readinessProbe:
                                        description: 'Periodic probe of container
                                          service readiness. Container will be removed
                                          from service endpoints if the probe fails.
                                          Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                        properties:
                                          exec:
                                            description: One and only one of the following
                                              should be specified. Exec specifies
                                              the action to take.
                                            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
                                                type: array
                                            type: object
                                          failureThreshold:
                                            description: Minimum consecutive failures
                                              for the probe to be considered failed
                                              after having succeeded. Defaults to
                                              3. Minimum value is 1.
                                            format: int32
                                            type: integer
                                          httpGet:
                                            description: HTTPGet specifies the http
                                              request to perform.
                                            properties:
                                              host:
                                                description: Host name to connect
                                                  to, defaults to the pod IP. You
                                                  probably want to set "Host" in httpHeaders
                                                  instead.
                                                type: string
                                              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
                                                      type: string
                                                    value:
                                                      description: The header field
                                                        value
                                                      type: string
                                                  required:
                                                  - name
                                                  - value
                                                  type: object
                                                type: array
                                              path:
                                                description: Path to access on the
                                                  HTTP server.
                                                type: string
                                              port:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: Name or number of the
                                                  port to access on the container.
                                                  Number must be in the range 1 to
                                                  65535. Name must be an IANA_SVC_NAME.
                                                x-kubernetes-int-or-string: true
                                              scheme:
                                                description: Scheme to use for connecting
                                                  to the host. Defaults to HTTP.
                                                type: string
                                            required:
                                            - port
                                            type: object
                                          initialDelaySeconds:
                                            description: 'Number of seconds after
                                              the container has started before liveness
                                              probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                            format: int32
                                            type: integer
                                          periodSeconds:
                                            description: How often (in seconds) to
                                              perform the probe. Default to 10 seconds.
                                              Minimum value is 1.
                                            format: int32
                                            type: integer
                                          successThreshold:
                                            description: Minimum consecutive successes
                                              for the probe to be considered successful
                                              after having failed. Defaults to 1.
                                              Must be 1 for liveness and startup.
                                              Minimum value is 1.
                                            format: int32
                                            type: integer
                                          tcpSocket:
                                            description: 'TCPSocket specifies an action
                                              involving a TCP port. TCP hooks not
                                              yet supported TODO: implement a realistic
                                              TCP lifecycle hook'
                                            properties:
                                              host:
                                                description: 'Optional: Host name
                                                  to connect to, defaults to the pod
                                                  IP.'
                                                type: string
                                              port:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: Number or name of the
                                                  port to access on the container.
                                                  Number must be in the range 1 to
                                                  65535. Name must be an IANA_SVC_NAME.
                                                x-kubernetes-int-or-string: true
                                            required:
                                            - port
                                            type: object
                                          terminationGracePeriodSeconds:
                                            description: Optional duration in seconds
                                              the pod needs to terminate gracefully
                                              upon probe failure. The grace period
                                              is the duration in seconds after the
                                              processes running in the pod are sent
                                              a termination signal and the time when
                                              the processes are forcibly halted with
                                              a kill signal. Set this value longer
                                              than the expected cleanup time for your
                                              process. If this value is nil, the pod's
                                              terminationGracePeriodSeconds will be
                                              used. Otherwise, this value overrides
                                              the value provided by the pod spec.
                                              Value must be non-negative integer.
                                              The value zero indicates stop immediately
                                              via the kill signal (no opportunity
                                              to shut down). This is a beta field
                                              and requires enabling ProbeTerminationGracePeriod
                                              feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds
                                              is used if unset.
                                            format: int64
                                            type: integer
                                          timeoutSeconds:
                                            description: 'Number of seconds after
                                              which the probe times out. Defaults
                                              to 1 second. Minimum value is 1. More
                                              info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                            format: int32
                                            type: integer
                                        type: object
                                      resources:
                                        description: 'Compute Resources required by
                                          this container. Cannot be updated. More
                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        properties:
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: 'Limits describes the maximum
                                              amount of compute resources allowed.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: 'Requests describes the minimum
                                              amount of compute resources required.
                                              If Requests is omitted for a container,
                                              it defaults to Limits if that is explicitly
                                              specified, otherwise to an implementation-defined
                                              value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                            type: object
                                        type: object
                                      securityContext:
                                        description: 'SecurityContext defines the
                                          security options the container should be
                                          run with. If set, the fields of SecurityContext
                                          override the equivalent fields of PodSecurityContext.
                                          More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                                        properties:
                                          allowPrivilegeEscalation:
                                            description: 'AllowPrivilegeEscalation
                                              controls whether a process can gain
                                              more privileges than its parent process.
                                              This bool directly controls if the no_new_privs
                                              flag will be set on the container process.
                                              AllowPrivilegeEscalation is true always
                                              when the container is: 1) run as Privileged
                                              2) has CAP_SYS_ADMIN'
                                            type: boolean
                                          capabilities:
                                            description: The capabilities to add/drop
                                              when running containers. Defaults to
                                              the default set of capabilities granted
                                              by the container runtime.
                                            properties:
                                              add:
                                                description: Added capabilities
                                                items:
                                                  description: Capability represent
                                                    POSIX capabilities type
                                                  type: string
                                                type: array
                                              drop:
                                                description: Removed capabilities
                                                items:
                                                  description: Capability represent
                                                    POSIX capabilities type
                                                  type: string
                                                type: array
                                            type: object
                                          privileged:
                                            description: Run container in privileged
                                              mode. Processes in privileged containers
                                              are essentially equivalent to root on
                                              the host. Defaults to false.
                                            type: boolean
                                          procMount:
                                            description: procMount denotes the type
                                              of proc mount to use for the containers.
                                              The default is DefaultProcMount which
                                              uses the container runtime defaults
                                              for readonly paths and masked paths.
                                              This requires the ProcMountType feature
                                              flag to be enabled.
                                            type: string
                                          readOnlyRootFilesystem:
                                            description: Whether this container has
                                              a read-only root filesystem. Default
                                              is false.
                                            type: boolean
                                          runAsGroup:
                                            description: The GID to run the entrypoint
                                              of the container process. Uses runtime
                                              default if unset. May also be set in
                                              PodSecurityContext.  If set in both
                                              SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            format: int64
                                            type: integer
                                          runAsNonRoot:
                                            description: Indicates that the container
                                              must run as a non-root user. If true,
                                              the Kubelet will validate the image
                                              at runtime to ensure that it does not
                                              run as UID 0 (root) and fail to start
                                              the container if it does. If unset or
                                              false, no such validation will be performed.
                                              May also be set in PodSecurityContext.  If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            type: boolean
                                          runAsUser:
                                            description: The UID to run the entrypoint
                                              of the container process. Defaults to
                                              user specified in image metadata if
                                              unspecified. May also be set in PodSecurityContext.  If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            format: int64
                                            type: integer
                                          seLinuxOptions:
                                            description: The SELinux context to be
                                              applied to the container. If unspecified,
                                              the container runtime will allocate
                                              a random SELinux context for each container.  May
                                              also be set in PodSecurityContext.  If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            properties:
                                              level:
                                                description: Level is SELinux level
                                                  label that applies to the container.
                                                type: string
                                              role:
                                                description: Role is a SELinux role
                                                  label that applies to the container.
                                                type: string
                                              type:
                                                description: Type is a SELinux type
                                                  label that applies to the container.
                                                type: string
                                              user:
                                                description: User is a SELinux user
                                                  label that applies to the container.
                                                type: string
                                            type: object
                                          seccompProfile:
                                            description: The seccomp options to use
                                              by this container. If seccomp options
                                              are provided at both the pod & container
                                              level, the container options override
                                              the pod options.
                                            properties:
                                              localhostProfile:
                                                description: localhostProfile indicates
                                                  a profile defined in a file on the
                                                  node should be used. The profile
                                                  must be preconfigured on the node
                                                  to work. Must be a descending path,
                                                  relative to the kubelet's configured
                                                  seccomp profile location. Must only
                                                  be set if type is "Localhost".
                                                type: string
                                              type:
                                                description: "type indicates which
                                                  kind of seccomp profile will be
                                                  applied. Valid options are: \n Localhost
                                                  - a profile defined in a file on
                                                  the node should be used. RuntimeDefault
                                                  - the container runtime default
                                                  profile should be used. Unconfined
                                                  - no profile should be applied."
                                                type: string
                                            required:
                                            - type
                                            type: object
                                          windowsOptions:
                                            description: The Windows specific settings
                                              applied to all containers. If unspecified,
                                              the options from the PodSecurityContext
                                              will be used. If set in both SecurityContext
                                              and PodSecurityContext, the value specified
                                              in SecurityContext takes precedence.
                                            properties:
                                              gmsaCredentialSpec:
                                                description: GMSACredentialSpec is
                                                  where the GMSA admission webhook
                                                  (https://github.com/kubernetes-sigs/windows-gmsa)
                                                  inlines the contents of the GMSA
                                                  credential spec named by the GMSACredentialSpecName
                                                  field.
                                                type: string
                                              gmsaCredentialSpecName:
                                                description: GMSACredentialSpecName
                                                  is the name of the GMSA credential
                                                  spec to use.
                                                type: string
                                              hostProcess:
                                                description: HostProcess determines
                                                  if a container should be run as
                                                  a 'Host Process' container. This
                                                  field is alpha-level and will only
                                                  be honored by components that enable
                                                  the WindowsHostProcessContainers
                                                  feature flag. Setting this field
                                                  without the feature flag will result
                                                  in errors when validating the Pod.
                                                  All of a Pod's containers must have
                                                  the same effective HostProcess value
                                                  (it is not allowed to have a mix
                                                  of HostProcess containers and non-HostProcess
                                                  containers).  In addition, if HostProcess
                                                  is true then HostNetwork must also
                                                  be set to true.
                                                type: boolean
                                              runAsUserName:
                                                description: The UserName in Windows
                                                  to run the entrypoint of the container
                                                  process. Defaults to the user specified
                                                  in image metadata if unspecified.
                                                  May also be set in PodSecurityContext.
                                                  If set in both SecurityContext and
                                                  PodSecurityContext, the value specified
                                                  in SecurityContext takes precedence.
                                                type: string
                                            type: object
                                        type: object
                                      startupProbe:
                                        description: 'StartupProbe indicates that
                                          the Pod has successfully initialized. If
                                          specified, no other probes are executed
                                          until this completes successfully. If this
                                          probe fails, the Pod will be restarted,
                                          just as if the livenessProbe failed. This
                                          can be used to provide different probe parameters
                                          at the beginning of a Pod''s lifecycle,
                                          when it might take a long time to load data
                                          or warm a cache, than during steady-state
                                          operation. This cannot be updated. More
                                          info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                        properties:
                                          exec:
                                            description: One and only one of the following
                                              should be specified. Exec specifies
                                              the action to take.
                                            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
                                                type: array
                                            type: object
                                          failureThreshold:
                                            description: Minimum consecutive failures
                                              for the probe to be considered failed
                                              after having succeeded. Defaults to
                                              3. Minimum value is 1.
                                            format: int32
                                            type: integer
                                          httpGet:
                                            description: HTTPGet specifies the http
                                              request to perform.
                                            properties:
                                              host:
                                                description: Host name to connect
                                                  to, defaults to the pod IP. You
                                                  probably want to set "Host" in httpHeaders
                                                  instead.
                                                type: string
                                              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
                                                      type: string
                                                    value:
                                                      description: The header field
                                                        value
                                                      type: string
                                                  required:
                                                  - name
                                                  - value
                                                  type: object
                                                type: array
                                              path:
                                                description: Path to access on the
                                                  HTTP server.
                                                type: string
                                              port:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: Name or number of the
                                                  port to access on the container.
                                                  Number must be in the range 1 to
                                                  65535. Name must be an IANA_SVC_NAME.
                                                x-kubernetes-int-or-string: true
                                              scheme:
                                                description: Scheme to use for connecting
                                                  to the host. Defaults to HTTP.
                                                type: string
                                            required:
                                            - port
                                            type: object
                                          initialDelaySeconds:
                                            description: 'Number of seconds after
                                              the container has started before liveness
                                              probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                            format: int32
                                            type: integer
                                          periodSeconds:
                                            description: How often (in seconds) to
                                              perform the probe. Default to 10 seconds.
                                              Minimum value is 1.
                                            format: int32
                                            type: integer
                                          successThreshold:
                                            description: Minimum consecutive successes
                                              for the probe to be considered successful
                                              after having failed. Defaults to 1.
                                              Must be 1 for liveness and startup.
                                              Minimum value is 1.
                                            format: int32
                                            type: integer
                                          tcpSocket:
                                            description: 'TCPSocket specifies an action
                                              involving a TCP port. TCP hooks not
                                              yet supported TODO: implement a realistic
                                              TCP lifecycle hook'
                                            properties:
                                              host:
                                                description: 'Optional: Host name
                                                  to connect to, defaults to the pod
                                                  IP.'
                                                type: string
                                              port:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: Number or name of the
                                                  port to access on the container.
                                                  Number must be in the range 1 to
                                                  65535. Name must be an IANA_SVC_NAME.
                                                x-kubernetes-int-or-string: true
                                            required:
                                            - port
                                            type: object
                                          terminationGracePeriodSeconds:
                                            description: Optional duration in seconds
                                              the pod needs to terminate gracefully
                                              upon probe failure. The grace period
                                              is the duration in seconds after the
                                              processes running in the pod are sent
                                              a termination signal and the time when
                                              the processes are forcibly halted with
                                              a kill signal. Set this value longer
                                              than the expected cleanup time for your
                                              process. If this value is nil, the pod's
                                              terminationGracePeriodSeconds will be
                                              used. Otherwise, this value overrides
                                              the value provided by the pod spec.
                                              Value must be non-negative integer.
                                              The value zero indicates stop immediately
                                              via the kill signal (no opportunity
                                              to shut down). This is a beta field
                                              and requires enabling ProbeTerminationGracePeriod
                                              feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds
                                              is used if unset.
                                            format: int64
                                            type: integer
                                          timeoutSeconds:
                                            description: 'Number of seconds after
                                              which the probe times out. Defaults
                                              to 1 second. Minimum value is 1. More
                                              info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                            format: int32
                                            type: integer
                                        type: object
                                      stdin:
                                        description: Whether this container should
                                          allocate a buffer for stdin in the container
                                          runtime. If this is not set, reads from
                                          stdin in the container will always result
                                          in EOF. Default is false.
                                        type: boolean
                                      stdinOnce:
                                        description: Whether the container runtime
                                          should close the stdin channel after it
                                          has been opened by a single attach. When
                                          stdin is true the stdin stream will remain
                                          open across multiple attach sessions. If
                                          stdinOnce is set to true, stdin is opened
                                          on container start, is empty until the first
                                          client attaches to stdin, and then remains
                                          open and accepts data until the client disconnects,
                                          at which time stdin is closed and remains
                                          closed until the container is restarted.
                                          If this flag is false, a container processes
                                          that reads from stdin will never receive
                                          an EOF. Default is false
                                        type: boolean
                                      terminationMessagePath:
                                        description: 'Optional: Path at which the
                                          file to which the container''s termination
                                          message will be written is mounted into
                                          the container''s filesystem. Message written
                                          is intended to be brief final status, such
                                          as an assertion failure message. Will be
                                          truncated by the node if greater than 4096
                                          bytes. The total message length across all
                                          containers will be limited to 12kb. Defaults
                                          to /dev/termination-log. Cannot be updated.'
                                        type: string
                                      terminationMessagePolicy:
                                        description: Indicate how the termination
                                          message should be populated. File will use
                                          the contents of terminationMessagePath to
                                          populate the container status message on
                                          both success and failure. FallbackToLogsOnError
                                          will use the last chunk of container log
                                          output if the termination message file is
                                          empty and the container exited with an error.
                                          The log output is limited to 2048 bytes
                                          or 80 lines, whichever is smaller. Defaults
                                          to File. Cannot be updated.
                                        type: string
                                      tty:
                                        description: Whether this container should
                                          allocate a TTY for itself, also requires
                                          'stdin' to be true. Default is false.
                                        type: boolean
                                      volumeDevices:
                                        description: volumeDevices is the list of
                                          block devices to be used by the container.
                                        items:
                                          description: volumeDevice describes a mapping
                                            of a raw block device within a container.
                                          properties:
                                            devicePath:
                                              description: devicePath is the path
                                                inside of the container that the device
                                                will be mapped to.
                                              type: string
                                            name:
                                              description: name must match the name
                                                of a persistentVolumeClaim in the
                                                pod
                                              type: string
                                          required:
                                          - devicePath
                                          - name
                                          type: object
                                        type: array
                                      volumeMounts:
                                        description: Pod volumes to mount into the
                                          container's filesystem. Cannot be updated.
                                        items:
                                          description: VolumeMount describes a mounting
                                            of a Volume within a container.
                                          properties:
                                            mountPath:
                                              description: Path within the container
                                                at which the volume should be mounted.  Must
                                                not contain ':'.
                                              type: string
                                            mountPropagation:
                                              description: mountPropagation determines
                                                how mounts are propagated from the
                                                host to container and the other way
                                                around. When not set, MountPropagationNone
                                                is used. This field is beta in 1.10.
                                              type: string
                                            name:
                                              description: This must match the Name
                                                of a Volume.
                                              type: string
                                            readOnly:
                                              description: Mounted read-only if true,
                                                read-write otherwise (false or unspecified).
                                                Defaults to false.
                                              type: boolean
                                            subPath:
                                              description: Path within the volume
                                                from which the container's volume
                                                should be mounted. Defaults to ""
                                                (volume's root).
                                              type: string
                                            subPathExpr:
                                              description: Expanded path within the
                                                volume from which the container's
                                                volume should be mounted. Behaves
                                                similarly to SubPath but environment
                                                variable references $(VAR_NAME) are
                                                expanded using the container's environment.
                                                Defaults to "" (volume's root). SubPathExpr
                                                and SubPath are mutually exclusive.
                                              type: string
                                          required:
                                          - mountPath
                                          - name
                                          type: object
                                        type: array
                                      workingDir:
                                        description: Container's working directory.
                                          If not specified, the container runtime's
                                          default will be used, which might be configured
                                          in the container image. Cannot be updated.
                                        type: string
                                    required:
                                    - name
                                    type: object
                                  type: array
                                timeout:
                                  description: Timeout defines the maximum amount
                                    of time Velero should wait for the initContainers
                                    to complete.
                                  type: string
                              type: object
                          type: object
                        type: array
                    required:
                    - name
                    type: object
                  type: array
              type: object
            includeClusterResources:
              description: IncludeClusterResources specifies whether cluster-scoped
                resources should be included for consideration in the restore. If
                null, defaults to true.
              nullable: true
              type: boolean
            includedNamespaces:
              description: IncludedNamespaces is a slice of namespace names to include
                objects from. If empty, all namespaces are included.
              items:
                type: string
              nullable: true
              type: array
            includedResources:
              description: IncludedResources is a slice of resource names to include
                in the restore. If empty, all resources in the backup are included.
              items:
                type: string
              nullable: true
              type: array
            labelSelector:
              description: LabelSelector is a metav1.LabelSelector to filter with
                when restoring individual objects from the backup. If empty or nil,
                all objects are included. Optional.
              nullable: true
              properties:
                matchExpressions:
                  description: matchExpressions is a list of label selector requirements.
                    The requirements are ANDed.
                  items:
                    description: A label selector requirement is a selector that contains
                      values, a key, and an operator that relates the key and values.
                    properties:
                      key:
                        description: key is the label key that the selector applies
                          to.
                        type: string
                      operator:
                        description: operator represents a key's relationship to a
                          set of values. Valid operators are In, NotIn, Exists and
                          DoesNotExist.
                        type: string
                      values:
                        description: values is an array of string values. If the operator
                          is In or NotIn, the values array must be non-empty. If the
                          operator is Exists or DoesNotExist, the values array must
                          be empty. This array is replaced during a strategic merge
                          patch.
                        items:
                          type: string
                        type: array
                    required:
                    - key
                    - operator
                    type: object
                  type: array
                matchLabels:
                  additionalProperties:
                    type: string
                  description: matchLabels is a map of {key,value} pairs. A single
                    {key,value} in the matchLabels map is equivalent to an element
                    of matchExpressions, whose key field is "key", the operator is
                    "In", and the values array contains only "value". The requirements
                    are ANDed.
                  type: object
              type: object
            namespaceMapping:
              additionalProperties:
                type: string
              description: NamespaceMapping is a map of source namespace names to
                target namespace names to restore into. Any source namespaces not
                included in the map will be restored into namespaces of the same name.
              type: object
            preserveNodePorts:
              description: PreserveNodePorts specifies whether to restore old nodePorts
                from backup.
              nullable: true
              type: boolean
            restorePVs:
              description: RestorePVs specifies whether to restore all included PVs
                from snapshot (via the cloudprovider).
              nullable: true
              type: boolean
            scheduleName:
              description: ScheduleName is the unique name of the Velero schedule
                to restore from. If specified, and BackupName is empty, Velero will
                restore from the most recent successful backup created from this schedule.
              type: string
          required:
          - backupName
          type: object
        status:
          description: RestoreStatus captures the current status of a Velero restore
          properties:
            completionTimestamp:
              description: CompletionTimestamp records the time the restore operation
                was completed. Completion time is recorded even on failed restore.
                The server's time is used for StartTimestamps
              format: date-time
              nullable: true
              type: string
            errors:
              description: Errors is a count of all error messages that were generated
                during execution of the restore. The actual errors are stored in object
                storage.
              type: integer
            failureReason:
              description: FailureReason is an error that caused the entire restore
                to fail.
              type: string
            phase:
              description: Phase is the current state of the Restore
              enum:
              - New
              - FailedValidation
              - InProgress
              - Completed
              - PartiallyFailed
              - Failed
              type: string
            progress:
              description: Progress contains information about the restore's execution
                progress. Note that this information is best-effort only -- if Velero
                fails to update it during a restore for any reason, it may be inaccurate/stale.
              nullable: true
              properties:
                itemsRestored:
                  description: ItemsRestored is the number of items that have actually
                    been restored so far
                  type: integer
                totalItems:
                  description: TotalItems is the total number of items to be restored.
                    This number may change throughout the execution of the restore
                    due to plugins that return additional related items to restore
                  type: integer
              type: object
            startTimestamp:
              description: StartTimestamp records the time the restore operation was
                started. The server's time is used for StartTimestamps
              format: date-time
              nullable: true
              type: string
            validationErrors:
              description: ValidationErrors is a slice of all validation errors (if
                applicable)
              items:
                type: string
              nullable: true
              type: array
            warnings:
              description: Warnings is a count of all warning messages that were generated
                during execution of the restore. The actual warnings are stored in
                object storage.
              type: integer
          type: object
      type: object
  version: v1
  versions:
  - name: v1
    served: true
    storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
