---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.16.5
  labels:
    component: velero
  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
              skipImmediately:
                description: |-
                  SkipImmediately specifies whether to skip backup if schedule is due immediately from `schedule.status.lastBackup` timestamp when schedule is unpaused or if schedule is new.
                  If true, backup will be skipped immediately when schedule is unpaused if it is due based on .Status.LastBackupTimestamp or schedule is new, and will run at next schedule time.
                  If false, backup will not be skipped immediately when schedule is unpaused, but will run at next schedule time.
                  If empty, will follow server configuration (default: false).
                type: boolean
              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.

                      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
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                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 4 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
                              x-kubernetes-list-type: atomic
                          required:
                          - key
                          - operator
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      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
                                x-kubernetes-list-type: atomic
                            required:
                            - key
                            - operator
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        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
                  uploaderConfig:
                    description: UploaderConfig specifies the configuration for
                      the uploader.
                    nullable: true
                    properties:
                      parallelFilesUpload:
                        description: ParallelFilesUpload is the number of files
                          parallel uploads to perform when using the uploader.
                        type: integer
                    type: object
                  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
              lastSkipped:
                description: LastSkipped is the last time a Schedule was skipped
                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: {}
