---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.17.2
    operatorframework.io/installed-alongside-e33812b81c25fb40: openshift-storage/odf-csi-addons-operator.v4.19.6-rhodf
  creationTimestamp: "2025-10-27T12:44:07Z"
  generation: 1
  labels:
    olm.managed: "true"
    operators.coreos.com/odf-csi-addons-operator.openshift-storage: ""
  managedFields:
  - apiVersion: apiextensions.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .: {}
          f:controller-gen.kubebuilder.io/version: {}
          f:operatorframework.io/installed-alongside-e33812b81c25fb40: {}
        f:labels:
          .: {}
          f:olm.managed: {}
      f:spec:
        f:conversion:
          .: {}
          f:strategy: {}
        f:group: {}
        f:names:
          f:kind: {}
          f:listKind: {}
          f:plural: {}
          f:singular: {}
        f:scope: {}
        f:versions: {}
    manager: catalog
    operation: Update
    time: "2025-10-27T12:44:07Z"
  - apiVersion: apiextensions.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:status:
        f:acceptedNames:
          f:kind: {}
          f:listKind: {}
          f:plural: {}
          f:singular: {}
        f:conditions:
          k:{"type":"Established"}:
            .: {}
            f:lastTransitionTime: {}
            f:message: {}
            f:reason: {}
            f:status: {}
            f:type: {}
          k:{"type":"NamesAccepted"}:
            .: {}
            f:lastTransitionTime: {}
            f:message: {}
            f:reason: {}
            f:status: {}
            f:type: {}
    manager: kube-apiserver
    operation: Update
    subresource: status
    time: "2025-10-27T12:44:07Z"
  - apiVersion: apiextensions.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:labels:
          f:operators.coreos.com/odf-csi-addons-operator.openshift-storage: {}
    manager: olm
    operation: Update
    time: "2025-10-27T12:47:14Z"
  name: reclaimspacecronjobs.csiaddons.openshift.io
  resourceVersion: "62934"
  uid: 4da6ca20-e6f8-48e3-ace3-d0865da836b2
