apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    component: velero
  name: backups.velero.io
spec:
  conversion:
    strategy: None
  group: velero.io
  names:
    kind: Backup
    listKind: BackupList
    plural: backups
    singular: backup
  scope: Namespaced
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            properties:
              defaultVolumesToRestic:
                type: boolean
              excludedNamespaces:
                items:
                  type: string
                nullable: true
                type: array
              excludedResources:
                items:
                  type: string
                nullable: true
                type: array
              hooks:
                properties:
                  resources:
                    items:
                      properties:
                        excludedNamespaces:
                          items:
                            type: string
                          nullable: true
                          type: array
                        excludedResources:
                          items:
                            type: string
                          nullable: true
                          type: array
                        includedNamespaces:
                          items:
                            type: string
                          nullable: true
                          type: array
                        includedResources:
                          items:
                            type: string
                          nullable: true
                          type: array
                        labelSelector:
                          nullable: true
                          properties:
                            matchExpressions:
                              items:
                                properties:
                                  key:
                                    type: string
                                  operator:
                                    type: string
                                  values:
                                    items:
                                      type: string
                                    type: array
                                required:
                                - key
                                - operator
                                type: object
                              type: array
                            matchLabels:
                              additionalProperties:
                                type: string
                              type: object
                          type: object
                        name:
                          type: string
                        post:
                          items:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    minItems: 1
                                    type: array
                                  container:
                                    type: string
                                  onError:
                                    enum:
                                    - Continue
                                    - Fail
                                    type: string
                                  timeout:
                                    type: string
                                required:
                                - command
                                type: object
                            required:
                            - exec
                            type: object
                          type: array
                        pre:
                          items:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    minItems: 1
                                    type: array
                                  container:
                                    type: string
                                  onError:
                                    enum:
                                    - Continue
                                    - Fail
                                    type: string
                                  timeout:
                                    type: string
                                required:
                                - command
                                type: object
                            required:
                            - exec
                            type: object
                          type: array
                      required:
                      - name
                      type: object
                    nullable: true
                    type: array
                type: object
              includeClusterResources:
                nullable: true
                type: boolean
              includedNamespaces:
                items:
                  type: string
                nullable: true
                type: array
              includedResources:
                items:
                  type: string
                nullable: true
                type: array
              labelSelector:
                nullable: true
                properties:
                  matchExpressions:
                    items:
                      properties:
                        key:
                          type: string
                        operator:
                          type: string
                        values:
                          items:
                            type: string
                          type: array
                      required:
                      - key
                      - operator
                      type: object
                    type: array
                  matchLabels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
              orderedResources:
                additionalProperties:
                  type: string
                nullable: true
                type: object
              snapshotVolumes:
                nullable: true
                type: boolean
              storageLocation:
                type: string
              ttl:
                type: string
              volumeSnapshotLocations:
                items:
                  type: string
                type: array
            type: object
          status:
            properties:
              completionTimestamp:
                format: date-time
                nullable: true
                type: string
              errors:
                type: integer
              expiration:
                format: date-time
                nullable: true
                type: string
              formatVersion:
                type: string
              phase:
                enum:
                - New
                - FailedValidation
                - InProgress
                - Completed
                - PartiallyFailed
                - Failed
                - Deleting
                type: string
              progress:
                nullable: true
                properties:
                  itemsBackedUp:
                    type: integer
                  totalItems:
                    type: integer
                type: object
              startTimestamp:
                format: date-time
                nullable: true
                type: string
              validationErrors:
                items:
                  type: string
                nullable: true
                type: array
              version:
                type: integer
              volumeSnapshotsAttempted:
                type: integer
              volumeSnapshotsCompleted:
                type: integer
              warnings:
                type: integer
            type: object
        type: object
    served: true
    storage: true
