{-# 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.SPConfig ( spConfigSchema, ) where import Data.Aeson (Value) import Data.Aeson.QQ -- NB: it looks like 'authenticationSchemes' should also have a 'type' -- attribute. The sample schema from the RFC doesn't list it, though. spConfigSchema :: Value spConfigSchema = [aesonQQ| { "id": "urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig", "name": "Service Provider Configuration", "description": "Schema for representing the service provider's configuration", "attributes": [ { "name": "documentationUri", "type": "reference", "referenceTypes": [ "external" ], "multiValued": false, "description": "An HTTP-addressable URL pointing to the service provider's human-consumable help documentation.", "required": false, "caseExact": false, "mutability": "readOnly", "returned": "default", "uniqueness": "none" }, { "name": "patch", "type": "complex", "multiValued": false, "description": "A complex type that specifies PATCH configuration options.", "required": true, "returned": "default", "mutability": "readOnly", "subAttributes": [ { "name": "supported", "type": "boolean", "multiValued": false, "description": "A Boolean value specifying whether or not the operation is supported.", "required": true, "mutability": "readOnly", "returned": "default" } ] }, { "name": "bulk", "type": "complex", "multiValued": false, "description": "A complex type that specifies bulk configuration options.", "required": true, "returned": "default", "mutability": "readOnly", "subAttributes": [ { "name": "supported", "type": "boolean", "multiValued": false, "description": "A Boolean value specifying whether or not the operation is supported.", "required": true, "mutability": "readOnly", "returned": "default" }, { "name": "maxOperations", "type": "integer", "multiValued": false, "description": "An integer value specifying the maximum number of operations.", "required": true, "mutability": "readOnly", "returned": "default", "uniqueness": "none" }, { "name": "maxPayloadSize", "type": "integer", "multiValued": false, "description": "An integer value specifying the maximum payload size in bytes.", "required": true, "mutability": "readOnly", "returned": "default", "uniqueness": "none" } ] }, { "name": "filter", "type": "complex", "multiValued": false, "description": "A complex type that specifies FILTER options.", "required": true, "returned": "default", "mutability": "readOnly", "subAttributes": [ { "name": "supported", "type": "boolean", "multiValued": false, "description": "A Boolean value specifying whether or not the operation is supported.", "required": true, "mutability": "readOnly", "returned": "default" }, { "name": "maxResults", "type": "integer", "multiValued": false, "description": "An integer value specifying the maximum number of resources returned in a response.", "required": true, "mutability": "readOnly", "returned": "default", "uniqueness": "none" } ] }, { "name": "changePassword", "type": "complex", "multiValued": false, "description": "A complex type that specifies configuration options related to changing a password.", "required": true, "returned": "default", "mutability": "readOnly", "subAttributes": [ { "name": "supported", "type": "boolean", "multiValued": false, "description": "A Boolean value specifying whether or not the operation is supported.", "required": true, "mutability": "readOnly", "returned": "default" } ] }, { "name": "sort", "type": "complex", "multiValued": false, "description": "A complex type that specifies sort result options.", "required": true, "returned": "default", "mutability": "readOnly", "subAttributes": [ { "name": "supported", "type": "boolean", "multiValued": false, "description": "A Boolean value specifying whether or not the operation is supported.", "required": true, "mutability": "readOnly", "returned": "default" } ] }, { "name": "authenticationSchemes", "type": "complex", "multiValued": true, "description": "A complex type that specifies supported authentication scheme properties.", "required": true, "returned": "default", "mutability": "readOnly", "subAttributes": [ { "name": "name", "type": "string", "multiValued": false, "description": "The common authentication scheme name, e.g., HTTP Basic.", "required": true, "caseExact": false, "mutability": "readOnly", "returned": "default", "uniqueness": "none" }, { "name": "description", "type": "string", "multiValued": false, "description": "A description of the authentication scheme.", "required": true, "caseExact": false, "mutability": "readOnly", "returned": "default", "uniqueness": "none" }, { "name": "specUri", "type": "reference", "referenceTypes": [ "external" ], "multiValued": false, "description": "An HTTP-addressable URL pointing to the authentication scheme's specification.", "required": false, "caseExact": false, "mutability": "readOnly", "returned": "default", "uniqueness": "none" }, { "name": "documentationUri", "type": "reference", "referenceTypes": [ "external" ], "multiValued": false, "description": "An HTTP-addressable URL pointing to the authentication scheme's usage documentation.", "required": false, "caseExact": false, "mutability": "readOnly", "returned": "default", "uniqueness": "none" } ] } ] } |]