{
  "description": "User is the Schema for the users API.",
  "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",
        "null"
      ]
    },
    "spec": {
      "additionalProperties": false,
      "description": "Spec configures the desired state of the User object.",
      "properties": {
        "importCredentialsSecret": {
          "additionalProperties": false,
          "description": "Defines a Secret containing the credentials for the User. If this field is omitted, random a username and\npassword will be generated. The Secret must have the following keys in its Data field:\n\n * `username` – Must be present or the import will fail.\n * `passwordHash` – The SHA-512 hash of the password. If the hash is an empty string, a passwordless user\n   will be created. For more information, see https://www.rabbitmq.com/docs/passwords.\n * `password` – Plain-text password. Will be used only if the `passwordHash` key is missing.\n\nNote that this import only occurs at creation time, and is ignored once a password has been set on a User.",
          "properties": {
            "name": {
              "default": "",
              "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ],
          "x-kubernetes-map-type": "atomic"
        },
        "limits": {
          "additionalProperties": false,
          "description": "Limits to apply to a user to restrict the number of connections and channels\nthe user can create. These limits can be used as guard rails in environments\nwhere applications cannot be trusted and monitored in detail, for example,\nwhen RabbitMQ clusters are offered as a service. See https://www.rabbitmq.com/docs/user-limits.",
          "properties": {
            "channels": {
              "description": "Limits how many AMQP 0.9.1 channels the user can open.",
              "format": "int32",
              "type": [
                "integer",
                "null"
              ]
            },
            "connections": {
              "description": "Limits how many connections the user can open.",
              "format": "int32",
              "type": [
                "integer",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "rabbitmqClusterReference": {
          "additionalProperties": false,
          "description": "Reference to the RabbitmqCluster that the user will be created for. This cluster must\nexist for the User object to be created.",
          "properties": {
            "connectionSecret": {
              "additionalProperties": false,
              "description": "Secret contains the http management uri for the RabbitMQ cluster.\nThe Secret must contain the key `uri`, `username` and `password` or operator will error.\nHave to set either name or connectionSecret, but not both.",
              "properties": {
                "name": {
                  "default": "",
                  "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ],
              "x-kubernetes-map-type": "atomic"
            },
            "name": {
              "description": "The name of the RabbitMQ cluster to reference.\nHave to set either name or connectionSecret, but not both.",
              "type": [
                "string",
                "null"
              ]
            },
            "namespace": {
              "description": "The namespace of the RabbitMQ cluster to reference.\nDefaults to the namespace of the requested resource if omitted.",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": "object"
        },
        "tags": {
          "description": "List of permissions tags to associate with the user. This determines the level of\naccess to the RabbitMQ management UI granted to the user. Omitting this field will\nlead to a user than can still connect to the cluster through messaging protocols,\nbut cannot perform any management actions.\nFor more information, see https://www.rabbitmq.com/management.html#permissions.",
          "items": {
            "description": "UserTag defines the level of access to the management UI allocated to the user.\nFor more information, see https://www.rabbitmq.com/management.html#permissions.",
            "enum": [
              "management",
              "policymaker",
              "monitoring",
              "administrator"
            ],
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        }
      },
      "required": [
        "rabbitmqClusterReference"
      ],
      "type": [
        "object",
        "null"
      ]
    },
    "status": {
      "additionalProperties": false,
      "description": "Status exposes the observed state of the User object.",
      "properties": {
        "conditions": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "lastTransitionTime": {
                "description": "The last time this Condition status changed.",
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              },
              "message": {
                "description": "Full text reason for current status of the condition.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "reason": {
                "description": "One word, camel-case reason for current status of the condition.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "status": {
                "description": "True, False, or Unknown",
                "type": "string"
              },
              "type": {
                "description": "Type indicates the scope of the custom resource status addressed by the condition.",
                "type": "string"
              }
            },
            "required": [
              "status",
              "type"
            ],
            "type": "object"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "credentials": {
          "additionalProperties": false,
          "description": "Provides a reference to a Secret object containing the user credentials.",
          "properties": {
            "name": {
              "default": "",
              "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ],
          "x-kubernetes-map-type": "atomic"
        },
        "observedGeneration": {
          "description": "observedGeneration is the most recent successful generation observed for this User. It corresponds to the\nUser's generation, which is updated on mutation by the API Server.",
          "format": "int64",
          "type": [
            "integer",
            "null"
          ]
        },
        "username": {
          "description": "Provide rabbitmq Username",
          "type": "string"
        }
      },
      "required": [
        "username"
      ],
      "type": [
        "object",
        "null"
      ]
    }
  },
  "type": "object"
}