---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    component: velero
  annotations:
    controller-gen.kubebuilder.io/version: v0.12.0
  name: schedules.velero.io
spec:
  group: velero.io
  names:
    kind: Schedule
    listKind: ScheduleList
    plural: schedules
    singular: schedule
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: Status of the schedule
      jsonPath: .status.phase
      name: Status
      type: string
    - description: A Cron expression defining when to run the Backup
      jsonPath: .spec.schedule
      name: Schedule
      type: string
    - description: The last time a Backup was run for this schedule
      jsonPath: .status.lastBackup
      name: LastBackup
      type: date
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - jsonPath: .spec.paused
      name: Paused
      type: boolean
    name: v1
    schema:
      openAPIV3Schema:
        description: Schedule is a Velero resource that represents a pre-scheduled
          or periodic Backup that should be run.
        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: ScheduleSpec defines the specification for a Velero schedule
            properties:
              paused:
                description: Paused specifies whether the schedule is paused or not
                type: boolean
              schedule:
                description: Schedule is a Cron expression defining when to run the
                  Backup.
                type: string
              template:
                description: Template is the definition of the Backup to be run on
                  the provided schedule
                properties:
                  csiSnapshotTimeout:
                    description: CSISnapshotTimeout specifies the time used to wait
                      for CSI VolumeSnapshot status turns to ReadyToUse during creation,
                      before returning error as timeout. The default value is 10 minute.
                    type: string
                  datamover:
                    description: DataMover specifies the data mover to be used by
                      the backup. If DataMover is "" or "velero", the built-in data
                      mover will be used.
                    type: string
                  defaultVolumesToFsBackup:
                    description: DefaultVolumesToFsBackup specifies whether pod volume
                      file system backup should be used for all volumes by default.
                    nullable: true
                    type: boolean
                  defaultVolumesToRestic:
                    description: "DefaultVolumesToRestic specifies whether restic
                      should be used to take a backup of all pod volumes by default.
                      \n Deprecated: this field is no longer used and will be removed
                      entirely in future. Use DefaultVolumesToFsBackup instead."
                    nullable: true
                    type: boolean
                  excludedClusterScopedResources:
                    description: ExcludedClusterScopedResources is a slice of cluster-scoped
                      resource type names to exclude from the backup. If set to "*",
                      all cluster-scoped resource types are excluded. The default
                      value is empty.
                    items:
                      type: string
                    nullable: true
                    type: array
                  excludedNamespaceScopedResources:
                    description: ExcludedNamespaceScopedResources is a slice of namespace-scoped
                      resource type names to exclude from the backup. If set to "*",
                      all namespace-scoped resource types are excluded. The default
                      value is empty.
                    items:
                      type: string
                    nullable: true
                    type: array
                  excludedNamespaces:
                    description: ExcludedNamespaces contains a list of namespaces
                      that are not included in the backup.
                    items:
                      type: string
                    nullable: true
                    type: array
                  excludedResources:
                    description: ExcludedResources is a slice of resource names that
                      are not included in the backup.
                    items:
                      type: string
                    nullable: true
                    type: array
                  hooks:
                    description: Hooks represent custom behaviors that should be executed
                      at different phases of the backup.
                    properties:
                      resources:
                        description: Resources are hooks that should be executed when
                          backing up individual instances of a resource.
                        items:
                          description: BackupResourceHookSpec defines one or more
                            BackupResourceHooks 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
                              x-kubernetes-map-type: atomic
                            name:
                              description: Name is the name of this hook.
                              type: string
                            post:
                              description: PostHooks is a list of BackupResourceHooks
                                to execute after storing the item in the backup. These
                                are executed after all "additional items" from item
                                actions are processed.
                              items:
                                description: BackupResourceHook defines a hook for
                                  a resource.
                                properties:
                                  exec:
                                    description: Exec defines an exec hook.
                                    properties:
                                      command:
                                        description: Command is the command and arguments
                                          to execute.
                                        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
                                      onError:
                                        description: OnError specifies how Velero
                                          should behave if it encounters an error
                                          executing this hook.
                                        enum:
                                        - Continue
                                        - Fail
                                        type: string
                                      timeout:
                                        description: Timeout defines the maximum amount
                                          of time Velero should wait for the hook
                                          to complete before considering the execution
                                          a failure.
                                        type: string
                                    required:
                                    - command
                                    type: object
                                required:
                                - exec
                                type: object
                              type: array
                            pre:
                              description: PreHooks is a list of BackupResourceHooks
                                to execute prior to storing the item in the backup.
                                These are executed before any "additional items" from
                                item actions are processed.
                              items:
                                description: BackupResourceHook defines a hook for
                                  a resource.
                                properties:
                                  exec:
                                    description: Exec defines an exec hook.
                                    properties:
                                      command:
                                        description: Command is the command and arguments
                                          to execute.
                                        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
                                      onError:
                                        description: OnError specifies how Velero
                                          should behave if it encounters an error
                                          executing this hook.
                                        enum:
                                        - Continue
                                        - Fail
                                        type: string
                                      timeout:
                                        description: Timeout defines the maximum amount
                                          of time Velero should wait for the hook
                                          to complete before considering the execution
                                          a failure.
                                        type: string
                                    required:
                                    - command
                                    type: object
                                required:
                                - exec
                                type: object
                              type: array
                          required:
                          - name
                          type: object
                        nullable: true
                        type: array
                    type: object
                  includeClusterResources:
                    description: IncludeClusterResources specifies whether cluster-scoped
                      resources should be included for consideration in the backup.
                    nullable: true
                    type: boolean
                  includedClusterScopedResources:
                    description: IncludedClusterScopedResources is a slice of cluster-scoped
                      resource type names to include in the backup. If set to "*",
                      all cluster-scoped resource types are included. The default
                      value is empty, which means only related cluster-scoped resources
                      are included.
                    items:
                      type: string
                    nullable: true
                    type: array
                  includedNamespaceScopedResources:
                    description: IncludedNamespaceScopedResources is a slice of namespace-scoped
                      resource type names to include in the backup. The default value
                      is "*".
                    items:
                      type: string
                    nullable: true
                    type: array
                  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 backup. If empty, all resources are included.
                    items:
                      type: string
                    nullable: true
                    type: array
                  itemOperationTimeout:
                    description: ItemOperationTimeout specifies the time used to wait
                      for asynchronous BackupItemAction operations The default value
                      is 1 hour.
                    type: string
                  labelSelector:
                    description: LabelSelector is a metav1.LabelSelector to filter
                      with when adding individual objects to 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
                    x-kubernetes-map-type: atomic
                  metadata:
                    properties:
                      labels:
                        additionalProperties:
                          type: string
                        type: object
                    type: object
                  orLabelSelectors:
                    description: OrLabelSelectors is list of metav1.LabelSelector
                      to filter with when adding individual objects to the backup.
                      If multiple provided they will be joined by the OR operator.
                      LabelSelector as well as OrLabelSelectors cannot co-exist in
                      backup request, only one of them can be used.
                    items:
                      description: A label selector is a label query over a set of
                        resources. The result of matchLabels and matchExpressions
                        are ANDed. An empty label selector matches all objects. A
                        null label selector matches no objects.
                      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
                      x-kubernetes-map-type: atomic
                    nullable: true
                    type: array
                  orderedResources:
                    additionalProperties:
                      type: string
                    description: OrderedResources specifies the backup order of resources
                      of specific Kind. The map key is the resource name and value
                      is a list of object names separated by commas. Each resource
                      name has format "namespace/objectname".  For cluster resources,
                      simply use "objectname".
                    nullable: true
                    type: object
                  resourcePolicy:
                    description: ResourcePolicy specifies the referenced resource
                      policies that backup should follow
                    properties:
                      apiGroup:
                        description: APIGroup is the group for the resource being
                          referenced. If APIGroup is not specified, the specified
                          Kind must be in the core API group. For any other third-party
                          types, APIGroup is required.
                        type: string
                      kind:
                        description: Kind is the type of resource being referenced
                        type: string
                      name:
                        description: Name is the name of resource being referenced
                        type: string
                    required:
                    - kind
                    - name
                    type: object
                    x-kubernetes-map-type: atomic
                  snapshotMoveData:
                    description: SnapshotMoveData specifies whether snapshot data
                      should be moved
                    nullable: true
                    type: boolean
                  snapshotVolumes:
                    description: SnapshotVolumes specifies whether to take snapshots
                      of any PV's referenced in the set of objects included in the
                      Backup.
                    nullable: true
                    type: boolean
                  storageLocation:
                    description: StorageLocation is a string containing the name of
                      a BackupStorageLocation where the backup should be stored.
                    type: string
                  ttl:
                    description: TTL is a time.Duration-parseable string describing
                      how long the Backup should be retained for.
                    type: string
                  volumeSnapshotLocations:
                    description: VolumeSnapshotLocations is a list containing names
                      of VolumeSnapshotLocations associated with this backup.
                    items:
                      type: string
                    type: array
                type: object
              useOwnerReferencesInBackup:
                description: UseOwnerReferencesBackup specifies whether to use OwnerReferences
                  on backups created by this Schedule.
                nullable: true
                type: boolean
            required:
            - schedule
            - template
            type: object
          status:
            description: ScheduleStatus captures the current state of a Velero schedule
            properties:
              lastBackup:
                description: LastBackup is the last time a Backup was run for this
                  Schedule schedule
                format: date-time
                nullable: true
                type: string
              phase:
                description: Phase is the current phase of the Schedule
                enum:
                - New
                - Enabled
                - FailedValidation
                type: string
              validationErrors:
                description: ValidationErrors is a slice of all validation errors
                  (if applicable)
                items:
                  type: string
                type: array
            type: object
        type: object
    served: true
    storage: true
    subresources: {}
