{-# LANGUAGE QuasiQuotes #-} -- This file is part of the Wire Server implementation. -- -- Copyright (C) 2022 Wire Swiss GmbH -- -- This program is free software: you can redistribute it and/or modify it under -- the terms of the GNU Affero General Public License as published by the Free -- Software Foundation, either version 3 of the License, or (at your option) any -- later version. -- -- This program is distributed in the hope that it will be useful, but WITHOUT -- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -- FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more -- details. -- -- You should have received a copy of the GNU Affero General Public License along -- with this program. If not, see . module Web.Scim.Capabilities.MetaSchema.Group ( groupSchema, ) where import Data.Aeson (Value) import Data.Aeson.QQ -- NB: errata for the SCIM RFC says that 'displayName' should have -- 'required: true'. This makes sense but we're not going to change this for -- now because nobody seems to care about these schemas anyway. -- See https://www.rfc-editor.org/errata_search.php?rfc=7643 groupSchema :: Value groupSchema = [aesonQQ| { "id": "urn:ietf:params:scim:schemas:core:2.0:Group", "name": "Group", "description": "Group", "attributes": [ { "name": "displayName", "type": "string", "multiValued": false, "description": "A human-readable name for the Group. REQUIRED.", "required": false, "caseExact": false, "mutability": "readWrite", "returned": "default", "uniqueness": "none" }, { "name": "members", "type": "complex", "multiValued": true, "description": "A list of members of the Group.", "required": false, "subAttributes": [ { "name": "value", "type": "string", "multiValued": false, "description": "Identifier of the member of this Group.", "required": false, "caseExact": false, "mutability": "immutable", "returned": "default", "uniqueness": "none" }, { "name": "$ref", "type": "reference", "referenceTypes": [ "User", "Group" ], "multiValued": false, "description": "The URI corresponding to a SCIM resource that is a member of this Group.", "required": false, "caseExact": false, "mutability": "immutable", "returned": "default", "uniqueness": "none" }, { "name": "type", "type": "string", "multiValued": false, "description": "A label indicating the type of resource, e.g., 'User' or 'Group'.", "required": false, "caseExact": false, "canonicalValues": [ "User", "Group" ], "mutability": "immutable", "returned": "default", "uniqueness": "none" } ], "mutability": "readWrite", "returned": "default" } ], "meta": { "resourceType": "Schema", "location": "/v2/Schemas/urn:ietf:params:scim:schemas:core:2.0:Group" } } |]