---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.16.1
    operatorframework.io/installed-alongside-3e9fb0af4f21687: openshift-storage/rook-ceph-operator.v4.19.6-rhodf
  creationTimestamp: "2025-10-27T12:44:09Z"
  generation: 1
  labels:
    olm.managed: "true"
    operators.coreos.com/rook-ceph-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-3e9fb0af4f21687: {}
        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:09Z"
  - 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:09Z"
  - apiVersion: apiextensions.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:labels:
          f:operators.coreos.com/rook-ceph-operator.openshift-storage: {}
    manager: olm
    operation: Update
    time: "2025-10-27T12:47:20Z"
  name: cephobjectzones.ceph.rook.io
  resourceVersion: "63158"
  uid: 7fb8d084-74cf-4105-8bd6-44145a540684
spec:
  conversion:
    strategy: None
  group: ceph.rook.io
  names:
    kind: CephObjectZone
    listKind: CephObjectZoneList
    plural: cephobjectzones
    singular: cephobjectzone
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.phase
      name: Phase
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            properties:
              customEndpoints:
                items:
                  type: string
                nullable: true
                type: array
              dataPool:
                nullable: true
                properties:
                  application:
                    type: string
                  compressionMode:
                    enum:
                    - none
                    - passive
                    - aggressive
                    - force
                    - ""
                    nullable: true
                    type: string
                  crushRoot:
                    nullable: true
                    type: string
                  deviceClass:
                    nullable: true
                    type: string
                  enableCrushUpdates:
                    type: boolean
                  enableRBDStats:
                    type: boolean
                  erasureCoded:
                    properties:
                      algorithm:
                        type: string
                      codingChunks:
                        minimum: 0
                        type: integer
                      dataChunks:
                        minimum: 0
                        type: integer
                    required:
                    - codingChunks
                    - dataChunks
                    type: object
                  failureDomain:
                    type: string
                  mirroring:
                    properties:
                      enabled:
                        type: boolean
                      mode:
                        enum:
                        - pool
                        - image
                        - init-only
                        type: string
                      peers:
                        nullable: true
                        properties:
                          secretNames:
                            items:
                              type: string
                            type: array
                        type: object
                      snapshotSchedules:
                        items:
                          properties:
                            interval:
                              type: string
                            path:
                              type: string
                            startTime:
                              type: string
                          type: object
                        type: array
                    type: object
                  parameters:
                    additionalProperties:
                      type: string
                    nullable: true
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                  quotas:
                    nullable: true
                    properties:
                      maxBytes:
                        format: int64
                        type: integer
                      maxObjects:
                        format: int64
                        type: integer
                      maxSize:
                        pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
                        type: string
                    type: object
                  replicated:
                    properties:
                      hybridStorage:
                        nullable: true
                        properties:
                          primaryDeviceClass:
                            minLength: 1
                            type: string
                          secondaryDeviceClass:
                            minLength: 1
                            type: string
                        required:
                        - primaryDeviceClass
                        - secondaryDeviceClass
                        type: object
                      replicasPerFailureDomain:
                        minimum: 1
                        type: integer
                      requireSafeReplicaSize:
                        type: boolean
                      size:
                        minimum: 0
                        type: integer
                      subFailureDomain:
                        type: string
                      targetSizeRatio:
                        type: number
                    required:
                    - size
                    type: object
                  statusCheck:
                    properties:
                      mirror:
                        nullable: true
                        properties:
                          disabled:
                            type: boolean
                          interval:
                            type: string
                          timeout:
                            type: string
                        type: object
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                type: object
              metadataPool:
                nullable: true
                properties:
                  application:
                    type: string
                  compressionMode:
                    enum:
                    - none
                    - passive
                    - aggressive
                    - force
                    - ""
                    nullable: true
                    type: string
                  crushRoot:
                    nullable: true
                    type: string
                  deviceClass:
                    nullable: true
                    type: string
                  enableCrushUpdates:
                    type: boolean
                  enableRBDStats:
                    type: boolean
                  erasureCoded:
                    properties:
                      algorithm:
                        type: string
                      codingChunks:
                        minimum: 0
                        type: integer
                      dataChunks:
                        minimum: 0
                        type: integer
                    required:
                    - codingChunks
                    - dataChunks
                    type: object
                  failureDomain:
                    type: string
                  mirroring:
                    properties:
                      enabled:
                        type: boolean
                      mode:
                        enum:
                        - pool
                        - image
                        - init-only
                        type: string
                      peers:
                        nullable: true
                        properties:
                          secretNames:
                            items:
                              type: string
                            type: array
                        type: object
                      snapshotSchedules:
                        items:
                          properties:
                            interval:
                              type: string
                            path:
                              type: string
                            startTime:
                              type: string
                          type: object
                        type: array
                    type: object
                  parameters:
                    additionalProperties:
                      type: string
                    nullable: true
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                  quotas:
                    nullable: true
                    properties:
                      maxBytes:
                        format: int64
                        type: integer
                      maxObjects:
                        format: int64
                        type: integer
                      maxSize:
                        pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
                        type: string
                    type: object
                  replicated:
                    properties:
                      hybridStorage:
                        nullable: true
                        properties:
                          primaryDeviceClass:
                            minLength: 1
                            type: string
                          secondaryDeviceClass:
                            minLength: 1
                            type: string
                        required:
                        - primaryDeviceClass
                        - secondaryDeviceClass
                        type: object
                      replicasPerFailureDomain:
                        minimum: 1
                        type: integer
                      requireSafeReplicaSize:
                        type: boolean
                      size:
                        minimum: 0
                        type: integer
                      subFailureDomain:
                        type: string
                      targetSizeRatio:
                        type: number
                    required:
                    - size
                    type: object
                  statusCheck:
                    properties:
                      mirror:
                        nullable: true
                        properties:
                          disabled:
                            type: boolean
                          interval:
                            type: string
                          timeout:
                            type: string
                        type: object
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                type: object
              preservePoolsOnDelete:
                default: true
                type: boolean
              sharedPools:
                nullable: true
                properties:
                  dataPoolName:
                    type: string
                    x-kubernetes-validations:
                    - message: object store shared data pool is immutable
                      rule: self == oldSelf
                  metadataPoolName:
                    type: string
                    x-kubernetes-validations:
                    - message: object store shared metadata pool is immutable
                      rule: self == oldSelf
                  poolPlacements:
                    items:
                      properties:
                        dataNonECPoolName:
                          type: string
                        dataPoolName:
                          minLength: 1
                          type: string
                        default:
                          type: boolean
                        metadataPoolName:
                          minLength: 1
                          type: string
                        name:
                          minLength: 1
                          pattern: ^[a-zA-Z0-9._/-]+$
                          type: string
                        storageClasses:
                          items:
                            properties:
                              dataPoolName:
                                minLength: 1
                                type: string
                              name:
                                minLength: 1
                                pattern: ^[a-zA-Z0-9._/-]+$
                                type: string
                            required:
                            - dataPoolName
                            - name
                            type: object
                          type: array
                      required:
                      - dataPoolName
                      - metadataPoolName
                      - name
                      type: object
                    type: array
                  preserveRadosNamespaceDataOnDelete:
                    type: boolean
                type: object
              zoneGroup:
                type: string
            required:
            - zoneGroup
            type: object
          status:
            properties:
              conditions:
                items:
                  properties:
                    lastHeartbeatTime:
                      format: date-time
                      type: string
                    lastTransitionTime:
                      format: date-time
                      type: string
                    message:
                      type: string
                    reason:
                      type: string
                    status:
                      type: string
                    type:
                      type: string
                  type: object
                type: array
              observedGeneration:
                format: int64
                type: integer
              phase:
                type: string
            type: object
            x-kubernetes-preserve-unknown-fields: true
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: CephObjectZone
    listKind: CephObjectZoneList
    plural: cephobjectzones
    singular: cephobjectzone
  conditions:
  - lastTransitionTime: "2025-10-27T12:44:09Z"
    message: no conflicts found
    reason: NoConflicts
    status: "True"
    type: NamesAccepted
  - lastTransitionTime: "2025-10-27T12:44:09Z"
    message: the initial names have been accepted
    reason: InitialNamesAccepted
    status: "True"
    type: Established
  storedVersions:
  - v1
