apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    a8r.io/repository: ssh://git@git.tr1ceracop.de:222/gitea_admin/k8s-and-chill.git
    controller-gen.kubebuilder.io/version: v0.16.5
    helm.sh/resource-policy: keep
  name: scheduledbackups.postgresql.cnpg.io
  namespace: cnpg-system
spec:
  group: postgresql.cnpg.io
  names:
    kind: ScheduledBackup
    listKind: ScheduledBackupList
    plural: scheduledbackups
    singular: scheduledbackup
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
        - jsonPath: .spec.cluster.name
          name: Cluster
          type: string
        - jsonPath: .status.lastScheduleTime
          name: Last Backup
          type: date
      name: v1
      schema:
        openAPIV3Schema:
          description: ScheduledBackup is the Schema for the scheduledbackups API
          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: |-
                Specification of the desired behavior of the ScheduledBackup.
                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
              properties:
                backupOwnerReference:
                  default: none
                  description: |-
                    Indicates which ownerReference should be put inside the created backup resources.<br />
                    - none: no owner reference for created backup objects (same behavior as before the field was introduced)<br />
                    - self: sets the Scheduled backup object as owner of the backup<br />
                    - cluster: set the cluster as owner of the backup<br />
                  enum:
                    - none
                    - self
                    - cluster
                  type: string
                cluster:
                  description: The cluster to backup
                  properties:
                    name:
                      description: Name of the referent.
                      type: string
                  required:
                    - name
                  type: object
                immediate:
                  description: If the first backup has to be immediately start after creation or not
                  type: boolean
                method:
                  default: barmanObjectStore
                  description: |-
                    The backup method to be used, possible options are `barmanObjectStore`,
                    `volumeSnapshot` or `plugin`. Defaults to: `barmanObjectStore`.
                  enum:
                    - barmanObjectStore
                    - volumeSnapshot
                    - plugin
                  type: string
                online:
                  description: |-
                    Whether the default type of backup with volume snapshots is
                    online/hot (`true`, default) or offline/cold (`false`)
                    Overrides the default setting specified in the cluster field '.spec.backup.volumeSnapshot.online'
                  type: boolean
                onlineConfiguration:
                  description: |-
                    Configuration parameters to control the online/hot backup with volume snapshots
                    Overrides the default settings specified in the cluster '.backup.volumeSnapshot.onlineConfiguration' stanza
                  properties:
                    immediateCheckpoint:
                      description: |-
                        Control whether the I/O workload for the backup initial checkpoint will
                        be limited, according to the `checkpoint_completion_target` setting on
                        the PostgreSQL server. If set to true, an immediate checkpoint will be
                        used, meaning PostgreSQL will complete the checkpoint as soon as
                        possible. `false` by default.
                      type: boolean
                    waitForArchive:
                      default: true
                      description: |-
                        If false, the function will return immediately after the backup is completed,
                        without waiting for WAL to be archived.
                        This behavior is only useful with backup software that independently monitors WAL archiving.
                        Otherwise, WAL required to make the backup consistent might be missing and make the backup useless.
                        By default, or when this parameter is true, pg_backup_stop will wait for WAL to be archived when archiving is
                        enabled.
                        On a standby, this means that it will wait only when archive_mode = always.
                        If write activity on the primary is low, it may be useful to run pg_switch_wal on the primary in order to trigger
                        an immediate segment switch.
                      type: boolean
                  type: object
                pluginConfiguration:
                  description: Configuration parameters passed to the plugin managing this backup
                  properties:
                    name:
                      description: Name is the name of the plugin managing this backup
                      type: string
                    parameters:
                      additionalProperties:
                        type: string
                      description: |-
                        Parameters are the configuration parameters passed to the backup
                        plugin for this backup
                      type: object
                  required:
                    - name
                  type: object
                schedule:
                  description: |-
                    The schedule does not follow the same format used in Kubernetes CronJobs
                    as it includes an additional seconds specifier,
                    see https://pkg.go.dev/github.com/robfig/cron#hdr-CRON_Expression_Format
                  type: string
                suspend:
                  description: If this backup is suspended or not
                  type: boolean
                target:
                  description: |-
                    The policy to decide which instance should perform this backup. If empty,
                    it defaults to `cluster.spec.backup.target`.
                    Available options are empty string, `primary` and `prefer-standby`.
                    `primary` to have backups run always on primary instances,
                    `prefer-standby` to have backups run preferably on the most updated
                    standby, if available.
                  enum:
                    - primary
                    - prefer-standby
                  type: string
              required:
                - cluster
                - schedule
              type: object
            status:
              description: |-
                Most recently observed status of the ScheduledBackup. This data may not be up
                to date. Populated by the system. Read-only.
                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
              properties:
                lastCheckTime:
                  description: The latest time the schedule
                  format: date-time
                  type: string
                lastScheduleTime:
                  description: Information when was the last time that backup was successfully scheduled.
                  format: date-time
                  type: string
                nextScheduleTime:
                  description: Next time we will run a backup
                  format: date-time
                  type: string
              type: object
          required:
            - metadata
            - spec
          type: object
      served: true
      storage: true
      subresources:
        status: {}
