{
  "description": "CephObjectStoreUser represents a Ceph Object Store Gateway User",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": [
        "string",
        "null"
      ]
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": [
        "string",
        "null"
      ]
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "additionalProperties": false,
      "description": "ObjectStoreUserSpec represent the spec of an Objectstoreuser",
      "properties": {
        "capabilities": {
          "additionalProperties": false,
          "description": "Additional admin-level capabilities for the Ceph object store user",
          "nullable": true,
          "properties": {
            "amz-cache": {
              "description": "Add capabilities for user to send request to RGW Cache API header. Documented in https://docs.ceph.com/en/latest/radosgw/rgw-cache/#cache-api",
              "enum": [
                "*",
                "read",
                "write",
                "read, write"
              ],
              "type": [
                "string",
                "null"
              ]
            },
            "bilog": {
              "description": "Add capabilities for user to change bucket index logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities",
              "enum": [
                "*",
                "read",
                "write",
                "read, write"
              ],
              "type": [
                "string",
                "null"
              ]
            },
            "bucket": {
              "description": "Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities",
              "enum": [
                "*",
                "read",
                "write",
                "read, write"
              ],
              "type": [
                "string",
                "null"
              ]
            },
            "buckets": {
              "description": "Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities",
              "enum": [
                "*",
                "read",
                "write",
                "read, write"
              ],
              "type": [
                "string",
                "null"
              ]
            },
            "datalog": {
              "description": "Add capabilities for user to change data logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities",
              "enum": [
                "*",
                "read",
                "write",
                "read, write"
              ],
              "type": [
                "string",
                "null"
              ]
            },
            "info": {
              "description": "Admin capabilities to read/write information about the user. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities",
              "enum": [
                "*",
                "read",
                "write",
                "read, write"
              ],
              "type": [
                "string",
                "null"
              ]
            },
            "mdlog": {
              "description": "Add capabilities for user to change metadata logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities",
              "enum": [
                "*",
                "read",
                "write",
                "read, write"
              ],
              "type": [
                "string",
                "null"
              ]
            },
            "metadata": {
              "description": "Admin capabilities to read/write Ceph object store metadata. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities",
              "enum": [
                "*",
                "read",
                "write",
                "read, write"
              ],
              "type": [
                "string",
                "null"
              ]
            },
            "oidc-provider": {
              "description": "Add capabilities for user to change oidc provider. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities",
              "enum": [
                "*",
                "read",
                "write",
                "read, write"
              ],
              "type": [
                "string",
                "null"
              ]
            },
            "ratelimit": {
              "description": "Add capabilities for user to set rate limiter for user and bucket. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities",
              "enum": [
                "*",
                "read",
                "write",
                "read, write"
              ],
              "type": [
                "string",
                "null"
              ]
            },
            "roles": {
              "description": "Admin capabilities to read/write roles for user. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities",
              "enum": [
                "*",
                "read",
                "write",
                "read, write"
              ],
              "type": [
                "string",
                "null"
              ]
            },
            "usage": {
              "description": "Admin capabilities to read/write Ceph object store usage. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities",
              "enum": [
                "*",
                "read",
                "write",
                "read, write"
              ],
              "type": [
                "string",
                "null"
              ]
            },
            "user": {
              "description": "Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities",
              "enum": [
                "*",
                "read",
                "write",
                "read, write"
              ],
              "type": [
                "string",
                "null"
              ]
            },
            "user-policy": {
              "description": "Add capabilities for user to change user policies. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities",
              "enum": [
                "*",
                "read",
                "write",
                "read, write"
              ],
              "type": [
                "string",
                "null"
              ]
            },
            "users": {
              "description": "Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities",
              "enum": [
                "*",
                "read",
                "write",
                "read, write"
              ],
              "type": [
                "string",
                "null"
              ]
            },
            "zone": {
              "description": "Admin capabilities to read/write Ceph object store zones. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities",
              "enum": [
                "*",
                "read",
                "write",
                "read, write"
              ],
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "clusterNamespace": {
          "description": "The namespace where the parent CephCluster and CephObjectStore are found",
          "type": [
            "string",
            "null"
          ]
        },
        "displayName": {
          "description": "The display name for the ceph users",
          "type": [
            "string",
            "null"
          ]
        },
        "quotas": {
          "additionalProperties": false,
          "description": "ObjectUserQuotaSpec can be used to set quotas for the object store user to limit their usage. See the [Ceph docs](https://docs.ceph.com/en/latest/radosgw/admin/?#quota-management) for more",
          "nullable": true,
          "properties": {
            "maxBuckets": {
              "description": "Maximum bucket limit for the ceph user",
              "nullable": true,
              "type": [
                "integer",
                "null"
              ]
            },
            "maxObjects": {
              "description": "Maximum number of objects across all the user's buckets",
              "format": "int64",
              "nullable": true,
              "type": [
                "integer",
                "null"
              ]
            },
            "maxSize": {
              "description": "Maximum size limit of all objects across all the user's buckets\nSee https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity for more info.",
              "oneOf": [
                {
                  "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
                  "type": "string"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "x-kubernetes-int-or-string": true
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "store": {
          "description": "The store the user will be created in",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "status": {
      "additionalProperties": false,
      "description": "ObjectStoreUserStatus represents the status Ceph Object Store Gateway User",
      "properties": {
        "info": {
          "additionalProperties": {
            "type": "string"
          },
          "nullable": true,
          "type": [
            "object",
            "null"
          ]
        },
        "observedGeneration": {
          "description": "ObservedGeneration is the latest generation observed by the controller.",
          "format": "int64",
          "type": [
            "integer",
            "null"
          ]
        },
        "phase": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "type": [
        "object",
        "null"
      ],
      "x-kubernetes-preserve-unknown-fields": true
    }
  },
  "required": [
    "metadata",
    "spec"
  ],
  "type": "object"
}