{
  "description": "CephObjectStoreAccount represent the RGW user account",
  "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"
    },
    "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"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "ObjectStoreAccountSpec represent the spec of a RGW Account",
      "properties": {
        "accountID": {
          "description": "AccountID uniquely identifies an account and resource ownership. Format should be RGW followed by 17 digits\n(e.g., RGW00889737169837717). If not specified, the ID will be automatically generated.",
          "maxLength": 20,
          "minLength": 20,
          "pattern": "^RGW\\d{17}$",
          "type": "string",
          "x-kubernetes-validations": [
            {
              "message": "accountID is immutable",
              "rule": "self == oldSelf"
            }
          ]
        },
        "name": {
          "description": "Name is the desired display name of the RGW account if different from the CephObjectStoreAccount CR name.",
          "maxLength": 2048,
          "minLength": 1,
          "pattern": "^[a-zA-Z0-9 ._-]+$",
          "type": "string"
        },
        "rootUser": {
          "description": "RootUser configures the root user for the account. The root user is created by default\nand has default permissions across all account resources.",
          "properties": {
            "displayName": {
              "description": "DisplayName for the root user",
              "maxLength": 64,
              "minLength": 1,
              "pattern": "^[\\w+=,.@-]+$",
              "type": "string"
            },
            "skipCreate": {
              "description": "SkipCreate when set to true, the root user will not be created for this account.\nThis can be useful if the user wants to manually manage the root user outside of Rook.",
              "type": "boolean"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "store": {
          "description": "Store is the CephObjectStore the account will be associated with",
          "maxLength": 253,
          "minLength": 1,
          "type": "string",
          "x-kubernetes-validations": [
            {
              "message": "store is immutable",
              "rule": "self == oldSelf"
            }
          ]
        }
      },
      "required": [
        "store"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "ObjectStoreAccountStatus represents the status of a CephObjectStoreAccount resource",
      "properties": {
        "accountID": {
          "description": "AccountID associated with the RGW user account",
          "maxLength": 20,
          "minLength": 20,
          "type": "string"
        },
        "observedGeneration": {
          "description": "ObservedGeneration is the latest generation observed by the controller.",
          "format": "int64",
          "type": "integer"
        },
        "phase": {
          "type": "string"
        },
        "rootAccountSecretName": {
          "description": "RootAccountSecretName is the name of the Kubernetes secret containing the root user's access credentials",
          "maxLength": 253,
          "minLength": 1,
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "required": [
    "metadata",
    "spec"
  ],
  "type": "object"
}
