GafaelfawrUser#

pydantic model nublado.controller.models.domain.gafaelfawr.GafaelfawrUser#

User information from Gafaelfawr supplemented with the user’s token.

This model is used to pass the user information around internally, bundling the user’s metadata with their notebook token.

Parameters:

data (Any)

Show JSON schema
{
   "title": "GafaelfawrUser",
   "description": "User information from Gafaelfawr supplemented with the user's token.\n\nThis model is used to pass the user information around internally,\nbundling the user's metadata with their notebook token.",
   "type": "object",
   "properties": {
      "username": {
         "title": "Username",
         "type": "string"
      },
      "name": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Preferred full name"
      },
      "email": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Email address"
      },
      "uid": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "UID number"
      },
      "gid": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Primary GID"
      },
      "groups": {
         "default": [],
         "items": {
            "$ref": "#/$defs/GafaelfawrGroup"
         },
         "title": "Groups",
         "type": "array"
      },
      "quota": {
         "anyOf": [
            {
               "$ref": "#/$defs/GafaelfawrQuota"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Quota"
      },
      "token": {
         "title": "Notebook token",
         "type": "string"
      }
   },
   "$defs": {
      "GafaelfawrGroup": {
         "description": "Information about a single group.",
         "properties": {
            "name": {
               "title": "Name of the group",
               "type": "string"
            },
            "id": {
               "title": "Numeric GID of the group",
               "type": "integer"
            }
         },
         "required": [
            "name",
            "id"
         ],
         "title": "GafaelfawrGroup",
         "type": "object"
      },
      "GafaelfawrNotebookQuota": {
         "description": "Notebook Aspect quota information for a user.",
         "properties": {
            "cpu": {
               "examples": [
                  4.0
               ],
               "title": "CPU equivalents",
               "type": "number"
            },
            "memory": {
               "title": "Maximum memory use (GiB)",
               "type": "number"
            },
            "spawn": {
               "default": true,
               "title": "Spawning allowed",
               "type": "boolean"
            }
         },
         "required": [
            "cpu",
            "memory"
         ],
         "title": "GafaelfawrNotebookQuota",
         "type": "object"
      },
      "GafaelfawrQuota": {
         "description": "Quota information for a user.",
         "properties": {
            "api": {
               "additionalProperties": {
                  "type": "integer"
               },
               "default": {},
               "description": "Mapping of service names to requests per minute",
               "title": "API quotas",
               "type": "object"
            },
            "notebook": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/GafaelfawrNotebookQuota"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Notebook Aspect quotas"
            },
            "tap": {
               "additionalProperties": {
                  "$ref": "#/$defs/GafaelfawrTapQuota"
               },
               "default": {},
               "title": "TAP quotas",
               "type": "object"
            }
         },
         "title": "GafaelfawrQuota",
         "type": "object"
      },
      "GafaelfawrTapQuota": {
         "description": "TAP quota information for a user.",
         "properties": {
            "concurrent": {
               "title": "Concurrent queries",
               "type": "integer"
            }
         },
         "required": [
            "concurrent"
         ],
         "title": "GafaelfawrTapQuota",
         "type": "object"
      }
   },
   "required": [
      "username",
      "token"
   ]
}

Fields:
field email: Annotated[str | None, Field(title='Email address')] = None#
field gid: Annotated[int | None, Field(title='Primary GID')] = None#
field groups: Annotated[list[GafaelfawrGroup], Field(title='Groups')] = []#
field name: Annotated[str | None, Field(title='Preferred full name')] = None#
field quota: Annotated[GafaelfawrQuota | None, Field(title='Quota')] = None#
field token: Annotated[str, Field(title='Notebook token')] [Required]#
field uid: Annotated[int | None, Field(title='UID number')] = None#
field username: Annotated[str, Field(..., title='Username')] [Required]#
property supplemental_groups: list[int]#

Supplemental GIDs.