{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "app": {
      "$ref": "#/definitions/SCAppConfiguration",
      "description": "Configuration for the app that is visible to clients"
    },
    "auth": {
      "type": "object",
      "properties": {
        "default": {
          "$ref": "#/definitions/SCAuthorizationProvider"
        },
        "paia": {
          "$ref": "#/definitions/SCAuthorizationProvider"
        }
      },
      "additionalProperties": false,
      "description": "Configuration for the supported authorization providers"
    },
    "backend": {
      "$ref": "#/definitions/SCBackendConfiguration",
      "description": "Configuration for the backend that is visible to clients"
    },
    "internal": {
      "$ref": "#/definitions/SCBackendInternalConfiguration",
      "description": "Configuration that is not visible to clients"
    },
    "uid": {
      "$ref": "#/definitions/SCLicensePlate",
      "description": "UID of the university, e.g. the license plate"
    }
  },
  "required": [
    "app",
    "auth",
    "backend",
    "internal",
    "uid"
  ],
  "additionalProperties": false,
  "description": "A configuration file that configures app and backend",
  "definitions": {
    "SCAppConfiguration": {
      "type": "object",
      "properties": {
        "aboutPages": {
          "$ref": "#/definitions/SCMap%3CSCAboutPage%3E",
          "description": "The about page\n\nMapping route -> page config"
        },
        "campusPolygon": {
          "$ref": "#/definitions/Polygon",
          "description": "Polygon that encapsulates the main campus"
        },
        "features": {
          "$ref": "#/definitions/SCFeatureConfiguration",
          "description": "Maps of enabled features (plugins and external services)"
        },
        "imageUrl": {
          "type": "string",
          "description": "A URL where images are available"
        },
        "menus": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SCAppConfigurationMenuCategory"
          },
          "description": "A list of available menu categories in the app"
        },
        "name": {
          "type": "string",
          "description": "Name for the app"
        },
        "privacyPolicyUrl": {
          "type": "string",
          "description": "URL to a file containing the privacy policy"
        },
        "settings": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "$ref": "#/definitions/SCUserGroupSetting"
              },
              {
                "$ref": "#/definitions/SCLanguageSetting"
              },
              {
                "$ref": "#/definitions/SCSetting"
              }
            ]
          },
          "description": "A list of available settings in the app !Important! Use provided specific settings, for other settings use general SCSetting"
        },
        "storeUrl": {
          "$ref": "#/definitions/SCAppConfigurationStoreUrl",
          "description": "Map of store URLs"
        },
        "url": {
          "type": "string",
          "description": "URL where a web instance of the app is available"
        },
        "versionHistory": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SCAppVersionInfo"
          },
          "description": "Version history in sequence of their publishing date.\n\nThe items are ordered in descending version index order, where the first item is always the most recent release."
        }
      },
      "required": [
        "aboutPages",
        "campusPolygon",
        "features",
        "menus",
        "name",
        "privacyPolicyUrl",
        "settings"
      ],
      "additionalProperties": false,
      "description": "An app configuration"
    },
    "SCMap<SCAboutPage>": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/definitions/SCAboutPage",
        "description": "One value for each key"
      },
      "description": "Capsulation for a map with a string as key with values of type `T`\n\n!!! BEWARE !!! Can't be refactored to a `Map<K, V>`, because it can't be serialized via JSON.stringify(map)"
    },
    "SCAboutPage": {
      "type": "object",
      "properties": {
        "content": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SCAboutPageContent"
          },
          "description": "Content of the page"
        },
        "title": {
          "type": "string",
          "description": "Header (title) of the page"
        },
        "translations": {
          "$ref": "#/definitions/SCTranslations%3CSCAboutPageTranslationTitle%3E",
          "description": "Translations"
        }
      },
      "required": [
        "content",
        "title",
        "translations"
      ],
      "additionalProperties": false,
      "description": "Root of the about page"
    },
    "SCAboutPageContent": {
      "anyOf": [
        {
          "$ref": "#/definitions/SCAboutPageMarkdown"
        },
        {
          "$ref": "#/definitions/SCAboutPageTable"
        },
        {
          "$ref": "#/definitions/SCAboutPageSection"
        },
        {
          "$ref": "#/definitions/SCAboutPageRouterLink"
        }
      ]
    },
    "SCAboutPageMarkdown": {
      "type": "object",
      "properties": {
        "translations": {
          "$ref": "#/definitions/SCTranslations%3CSCAboutPageTranslationValue%3E",
          "description": "Translations"
        },
        "type": {
          "type": "string",
          "const": "markdown",
          "description": "Type"
        },
        "value": {
          "type": "string",
          "description": "Value (Markdown)"
        }
      },
      "required": [
        "translations",
        "type",
        "value"
      ],
      "additionalProperties": false,
      "description": "A markdown element"
    },
    "SCTranslations<SCAboutPageTranslationValue>": {
      "type": "object",
      "properties": {
        "de": {
          "$ref": "#/definitions/SCAboutPageTranslationValue",
          "description": "German translations"
        },
        "en": {
          "$ref": "#/definitions/SCAboutPageTranslationValue",
          "description": "English translations"
        }
      },
      "additionalProperties": false,
      "description": "Translations for specific languages"
    },
    "SCAboutPageTranslationValue": {
      "type": "object",
      "properties": {
        "value": {
          "type": "string",
          "description": "Translation of the value"
        }
      },
      "required": [
        "value"
      ],
      "additionalProperties": false
    },
    "SCAboutPageTable": {
      "type": "object",
      "properties": {
        "rows": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/definitions/SCAboutPageContent"
            }
          },
          "description": "Rows of the table"
        },
        "type": {
          "type": "string",
          "const": "table",
          "description": "Type"
        }
      },
      "required": [
        "rows",
        "type"
      ],
      "additionalProperties": false,
      "description": "A simple table element"
    },
    "SCAboutPageSection": {
      "type": "object",
      "properties": {
        "card": {
          "type": "boolean",
          "const": true,
          "description": "If the section should be contained in a card"
        },
        "content": {
          "$ref": "#/definitions/SCAboutPageContent",
          "description": "The content of the section"
        },
        "title": {
          "type": "string",
          "description": "The title of the section"
        },
        "translations": {
          "$ref": "#/definitions/SCTranslations%3CSCAboutPageTranslationTitle%3E",
          "description": "Translations"
        },
        "type": {
          "type": "string",
          "const": "section",
          "description": "Type"
        }
      },
      "required": [
        "content",
        "title",
        "translations",
        "type"
      ],
      "additionalProperties": false,
      "description": "A (mostly) self-contained section, akin to markdown `# Title`"
    },
    "SCTranslations<SCAboutPageTranslationTitle>": {
      "type": "object",
      "properties": {
        "de": {
          "$ref": "#/definitions/SCAboutPageTranslationTitle",
          "description": "German translations"
        },
        "en": {
          "$ref": "#/definitions/SCAboutPageTranslationTitle",
          "description": "English translations"
        }
      },
      "additionalProperties": false,
      "description": "Translations for specific languages"
    },
    "SCAboutPageTranslationTitle": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "Translation of the title"
        }
      },
      "required": [
        "title"
      ],
      "additionalProperties": false
    },
    "SCAboutPageRouterLink": {
      "type": "object",
      "properties": {
        "icon": {
          "type": "string",
          "description": "Icon of the destination"
        },
        "link": {
          "type": "string",
          "description": "Router link"
        },
        "title": {
          "type": "string",
          "description": "Title of the destination"
        },
        "translations": {
          "$ref": "#/definitions/SCTranslations%3CSCAboutPageTranslationTitle%3E",
          "description": "Translations"
        },
        "type": {
          "type": "string",
          "const": "router link",
          "description": "Type"
        }
      },
      "required": [
        "link",
        "title",
        "translations",
        "type"
      ],
      "additionalProperties": false,
      "description": "A router link that can lead to a new page\n\nFor external links, prefer markdown `[destination](link)`"
    },
    "Polygon": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "const": "Polygon"
        },
        "bbox": {
          "type": "array",
          "items": {
            "type": "number"
          }
        },
        "crs": {
          "$ref": "#/definitions/CoordinateReferenceSystem"
        },
        "coordinates": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/definitions/Position"
            }
          }
        }
      },
      "required": [
        "coordinates",
        "type"
      ],
      "additionalProperties": false,
      "description": "* http://geojson.org/geojson-spec.html#polygon"
    },
    "CoordinateReferenceSystem": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string"
        },
        "properties": {}
      },
      "required": [
        "type",
        "properties"
      ],
      "additionalProperties": false,
      "description": "* http://geojson.org/geojson-spec.html#coordinate-reference-system-objects"
    },
    "Position": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "description": "* http://geojson.org/geojson-spec.html#positions"
    },
    "SCFeatureConfiguration": {
      "type": "object",
      "properties": {
        "extern": {
          "$ref": "#/definitions/SCMap%3CSCFeatureConfigurationExtern%3E",
          "description": "Map of extern services mapped by their name (statically)"
        },
        "plugins": {
          "$ref": "#/definitions/SCMap%3CSCFeatureConfigurationPlugin%3E",
          "description": "Map of plugins registered with the backend mapped by their name."
        }
      },
      "additionalProperties": false
    },
    "SCMap<SCFeatureConfigurationExtern>": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/definitions/SCFeatureConfigurationExtern",
        "description": "One value for each key"
      },
      "description": "Capsulation for a map with a string as key with values of type `T`\n\n!!! BEWARE !!! Can't be refactored to a `Map<K, V>`, because it can't be serialized via JSON.stringify(map)"
    },
    "SCFeatureConfigurationExtern": {
      "type": "object",
      "properties": {
        "authProvider": {
          "$ref": "#/definitions/SCAuthorizationProviderType",
          "description": "Key of authorization provider available in SCConfigFile"
        },
        "url": {
          "type": "string",
          "description": "URL of extern service"
        }
      },
      "required": [
        "url"
      ],
      "additionalProperties": false
    },
    "SCAuthorizationProviderType": {
      "type": "string",
      "enum": [
        "default",
        "paia"
      ],
      "description": "Supported authorization provider types"
    },
    "SCMap<SCFeatureConfigurationPlugin>": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/definitions/SCFeatureConfigurationPlugin",
        "description": "One value for each key"
      },
      "description": "Capsulation for a map with a string as key with values of type `T`\n\n!!! BEWARE !!! Can't be refactored to a `Map<K, V>`, because it can't be serialized via JSON.stringify(map)"
    },
    "SCFeatureConfigurationPlugin": {
      "type": "object",
      "properties": {
        "urlPath": {
          "type": "string",
          "description": "URL path registered with the backend"
        }
      },
      "required": [
        "urlPath"
      ],
      "additionalProperties": false
    },
    "SCAppConfigurationMenuCategory": {
      "type": "object",
      "properties": {
        "icon": {
          "type": "string",
          "description": "Icon for the menu category"
        },
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SCAppConfigurationMenuItem"
          },
          "description": "A list of items that belong to the category"
        },
        "title": {
          "type": "string",
          "description": "Title of the category"
        },
        "route": {
          "type": "string",
          "description": "Route inside the app"
        },
        "translations": {
          "$ref": "#/definitions/SCTranslations%3CSCAppConfigurationMenuCategoryTranslationTitle%3E",
          "description": "Translations for the menu category"
        }
      },
      "required": [
        "icon",
        "items",
        "title",
        "route",
        "translations"
      ],
      "additionalProperties": false,
      "description": "An app configuration menu category"
    },
    "SCAppConfigurationMenuItem": {
      "type": "object",
      "properties": {
        "authProvider": {
          "$ref": "#/definitions/SCAuthorizationProviderType",
          "description": "Key of authorization provider available in SCConfigFile Restricting and enabling the usage of this item"
        },
        "icon": {
          "type": "string",
          "description": "Icon for the menu item"
        },
        "route": {
          "type": "string",
          "description": "Route inside the app"
        },
        "title": {
          "type": "string",
          "description": "Title of the route"
        },
        "translations": {
          "$ref": "#/definitions/SCTranslations%3CSCAppConfigurationMenuItemTranslationTitle%3E",
          "description": "Translations for the menu item"
        }
      },
      "required": [
        "icon",
        "route",
        "title",
        "translations"
      ],
      "additionalProperties": false,
      "description": "An app configuration menu item"
    },
    "SCTranslations<SCAppConfigurationMenuItemTranslationTitle>": {
      "type": "object",
      "properties": {
        "de": {
          "$ref": "#/definitions/SCAppConfigurationMenuItemTranslationTitle",
          "description": "German translations"
        },
        "en": {
          "$ref": "#/definitions/SCAppConfigurationMenuItemTranslationTitle",
          "description": "English translations"
        }
      },
      "additionalProperties": false,
      "description": "Translations for specific languages"
    },
    "SCAppConfigurationMenuItemTranslationTitle": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "Translation of the title of a menu item"
        }
      },
      "required": [
        "title"
      ],
      "additionalProperties": false,
      "description": "Translatable property of a menu item"
    },
    "SCTranslations<SCAppConfigurationMenuCategoryTranslationTitle>": {
      "type": "object",
      "properties": {
        "de": {
          "$ref": "#/definitions/SCAppConfigurationMenuCategoryTranslationTitle",
          "description": "German translations"
        },
        "en": {
          "$ref": "#/definitions/SCAppConfigurationMenuCategoryTranslationTitle",
          "description": "English translations"
        }
      },
      "additionalProperties": false,
      "description": "Translations for specific languages"
    },
    "SCAppConfigurationMenuCategoryTranslationTitle": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "Translation of the name of a menu category"
        }
      },
      "required": [
        "title"
      ],
      "additionalProperties": false,
      "description": "Translatable property of a menu category"
    },
    "SCUserGroupSetting": {
      "type": "object",
      "properties": {
        "alternateNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Alternate names of the thing"
        },
        "description": {
          "type": "string",
          "description": "Description of the thing",
          "minLength": 1
        },
        "identifiers": {
          "$ref": "#/definitions/SCMap%3Cstring%3E",
          "description": "The identifier property represents any kind of additional identifier for any kind of SCThing\n\nE.g. GTIN codes, UUIDs, Database IDs etc."
        },
        "image": {
          "type": "string",
          "description": "URL of an image of the thing"
        },
        "name": {
          "type": "string",
          "const": "group",
          "description": "Specific name of the setting"
        },
        "sameAs": {
          "type": "string",
          "description": "URL of a reference Web page that unambiguously indicates the item's identity\n\nE.g. the URL of the item's Wikipedia page, Wikidata entry, or official website."
        },
        "translations": {
          "$ref": "#/definitions/SCTranslations%3CSCSettingValueTranslatableProperties%3E",
          "description": "Translated fields of a setting"
        },
        "type": {
          "type": "string",
          "const": "setting",
          "description": "The type of this model"
        },
        "uid": {
          "$ref": "#/definitions/SCUuid",
          "description": "Universally unique identifier of the thing"
        },
        "categories": {
          "type": "array",
          "items": {
            "type": "string",
            "const": "profile"
          },
          "minItems": 1,
          "maxItems": 1,
          "description": "Exact categories of the setting"
        },
        "categorySpecificValues": {
          "$ref": "#/definitions/SCMap%3CSCThingWithCategoriesSpecificValues%3E",
          "description": "Use this to explicitly override general opening hours brought in scope by openingHoursSpecification or openingHours\n\nA map from categories to their specific values."
        },
        "origin": {
          "anyOf": [
            {
              "$ref": "#/definitions/SCThingRemoteOrigin"
            },
            {
              "$ref": "#/definitions/SCThingUserOrigin"
            }
          ],
          "description": "Origin of the thing"
        },
        "defaultValue": {
          "$ref": "#/definitions/SCUserGroup",
          "description": "The default value of the setting"
        },
        "inputType": {
          "$ref": "#/definitions/SCSettingInputType",
          "description": "The input type of this setting"
        },
        "order": {
          "type": "number",
          "description": "The order number this setting should show up in its category list"
        },
        "value": {
          "$ref": "#/definitions/SCUserGroup",
          "description": "Chosen value of the setting"
        },
        "values": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SCUserGroup"
          },
          "description": "The possible values of the setting"
        }
      },
      "required": [
        "categories",
        "defaultValue",
        "inputType",
        "name",
        "order",
        "origin",
        "type",
        "uid",
        "values"
      ],
      "additionalProperties": false,
      "description": "A user group setting"
    },
    "SCMap<string>": {
      "type": "object",
      "additionalProperties": {
        "type": "string",
        "description": "One value for each key"
      },
      "description": "Capsulation for a map with a string as key with values of type `T`\n\n!!! BEWARE !!! Can't be refactored to a `Map<K, V>`, because it can't be serialized via JSON.stringify(map)"
    },
    "SCTranslations<SCSettingValueTranslatableProperties>": {
      "type": "object",
      "properties": {
        "de": {
          "$ref": "#/definitions/SCSettingValueTranslatableProperties",
          "description": "German translations"
        },
        "en": {
          "$ref": "#/definitions/SCSettingValueTranslatableProperties",
          "description": "English translations"
        }
      },
      "additionalProperties": false,
      "description": "Translations for specific languages"
    },
    "SCSettingValueTranslatableProperties": {
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "Translation of the description of the thing"
        },
        "name": {
          "type": "string",
          "description": "Translation of the name of the thing"
        },
        "origin": {
          "$ref": "#/definitions/SCThingTranslatablePropertyOrigin",
          "description": "Origin of the thing"
        },
        "categories": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "translations of the categories of a thing with categories"
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The translations of the possible values of a setting"
        }
      },
      "additionalProperties": false,
      "description": "Translatable properties of a setting"
    },
    "SCThingTranslatablePropertyOrigin": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Translation of the name of the origin"
        }
      },
      "required": [
        "name"
      ],
      "additionalProperties": false,
      "description": "Translatable property of an origin"
    },
    "SCUuid": {
      "type": "string",
      "description": "Universally unique identifier of the thing",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
    },
    "SCMap<SCThingWithCategoriesSpecificValues>": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/definitions/SCThingWithCategoriesSpecificValues",
        "description": "One value for each key"
      },
      "description": "Capsulation for a map with a string as key with values of type `T`\n\n!!! BEWARE !!! Can't be refactored to a `Map<K, V>`, because it can't be serialized via JSON.stringify(map)"
    },
    "SCThingWithCategoriesSpecificValues": {
      "type": "object",
      "properties": {
        "alternateNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Category specific alternate names of a thing"
        },
        "description": {
          "type": "string",
          "description": "Category specific description of a thing"
        },
        "image": {
          "type": "string",
          "description": "URL of a category specific image of a thing"
        },
        "name": {
          "type": "string",
          "description": "Category specific name of a thing"
        },
        "url": {
          "type": "string",
          "description": "Category specific URL of a thing"
        }
      },
      "additionalProperties": false,
      "description": "Category specific values of a thing with categories\n\nThis interface contains properties that can be specific to a certain category."
    },
    "SCThingRemoteOrigin": {
      "type": "object",
      "properties": {
        "maintainer": {
          "anyOf": [
            {
              "$ref": "#/definitions/SCPersonWithoutReferences"
            },
            {
              "$ref": "#/definitions/SCOrganizationWithoutReferences"
            }
          ],
          "description": "Maintainer of the origin\n\ne.g. restaurant of a dish"
        },
        "modified": {
          "$ref": "#/definitions/SCISO8601Date",
          "description": "When the thing was modified last in the origin"
        },
        "type": {
          "type": "string",
          "const": "remote",
          "description": "Type of the origin"
        },
        "indexed": {
          "$ref": "#/definitions/SCISO8601Date",
          "description": "When the thing was indexed last from the origin"
        },
        "name": {
          "type": "string",
          "description": "Name of the origin"
        },
        "originalId": {
          "type": "string",
          "description": "Original ID of the thing in the origin"
        },
        "responsibleEntity": {
          "anyOf": [
            {
              "$ref": "#/definitions/SCPersonWithoutReferences"
            },
            {
              "$ref": "#/definitions/SCOrganizationWithoutReferences"
            }
          ],
          "description": "Entity that is responsible for the entity\n\ne.g. an organizer for an event"
        },
        "url": {
          "type": "string",
          "description": "Main URL of the origin"
        }
      },
      "required": [
        "indexed",
        "name",
        "type"
      ],
      "additionalProperties": false,
      "description": "Remote origin of a thing"
    },
    "SCPersonWithoutReferences": {
      "type": "object",
      "properties": {
        "alternateNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Alternate names of the thing"
        },
        "description": {
          "type": "string",
          "description": "Description of the thing",
          "minLength": 1
        },
        "identifiers": {
          "$ref": "#/definitions/SCMap%3Cstring%3E",
          "description": "The identifier property represents any kind of additional identifier for any kind of SCThing\n\nE.g. GTIN codes, UUIDs, Database IDs etc."
        },
        "image": {
          "type": "string",
          "description": "URL of an image of the thing"
        },
        "name": {
          "type": "string",
          "description": "The complete name of the person combining all the parts of the name into one."
        },
        "sameAs": {
          "type": "string",
          "description": "URL of a reference Web page that unambiguously indicates the item's identity\n\nE.g. the URL of the item's Wikipedia page, Wikidata entry, or official website."
        },
        "translations": {
          "$ref": "#/definitions/SCTranslations%3CSCThingTranslatableProperties%3E",
          "description": "Translations of specific values of the object\n\nTake precedence over \"main\" value for selected languages."
        },
        "type": {
          "type": "string",
          "const": "person",
          "description": "Type of a person"
        },
        "uid": {
          "$ref": "#/definitions/SCUuid",
          "description": "Universally unique identifier of the thing"
        },
        "additionalName": {
          "type": "string",
          "description": "Additional first names of the person."
        },
        "birthDate": {
          "$ref": "#/definitions/SCISO8601Date",
          "description": "The birth date of the person."
        },
        "email": {
          "type": "string",
          "description": "The private email address of the person."
        },
        "familyName": {
          "type": "string",
          "description": "The family name of the person."
        },
        "faxNumber": {
          "type": "string",
          "description": "The private fax number of the person."
        },
        "gender": {
          "$ref": "#/definitions/SCPersonGender",
          "description": "The gender of the person."
        },
        "givenName": {
          "type": "string",
          "description": "The first name of the person."
        },
        "honorificPrefix": {
          "type": "string",
          "description": "Honorific prefix of the person."
        },
        "honorificSuffix": {
          "type": "string",
          "description": "Honorific suffix of the person."
        },
        "jobTitles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Titles of jobs that the person has."
        },
        "nationality": {
          "$ref": "#/definitions/SCNationality",
          "description": "The nationality of the person."
        },
        "telephone": {
          "type": "string",
          "description": "The private telephone number of the person."
        }
      },
      "required": [
        "name",
        "type",
        "uid"
      ],
      "additionalProperties": false,
      "description": "A person without references"
    },
    "SCTranslations<SCThingTranslatableProperties>": {
      "type": "object",
      "properties": {
        "de": {
          "$ref": "#/definitions/SCThingTranslatableProperties",
          "description": "German translations"
        },
        "en": {
          "$ref": "#/definitions/SCThingTranslatableProperties",
          "description": "English translations"
        }
      },
      "additionalProperties": false,
      "description": "Translations for specific languages"
    },
    "SCThingTranslatableProperties": {
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "Translation of the description of the thing"
        },
        "name": {
          "type": "string",
          "description": "Translation of the name of the thing"
        },
        "origin": {
          "$ref": "#/definitions/SCThingTranslatablePropertyOrigin",
          "description": "Origin of the thing"
        }
      },
      "additionalProperties": false,
      "description": "Translatable properties of things"
    },
    "SCISO8601Date": {
      "type": "string",
      "description": "An ISO8601 date",
      "pattern": "^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])(T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])([\\.,][0-9]{0,7})?(Z|[+-](?:2[0-3]|[01][0-9])(:?[0-5][0-9])?)?)?$"
    },
    "SCPersonGender": {
      "type": "string",
      "enum": [
        "male",
        "female",
        "inter",
        "undefined"
      ],
      "description": "Gender of a person"
    },
    "SCNationality": {
      "type": "string",
      "enum": [
        "Afghanistan",
        "Åland Islands",
        "Albania",
        "Algeria",
        "American Samoa",
        "Andorra",
        "Angola",
        "Anguilla",
        "Antarctica",
        "Antigua and Barbuda",
        "Argentina",
        "Armenia",
        "Aruba",
        "Australia",
        "Austria",
        "Azerbaijan",
        "Bahamas",
        "Bahrain",
        "Bangladesh",
        "Barbados",
        "Belarus",
        "Belgium",
        "Belize",
        "Benin",
        "Bermuda",
        "Bhutan",
        "Bolivia (Plurinational State of)",
        "Bonaire, Sint Eustatius and Saba",
        "Bosnia and Herzegovina",
        "Botswana",
        "Bouvet Island",
        "Brazil",
        "British Indian Ocean Territory",
        "Brunei Darussalam",
        "Bulgaria",
        "Burkina Faso",
        "Burundi",
        "Cambodia",
        "Cameroon",
        "Canada",
        "Cabo Verde",
        "Cayman Islands",
        "Central African Republic",
        "Chad",
        "Chile",
        "China",
        "Christmas Island",
        "Cocos (Keeling) Islands",
        "Colombia",
        "Comoros",
        "Congo",
        "Congo (Democratic Republic of the)",
        "Cook Islands",
        "Costa Rica",
        "Côte d'Ivoire",
        "Croatia",
        "Cuba",
        "Curaçao",
        "Cyprus",
        "Czech Republic",
        "Denmark",
        "Djibouti",
        "Dominica",
        "Dominican Republic",
        "Ecuador",
        "Egypt",
        "El Salvador",
        "Equatorial Guinea",
        "Eritrea",
        "Estonia",
        "Ethiopia",
        "Falkland Islands (Malvinas)",
        "Faroe Islands",
        "Fiji",
        "Finland",
        "France",
        "French Guiana",
        "French Polynesia",
        "French Southern Territories",
        "Gabon",
        "Gambia",
        "Georgia",
        "Germany",
        "Ghana",
        "Gibraltar",
        "Greece",
        "Greenland",
        "Grenada",
        "Guadeloupe",
        "Guam",
        "Guatemala",
        "Guernsey",
        "Guinea",
        "Guinea-Bissau",
        "Guyana",
        "Haiti",
        "Heard Island and McDonald Islands",
        "Holy See",
        "Honduras",
        "Hong Kong",
        "Hungary",
        "Iceland",
        "India",
        "Indonesia",
        "Iran (Islamic Republic of)",
        "Iraq",
        "Ireland",
        "Isle of Man",
        "Israel",
        "Italy",
        "Jamaica",
        "Japan",
        "Jersey",
        "Jordan",
        "Kazakhstan",
        "Kenya",
        "Kiribati",
        "Korea (Democratic People's Republic of)",
        "Korea (Republic of)",
        "Kuwait",
        "Kyrgyzstan",
        "Lao People's Democratic Republic",
        "Latvia",
        "Lebanon",
        "Lesotho",
        "Liberia",
        "Libya",
        "Liechtenstein",
        "Lithuania",
        "Luxembourg",
        "Macao",
        "Macedonia (the former Yugoslav Republic of)",
        "Madagascar",
        "Malawi",
        "Malaysia",
        "Maldives",
        "Mali",
        "Malta",
        "Marshall Islands",
        "Martinique",
        "Mauritania",
        "Mauritius",
        "Mayotte",
        "Mexico",
        "Micronesia (Federated States of)",
        "Moldova (Republic of)",
        "Monaco",
        "Mongolia",
        "Montenegro",
        "Montserrat",
        "Morocco",
        "Mozambique",
        "Myanmar",
        "Namibia",
        "Nauru",
        "Nepal",
        "Netherlands",
        "New Caledonia",
        "New Zealand",
        "Nicaragua",
        "Niger",
        "Nigeria",
        "Niue",
        "Norfolk Island",
        "Northern Mariana Islands",
        "Norway",
        "Oman",
        "Pakistan",
        "Palau",
        "Palestine, State of",
        "Panama",
        "Papua New Guinea",
        "Paraguay",
        "Peru",
        "Philippines",
        "Pitcairn",
        "Poland",
        "Portugal",
        "Puerto Rico",
        "Qatar",
        "Réunion",
        "Romania",
        "Russian Federation",
        "Rwanda",
        "Saint Barthélemy",
        "Saint Helena, Ascension and Tristan da Cunha",
        "Saint Kitts and Nevis",
        "Saint Lucia",
        "Saint Martin (French part)",
        "Saint Pierre and Miquelon",
        "Saint Vincent and the Grenadines",
        "Samoa",
        "San Marino",
        "Sao Tome and Principe",
        "Saudi Arabia",
        "Senegal",
        "Serbia",
        "Seychelles",
        "Sierra Leone",
        "Singapore",
        "Sint Maarten (Dutch part)",
        "Slovakia",
        "Slovenia",
        "Solomon Islands",
        "Somalia",
        "South Africa",
        "South Georgia and the South Sandwich Islands",
        "South Sudan",
        "Spain",
        "Sri Lanka",
        "Sudan",
        "Suriname",
        "Svalbard and Jan Mayen",
        "Swaziland",
        "Sweden",
        "Switzerland",
        "Syrian Arab Republic",
        "Taiwan, Province of China",
        "Tajikistan",
        "Tanzania, United Republic of",
        "Thailand",
        "Timor-Leste",
        "Togo",
        "Tokelau",
        "Tonga",
        "Trinidad and Tobago",
        "Tunisia",
        "Turkey",
        "Turkmenistan",
        "Turks and Caicos Islands",
        "Tuvalu",
        "Uganda",
        "Ukraine",
        "United Arab Emirates",
        "United Kingdom of Great Britain and Northern Ireland",
        "United States of America",
        "United States Minor Outlying Islands",
        "Uruguay",
        "Uzbekistan",
        "Vanuatu",
        "Venezuela (Bolivarian Republic of)",
        "Viet Nam",
        "Virgin Islands (British)",
        "Virgin Islands (U.S.)",
        "Wallis and Futuna",
        "Western Sahara",
        "Yemen",
        "Zambia",
        "Zimbabwe"
      ],
      "description": "A list of possible nationalities"
    },
    "SCOrganizationWithoutReferences": {
      "type": "object",
      "properties": {
        "alternateNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Alternate names of the thing"
        },
        "description": {
          "type": "string",
          "description": "Description of the thing",
          "minLength": 1
        },
        "identifiers": {
          "$ref": "#/definitions/SCMap%3Cstring%3E",
          "description": "The identifier property represents any kind of additional identifier for any kind of SCThing\n\nE.g. GTIN codes, UUIDs, Database IDs etc."
        },
        "image": {
          "type": "string",
          "description": "URL of an image of the thing"
        },
        "name": {
          "type": "string",
          "description": "Name of the thing",
          "minLength": 1
        },
        "sameAs": {
          "type": "string",
          "description": "URL of a reference Web page that unambiguously indicates the item's identity\n\nE.g. the URL of the item's Wikipedia page, Wikidata entry, or official website."
        },
        "translations": {
          "$ref": "#/definitions/SCTranslations%3CSCThingTranslatableProperties%3E",
          "description": "Translations of specific values of the object\n\nTake precedence over \"main\" value for selected languages."
        },
        "type": {
          "type": "string",
          "const": "organization",
          "description": "Type of an organization"
        },
        "uid": {
          "$ref": "#/definitions/SCUuid",
          "description": "Universally unique identifier of the thing"
        }
      },
      "required": [
        "name",
        "type",
        "uid"
      ],
      "additionalProperties": false,
      "description": "An organization without references"
    },
    "SCThingUserOrigin": {
      "type": "object",
      "properties": {
        "maintainer": {
          "anyOf": [
            {
              "$ref": "#/definitions/SCPersonWithoutReferences"
            },
            {
              "$ref": "#/definitions/SCOrganizationWithoutReferences"
            }
          ],
          "description": "Maintainer of the origin\n\ne.g. restaurant of a dish"
        },
        "modified": {
          "$ref": "#/definitions/SCISO8601Date",
          "description": "When the thing was modified last in the origin"
        },
        "type": {
          "type": "string",
          "const": "user",
          "description": "Type of the origin"
        },
        "created": {
          "$ref": "#/definitions/SCISO8601Date",
          "description": "When the thing was created"
        },
        "deleted": {
          "type": "boolean",
          "description": "If it is deleted or not, defaults to false"
        },
        "updated": {
          "$ref": "#/definitions/SCISO8601Date",
          "description": "When the saved thing was last updated with the latest state (e.g. from the backend)"
        }
      },
      "required": [
        "created",
        "type"
      ],
      "additionalProperties": false,
      "description": "User origin of a thing (data created through user interaction)"
    },
    "SCUserGroup": {
      "type": "string",
      "enum": [
        "students",
        "employees",
        "guests"
      ],
      "description": "Types of data consumers"
    },
    "SCSettingInputType": {
      "type": "string",
      "enum": [
        "single choice",
        "multiple choice",
        "number",
        "text",
        "password"
      ],
      "description": "The types of input/value a setting object can carry"
    },
    "SCLanguageSetting": {
      "type": "object",
      "properties": {
        "alternateNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Alternate names of the thing"
        },
        "description": {
          "type": "string",
          "description": "Description of the thing",
          "minLength": 1
        },
        "identifiers": {
          "$ref": "#/definitions/SCMap%3Cstring%3E",
          "description": "The identifier property represents any kind of additional identifier for any kind of SCThing\n\nE.g. GTIN codes, UUIDs, Database IDs etc."
        },
        "image": {
          "type": "string",
          "description": "URL of an image of the thing"
        },
        "name": {
          "type": "string",
          "const": "language",
          "description": "Specific name of the setting"
        },
        "sameAs": {
          "type": "string",
          "description": "URL of a reference Web page that unambiguously indicates the item's identity\n\nE.g. the URL of the item's Wikipedia page, Wikidata entry, or official website."
        },
        "translations": {
          "$ref": "#/definitions/SCTranslations%3CSCSettingValueTranslatableProperties%3E",
          "description": "Translated fields of a setting"
        },
        "type": {
          "type": "string",
          "const": "setting",
          "description": "The type of this model"
        },
        "uid": {
          "$ref": "#/definitions/SCUuid",
          "description": "Universally unique identifier of the thing"
        },
        "categories": {
          "type": "array",
          "items": {
            "type": "string",
            "const": "profile"
          },
          "minItems": 1,
          "maxItems": 1,
          "description": "Exact categories of the setting"
        },
        "categorySpecificValues": {
          "$ref": "#/definitions/SCMap%3CSCThingWithCategoriesSpecificValues%3E",
          "description": "Use this to explicitly override general opening hours brought in scope by openingHoursSpecification or openingHours\n\nA map from categories to their specific values."
        },
        "origin": {
          "anyOf": [
            {
              "$ref": "#/definitions/SCThingRemoteOrigin"
            },
            {
              "$ref": "#/definitions/SCThingUserOrigin"
            }
          ],
          "description": "Origin of the thing"
        },
        "defaultValue": {
          "$ref": "#/definitions/SCLanguageCode",
          "description": "The default value of the setting"
        },
        "inputType": {
          "$ref": "#/definitions/SCSettingInputType",
          "description": "The input type of this setting"
        },
        "order": {
          "type": "number",
          "description": "The order number this setting should show up in its category list"
        },
        "value": {
          "$ref": "#/definitions/SCLanguageCode",
          "description": "Chosen value of the setting"
        },
        "values": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SCLanguageCode"
          },
          "description": "The possible values of the setting"
        }
      },
      "required": [
        "categories",
        "defaultValue",
        "inputType",
        "name",
        "order",
        "origin",
        "type",
        "uid",
        "values"
      ],
      "additionalProperties": false,
      "description": "A language setting"
    },
    "SCLanguageCode": {
      "type": "string",
      "enum": [
        "aa",
        "ab",
        "ae",
        "af",
        "ak",
        "am",
        "an",
        "ar",
        "as",
        "av",
        "ay",
        "az",
        "ba",
        "be",
        "bg",
        "bh",
        "bi",
        "bm",
        "bn",
        "bo",
        "br",
        "bs",
        "ca",
        "ce",
        "ch",
        "co",
        "cr",
        "cs",
        "cu",
        "cv",
        "cy",
        "da",
        "de",
        "dv",
        "dz",
        "ee",
        "el",
        "en",
        "eo",
        "es",
        "et",
        "eu",
        "fa",
        "ff",
        "fi",
        "fj",
        "fl",
        "fo",
        "fr",
        "fy",
        "ga",
        "gd",
        "gl",
        "gn",
        "gu",
        "gv",
        "ha",
        "he",
        "hi",
        "ho",
        "hr",
        "ht",
        "hu",
        "hy",
        "hz",
        "ia",
        "id",
        "ig",
        "ii",
        "ik",
        "io",
        "is",
        "it",
        "iu",
        "ja",
        "jv",
        "ka",
        "kg",
        "ki",
        "kj",
        "kk",
        "kl",
        "km",
        "kn",
        "ko",
        "kr",
        "ks",
        "ku",
        "kv",
        "kw",
        "ky",
        "la",
        "lb",
        "lg",
        "li",
        "ln",
        "lo",
        "lt",
        "lu",
        "lv",
        "mg",
        "mh",
        "mi",
        "mk",
        "ml",
        "mn",
        "mr",
        "ms",
        "mt",
        "my",
        "na",
        "nb",
        "nd",
        "ne",
        "ng",
        "nl",
        "nn",
        "no",
        "nr",
        "nv",
        "ny",
        "oc",
        "oj",
        "om",
        "or",
        "os",
        "pa",
        "pi",
        "pl",
        "ps",
        "pt",
        "qu",
        "rm",
        "rn",
        "ro",
        "ru",
        "rw",
        "sa",
        "sc",
        "sd",
        "se",
        "sg",
        "si",
        "sk",
        "sl",
        "sm",
        "sn",
        "so",
        "sq",
        "sr",
        "ss",
        "st",
        "su",
        "sv",
        "sw",
        "ta",
        "te",
        "tg",
        "th",
        "ti",
        "tk",
        "tl",
        "tn",
        "to",
        "tr",
        "ts",
        "tt",
        "tw",
        "ty",
        "ug",
        "uk",
        "ur",
        "uz",
        "ve",
        "vi",
        "vo",
        "wa",
        "wo",
        "xh",
        "yi",
        "yo",
        "za",
        "zh",
        "zu"
      ],
      "description": "A List of all possible Languages as ISO 639-1 Codes"
    },
    "SCSetting": {
      "type": "object",
      "properties": {
        "alternateNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Alternate names of the thing"
        },
        "description": {
          "type": "string",
          "description": "Description of the thing",
          "minLength": 1
        },
        "identifiers": {
          "$ref": "#/definitions/SCMap%3Cstring%3E",
          "description": "The identifier property represents any kind of additional identifier for any kind of SCThing\n\nE.g. GTIN codes, UUIDs, Database IDs etc."
        },
        "image": {
          "type": "string",
          "description": "URL of an image of the thing"
        },
        "name": {
          "type": "string",
          "description": "Name of the thing",
          "minLength": 1
        },
        "sameAs": {
          "type": "string",
          "description": "URL of a reference Web page that unambiguously indicates the item's identity\n\nE.g. the URL of the item's Wikipedia page, Wikidata entry, or official website."
        },
        "translations": {
          "$ref": "#/definitions/SCTranslations%3CSCSettingValueTranslatableProperties%3E",
          "description": "Translated fields of a setting"
        },
        "type": {
          "type": "string",
          "const": "setting",
          "description": "The type of this model"
        },
        "uid": {
          "$ref": "#/definitions/SCUuid",
          "description": "Universally unique identifier of the thing"
        },
        "categories": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SCSettingCategories"
          },
          "description": "Categories of a thing with categories"
        },
        "categorySpecificValues": {
          "$ref": "#/definitions/SCMap%3CSCThingWithCategoriesSpecificValues%3E",
          "description": "Use this to explicitly override general opening hours brought in scope by openingHoursSpecification or openingHours\n\nA map from categories to their specific values."
        },
        "origin": {
          "anyOf": [
            {
              "$ref": "#/definitions/SCThingRemoteOrigin"
            },
            {
              "$ref": "#/definitions/SCThingUserOrigin"
            }
          ],
          "description": "Origin of the thing"
        },
        "defaultValue": {
          "anyOf": [
            {
              "$ref": "#/definitions/SCSettingValue"
            },
            {
              "$ref": "#/definitions/SCSettingValues"
            }
          ],
          "description": "The default value of a setting"
        },
        "inputType": {
          "$ref": "#/definitions/SCSettingInputType",
          "description": "The input type of this setting"
        },
        "order": {
          "type": "number",
          "description": "The order number this setting should show up in its category list"
        },
        "value": {
          "anyOf": [
            {
              "$ref": "#/definitions/SCSettingValue"
            },
            {
              "$ref": "#/definitions/SCSettingValues"
            }
          ],
          "description": "The key of a value of a setting"
        },
        "values": {
          "$ref": "#/definitions/SCSettingValues",
          "description": "The possible values of a setting"
        }
      },
      "required": [
        "categories",
        "defaultValue",
        "inputType",
        "name",
        "order",
        "origin",
        "type",
        "uid"
      ],
      "additionalProperties": false,
      "description": "A setting with references"
    },
    "SCSettingCategories": {
      "type": "string",
      "enum": [
        "profile",
        "privacy",
        "credentials",
        "others"
      ],
      "description": "A list of categories for settings"
    },
    "SCSettingValue": {
      "type": [
        "string",
        "number",
        "boolean"
      ],
      "description": "The type a value of a setting can have"
    },
    "SCSettingValues": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/SCSettingValue"
      },
      "description": "The type of multiple values a setting can have"
    },
    "SCAppConfigurationStoreUrl": {
      "type": "object",
      "properties": {
        "android": {
          "type": "string",
          "description": "Google Play Store URL"
        },
        "ios": {
          "type": "string",
          "description": "Apple App Store URL"
        },
        "uwp": {
          "type": "string",
          "description": "Microsoft Store URL"
        }
      },
      "additionalProperties": false,
      "description": "URLs of published apps"
    },
    "SCAppVersionInfo": {
      "type": "object",
      "properties": {
        "version": {
          "type": "string",
          "description": "Version index that increments by one each version"
        },
        "releaseNotes": {
          "type": "string",
          "description": "Release notes of the version"
        },
        "translations": {
          "$ref": "#/definitions/SCTranslations%3Cstructure-src_config_app.ts-3628-3650-src_config_app.ts-3612-3651-src_config_app.ts-3566-3652-src_config_app.ts-3330-3654-src_config_app.ts-0-6511%3E",
          "description": "Translations"
        }
      },
      "required": [
        "version",
        "releaseNotes",
        "translations"
      ],
      "additionalProperties": false,
      "description": "Info about app version releases"
    },
    "SCTranslations<structure-src_config_app.ts-3628-3650-src_config_app.ts-3612-3651-src_config_app.ts-3566-3652-src_config_app.ts-3330-3654-src_config_app.ts-0-6511>": {
      "type": "object",
      "properties": {
        "de": {
          "type": "object",
          "properties": {
            "releaseNotes": {
              "type": "string"
            }
          },
          "required": [
            "releaseNotes"
          ],
          "additionalProperties": false,
          "description": "German translations"
        },
        "en": {
          "type": "object",
          "properties": {
            "releaseNotes": {
              "type": "string"
            }
          },
          "required": [
            "releaseNotes"
          ],
          "additionalProperties": false,
          "description": "English translations"
        }
      },
      "additionalProperties": false,
      "description": "Translations for specific languages"
    },
    "SCAuthorizationProvider": {
      "type": "object",
      "properties": {
        "client": {
          "$ref": "#/definitions/SCAuthorizationProviderClient",
          "description": "An authorization provider client configuration"
        },
        "endpoints": {
          "$ref": "#/definitions/SCAuthorizationProviderEndpoints",
          "description": "An authorization provider endpoints configuration"
        }
      },
      "required": [
        "client",
        "endpoints"
      ],
      "additionalProperties": false,
      "description": "An authorization provider complete configuration"
    },
    "SCAuthorizationProviderClient": {
      "type": "object",
      "properties": {
        "clientId": {
          "type": "string",
          "description": "Client ID"
        },
        "scopes": {
          "type": "string",
          "description": "Scopes to request"
        },
        "url": {
          "type": "string",
          "description": "Main url to reach authorization provider"
        }
      },
      "required": [
        "clientId",
        "scopes",
        "url"
      ],
      "additionalProperties": false,
      "description": "An authorization provider client configuration"
    },
    "SCAuthorizationProviderEndpoints": {
      "type": "object",
      "properties": {
        "authorization": {
          "type": "string",
          "description": "URL to start authentication flow"
        },
        "endSession": {
          "type": "string",
          "description": "URL to end current session"
        },
        "mapping": {
          "$ref": "#/definitions/SCUserConfigurationMap",
          "description": "Mapping of how to create SCUser from userinfo endpoint response (using JSONPath syntax)"
        },
        "revoke": {
          "type": "string",
          "description": "URL to revoke a token"
        },
        "token": {
          "type": "string",
          "description": "URL to get access Token"
        },
        "userinfo": {
          "type": "string",
          "description": "URL to general user info endpoint"
        }
      },
      "required": [
        "authorization",
        "mapping",
        "token",
        "userinfo"
      ],
      "additionalProperties": false,
      "description": "An authorization provider endpoints configuration"
    },
    "SCUserConfigurationMap": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "familyName": {
          "type": "string"
        },
        "givenName": {
          "type": "string"
        },
        "role": {
          "type": "string"
        },
        "studentId": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "name"
      ],
      "description": "User configuration keys mapped to string type while including their requiredness"
    },
    "SCBackendConfiguration": {
      "type": "object",
      "properties": {
        "externalRequestTimeout": {
          "type": "number",
          "description": "The maximum amount of time (milliseconds) an external program can take to provide a response to the backend\n\nThis can be used for example for Plugins."
        },
        "hiddenTypes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SCThingType"
          },
          "description": "A list of hidden SC types\n\nIf a type is hidden it won't show in any result unless the type is filtered for"
        },
        "mappingIgnoredTags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of tags that will be ignored by the mapping generator\n\nThe ignored tags should mainly be tags that are irrelevant to the mapping. The tags should include the '@'."
        },
        "maxMultiSearchRouteQueries": {
          "type": "number",
          "description": "Maximum number of queries, that can be used in MultiSearchRoute"
        },
        "maxRequestBodySize": {
          "type": "number",
          "description": "Maximum body size for requests"
        },
        "name": {
          "type": "string",
          "description": "Name of university"
        },
        "namespace": {
          "$ref": "#/definitions/SCUuid",
          "description": "Namespace of the university for UID generation"
        },
        "SCVersion": {
          "type": "string",
          "description": "Version string of the installed StAppsCore"
        },
        "sortableFields": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SCBackendConfigurationSortableField"
          },
          "description": "A list of sortable fields of each type"
        }
      },
      "required": [
        "externalRequestTimeout",
        "hiddenTypes",
        "mappingIgnoredTags",
        "maxMultiSearchRouteQueries",
        "maxRequestBodySize",
        "name",
        "namespace",
        "SCVersion",
        "sortableFields"
      ],
      "additionalProperties": false,
      "description": "A backend configuration"
    },
    "SCThingType": {
      "type": "string",
      "enum": [
        "assessment",
        "academic event",
        "article",
        "book",
        "periodical",
        "building",
        "catalog",
        "certification",
        "contact point",
        "course of study",
        "date series",
        "diff",
        "dish",
        "favorite",
        "floor",
        "id card",
        "message",
        "organization",
        "person",
        "point of interest",
        "publication event",
        "room",
        "semester",
        "setting",
        "sport course",
        "study module",
        "ticket",
        "todo",
        "tour",
        "video",
        "job posting"
      ],
      "description": "Types a thing can be"
    },
    "SCBackendConfigurationSortableField": {
      "type": "object",
      "properties": {
        "fieldName": {
          "type": "string",
          "description": "Field name which the sorts should be available on"
        },
        "onlyOnTypes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SCThingType"
          },
          "description": "A list of SC types on which this field exists\n\nIf no type is given it is assumed it exists on every type"
        },
        "sortTypes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SCSearchSortType"
          },
          "description": "A list of supported sorts on this field"
        }
      },
      "required": [
        "fieldName",
        "sortTypes"
      ],
      "additionalProperties": false,
      "description": "Description which sort types are supported on which fields of which types"
    },
    "SCSearchSortType": {
      "type": "string",
      "enum": [
        "distance",
        "price",
        "ducet",
        "generic"
      ],
      "description": "Type of a sort instruction"
    },
    "SCBackendInternalConfiguration": {
      "type": "object",
      "properties": {
        "aggregations": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SCBackendAggregationConfiguration"
          },
          "description": "A list of configurations for aggregations"
        },
        "boostings": {
          "$ref": "#/definitions/SCBackendConfigurationSearchBoostingContext",
          "description": "A list of configurations for search boosting\n\nThe resulting scores of matching objects can be boosted (multiplied by a number) to change the order in the set of results"
        },
        "database": {
          "$ref": "#/definitions/SCBackendConfigurationDatabaseConfiguration",
          "description": "Configuration of the database"
        },
        "monitoring": {
          "$ref": "#/definitions/SCMonitoringConfiguration",
          "description": "Configuration for monitoring"
        }
      },
      "required": [
        "aggregations",
        "boostings"
      ],
      "additionalProperties": false,
      "description": "The internal backend configuration that is hidden from the app"
    },
    "SCBackendAggregationConfiguration": {
      "type": "object",
      "properties": {
        "fieldName": {
          "type": "string",
          "description": "Field name of field which values should be aggregated"
        },
        "onlyOnTypes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SCThingType"
          },
          "description": "A list of SC types of which the field is on\n\nIf the type is not given is is assumed the field exists on every type"
        }
      },
      "required": [
        "fieldName"
      ],
      "additionalProperties": false,
      "description": "Describes which field on which type should be aggregated"
    },
    "SCBackendConfigurationSearchBoostingContext": {
      "$ref": "#/definitions/SCRestrictedMap%3CSCSearchContext%2Cdef-interface-1100331109-2937-3597-1100331109-0-48841053333804%5B%5D%3E",
      "description": "A boosting configuration for one context"
    },
    "SCRestrictedMap<SCSearchContext,def-interface-1100331109-2937-3597-1100331109-0-48841053333804[]>": {
      "type": "object",
      "properties": {
        "default": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SCBackendConfigurationSearchBoostingType"
          }
        },
        "dining": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SCBackendConfigurationSearchBoostingType"
          }
        },
        "place": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SCBackendConfigurationSearchBoostingType"
          }
        }
      },
      "required": [
        "default",
        "dining",
        "place"
      ],
      "additionalProperties": false,
      "description": "Restricted map with keys, limited to values of `U`, and corresponding values of type `T`\n\n!!! BEWARE !!! Can't be refactored to a `Map<K, V>`, because it can't be serialized via JSON.stringify(map) Also note, that this is a type not an interface"
    },
    "SCBackendConfigurationSearchBoostingType": {
      "type": "object",
      "properties": {
        "factor": {
          "type": "number",
          "description": "The factor of which the scores matching this type should be multiplied by"
        },
        "fields": {
          "$ref": "#/definitions/SCMap%3CSCMap%3Cnumber%3E%3E",
          "description": "Outer-Map: Fields of this type that should be boosted if they match a given value For nest fields you can use the `.` as a separator. For example `academicTerms.acronym`\n\nInner-map: Value of the field that should be boosted by the given number For example `\"SS 2019\": 2`"
        },
        "type": {
          "$ref": "#/definitions/SCThingType",
          "description": "Type of things the factor should be applied to"
        }
      },
      "required": [
        "factor",
        "type"
      ],
      "additionalProperties": false,
      "description": "A boosting configuration for one SCType"
    },
    "SCMap<SCMap<number>>": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/definitions/SCMap%3Cnumber%3E",
        "description": "One value for each key"
      },
      "description": "Capsulation for a map with a string as key with values of type `T`\n\n!!! BEWARE !!! Can't be refactored to a `Map<K, V>`, because it can't be serialized via JSON.stringify(map)"
    },
    "SCMap<number>": {
      "type": "object",
      "additionalProperties": {
        "type": "number",
        "description": "One value for each key"
      },
      "description": "Capsulation for a map with a string as key with values of type `T`\n\n!!! BEWARE !!! Can't be refactored to a `Map<K, V>`, because it can't be serialized via JSON.stringify(map)"
    },
    "SCBackendConfigurationDatabaseConfiguration": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the database used by the backend"
        }
      },
      "required": [
        "name"
      ],
      "additionalProperties": {
        "description": "One value for each key"
      },
      "description": "Configuration of the database"
    },
    "SCMonitoringConfiguration": {
      "type": "object",
      "properties": {
        "actions": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "$ref": "#/definitions/SCMonitoringMailAction"
              },
              {
                "$ref": "#/definitions/SCMonitoringLogAction"
              }
            ]
          },
          "description": "A list of actions that are executed, when a watcher fails"
        },
        "watchers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SCMonitoringWatcher"
          },
          "description": "A list of watches"
        }
      },
      "required": [
        "actions",
        "watchers"
      ],
      "additionalProperties": false,
      "description": "A complete monitoring configuration for the backend"
    },
    "SCMonitoringMailAction": {
      "type": "object",
      "properties": {
        "message": {
          "type": "string",
          "description": "Message that is used by the action\n\nMustache syntax is supported to evaluate the query."
        },
        "type": {
          "type": "string",
          "const": "mail",
          "description": "The type of the action"
        },
        "recipients": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of addresses to send the mails to"
        },
        "subject": {
          "type": "string",
          "description": "A subject line for all mails"
        }
      },
      "required": [
        "message",
        "recipients",
        "subject",
        "type"
      ],
      "additionalProperties": false,
      "description": "A mail task which can be executed from a failed watcher"
    },
    "SCMonitoringLogAction": {
      "type": "object",
      "properties": {
        "message": {
          "type": "string",
          "description": "Message that is used by the action\n\nMustache syntax is supported to evaluate the query."
        },
        "type": {
          "type": "string",
          "const": "log",
          "description": "The type of the action"
        },
        "prefix": {
          "type": "string",
          "description": "A prefix for the logged messages"
        }
      },
      "required": [
        "message",
        "prefix",
        "type"
      ],
      "additionalProperties": false,
      "description": "A log action which can be executed from a failed watcher"
    },
    "SCMonitoringWatcher": {
      "type": "object",
      "properties": {
        "actions": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "$ref": "#/definitions/SCMonitoringLogAction"
              },
              {
                "$ref": "#/definitions/SCMonitoringMailAction"
              }
            ]
          },
          "description": "A list of actions that are executed, when the watcher fails"
        },
        "conditions": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "$ref": "#/definitions/SCMonitoringMaximumLengthCondition"
              },
              {
                "$ref": "#/definitions/SCMonitoringMinimumLengthCondition"
              }
            ]
          },
          "description": "A list of conditions that have to match the result of the query\n\nIf not all conditions are met, the watcher will fail and all actions are executed"
        },
        "name": {
          "type": "string",
          "description": "A name for the watcher"
        },
        "query": {
          "description": "Query to execute against the database"
        },
        "triggers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SCMonitoringTrigger"
          },
          "description": "A list of triggers"
        }
      },
      "required": [
        "actions",
        "conditions",
        "name",
        "query",
        "triggers"
      ],
      "additionalProperties": false,
      "description": "A watcher that evaluates a query, when triggered"
    },
    "SCMonitoringMaximumLengthCondition": {
      "type": "object",
      "properties": {
        "length": {
          "type": "number",
          "description": "The maximum length"
        },
        "type": {
          "type": "string",
          "const": "MaximumLength",
          "description": "Type of the condition"
        }
      },
      "required": [
        "length",
        "type"
      ],
      "additionalProperties": false,
      "description": "A condition which is met, when the result length is smaller than the maximum length"
    },
    "SCMonitoringMinimumLengthCondition": {
      "type": "object",
      "properties": {
        "length": {
          "type": "number",
          "description": "The minimum length"
        },
        "type": {
          "type": "string",
          "const": "MinimumLength",
          "description": "Type of the condition"
        }
      },
      "required": [
        "length",
        "type"
      ],
      "additionalProperties": false,
      "description": "A condition which is met, when the result length is higher than the minimum length"
    },
    "SCMonitoringTrigger": {
      "type": "object",
      "properties": {
        "executionTime": {
          "anyOf": [
            {
              "$ref": "#/definitions/SCMonitoringExecutionCalendarEvents"
            },
            {
              "type": "string"
            }
          ],
          "description": "A cron like syntax to describe when this trigger should be executed"
        },
        "name": {
          "type": "string",
          "description": "A name of the trigger that explains when it executes"
        }
      },
      "required": [
        "executionTime",
        "name"
      ],
      "additionalProperties": false,
      "description": "A trigger which determines the execution time of a watcher"
    },
    "SCMonitoringExecutionCalendarEvents": {
      "type": "string",
      "enum": [
        "hourly",
        "daily",
        "weekly",
        "monthly"
      ],
      "description": "A list of events to describe the execution interval of monitoring triggers"
    },
    "SCLicensePlate": {
      "type": "string",
      "enum": [
        "ac-kf",
        "ac-fk",
        "ac-fh",
        "ac-hm",
        "ac-th",
        "dn-fh",
        "aa-fh",
        "sig-f2",
        "su-ah",
        "rd-vf",
        "am-f2",
        "am-fh",
        "an-fh",
        "ik-fh",
        "ab-fh",
        "asl-vf",
        "a-hm",
        "a-u",
        "a-fh",
        "hef-fh",
        "hg-hs",
        "su-if",
        "cw-ih",
        "tbb-dh",
        "eu-vf",
        "los-pf",
        "esw-pf",
        "ba-u",
        "bt-kh",
        "bt-u",
        "gap-kh",
        "wr-vf",
        "pb-f2",
        "b-ah",
        "b-am",
        "b-fs",
        "b-ab",
        "b-pf",
        "b-tf",
        "b-mu",
        "b-dk",
        "b-p2",
        "b-bs",
        "b-eh",
        "b-hw",
        "b-es",
        "b-em",
        "b-ec",
        "b-ef",
        "b-vf",
        "b-gb",
        "b-hs",
        "b-pk",
        "b-mh",
        "b-ft",
        "b-p3",
        "b-fb",
        "b-wt",
        "b-u2",
        "b-u",
        "b-v2",
        "b-fw",
        "b-p4",
        "b-ih",
        "b-kf",
        "b-mf",
        "b-dh",
        "b-pu",
        "b-ph",
        "b-qh",
        "b-ot",
        "b-fh",
        "b-su",
        "b-tk",
        "b-tc",
        "b-hk",
        "b-wb",
        "b-fp",
        "b-v3",
        "b-fu",
        "b-h3",
        "b-hm",
        "b-kh",
        "b-h4",
        "b-f3",
        "b-f5",
        "b-f2",
        "b-tu",
        "ber-vf",
        "bbg-fh",
        "bbg-hs",
        "w-k2",
        "bi-kh",
        "bc-fh",
        "bi-du",
        "bi-fm",
        "pb-f4",
        "bi-u",
        "bi-fh",
        "bi-vf",
        "wm-hs",
        "mz-fh",
        "tr-f2",
        "bo-eb",
        "bo-fh",
        "bo-f1",
        "bo-fg",
        "bo-hm",
        "bo-f3",
        "bo-kf",
        "bo-u",
        "bn-sg",
        "bn-pf",
        "bn-vf",
        "bn-fh",
        "bn-u",
        "bot-fh",
        "brb-vf",
        "brb-fh",
        "bs-fh",
        "bs-hk",
        "bs-tu",
        "hb-ah",
        "hb-hi",
        "hb-fh",
        "hb-iu",
        "hb-hk",
        "hb-u",
        "hb-vf",
        "hb-h",
        "ka-pu",
        "bm-eu",
        "bm-fb",
        "std-hs",
        "std-fh",
        "cw-fh",
        "cw-hs",
        "ce-pf",
        "c-tu",
        "c-th",
        "gs-tu",
        "co-fh",
        "co-hs",
        "co-f2",
        "cb-fh",
        "cb-tu",
        "da-kf",
        "da-vf",
        "da-fh",
        "da-pf",
        "da-tu",
        "da-v2",
        "deg-fh",
        "de-fh",
        "dt-fl",
        "lip-h2",
        "lip-hm",
        "dt-hm",
        "da-v3",
        "dh-fh",
        "do-fh",
        "do-mh",
        "do-is",
        "do-pf",
        "do-u",
        "do-hm",
        "do-vf",
        "dd-ec",
        "dd-fh",
        "dd-hs",
        "dd-ak",
        "dd-ph",
        "dd-pf",
        "dd-pu",
        "dd-hl",
        "dd-ht",
        "dd-hk",
        "dd-ma",
        "dd-hm",
        "dd-p2",
        "dd-p3",
        "dd-tu",
        "dd-hv",
        "d-iu",
        "du-hm",
        "du-pf",
        "du-ug",
        "du-vf",
        "du-u",
        "d-am",
        "d-eb",
        "d-ff",
        "d-pf",
        "d-fh",
        "d-vf",
        "d-hk",
        "d-hm",
        "d-u",
        "bar-fh",
        "ew-fh",
        "eck-fh",
        "ld-vf",
        "ei-u",
        "pi-f2",
        "ol-f2",
        "hvl-hs",
        "hvl-fh",
        "emd-fh",
        "ed-pf",
        "ef-fh",
        "ef-mh",
        "ef-pf",
        "ef-kh",
        "ef-u",
        "ef-ph",
        "er-u",
        "e-fh",
        "e-p2",
        "e-pf",
        "e-uk",
        "e-u",
        "e-ug",
        "e-hm",
        "es-ft",
        "es-fs",
        "fl-fh",
        "fl-ph",
        "fl-u",
        "f-hb",
        "f-ms",
        "f-u",
        "f-v2",
        "f-fh",
        "f-hk",
        "f-hm",
        "f-kh",
        "f-pf",
        "f-vf",
        "ff-eu",
        "fg-u",
        "fr-fh",
        "fr-kf",
        "fr-u",
        "fr-hm",
        "fr-ph",
        "fb-fh",
        "hal-kh",
        "fn-dh",
        "fn-u",
        "fd-fh",
        "fd-kh",
        "ffb-vf",
        "vs-fh",
        "wi-f2",
        "ul-f2",
        "ge-f3",
        "ge-fh",
        "ge-f2",
        "ge-vf",
        "g-pf",
        "ger-u",
        "gi-ft",
        "gi-fh",
        "gi-vf",
        "gi-u",
        "gp-fh",
        "zi-hw",
        "gth-vf",
        "g-hs",
        "goe-fh",
        "goe-u",
        "goe-pf",
        "gw-u",
        "nb-u",
        "gw-u2",
        "gw-u1",
        "hgw-u",
        "gue-fh",
        "gue-vf",
        "pb-f3",
        "gt-pf",
        "ww-vf",
        "ha-ug",
        "ha-fh",
        "ha-f2",
        "ha-vf",
        "hbs-fh",
        "hbs-vf",
        "hal-eh",
        "hal-hk",
        "hal-ph",
        "hal-u",
        "hal-u2",
        "koet-ph",
        "hal-uw",
        "hh-am",
        "hh-bs",
        "hh-pf",
        "hh-bc",
        "hh-ef",
        "hh-fh",
        "hh-hu",
        "hh-ub",
        "hh-ff",
        "hh-vf",
        "hh-fi",
        "hh-ba",
        "hh-ib",
        "hh-mf",
        "hh-ms",
        "hh-hf",
        "hh-u",
        "hh-hs",
        "hh-uk",
        "hh-fs",
        "hh-hk",
        "hh-hm",
        "hh-tu",
        "hm-hs",
        "ham-f2",
        "ham-fh",
        "h-fg",
        "h-fh",
        "h-hm",
        "h-vf",
        "h-la",
        "h-u",
        "h-fb",
        "h-kf",
        "h-mh",
        "h-f3",
        "h-pf",
        "h-ti",
        "hei-fh",
        "hd-hm",
        "hd-ph",
        "hd-kh",
        "hd-u",
        "hd-fh",
        "hdh-dh",
        "hn-dh",
        "hn-bs",
        "hn-fh",
        "hn-f2",
        "su-f3",
        "su-k2",
        "he-hk",
        "sta-v2",
        "hi-fg",
        "hi-fs",
        "hi-fh",
        "hi-v2",
        "hi-vf",
        "hi-u",
        "hi-v3",
        "ho-fh",
        "ho-f2",
        "ho-vf",
        "s-u2",
        "ww-fh",
        "hol-fh",
        "fds-dh",
        "hx-fh",
        "lip-h3",
        "hx-ug",
        "tr-f3",
        "mz-f5",
        "wi-f5",
        "wi-f4",
        "rued-pf",
        "ik-tu",
        "il-th",
        "in-fh",
        "in-u",
        "mk-ts",
        "mk-fh",
        "rv-pf",
        "j-fh",
        "j-u",
        "kl-fh",
        "kl-u",
        "wes-fh",
        "ka-dh",
        "ka-fh",
        "ka-pf",
        "ka-u",
        "ka-hk",
        "ka-hg",
        "ka-hm",
        "ka-ph",
        "ks-cv",
        "ks-pf",
        "ks-fh",
        "ks-ms",
        "ks-u3",
        "ks-ug",
        "ks-vf",
        "ks-u2",
        "og-vf",
        "ke-fh",
        "ki-u",
        "ki-fh",
        "ki-f2",
        "ki-f6",
        "ki-hk",
        "ki-f3",
        "ki-f4",
        "ki-f5",
        "ki-ph",
        "kle-fh",
        "ko-fh",
        "ko-u3",
        "ko-u",
        "ko-vf",
        "k-iu",
        "k-cb",
        "k-fm",
        "k-fp",
        "k-kf",
        "k-mf",
        "k-p2",
        "k-u",
        "k-fb",
        "k-u2",
        "k-fh",
        "k-vf",
        "k-hk",
        "k-hm",
        "k-pf",
        "k-v2",
        "k-f2",
        "kw-fh",
        "kn-fh",
        "kn-f2",
        "kn-u",
        "koet-fh",
        "koet-th",
        "koet-u",
        "kr-fh",
        "og-fw",
        "ld-u",
        "la-fh",
        "da-v4",
        "ler-fh",
        "l-fb",
        "l-f2",
        "l-kh",
        "l-h3",
        "l-hh",
        "l-hm",
        "l-h2",
        "l-ph",
        "l-hs",
        "l-ht",
        "l-th",
        "l-u",
        "mer-th",
        "lev-pf",
        "lev-fh",
        "fg-fh",
        "lip-f2",
        "lip-h1",
        "lip-fh",
        "so-f2",
        "loe-dh",
        "hl-fh",
        "hl-vf",
        "hl-f3",
        "hl-uk",
        "hl-u",
        "hl-f2",
        "hl-hm",
        "lb-v2",
        "lb-fh",
        "lb-ph",
        "lb-p2",
        "lb-vf",
        "lu-fh",
        "lu-kf",
        "lg-u",
        "lg-fh",
        "md-f2",
        "md-fh",
        "md-tu",
        "md-f3",
        "md-mh",
        "md-ph",
        "md-u",
        "mz-f4",
        "mz-u2",
        "mz-vf",
        "mz-f3",
        "mz-f2",
        "mz-u",
        "mz-kf",
        "ma-dh",
        "ma-fg",
        "ma-ft",
        "ma-ba",
        "ma-v3",
        "ma-v2",
        "ma-hm",
        "ma-fs",
        "ma-u",
        "mr-eh",
        "mr-fh",
        "mr-u",
        "re-pf",
        "myk-vf",
        "mgn-vf",
        "mei-fh",
        "mei-fv",
        "mei-f2",
        "sk-hs",
        "hal-fh",
        "hsk-fh",
        "me-fh",
        "rt-hs",
        "mi-fh",
        "c-fh",
        "mw-ht",
        "hc-ih",
        "mtw-ht",
        "mg-fh",
        "z-fh",
        "mos-dh",
        "mh-fh",
        "m-am",
        "m-b2",
        "m-bw",
        "m-ea",
        "m-vf",
        "m-as",
        "m-mf",
        "m-hk",
        "m-hs",
        "m-fh",
        "m-kf",
        "m-hm",
        "m-kh",
        "m-hp",
        "m-fp",
        "m-tu",
        "m-u",
        "gap-ks",
        "m-u2",
        "m-t2",
        "ms-ph",
        "ms-kf",
        "ms-u",
        "ms-fh",
        "ms-vf",
        "ms-hk",
        "ms-hm",
        "ms-kh",
        "ms-v2",
        "nmb-kh",
        "nb-fh",
        "m-ah",
        "m-k3",
        "ne-eu",
        "ne-hs",
        "ne-pf",
        "nu-fh",
        "h-f2",
        "ndh-fh",
        "coe-vf",
        "n-kf",
        "n-hm",
        "n-hk",
        "n-k1",
        "n-k2",
        "n-k3",
        "n-fh",
        "n-u",
        "nt-fh",
        "nt-f3",
        "gp-f2",
        "gr-kh",
        "hg-kh",
        "wi-eb",
        "of-hk",
        "fr-f2",
        "ol-fh",
        "ol-pf",
        "ol-u",
        "os-f2",
        "os-fh",
        "os-f3",
        "os-u",
        "os-kf",
        "ver-fh",
        "pb-fh",
        "pb-kf",
        "pb-kh",
        "pb-ug",
        "pb-f1",
        "pb-u2",
        "pa-u",
        "pf-fg",
        "pf-fh",
        "ps-fh",
        "pl-fh",
        "p-bs",
        "p-f2",
        "p-sh",
        "p-pf",
        "p-u",
        "p-fh",
        "p-hf",
        "brb-f2",
        "dd-f2",
        "rv-fh",
        "rv-dh",
        "r-kh",
        "r-u",
        "r-fh",
        "rd-v2",
        "ko-f2",
        "rd-bf",
        "rd-fh",
        "rt-fh",
        "rt-ts",
        "rt-ft",
        "su-f2",
        "st-mh",
        "bc-f2",
        "rie-fh",
        "shg-vf",
        "ro-fh",
        "ros-hm",
        "ros-im",
        "hro-hu",
        "hro-u",
        "hro-hm",
        "rof-vf",
        "nol-fh",
        "tue-fh",
        "wi-f3",
        "sb-f2",
        "sb-hm",
        "sb-hs",
        "sb-vf",
        "sb-hk",
        "sb-fh",
        "sb-kf",
        "sb-u",
        "sz-fh",
        "sm-fh",
        "aa-fg",
        "aa-ph",
        "sha-ht",
        "sha-kh",
        "sad-pf",
        "ru-fh",
        "wue-f2",
        "lds-bc",
        "sn-hm",
        "hd-vf",
        "sfb-fh",
        "si-pf",
        "si-ug",
        "sig-fh",
        "so-fh",
        "so-vf",
        "so-ug",
        "sp-u",
        "su-fh",
        "su-kh",
        "sta-vf",
        "st-fh",
        "sdl-fh",
        "hst-fh",
        "hst-f2",
        "sr-fh",
        "og-fh",
        "s-dp",
        "s-dh",
        "s-f2",
        "s-im",
        "s-kf",
        "s-u",
        "s-va",
        "s-wh",
        "s-hk",
        "s-fh",
        "s-fb",
        "s-hm",
        "s-mf",
        "s-f3",
        "s-th",
        "ue-fh",
        "k-v3",
        "k-f3",
        "tr-fh",
        "tr-kh",
        "tr-u",
        "an-f2",
        "tut-hm",
        "tue-u",
        "tut-f3",
        "ul-fh",
        "ul-f4",
        "ul-u",
        "myk-kh",
        "vec-fh",
        "vec-u",
        "vec-kf",
        "bo-f2",
        "vs-vf",
        "vs-dh",
        "vs-f2",
        "ros-hs",
        "ro-vf",
        "pi-fh",
        "fs-fh",
        "we-hm",
        "we-u",
        "we-vf",
        "we-th",
        "kn-ph",
        "rv-ph",
        "wsf-pf",
        "wr-fh",
        "wr-v2",
        "qlb-vf",
        "ldk-fh",
        "wi-bs",
        "wi-v1",
        "wi-fh",
        "wi-vf",
        "kw-th",
        "whv-fh",
        "hwi-fh",
        "wis-th",
        "wis-fh",
        "en-u",
        "wf-fh",
        "wob-fh",
        "wo-fh",
        "w-hm",
        "w-kh",
        "w-ug",
        "w-vf",
        "wue-hm",
        "wue-u",
        "wue-fh",
        "wue-f3",
        "zi-ht",
        "zi-ih",
        "zi-th",
        "zw-fh",
        "z-t3",
        "z-t2",
        "z-pf",
        "z-hs",
        "z-ph",
        "z-th",
        "z-tu",
        "z-ht",
        "rc-hs",
        "z-p2"
      ],
      "description": "The license plate of a university e.g. the UID of the university"
    },
    "SCSCConfigFile": {
      "type": "object",
      "properties": {
        "app": {
          "$ref": "#/definitions/SCAppConfiguration",
          "description": "Configuration for the app that is visible to clients"
        },
        "auth": {
          "type": "object",
          "properties": {
            "default": {
              "$ref": "#/definitions/SCAuthorizationProvider"
            },
            "paia": {
              "$ref": "#/definitions/SCAuthorizationProvider"
            }
          },
          "additionalProperties": false,
          "description": "Configuration for the supported authorization providers"
        },
        "backend": {
          "$ref": "#/definitions/SCBackendConfiguration",
          "description": "Configuration for the backend that is visible to clients"
        },
        "internal": {
          "$ref": "#/definitions/SCBackendInternalConfiguration",
          "description": "Configuration that is not visible to clients"
        },
        "uid": {
          "$ref": "#/definitions/SCLicensePlate",
          "description": "UID of the university, e.g. the license plate"
        }
      },
      "required": [
        "app",
        "auth",
        "backend",
        "internal",
        "uid"
      ],
      "additionalProperties": false,
      "description": "A configuration file that configures app and backend"
    }
  },
  "$id": "https://core.stapps.tu-berlin.de/v4.0.2/lib/schema/SCConfigFile.json"
}