---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.16.5
  labels:
    component: velero
  name: backupstoragelocations.velero.io
spec:
  group: velero.io
  names:
    kind: BackupStorageLocation
    listKind: BackupStorageLocationList
    plural: backupstoragelocations
    shortNames:
    - bsl
    singular: backupstoragelocation
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: Backup Storage Location status such as Available/Unavailable
      jsonPath: .status.phase
      name: Phase
      type: string
    - description: LastValidationTime is the last time the backup store location
        was validated
      jsonPath: .status.lastValidationTime
      name: Last Validated
      type: date
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - description: Default backup storage location
      jsonPath: .spec.default
      name: Default
      type: boolean
    name: v1
    schema:
      openAPIV3Schema:
        description: BackupStorageLocation is a location where Velero stores backup
          objects
        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: BackupStorageLocationSpec defines the desired state of
              a Velero BackupStorageLocation
            properties:
              accessMode:
                description: AccessMode defines the permissions for the backup storage
                  location.
                enum:
                - ReadOnly
                - ReadWrite
                type: string
              backupSyncPeriod:
                description: BackupSyncPeriod defines how frequently to sync backup
                  API objects from object storage. A value of 0 disables sync.
                nullable: true
                type: string
              config:
                additionalProperties:
                  type: string
                description: Config is for provider-specific configuration fields.
                type: object
              credential:
                description: Credential contains the credential information intended
                  to be used with this location
                properties:
                  key:
                    description: The key of the secret to select from.  Must be
                      a valid secret key.
                    type: string
                  name:
                    default: ""
                    description: |-
                      Name of the referent.
                      This field is effectively required, but due to backwards compatibility is
                      allowed to be empty. Instances of this type with an empty value here are
                      almost certainly wrong.
                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                    type: string
                  optional:
                    description: Specify whether the Secret or its key must be defined
                    type: boolean
                required:
                - key
                type: object
                x-kubernetes-map-type: atomic
              default:
                description: Default indicates this location is the default backup
                  storage location.
                type: boolean
              objectStorage:
                description: ObjectStorageLocation specifies the settings necessary
                  to connect to a provider's object storage.
                properties:
                  bucket:
                    description: Bucket is the bucket to use for object storage.
                    type: string
                  caCert:
                    description: CACert defines a CA bundle to use when verifying
                      TLS connections to the provider.
                    format: byte
                    type: string
                  prefix:
                    description: Prefix is the path inside a bucket to use for Velero
                      storage. Optional.
                    type: string
                required:
                - bucket
                type: object
              provider:
                description: Provider is the provider of the backup storage.
                type: string
              validationFrequency:
                description: ValidationFrequency defines how frequently to validate
                  the corresponding object storage. A value of 0 disables validation.
                nullable: true
                type: string
            required:
            - objectStorage
            - provider
            type: object
          status:
            description: BackupStorageLocationStatus defines the observed state
              of BackupStorageLocation
            properties:
              accessMode:
                description: |-
                  AccessMode is an unused field.

                  Deprecated: there is now an AccessMode field on the Spec and this field
                  will be removed entirely as of v2.0.
                enum:
                - ReadOnly
                - ReadWrite
                type: string
              lastSyncedRevision:
                description: |-
                  LastSyncedRevision is the value of the `metadata/revision` file in the backup
                  storage location the last time the BSL's contents were synced into the cluster.

                  Deprecated: this field is no longer updated or used for detecting changes to
                  the location's contents and will be removed entirely in v2.0.
                type: string
              lastSyncedTime:
                description: |-
                  LastSyncedTime is the last time the contents of the location were synced into
                  the cluster.
                format: date-time
                nullable: true
                type: string
              lastValidationTime:
                description: |-
                  LastValidationTime is the last time the backup store location was validated
                  the cluster.
                format: date-time
                nullable: true
                type: string
              message:
                description: Message is a message about the backup storage location's
                  status.
                type: string
              phase:
                description: Phase is the current state of the BackupStorageLocation.
                enum:
                - Available
                - Unavailable
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources: {}
