apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.7.0
  name: schedules.velero.io
spec:
  group: velero.io
  names:
    kind: Schedule
    listKind: ScheduleList
    plural: schedules
    singular: schedule
  scope: Namespaced
  versions:
  - 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:
              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:
                  defaultVolumesToRestic:
                    description: DefaultVolumesToRestic specifies whether restic should
                      be used to take a backup of all pod volumes by default.
                    type: boolean
                  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
                            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
                  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
                  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
                  metadata:
                    properties:
                      labels:
                        additionalProperties:
                          type: string
                        type: object
                    type: object
                  orderedResources:
                    additionalProperties:
                      type: string
                    description: OrderedResources specifies the backup order of resources
                      of specific Kind. The map key is the Kind name and value is
                      a list of resource names separated by commas. Each resource
                      name has format "namespace/resourcename".  For cluster resources,
                      simply use "resourcename".
                    nullable: true
                    type: object
                  snapshotVolumes:
                    description: SnapshotVolumes specifies whether to take cloud 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
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