spec:
  conversion:
    strategy: None
  group: csiaddons.openshift.io
  names:
    kind: ReclaimSpaceCronJob
    listKind: ReclaimSpaceCronJobList
    plural: reclaimspacecronjobs
    singular: reclaimspacecronjob
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.schedule
      name: Schedule
      type: string
    - jsonPath: .spec.suspend
      name: Suspend
      type: boolean
    - jsonPath: .status.active.name
      name: Active
      type: string
    - jsonPath: .status.lastScheduleTime
      name: Lastschedule
      type: date
    - jsonPath: .status.lastSuccessfulTime
      name: Lastsuccessfultime
      priority: 1
      type: date
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: ReclaimSpaceCronJob is the Schema for the reclaimspacecronjobs
          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: ReclaimSpaceCronJobSpec defines the desired state of ReclaimSpaceJob
            properties:
              concurrencyPolicy:
                default: Forbid
                description: |-
                  Specifies how to treat concurrent executions of a Job.
                  Valid values are:
                  - "Forbid" (default): forbids concurrent runs, skipping next run if
                    previous run hasn't finished yet;
                  - "Replace": cancels currently running job and replaces it
                    with a new one
                enum:
                - Forbid
                - Replace
                type: string
              failedJobsHistoryLimit:
                default: 1
                description: |-
                  The number of failed finished jobs to retain. Value must be non-negative integer.
                  Defaults to 1.
                format: int32
                maximum: 60
                minimum: 0
                type: integer
              jobTemplate:
                description: Specifies the job that will be created when executing
                  a CronJob.
                properties:
                  metadata:
                    description: |-
                      Standard object's metadata of the jobs created from this template.
                      More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
                    type: object
                  spec:
                    description: |-
                      Specification of the desired behavior of the job.
                      More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
                    properties:
                      backOffLimit:
                        default: 6
                        description: |-
                          BackOffLimit specifies the number of retries allowed before marking reclaim
                          space operation as failed. If not specified, defaults to 6. Maximum allowed
                          value is 60 and minimum allowed value is 0.
                        format: int32
                        maximum: 60
                        minimum: 0
                        type: integer
                      retryDeadlineSeconds:
                        default: 600
                        description: |-
                          RetryDeadlineSeconds specifies the duration in seconds relative to the
                          start time that the operation may be retried; value MUST be positive integer.
                          If not specified, defaults to 600 seconds. Maximum allowed
                          value is 1800.
                        format: int64
                        maximum: 1800
                        minimum: 0
                        type: integer
                      target:
                        description: |-
                          Target represents volume target on which the operation will be
                          performed.
                        properties:
                          persistentVolumeClaim:
                            description: PersistentVolumeClaim specifies the target
                              PersistentVolumeClaim name.
                            type: string
                            x-kubernetes-validations:
                            - message: persistentVolumeClaim is immutable
                              rule: self == oldSelf
                        type: object
                      timeout:
                        description: |-
                          Timeout specifies the timeout in seconds for the grpc request sent to the
                          CSI driver. If not specified, defaults to global reclaimspace timeout.
                          Minimum allowed value is 60.
                        format: int64
                        minimum: 60
                        type: integer
                    required:
                    - target
                    type: object
                required:
                - spec
                type: object
              schedule:
                description: The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.
                pattern: .+
                type: string
              startingDeadlineSeconds:
                description: |-
                  Optional deadline in seconds for starting the job if it misses scheduled
                  time for any reason.  Missed jobs executions will be counted as failed ones.
                format: int64
                type: integer
              successfulJobsHistoryLimit:
                default: 3
                description: |-
                  The number of successful finished jobs to retain. Value must be non-negative integer.
                  Defaults to 3.
                format: int32
                maximum: 60
                minimum: 0
                type: integer
              suspend:
                description: |-
                  This flag tells the controller to suspend subsequent executions, it does
                  not apply to already started executions.  Defaults to false.
                type: boolean
            required:
            - jobTemplate
            - schedule
            type: object
          status:
            description: ReclaimSpaceCronJobStatus defines the observed state of ReclaimSpaceJob
            properties:
              active:
                description: A pointer to currently running job.
                properties:
                  apiVersion:
                    description: API version of the referent.
                    type: string
                  fieldPath:
                    description: |-
                      If referring to a piece of an object instead of an entire object, this string
                      should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
                      For example, if the object reference is to a container within a pod, this would take on a value like:
                      "spec.containers{name}" (where "name" refers to the name of the container that triggered
                      the event) or if no container name is specified "spec.containers[2]" (container with
                      index 2 in this pod). This syntax is chosen only to have some well-defined way of
                      referencing a part of an object.
                    type: string
                  kind:
                    description: |-
                      Kind of the referent.
                      More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
                    type: string
                  name:
                    description: |-
                      Name of the referent.
                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                    type: string
                  namespace:
                    description: |-
                      Namespace of the referent.
                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                    type: string
                  resourceVersion:
                    description: |-
                      Specific resourceVersion to which this reference is made, if any.
                      More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
                    type: string
                  uid:
                    description: |-
                      UID of the referent.
                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
                    type: string
                type: object
                x-kubernetes-map-type: atomic
              lastScheduleTime:
                description: Information when was the last time the job was successfully
                  scheduled.
                format: date-time
                type: string
              lastSuccessfulTime:
                description: Information when was the last time the job successfully
                  completed.
                format: date-time
                type: string
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ReclaimSpaceCronJob
    listKind: ReclaimSpaceCronJobList
    plural: reclaimspacecronjobs
    singular: reclaimspacecronjob
  conditions:
  - lastTransitionTime: "2025-10-27T12:44:07Z"
    message: no conflicts found
    reason: NoConflicts
    status: "True"
    type: NamesAccepted
  - lastTransitionTime: "2025-10-27T12:44:07Z"
    message: the initial names have been accepted
    reason: InitialNamesAccepted
    status: "True"
    type: Established
  storedVersions:
  - v1alpha1
