{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/university-of-basel/main/json-schema/university-of-basel-userdto-schema.json", "title": "UserDto", "description": "JSON Schema for the DSP-API (DaSCH Service Platform) UserDto object, derived from the live OpenAPI 3.1 description published at https://api.dasch.swiss/api/docs/docs.yaml", "type": "object", "required": [ "id", "username", "email", "givenName", "familyName", "status", "lang", "permissions" ], "properties": { "id": { "type": "string" }, "username": { "type": "string" }, "email": { "type": "string" }, "givenName": { "type": "string" }, "familyName": { "type": "string" }, "status": { "type": "boolean" }, "lang": { "type": "string" }, "groups": { "type": "array", "items": { "$ref": "#/$defs/Group" } }, "projects": { "type": "array", "items": { "$ref": "#/$defs/Project" } }, "permissions": { "$ref": "#/$defs/PermissionsDataADM" } }, "$defs": { "Active": { "title": "Active", "type": "object" }, "CanJoin": { "title": "CanJoin", "type": "object" }, "CannotJoin": { "title": "CannotJoin", "type": "object" }, "Group": { "title": "Group", "type": "object", "required": [ "id", "name", "status", "selfjoin" ], "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "descriptions": { "type": "array", "items": { "$ref": "#/$defs/StringLiteralV2" } }, "project": { "$ref": "#/$defs/Project" }, "status": { "type": "boolean" }, "selfjoin": { "type": "boolean" } } }, "Inactive": { "title": "Inactive", "type": "object" }, "LanguageTaggedStringLiteralV2": { "title": "LanguageTaggedStringLiteralV2", "type": "object", "required": [ "value", "language" ], "properties": { "value": { "type": "string" }, "language": { "type": "string" } } }, "Logo": { "title": "Logo", "type": "object", "required": [ "value" ], "properties": { "value": { "type": "string" } } }, "Longname": { "title": "Longname", "type": "object", "required": [ "value" ], "properties": { "value": { "type": "string" } } }, "Map_Seq_IRI": { "title": "Map_Seq_IRI", "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } } }, "Map_Set_PermissionADM": { "title": "Map_Set_PermissionADM", "type": "object", "additionalProperties": { "type": "array", "uniqueItems": true, "items": { "$ref": "#/$defs/PermissionADM" } } }, "PermissionADM": { "title": "PermissionADM", "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string" }, "additionalInformation": { "type": "string" }, "permissionCode": { "type": "integer", "format": "int32" } } }, "PermissionsDataADM": { "title": "PermissionsDataADM", "type": "object", "required": [ "groupsPerProject", "administrativePermissionsPerProject" ], "properties": { "groupsPerProject": { "$ref": "#/$defs/Map_Seq_IRI" }, "administrativePermissionsPerProject": { "$ref": "#/$defs/Map_Set_PermissionADM" } } }, "PlainStringLiteralV2": { "title": "PlainStringLiteralV2", "type": "object", "required": [ "value" ], "properties": { "value": { "type": "string" } } }, "Project": { "title": "Project", "type": "object", "required": [ "id", "shortname", "shortcode", "status", "selfjoin" ], "properties": { "id": { "description": "IRI for a project.", "type": "string" }, "shortname": { "$ref": "#/$defs/Shortname" }, "shortcode": { "$ref": "#/$defs/Shortcode" }, "longname": { "$ref": "#/$defs/Longname" }, "description": { "type": "array", "items": { "$ref": "#/$defs/StringLiteralV2" } }, "keywords": { "type": "array", "items": { "type": "string" } }, "logo": { "$ref": "#/$defs/Logo" }, "ontologies": { "type": "array", "items": { "type": "string" } }, "status": { "$ref": "#/$defs/Status" }, "selfjoin": { "$ref": "#/$defs/SelfJoin" }, "allowedCopyrightHolders": { "type": "array", "uniqueItems": true, "items": { "type": "string" } }, "enabledLicenses": { "type": "array", "uniqueItems": true, "items": { "type": "string" } } } }, "SelfJoin": { "title": "SelfJoin", "oneOf": [ { "$ref": "#/$defs/CanJoin" }, { "$ref": "#/$defs/CannotJoin" } ] }, "Shortcode": { "title": "Shortcode", "type": "object", "required": [ "value" ], "properties": { "value": { "type": "string" } } }, "Shortname": { "title": "Shortname", "type": "object", "required": [ "value" ], "properties": { "value": { "type": "string" } } }, "Status": { "title": "Status", "oneOf": [ { "$ref": "#/$defs/Active" }, { "$ref": "#/$defs/Inactive" } ] }, "StringLiteralV2": { "title": "StringLiteralV2", "oneOf": [ { "$ref": "#/$defs/LanguageTaggedStringLiteralV2" }, { "$ref": "#/$defs/PlainStringLiteralV2" } ] } } }