
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.3.0
  creationTimestamp: null
  name: backupstoragelocations.velero.io
spec:
  additionalPrinterColumns:
  - JSONPath: .status.phase
    description: Backup Storage Location status such as Available/Unavailable
    name: Phase
    type: string
  - JSONPath: .status.lastValidationTime
    description: LastValidationTime is the last time the backup store location was
      validated
    name: Last Validated
    type: date
  - JSONPath: .metadata.creationTimestamp
    name: Age
    type: date
  - JSONPath: .spec.default
    description: Default backup storage location
    name: Default
    type: boolean
  group: velero.io
  names:
    kind: BackupStorageLocation
    listKind: BackupStorageLocationList
    plural: backupstoragelocations
    shortNames:
    - bsl
    singular: backupstoragelocation
  preserveUnknownFields: false
  scope: Namespaced
  subresources:
    status: {}
  validation:
    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:
                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                    TODO: Add other useful fields. apiVersion, kind, uid?'
                  type: string
                optional:
                  description: Specify whether the Secret or its key must be defined
                  type: boolean
              required:
              - key
              type: object
            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. \n 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. \n 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
            phase:
              description: Phase is the current state of the BackupStorageLocation.
              enum:
              - Available
              - Unavailable
              type: string
          type: object
      type: object
  version: v1
  versions:
  - name: v1
    served: true
    storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
